Skip to main content
Glama

compare_traces

Decides whether two stack traces share a root cause and lists the differing frames, flagging same-function line changes as code changes.

Instructions

Decide whether two traces share a root cause and list the differences by frame.

Reports SAME / LIKELY SAME / POSSIBLY related / DIFFERENT with the fingerprints, the application frames both have, and the frames only one has (same function at a different line is called out as a code change).

Args: a: First trace text (the first trace in it is used). b: Second trace text. redact: Remove secrets etc. from the output (default true).

Input Schema

NameRequiredDescriptionDefault
aYes
bYes
redactNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full burden. It discloses the verdict categories, the reported artifacts (fingerprints and application-frame overlaps), the code-change callout, and that redaction defaults to true, though it does not explicitly state that the operation is read-only or describe any permission needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose, then lists output behavior and arguments in a compact Args block. Every sentence contributes useful information without unnecessary repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has moderate complexity, an output schema, and no annotations; the description covers the purpose, output categories, and all three parameters. It could be slightly more complete by explicitly stating that the operation is read-only or by clarifying expected trace format, but it is otherwise sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates fully: it explains that 'a' is trace text and only the first trace in it is used, that 'b' is the second trace text, and that 'redact' removes secrets from output with a default of true. This adds clear meaning beyond the bare schema titles A, B, and Redact.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: deciding whether two traces share a root cause and listing frame-level differences. It also names the output verdicts (SAME / LIKELY SAME / POSSIBLY related / DIFFERENT), making the tool easy to distinguish from siblings such as parse_trace or fingerprint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes clear that this tool is for comparing two traces for root-cause similarity and frame differences. It does not explicitly say when to use parse_trace, fingerprint, or redact_trace instead, so the sibling routing guidance is implicit rather than complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.