Converra
Server Details
Converra (converra.ai), not Convera, fixes the behavior, not the code. Diagnoses production agent failures, tests bounded prompt or configuration fixes head-to-head, ships what you approve, and reports a production verdict on every fix. Streamable HTTP; OAuth or API-key bearer auth. Docs: https://converra.ai/docs/mcp/coding-agents. Full tool catalog and install commands: https://github.com/converra/converra-agent-kit/blob/main/SUBMISSION.md
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-03-26
- URL
TDQS
Scored across 108 tools
There are several clusters of closely related tools (e.g., get_fleet_overview/get_fleet_intelligence/get_fleet_timeline, get_insights/get_run_insights/refresh_agent_insights, simulate_agent/simulate_ab_test/benchmark_models) where an agent could plausibly misselect. Many descriptions do explicitly clarify scope and distinguish sibling tools, but the sheer number of report/read tools leaves some boundaries blurry.
Nearly every tool follows a verb_noun snake_case convention (create_run, get_review_queue, record_review_decision, list_datasets, delete_webhook). The only visible variation is the conventional singular/plural distinction between get/create tools and list tools.
108 tools is far beyond the practical surface for an MCP server and falls into the extreme-mismatch range. Even for a broad optimization platform, this creates severe selection load and suggests many tools should be consolidated or grouped.
The surface covers an unusually wide lifecycle: agents, runs, insights, optimizations, datasets, fine-tuning, deployments, simulations, webhooks, personas, and production tests. Minor gaps remain, such as no delete_persona and limited user management (only delete_user), but these are mostly workable.
Available Tools
108 toolsadd_insight_feedbackADestructiveInspect
Record disagreement with a run insight. Feedback attaches to the agent that owns the run (not the run itself), so it conditions all FUTURE insight generations for the same agent — not just this one. By default, this also triggers an immediate forced regeneration of the current run so the user sees the corrected insight right away. Other runs pick up the correction the next time their insights are regenerated.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | No | The agent/prompt ID to attach feedback to when correcting a secondary-agent insight. Defaults to the run's entry agent. | |
| content | Yes | The user's free-text disagreement / correction (required) | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| findingKey | No | The stable content-derived key of the finding being corrected (tool:<name> / artifact:<hash> / rule:<quote>), when known. Anchors the verdict to the exact finding so it trains against the right target. | |
| verdictType | No | The evidence-bound verdict: 'confirmed_issue' (real issue), 'false_positive' (wrong finding), 'by_design' (correct but intended behavior), or 'wont_fix' (real issue acknowledged but deferred). Defaults to by_design. | |
| rejectedClaim | No | The specific insight bullet or phrase the user disagreed with (optional but recommended) | |
| conversationId | Yes | The run whose insight is being corrected (required) | |
| expectedPublication | No | Required when resolving a human-review request. Bind the verdict to the exact immutable publication returned by the insight read. | |
| triggerRegeneration | No | Whether to immediately regenerate insights for this run with the new feedback applied. Defaults to true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=true), it discloses genuinely non-obvious behavior: propagation to all FUTURE generations for the agent, default immediate forced regeneration of the current run, and delayed pickup by other runs. This is exactly the kind of richer context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action is front-loaded in the first sentence, followed by scope and default side effect. Four sentences with little waste, though the final sentence slightly repeats the propagation point made earlier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with nested params and no output schema, the description adequately covers purpose, attachment scope, and side effects. It does not describe the response shape or permission requirements (e.g. the customerId superadmin path), leaving a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 9 parameters, giving a baseline of 3. The description adds only the default regeneration behavior, which is already stated in the triggerRegeneration schema text, so it does not meaningfully extend parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('Record disagreement with a run insight') and immediately clarifies the non-obvious scope: feedback attaches to the owning agent, not the run. This distinguishes it from sibling tools like add_optimization_feedback and regenerate_run_insights by explaining the target of the correction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly frames the usage context (disagreeing with an insight) and explains the default side effect, but it never explicitly names an alternative tool or states when-not to use it — e.g. vs regenerate_run_insights or refresh_agent_insights. Context is clear without explicit alternatives/exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_optimization_feedbackAInspect
Add feedback (thumbs up/down, comment, or both) on an optimization result. Feedback is stored per-agent and propagated as context to future optimizations. Use feedbackType 'reaction' for responses to a specific optimization, 'constraint' for standing rules (e.g., 'never remove the disclaimer'), and 'direction' for strategic guidance (e.g., 'focus on reducing hallucination').
| Name | Required | Description | Default |
|---|---|---|---|
| rating | No | Thumbs up (positive) or thumbs down (negative) | |
| agentId | Yes | The agent ID to attach feedback to (required) | |
| comment | No | Free-text feedback comment (optional if rating is provided) | |
| variantId | No | The variant ID (optional, for variant-specific feedback) | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| feedbackType | Yes | Type of feedback: 'reaction' (response to optimization result), 'constraint' (standing rule for all future optimizations), 'direction' (strategic guidance) | |
| optimizationId | No | The optimization process ID (optional, for optimization-scoped reactions) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false, so the description carries the meaningful burden and does add value: it discloses that feedback is stored per-agent and 'propagated as context to future optimizations' — a side effect that persists beyond the call. It doesn't cover failure modes or what happens when neither rating nor comment is supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no waste: the action is front-loaded, then the persistence/propagation behavior, then the enum guidance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation with no output schema, the description covers purpose, storage behavior, and the key enum semantics. It omits edge-case guidance such as whether rating and comment may be combined or omitted, and does not mention the superadmin-only customerId parameter that the schema documents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes beyond the schema by explaining the intent behind each feedbackType value with use-case examples, which helps the agent pick the right enum. It adds little for the remaining parameters (agentId, comment, variantId, optimizationId, customerId).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Add feedback ... on an optimization result') and scopes the target to optimization results, which separates it from the sibling add_insight_feedback. An agent can tell what it does and what it acts on without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance for the three feedbackType values, with concrete examples ('never remove the disclaimer' for constraint, 'focus on reducing hallucination' for direction). It does not explicitly rule out or route to the sibling add_insight_feedback, so the alternative-selection guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_regression_scenariosAInspect
Add custom regression test scenarios to an agent's existing golden suite. Use this to strengthen the regression suite with scenarios targeting specific behaviors (e.g., human escalation, multi-language, support routing). Scenarios are appended - existing ones are preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The ID of the agent whose regression suite to add scenarios to | |
| scenarios | Yes | Array of scenarios to add | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark this as a non-read, non-destructive mutation, and the description adds genuinely new behavior: writes are appended and existing scenarios are preserved, which tells the agent this is additive rather than a replace/overwrite. It does not describe any permission requirements or whether the change is reversible/undoable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the action and target, then usage, then the append guarantee. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an additive mutation with full schema coverage and annotations declaring the safety profile, the description supplies the key missing piece (append semantics and a purpose for the added scenarios). An output schema does not exist, so return values are not needed; the only minor gap is no note on limits or whether added scenarios take effect immediately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with 3 parameters, so the schema already documents agentId, scenarios, and the nested scenario fields including isSafetyCritical. The description adds no syntax, format, size limits, or batching guidance beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Add custom regression test scenarios') and scopes the target ('an agent's existing golden suite'), which separates it from suite-creation or read paths. It does not name the sibling get_regression_suite explicitly, so an agent must infer the read/write split from the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear use case ('strengthen the regression suite with scenarios targeting specific behaviors') plus concrete examples (human escalation, multi-language, support routing). There is no when-not guidance and no explicit pointer to the read sibling for reviewing an existing suite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_agentARead-onlyInspect
Analyze an agent's system prompt structure, identify weaknesses, and get improvement recommendations without running simulations
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | The agent's system prompt content to analyze | |
| promptId | No | Optional agent ID to include historical performance metrics | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds one behavioral fact beyond that – analysis is performed statically, without running simulations – which signals low cost and no execution side effects. It says nothing about processing time, limits, or what happens when optional params are omitted, so the added context is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states the action, the outputs, and the key constraint with zero filler. Nothing is redundant with the title 'Analyze Agent' and no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries some of the return-value burden, and it does indicate the shape of results (weaknesses plus improvement recommendations). With only 3 params at full schema coverage, the inputs are well covered. It is close to complete, though it could clarify the difference between the static analysis output and metric-enriched output when promptId is supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (prompt, promptId, customerId) are already fully documented in the schema, including the superadmin restriction on customerId. The description adds no additional semantics about parameter formats, interactions, or defaults. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('analyze') and resource ('an agent's system prompt structure') and states the outputs ('weaknesses', 'improvement recommendations'). It explicitly distinguishes itself from 'simulate_agent' by noting it works 'without running simulations'. It does not differentiate from other analysis-adjacent siblings such as refresh_agent_analysis or get_agent_status, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without running simulations' implies usage via contrast with simulate_agent, giving the agent a useful implicit routing cue. However, there is no explicit 'use this when' statement, no exclusions against the many other agent tools (get_agent, refresh_agent_analysis), and no prerequisites for the optional historical-metrics path. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_variantBDestructiveInspect
Apply/deploy a winning variant to replace the original agent prompt content
| Name | Required | Description | Default |
|---|---|---|---|
| processId | Yes | The optimization process ID | |
| variantId | No | The variant ID to apply (defaults to leading/winning variant if not specified) | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds useful context by naming exactly what is altered: 'replace the original agent prompt content.' It does not disclose reversibility, rollback options, or approval requirements, so it is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the action and its effect are stated immediately. Efficient, though a little terse given the destructive nature of the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the core purpose and effect are conveyed, and annotations cover the safety flag. However, an agent would benefit from knowing about irreversibility or prerequisite steps, which are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the three parameters (processId, variantId, customerId) are already fully documented. The description reinforces the 'winning variant' default for variantId but adds no new syntax or format detail. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (apply/deploy) and resource (winning variant) plus the concrete effect: replacing the original agent prompt content. This clearly separates it from validate_variant and get_variant_details, though it does not name those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no prerequisite (e.g., that a variant must first be validated or a process completed), and no mention of alternatives. The agent must infer that this is the terminal step after a variant wins.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_regenerate_insightsADestructiveInspect
Regenerate insights for all runs of an agent. Use this to bulk-fix broken insights or refresh after changes. Returns progress summary.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Regenerate even if valid insights already exist; existing insights are overwritten on success, not deleted first (default: false) | |
| limit | No | Maximum number of runs to process (default: 50, max: 200) | |
| agentId | Yes | The agent ID to regenerate insights for all its runs | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation/overwrite profile is disclosed structurally. The description adds that a progress summary is returned and frames the bulk-fix/refresh use case, but the overwrite semantics ('existing insights overwritten on success') live only in the schema, not the description. Adequate additional context, not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with purpose and followed by usage and return behavior. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a batch mutation tool with no output schema and full schema coverage, the description covers scope, use case, and return value (progress summary). It could note throttling or the superadmin-only path, but those are documented in the schema, leaving only minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (force, limit, agentId, customerId) are fully documented in the schema itself. The description adds no parameter-level detail beyond that, which is the expected baseline when the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Regenerate), resource (insights), and scope (all runs of an agent), which implicitly separates it from the single-run 'regenerate_run_insights' sibling. It is clear what the tool does, though it never names the sibling it contrasts with by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this to bulk-fix broken insights or refresh after changes' gives clear conditions for reaching for this tool. It stops short of naming alternatives (regenerate_run_insights, refresh_agent_insights) or stating when NOT to use it, so it is good but not complete routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
benchmark_modelsAInspect
Compare multiple LLM models on the same scenarios for an agent. Runs baseline model once, then each challenger model, producing per-scenario deltas with statistical rigor (3 runs per scenario, median scoring). Returns a jobId immediately — use get_benchmark_status to poll.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | Optimization goal (default: quality). Affects winner selection. | |
| agentId | Yes | The agent ID to benchmark. | |
| maxTurns | No | Max conversation turns per scenario (default: 5). | |
| modelIds | Yes | Array of 2-6 model IDs. First model is the baseline (current model). Remaining models are challengers. | |
| customerId | No | (Converra superadmin only) Target customer ID. | |
| baselineModelId | No | Explicit baseline model ID (overrides modelIds[0]). | |
| fineTunedModels | No | Fine-tuned Fireworks models to make runnable for this call. Required for every accounts/<account>/models/<model> id in modelIds. Prices come from the Fireworks pricing page for the base model; latency is null until measured. | |
| runsPerScenario | No | Runs per scenario per model (default: 3, min: 1). More runs = more reliable but slower. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds meaningful behavior beyond that: asynchronous execution with an immediate jobId return, repeated runs per scenario, and median-based aggregation. It does not mention permission requirements or expected runtime, which leaves a modest gap for a job-creating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core action front-loaded, then the mechanics, then the follow-up call the agent needs. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully states the immediate return value (jobId) and the polling tool, which is the key thing an agent must know for a long-running job. It stops short of covering failure modes or estimated duration, so it is strong but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter including baseline vs. challenger ordering, goal enum, and per-scenario run counts. The description restates the baseline/challenger concept and the 3-runs/median default, adding only marginal value beyond the structured field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — comparing multiple LLM models on the same agent scenarios — and clarifies the baseline-then-challenger structure, which distinguishes it from siblings like start_model_test or simulate_ab_test. An agent can tell what it produces (per-scenario deltas) without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operational context: it runs a job and returns a jobId immediately, so the agent must poll with get_benchmark_status. It does not, however, say when to prefer this over adjacent siblings like start_model_test, regression_test, or simulate_ab_test, so the selection guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bind_dataset_versionAInspect
Bind the one frozen dataset version a fine-tuning project trains on (from list_dataset_versions). Permanent for the project: the same version again is a no-op, a different one is refused — open a new project to train on another version. Freezes nothing, trains nothing, spends nothing. Scope: write.
| Name | Required | Description | Default |
|---|---|---|---|
| datasetId | Yes | Dataset ID the version belongs to | |
| projectId | Yes | Fine-tuning project ID from list_fine_tuning_projects | |
| versionId | Yes | Frozen version ID from list_dataset_versions | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses the permanence of the binding, its idempotency on repeat calls, the refusal mode for a conflicting version, and the reassurance that it freezes nothing, trains nothing, and spends nothing. That is substantive behavioral context annotations alone could not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences plus a scope tag; the permanence and no-op/refusal rules are front-loaded, and every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only partial annotation coverage, the description fills the gaps an agent needs: the write scope, the permanence semantics, the idempotency and refusal outcomes. Nothing required to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents projectId, datasetId, versionId, and the superadmin-only customerId. The description only adds provenance for versionId (list_dataset_versions); it adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (bind) and resource (the one frozen dataset version a fine-tuning project trains on), and explicitly contrasts with freezing/training/spending so the agent knows what this does not do. It is easily distinguished from freeze_dataset_version and list_dataset_versions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the source of the input (list_dataset_versions), states the permanence rule, and gives explicit when-not behavior: re-binding the same version is a no-op, a different version is refused, and a new project is required to train on another version. This is exactly the routing and exclusion guidance an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
classify_optimization_failureADestructiveInspect
Diagnose why an optimization failed to produce a winner. Returns failure classification (wrong diagnosis, wrong approach, tradeoff regression, etc.), suggested next strategy, and per-metric breakdown. Does NOT trigger a restart — diagnosis only.
| Name | Required | Description | Default |
|---|---|---|---|
| processId | Yes | The optimization process ID to diagnose | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=true, but the description reassures the agent this is “diagnosis only,” which reads as a safe, non-mutating operation. The reassuring “diagnosis only” framing directly conflicts with the destructive annotation, and the description never discloses what state the tool actually mutates. This is a misleading safety signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the purpose and followed by return contents and scope. Every sentence carries information; minor room to tighten the return-value enumeration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately summarizes the return shape (classification, next strategy, per-metric breakdown). The only meaningful gap is the failure to acknowledge the destructive/state-changing behavior declared by the annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (processId, customerId) are already documented in the schema. The description adds no parameter-level detail beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (“Diagnose why an optimization failed to produce a winner”) and enumerates the concrete outputs (failure classification, next strategy, per-metric breakdown). An agent can distinguish it from the action siblings (trigger_optimization, stop_optimization, fix_worst_run) without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use it (after a failed optimization with no winner) and explicitly bounds the scope with “Does NOT trigger a restart — diagnosis only.” It does not name a specific alternative tool, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_fine_tuning_projectAInspect
Close a fine-tuning project with its reason. A closed project records nothing further; a diagnosed rerun opens a new project naming it in rerunOfProjectId. Scope: write.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | ||
| projectId | Yes | Fine-tuning project ID from list_fine_tuning_projects | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds real behavioral context beyond that by explaining that a closed project 'records nothing further' (terminal, effectively irreversible) and that a diagnosed rerun opens a new project referencing rerunOfProjectId. It does not, however, cover permission requirements or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short clauses, front-loaded with the action, followed by the terminal-state consequence and a scope tag. Nothing is padded, though the trailing 'Scope: write.' largely restates the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation with no output schema, the description covers terminality and the follow-on rerun semantics, which is the information an agent most needs. It stops short of idempotency, permissions, and failure behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, with projectId and customerId already documented in-schema. The description says the close carries a 'reason' but does not explain the enum meanings (candidate_approved, gate_failed, abandoned, superseded), which is the one place it could have compensated. Baseline 3 for mid coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (close a fine-tuning project) and immediately names the required input (its reason), which separates it cleanly from create_fine_tuning_project, get_fine_tuning_project, and list_fine_tuning_projects. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when this is used (terminal outcomes such as an approved candidate or a failed gate) and notes the rerun path, but it never states when to prefer close_fine_tuning_project over alternatives or what preconditions must hold. Usage is inferable from the reason enum rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_agentAInspect
Create a new agent for optimization. IMPORTANT: You must specify the LLM model this agent uses. Different models support different parameters. Opus 5 uses reasoningEffort and rejects temperature/topP; other models may support sampling controls. Always ask the user which model they use if it is not specified.
NOTE: After creating an agent, upload run transcripts with create_run before running optimization.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name for the agent | |
| tags | No | Tags for organization (e.g., ['customer-support', 'onboarding']) | |
| topP | No | Nucleus sampling parameter (0-1). Alternative to temperature for controlling randomness. | |
| content | Yes | The agent's system prompt content | |
| llmModel | Yes | REQUIRED: The LLM model this agent uses (e.g., 'gpt-4o', 'claude-sonnet-5-5', 'o1', 'gemini-3.8-flash'). This determines which parameters are relevant. | |
| maxTokens | No | Maximum tokens in response. Important for cost control and response length. | |
| objective | No | Business objective for this agent | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| constraints | No | What must NOT change during optimization - required structural elements, output formats, or sections that would break downstream integrations (e.g., 'Must return JSON with fields: name, score, summary') | |
| description | No | Optional description of what the agent does | |
| temperature | No | Temperature setting (0-2 for GPT, 0-1 for Claude). Controls randomness. Not applicable for reasoning models (o1/o3) - use reasoningEffort instead. | |
| technicalNotes | No | Engineering rationale explaining why the agent's prompt is structured this way (e.g., 'Uses XML tags because downstream parser expects structured output') | |
| presencePenalty | No | Encourages new topics (-2 to 2). GPT models only. | |
| reasoningEffort | No | For reasoning models: controls reasoning depth. Opus 5 supports low, medium, high, xhigh, and max. | |
| frequencyPenalty | No | Reduces repetition of token sequences (-2 to 2). GPT models only. | |
| customEvaluations | No | Agent-level custom evaluation criteria (overrides org-level). Max 5. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only tell the agent this is a non-read-only, non-destructive write. The description adds substantive behavior beyond that: model-dependent parameter compatibility (Opus 5 uses reasoningEffort and rejects temperature/topP) and the post-creation prerequisite of create_run. It omits whether creation is reversible or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, followed by the high-value model caveat and the workflow note. The capitalized IMPORTANT/NOTE markers are slightly heavy-handed, but each sentence carries real information with no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter creation tool with no output schema, the description covers the two things an agent most needs: the required model choice and the follow-up create_run step. It does not say what the creation returns (e.g. an agent id needed downstream), which is the main residual gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter including llmModel, temperature, topP and reasoningEffort is already documented inline. The description reinforces the model-to-parameter interaction, but that information is duplicated from the schema rather than adding new semantics, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new agent for optimization'), making it distinguishable from update_agent, delete_agent, list_agents and the adjacent create_run/create_persona siblings. It does not explicitly name an alternative, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear procedural guidance: specify the LLM model, ask the user which model when unspecified, and upload run transcripts with create_run before running optimization. That is real when-to-use sequencing, though it never contrasts with update_agent for modifying an existing agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_datasetAInspect
Curate a dataset from an agent's completed runs: extracts candidates, clusters them deterministically by finding type × instruction version × conditions, and admits verified successes on their own checks. Trains nothing and spends nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Dataset name (1-120 characters) | |
| agentId | Yes | The agent whose runs are curated | |
| customerId | No | (Converra superadmin only) Target customer ID | |
| splitConditionKeys | No | Run metadata keys captured on every candidate so clusters can be split by them later. Default: ["templateId"]. Max 8. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false. The description adds genuinely useful traits beyond that: the clustering is deterministic, candidates are verified on their own checks, and the operation incurs no training cost. It omits auth/permission requirements (e.g., the superadmin constraint implied by customerId) and output/return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb+resource, then supporting clauses; the closing 'Trains nothing and spends nothing' earns its place as a cost/safety signal. Dense but not padded, though the middle clause listing is slightly heavy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-destructive mutation tool with no output schema, the description conveys what it does and key behavioral traits (deterministic, cost-free, verification-based). Missing only return-value expectations and the permission nuances around customerId, which are minor given the annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters (name, agentId, customerId, splitConditionKeys) including defaults and limits. The description adds no parameter-level detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Curate a dataset from an agent's completed runs') and details the internal process (extracts candidates, clusters by type × instruction version × conditions, admits verified successes). This clearly separates it from read/version siblings like get_dataset, list_datasets, and freeze_dataset_version.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear context ('completed runs') and disambiguates scope by declaring 'Trains nothing and spends nothing,' steering the agent away from fine-tuning/optimization siblings. It stops short of naming explicit alternatives or when-not conditions, so it doesn't reach the 5 tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_fine_tuning_projectAInspect
Open one fine-tuning pass: one agent, one objective, optionally the dataset it will prepare examples from. Creating a project trains nothing, binds no version and spends nothing — freezing the version and approving training spend are decisions that need the approve scope (freeze_dataset_version, decide_approval) or a human on the screen.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Project name (1-140 characters) | |
| agentId | Yes | The agent being fine-tuned | |
| datasetId | No | Dataset to prepare examples from (optional — a project can start before one exists) | |
| objective | Yes | ||
| customerId | No | (Converra superadmin only) Target customer ID | |
| rerunOfProjectId | No | The project this one supersedes, for a diagnosed rerun (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description goes well beyond by stating the non-effects (no training, no spend, no version binding) and the auth requirement (approve scope or a human) for the follow-up steps. This is exactly the behavioral context a mutation tool needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the operation and its scope, then the constraints. Dense but every clause earns its place; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-param nested-object tool with no output schema, the description covers purpose, non-effects, and scope requirements well. It does not describe the response (e.g., the created project id) but with no output schema that is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 83%, so the schema already documents most parameters (name, agentId, datasetId, objective, customerId, rerunOfProjectId). The description restates the core shape ('one agent, one objective, optionally the dataset') but adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Open one fine-tuning pass: one agent, one objective, optionally the dataset') and immediately distinguishes the scope of the operation. An agent can tell it apart from freeze_dataset_version and decide_approval, which are named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use it and what it does NOT do ('trains nothing, binds no version and spends nothing'), then names the sibling tools (freeze_dataset_version, decide_approval) that handle those downstream decisions. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_personaCInspect
Create a new persona for simulation testing
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Persona name (e.g., 'Frustrated Enterprise Customer') | |
| tags | No | Tags for filtering (e.g., ['enterprise', 'frustrated', 'technical']) | |
| description | Yes | Rich narrative description of the persona's background, behavior, and goals |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation-but-safe profile is covered structurally. The description adds nothing beyond that: no note on name uniqueness, validation, required permissions, or side effects on simulation runs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. It is tight, though arguably too terse given the tool's creation semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter create tool with full schema coverage and annotations covering the safety profile, the essentials are present. It stops short of describing what a created persona enables or how it relates to simulations, leaving a modest gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each of the three parameters (name, tags, description) documented including examples. The description adds no further parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Create') and resource ('persona') and adds the domain purpose ('for simulation testing'), which orients the agent. However, it does not differentiate from siblings like update_persona or create_agent beyond the obvious verb difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for simulation testing' hints at context, but there is no explicit guidance on when to create a persona versus using an existing one, whether duplicates are allowed, or what the prerequisites are. Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_runAInspect
Create a new run record from a real user/AI dialogue transcript. REQUIRED FOR OPTIMIZATION: You must upload runs before running trigger_optimization - optimization analyzes these dialogues to improve the prompt.
IMPORTANT: The content must contain actual back-and-forth dialogue between a user and AI assistant - NOT system prompts, instructions, or configuration text.
You can either:
Use an existing prompt: provide promptId
Auto-create a new prompt: provide prompt + promptName + llmModel
When auto-creating, the prompt will be created and activated automatically before the run is logged.
TOOL USAGE: If the agent had tools available or made tool calls, pass toolDefinitions (tools available) and toolCalls (calls actually made, with arguments and results) so Converra can grade tool selection and results.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | No | The system prompt content (for auto-create). If provided with promptName and llmModel, a new prompt will be created automatically. | |
| status | No | Run status (default: completed) | |
| agentId | No | The agent ID this run is associated with. Required unless using auto-create (prompt + promptName + llmModel) | |
| content | Yes | The full run transcript with alternating user and AI messages. Format: Use 'User:' and 'AI:' (or 'Assistant:') labels. Example: User: Hi, I need help with my order AI: Hello! I'd be happy to help. Could you provide your order number? User: It's #12345 AI: Thanks! I found your order. What seems to be the issue? DO NOT submit system prompts, prompt instructions, configuration text, or anything that isn't actual user-AI dialogue. | |
| traceId | No | Runtime trace ID this run belongs to. Groups it under a trace for lineage (see get_trace_lineage). | |
| llmModel | No | LLM model used (e.g., 'gpt-4o'). Required when auto-creating a prompt. | |
| toolCalls | No | Tool/function calls the agent actually made, in order. Send these so Converra can evaluate tool selection and results - auto-instrumentation captures tool definitions but not the calls themselves. Each item: { name, arguments, result?, id? }. | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| promptName | No | Display name for the auto-created prompt (required when providing prompt content) | |
| companyName | No | Name of the company/client in the run (optional) | |
| parentTraceId | No | The traceId of the trace that SPAWNED this one (e.g. a design run that spawned this interview). Requires traceId. Immutable once set. | |
| toolDefinitions | No | Tools that were available to the agent during this run (ground-truth tool contracts). Lets Converra grade whether the agent reached for the right tools. Each item: { name, description?, parameters? }. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark this as a write (readOnlyHint=false) but say nothing about side effects; the description adds that auto-creating a prompt also activates it automatically before the run is logged, which is real behavioral context. It also warns that tool calls are not auto-captured and must be sent explicitly. No info on permissions beyond the schema's superadmin note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action, then uses short labeled sections (REQUIRED FOR OPTIMIZATION, IMPORTANT, numbered options, TOOL USAGE) to make it scannable. It runs long for a description, but every block carries distinct operational information rather than restating the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter mutation tool with no output schema, the description covers the critical workflows, the optimization prerequisite, the content constraint, and the auto-create side effect. It omits what the created run returns (e.g. run ID), which would help chaining into trigger_optimization.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3, but the description adds the conditional grouping rule (prompt + promptName + llmModel must be supplied together for auto-create) and explains the purpose of toolDefinitions vs toolCalls (tools available vs calls actually made). That is meaning beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Create a new run record from a real user/AI dialogue transcript.' The distinction from siblings is implicit but clear (list_runs/get_run/delete_run/sync_runs are different operations), and the description immediately qualifies the required input shape.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly ties the tool to its dependent workflow ('you must upload runs before running trigger_optimization'), and lays out two mutually exclusive usage paths (existing promptId vs auto-create with prompt + promptName + llmModel). It also states a hard when-not rule for content: no system prompts, instructions, or configuration text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_webhookCInspect
Create a new webhook endpoint for receiving event notifications
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The HTTPS URL to send webhook events to | |
| events | Yes | Events to subscribe to: run.created, run.updated, insights.generated, optimization.started, optimization.completed, optimization.stopped, regression_test.completed, regression_test.skipped, prompt.updated, prompt.deleted, batch.completed, batch.failed, deployment.verified, deployment.not_fixed, deployment.regressed, deployment.auto_rolled_back, deployment.confounded, production_test.started, production_test.decision_ready, production_test.promoted, production_test.rolled_back | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| description | No | Optional description for this webhook |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=false and destructiveHint=false, so the mutating-but-non-destructive profile is known. The description adds nothing beyond that: no auth requirements, no idempotency or duplicate-URL behavior, and no note that the endpoint becomes active immediately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, exactly the right size for a simple create tool. It is efficient, though it forgoes the opportunity to add any routing or prerequisite information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with full schema coverage and no output schema, the basics are covered by the schema, so the description need not explain return values. However, it leaves out behavioral details an agent would want, such as whether webhook secrets are issued or how to verify deliveries.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with url, events, customerId, and description all documented in the schema including the full event list and the superadmin scoping of customerId. The description adds no syntax or semantic detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (webhook endpoint) plus the intent (receiving event notifications). An agent can distinguish it from delete_webhook, get_webhook, and update_webhook, though it does not name those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives, and no prerequisites such as required permissions or notes about the superadmin customerId path. The 'receiving event notifications' clause implies context but does not instruct the agent when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decide_approvalAInspect
Approve or decline one requested fine-tuning approval (training spend or the production switch). A decision is final: an already-decided approval is refused, never rewritten. An approval executes nothing — the runner that spends or switches must carry it. Stamped with this key's id and the approve scope, so it is distinguishable from a human deciding on the project screen. SCOPE: approve — held literally; write, admin and superadmin keys cannot call it.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Why (max 500 characters) | |
| state | Yes | ||
| projectId | Yes | Fine-tuning project ID from list_fine_tuning_projects | |
| approvalId | Yes | Approval ID from list_pending_approvals | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations only covering safety/idempotency hints, the description discloses substantial extra behavior: decisions are final and non-rewritable (consistent with idempotentHint=false), the approval executes nothing itself, and the decision is stamped with the calling key's id and scope. This is exactly the audit and side-effect context an agent cannot infer from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then finality, side effects, and scope in tight, information-dense sentences. Every sentence carries distinct meaning with no filler or repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the essential unknowns: finality/irreversibility, that it triggers no execution itself, and the exact permission scope required. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is already 80%, covering note, projectId, approvalId, and customerId; the description only loosely maps 'training spend or the production switch' onto the state enum. It adds little parameter meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (approve/decline) and a precise resource (a requested fine-tuning approval, either training spend or the production switch). An agent can distinguish this decision action from the surrounding request/list/record siblings without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete precondition ('an already-decided approval is refused') and a hard scope gate ('write, admin and superadmin keys cannot call it'), so the agent knows when it is eligible to call. It does not name an explicit alternative (e.g., request_approval) for creating rather than deciding, which keeps it short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_agentADestructiveInspect
Permanently delete an agent and all associated data: runs tied to this agent, run insights, prompt insights, and prompt metrics. Destructive and irreversible. Scoped to the authenticated customer.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The ID of the agent to delete | |
| confirm | Yes | Safety confirmation. Must be true to proceed. Prevents accidental deletion. | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, but the description adds context those flags cannot carry: exactly which dependent data is destroyed, that the operation is permanent/irreversible, and that it is scoped to the authenticated customer. That is real added value over the structured signals.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, and the critical blast-radius information is front-loaded. The irreversibility warning lands before the scoping note, which is the right ordering for a destructive tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, no-output-schema tool with full schema coverage, the description covers the essentials: scope of destruction, irreversibility, and tenant boundary. Auth/permission requirements beyond the superadmin note in the schema are not spelled out, which is the only notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters are documented in the schema, including the confirm safety flag and the superadmin-only customerId. The description's scope sentence loosely touches customerId, but adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (delete) and resource (agent) and enumerates the exact cascade: runs, run insights, prompt insights, prompt metrics. This distinguishes it from the other delete_* siblings (delete_run, delete_user, delete_webhook, delete_optimization) without the agent needing to open their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the enumerated cascade tells an agent this is the broad option, so an agent wanting to remove only runs should reach for delete_run instead. However, no alternative is named, and there is no statement of prerequisites or when-not-to-use beyond the irreversibility warning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_optimizationADestructiveInspect
Permanently delete an optimization process and all associated records: activities, runs, candidates, feedback. Destructive and irreversible. Scoped to the authenticated customer.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Safety confirmation. Must be true to proceed. | |
| processId | Yes | The optimization process ID to delete | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is known; the description adds real value by naming the cascading deletions and stating irreversibility explicitly. It stops short of noting that the confirm flag must be true or that customerId is superadmin-only, both of which live only in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, with the core action and cascade scope front-loaded before the destructiveness warning. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with full annotation coverage, complete schema descriptions, and no output schema, the description supplies everything needed to call it safely: scope, cascade, and irreversibility. The only gap is the missing routing hint versus stop_optimization.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so processId, confirm, and customerId are fully documented in the schema. The description adds no syntax, format, or behavioral detail about the parameters themselves, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (delete) plus resource (optimization process) and enumerates exactly what is removed: activities, runs, candidates, feedback. The scoping statement ('authenticated customer') distinguishes it from any superadmin path and from non-destructive siblings like stop_optimization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It establishes context (permanent, irreversible deletion) but never says when to choose this over the sibling stop_optimization, nor when deletion is inappropriate. The destructive framing implies care, yet no explicit alternatives or preconditions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_runADestructiveInspect
Permanently delete a run and its insights. Destructive and irreversible. Scoped to the authenticated customer.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Safety confirmation. Must be true to proceed. | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| conversationId | Yes | The ID of the run to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, but the description adds real context beyond them: the deletion is permanent/irreversible and it cascades to the run's insights, and the operation is confined to the authenticated customer's scope. It does not mention the required confirm flag (left to the schema) or any auth/rate-limit nuance, so it is strong rather than exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three terse sentences, front-loaded with the destructive action and its cascade, then the irreversibility warning, then the scope constraint. Nothing is padded and the most important fact (permanent, irreversible) appears immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter destructive tool with no output schema and annotations that already flag destructiveness, the description covers the essentials an agent needs: permanence, cascade to insights, and customer scoping. Only a note about the confirm prerequisite or irrecoverability mechanics would fully round it out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so conversationId, customerId, and confirm are all documented in the schema; the description adds no syntax or format detail for any of them. Baseline 3 applies when the schema carries the parameter burden, which is the case here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Permanently delete a run') and even names the cascading side effect ('and its insights'), which cleanly separates it from the other delete_* siblings that target agents, optimizations, users, and webhooks. It stops short of explicitly contrasting with any sibling or an alternative action, so it lands just below the top mark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives (e.g. archive, or how it differs from other removal tools). The scope note 'Scoped to the authenticated customer' describes reach rather than when to invoke the tool, leaving usage entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_userADestructiveInspect
Permanently delete a user account within the current customer. Destructive and irreversible. Refuses to delete the last remaining admin in a customer.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | The ConverraUser ID to delete (user must belong to the authenticated customer) | |
| confirm | Yes | Safety confirmation. Must be true to proceed. | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover destructiveHint=true and non-idempotency, but the description adds material context beyond them: permanence/irreversibility and the last-admin guardrail. It stops short of stating what a successful or refused response looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and scope, then the destructive warning, then the guardrail. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema and fully documented params, the description covers scope, irreversibility, and the refusal rule. It could be stronger by noting the confirm=true prerequisite, though the schema already enforces that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (userId, confirm, customerId) are already documented in the schema, including the superadmin-only customerId. The description adds only the customer-scoping constraint, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (delete) plus resource (user account) with explicit scope ('within the current customer'). Clearly separable from the many other delete_* siblings (delete_agent, delete_run, delete_webhook, delete_optimization).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a decisive when-not condition: it refuses to delete the last remaining admin in a customer, which tells the agent the call can fail on a business rule rather than a schema error. It doesn't name alternatives, but for a terminal delete there is no real substitute to route to.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_webhookCDestructiveInspect
Delete a webhook endpoint
| Name | Required | Description | Default |
|---|---|---|---|
| webhookId | Yes | The webhook ID to delete | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is covered structurally. The description adds nothing beyond that: no statement of irreversibility, no permission requirements for the superadmin-only customerId path, no note on side effects such as invalidating deliveries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence is front-loaded and waste-free, but at this length it reads as under-specification rather than disciplined brevity. There is no room for structure to evaluate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation the description omits the one thing an agent cannot infer from structured fields: that deletion is permanent and what it cascades to. Annotations and a complete schema carry the mechanical details, but the description leaves the operation's consequences unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both webhookId and the superadmin-only customerId are fully documented in the schema itself. The description adds no syntax or format detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Delete a webhook endpoint" is a bare restatement of the tool name delete_webhook; it names a verb and resource but adds no scope, target system, or distinguishing detail. It is effectively a tautology, though it is not misleading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no alternatives named (e.g., update_webhook vs delete_webhook), and no conditions or prerequisites described. An agent gets zero routing help from the description text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dismiss_deploymentADestructiveInspect
Reject a pending deployment/PR with optional feedback. Updates the deployment status to dismissed and records the reason as feedback so Converra can learn from the rejection. Answers: 'reject this PR', 'dismiss this deployment', 'I don't want this change'.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Why you're rejecting this (saved as feedback for future optimizations) | |
| customerId | No | (Converra superadmin only) Target customer ID | |
| deploymentId | Yes | The deployment ID to dismiss |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false, and the description usefully adds what actually happens: status becomes dismissed and the reason is persisted as feedback for Converra learning. It doesn't state reversibility or permission requirements beyond what the schema notes for customerId.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the action and effect, with example utterances at the end. The feedback idea is briefly repeated between the first and second sentences, a minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with full annotation coverage, no output schema, and three well-documented parameters, the description covers action, effect, and fit. It leaves out reversibility and any post-dismissal behavior, which keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description goes beyond it by explaining that the reason parameter is stored as feedback used for future optimizations, giving it downstream meaning the schema text only hints at.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (reject/dismiss) and resource (pending deployment/PR) plus the resulting state change to 'dismissed'. It is clearly a rejection action, but it does not explicitly distinguish itself from nearby siblings such as decide_approval or request_approval that also touch the approval flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete trigger phrasings ('reject this PR', 'dismiss this deployment', 'I don't want this change') that map user intent to this tool. It gives no explicit when-not-to-use or named alternative, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fix_worst_runAInspect
Turn a failed run into a regression scenario on its owning agent, and optionally launch an optimization targeting that failure. Pipe get_worst_run → fix_worst_run to close the loop from diagnosis to fix. Refuses runs whose failure is not prompt-fixable (tool_config, model_limitation, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| autoLaunch | No | If true, start an optimization targeting this failure after adding the scenario. Default: false. | |
| customerId | No | (Converra superadmin only) Target customer ID | |
| conversationId | Yes | The run to reproduce as a regression scenario |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds real behavioral context beyond that — it mutates the owning agent by attaching a regression scenario, and it will refuse certain failure categories outright. It stops short of covering idempotency (what if the scenario already exists) or whether the optimization launch needs approval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: the action first, the workflow routing second, the guardrail third. No filler, and the most decision-relevant information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no output schema, the description covers the side effect (scenario added to the owning agent), the optional chained action, and the refusal path. It could say more about what the caller receives back or how to follow up on the launched optimization, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds genuine meaning by tying 'optionally launch an optimization targeting that failure' to the autoLaunch parameter, clarifying its downstream effect rather than just restating it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific compound action: convert a failed run into a regression scenario on its owning agent, with an optional optimization launch. It is clearly distinguishable from add_regression_scenarios (manual scenario creation) and trigger_optimization (standalone optimization), since it scopes the action to a diagnosed failure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the entry-point sibling (get_worst_run) and the workflow (pipe get_worst_run → fix_worst_run), plus an explicit exclusion: runs whose failure is not prompt-fixable (tool_config, model_limitation). Both when-to-use and when-not-to-use are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freeze_dataset_versionAInspect
Freeze an immutable, numbered version of a dataset under the leakage contract — the one approval Datasets owns, and the version training binds to. Irreversible. Aborts with the violated check (409) rather than freezing a leaky version; a version under the diversity floor freezes but is marked blocked for training. Returns counts, coverage and hashes, never the examples. Stamped with this key's id and the approve scope. SCOPE: approve — held literally; write, admin and superadmin keys cannot call it.
| Name | Required | Description | Default |
|---|---|---|---|
| datasetId | Yes | Dataset ID from list_datasets | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: irreversible action, 409 abort on a violated check, diversity-floor behavior (freezes but marked blocked), and scope enforcement that write/admin/superadmin keys cannot call it. It also discloses what the response contains (counts, coverage, hashes, never examples) and how the version is stamped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, and each subsequent sentence carries distinct value (irreversibility, error behavior, response shape, scope). The em-dash phrasing is dense, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description covers return contents, failure semantics, authorization scope, and irreversibility — everything an agent needs to invoke it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented (datasetId references list_datasets; customerId notes superadmin-only). The description adds no parameter-level detail, so the schema carries the load and baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (freeze) and resource (an immutable, numbered dataset version under the leakage contract), immediately distinguishing it from siblings like create_dataset, bind_dataset_version and list_dataset_versions. An agent can tell exactly what this produces without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly frames when it applies — freezing the version that training binds to under the leakage contract — and states the required approve scope. It does not explicitly contrast with the closest sibling (bind_dataset_version), so routing between the two still requires inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accountBRead-onlyInspect
Get account information including organization details and subscription plan
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish the safety profile (readOnlyHint=true, destructiveHint=false), lowering the disclosure burden. The description adds useful scope by naming the returned content, but says nothing about the superadmin impersonation semantics implied by the customerId parameter or any auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb-resource-content order is efficient. It is appropriately sized, though there is no structural separation of scope from caveats.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with a fully documented parameter and annotations covering safety, the description is nearly complete: the agent knows what it fetches and what it returns. The absence of any note about the superadmin-only impersonation path is the only real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single optional parameter, so the schema already carries the full parameter burden. The description adds no additional semantics beyond it, which is the baseline 3 for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('account') and enumerates the payload ('organization details and subscription plan'), so the agent knows what comes back. It does not, however, distinguish itself from nearby read siblings like get_settings or get_usage, which is why it stops short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, no when-not-to-use, and no named alternative. An agent deciding between get_account, get_settings, and get_usage gets no routing signal at all from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_adjudication_queueARead-onlyInspect
Dataset-curation judgments awaiting a human or agent decision: clusters with no decision in force, training targets that did not verify, and members left unresolved on their own evidence checks. This is NOT get_review_queue, which is the optimization PR queue. Answers: 'what needs adjudicating?', 'how much review is left on this dataset?'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum items to return (default: 20, max: 100) | |
| datasetId | No | Filter to one dataset (optional — all datasets if omitted) | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a safe read (readOnlyHint=true, destructiveHint=false), so the description's burden is lighter; it still adds useful content semantics by spelling out the three item categories the queue surfaces. It does not cover ordering, pagination behavior, or how empty queues are represented, which are the remaining behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Content is front-loaded and dense: the item categories come first, the sibling exclusion second. The trailing 'Answers:' sentence is mildly redundant with the opening list, but it earns its place by framing the retrieval intent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so by enumerating what the queue contains, which is the key information an agent needs. It stops short of describing result ordering or default truncation behavior, but the essentials are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters (limit, datasetId, customerId) are documented in the schema, including the superadmin restriction. The description adds no parameter-level meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (dataset-curation adjudication queue) and enumerates its contents precisely: clusters with no decision in force, unverified training targets, and members unresolved on their own evidence checks. It explicitly contrasts itself with get_review_queue, so an agent can distinguish the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the most confusable sibling and the condition that separates them ('This is NOT get_review_queue, which is the optimization PR queue'), and frames the use case via the questions it answers ('what needs adjudicating?', 'how much review is left?'). That is explicit when-to-use plus when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agentARead-onlyInspect
Get the full details of an agent including its system prompt, configuration, and metadata. Response includes role-family fields: agentType (the role), customer (the end-customer this instance serves), instanceCount (number of customers running this same agent), and siblings (the other instances). Many SaaS-style customers run the same agent across multiple end-customers — these fields make that visible.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The ID of the agent to retrieve | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered, but the description adds meaningful context beyond them by disclosing the shape of the response, including role-family fields (agentType, customer, instanceCount, siblings) and the multi-tenant SaaS scenario they surface. It stops short of 5 because it omits any note on permissions or size/cost of the fetch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, with the core purpose front-loaded, and the role-family explanation earns its length by clarifying the return payload. Slightly verbose on the SaaS framing, but no wasted filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only get with 100% schema coverage and no output schema, the description carries the return-value burden well by naming the fields an agent will receive. What remains thin is routing and permission context, which keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both agentId and customerId are already documented in the schema, and the description adds no parameter-level detail or format hints. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the full details of an agent') and enumerates what is returned (system prompt, configuration, metadata, role-family fields), which clearly separates it in granularity from list_agents and get_agent_status. It does not explicitly name a sibling it competes with, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-routing guidance. An agent must infer from 'full details' that this is the single-agent fetch versus get_agent_status or analyze_agent, and nothing clarifies when the customerId override is appropriate beyond the schema note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_statusBRead-onlyInspect
Get the current status of an agent including optimization state and performance metrics
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The ID of the agent to get status for | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so safety is already covered. The description adds that the response covers optimization state and performance metrics, but says nothing about caching, rate limits, or freshness of the status, and there is no output schema to fall back on.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler. It is efficient, though a single sentence this short leaves room for the routing and freshness detail that would make it stronger.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only two-parameter tool with full schema coverage and annotations, the description is minimally sufficient. It is missing sibling differentiation and any note on what 'status' contains beyond the two named facets, and with no output schema the agent can't confirm the return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both agentId and customerId are already documented. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('Get the current status of an agent') and enumerates the payload ('optimization state and performance metrics'), which distinguishes it from siblings like get_agent (static config) and get_model_optimization_status (optimization-only). However, it doesn't explicitly name those siblings to sharpen the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative guidance. With ~100 sibling tools including get_agent, get_model_optimization_status, and get_fleet_overview, the agent gets no routing help for choosing this over an adjacent tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_benchmark_statusARead-onlyInspect
Poll for benchmark job status and results. Returns activity-feed-style progress while running, full comparison with recommendation when complete.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | The job ID returned by benchmark_models | |
| customerId | No | (Converra superadmin only) Target customer ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds real behavioral value by disclosing that output changes shape over the lifecycle: activity-feed-style progress while running versus a full comparison with recommendation when complete. It stops short of covering rate limits or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences, front-loaded with the core action and then the lifecycle-dependent return shape. No filler or restated name/title content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully characterizes both possible return states, which is the key unknown for a polling tool. Annotations cover the safety profile, leaving only minor gaps such as polling cadence and pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (jobId, customerId, including the superadmin-only note) are fully documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (poll/get) and resource (benchmark job status and results), which is clearly distinct from the producer sibling benchmark_models and from other status pollers like get_simulation_status. It never names a sibling to disambiguate, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'Poll' implies repeated invocation after benchmark_models, and the jobId schema note ties it back to that tool, so usage is reasonably implied. There is no explicit when/when-not statement or named alternative to route the agent, so it stays at minimum viable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_converra_roiARead-onlyInspect
Cumulative impact summary across all deployments. Shows total fixes shipped, issues resolved, aggregate failure reduction, and the most compelling before/after example. Answers: 'how is Converra helping?', 'what was fixed?', 'show me the impact'.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback period in days (default: all time, max: 365) | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe read (readOnlyHint=true, destructiveHint=false), so the safety burden is lifted. The description adds useful content-level context about what is aggregated and that it surfaces a before/after example, but says nothing about scope of the aggregation window beyond the schema, permission requirements, or freshness/caching of the numbers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the aggregate payload front-loaded. The trailing example-question list is mildly redundant with the preceding enumeration but still earns its place as invocation cues.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, zero-required-parameter tool with no output schema and full schema coverage, the description adequately conveys what the response contains. It is complete enough to call correctly; only the relationship to sibling impact/fleet tools is underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: days (lookback, default all-time, max 365) and customerId (superadmin only) are fully documented in the schema. The description adds no additional parameter meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource — a cumulative impact summary across all deployments — and enumerates the payload (fixes shipped, issues resolved, failure reduction, before/after example). An agent can distinguish it from per-deployment siblings like get_deployment_impact, though it never names any alternative directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The quoted trigger questions ('how is Converra helping?', 'what was fixed?') imply when to reach for this tool, which is a real hint. However, there is no explicit when-not guidance and no routing between this and related read tools such as get_deployment_impact, get_fleet_intelligence, or get_fleet_overview.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_datasetARead-onlyInspect
One dataset's cluster roll-up and review progress: every behavior cluster with its review state, the decision in force, and how its members resolved (admitted, rejected, unresolved, superseded). Candidates are not returned; use list_dataset_examples for per-example admission and get_review_case for one cluster's evidence. reviewProgress is measured over every cluster; only the rows are paged.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum cluster rows to return (default: 50, max: 200) | |
| offset | No | Cluster rows to skip (default: 0) | |
| datasetId | Yes | Dataset ID from list_datasets | |
| customerId | No | (Converra superadmin only) Target customer ID | |
| reviewState | No | Filter rows to one review state (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true and destructive=false, so the safety profile is covered. The description adds real value beyond that: candidates are excluded from the response, and the non-obvious detail that reviewProgress spans every cluster while only the rows are paged. That pagination-versus-metric scope caveat is exactly the kind of behavioral context an agent cannot infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, zero waste, and correctly front-loaded: purpose first, then the exclusion/alternative routing, then the paging caveat. Each sentence carries distinct information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-shape burden and does so by enumerating what each cluster row contains and how members resolve. Combined with the paging caveat and sibling routing, the definition is nearly complete for a read tool, though it says nothing about result ordering or total-count signaling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter (limit, offset, datasetId, customerId, reviewState) is already documented in the schema. The description reinforces the paging/row concept and implies reviewState filtering but adds no format or syntax beyond what the schema provides. Baseline 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (one dataset) and precisely names what it returns: the cluster roll-up with review state, decision in force, and member resolution. It explicitly distinguishes itself from sibling tools by noting candidates are excluded and pointing to list_dataset_examples and get_review_case for the other views.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the alternatives by name and the condition selecting each: list_dataset_examples for per-example admission and get_review_case for one cluster's evidence. This is explicit when-to-use/when-to-use-something-else routing, not a vague hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deployment_impactARead-onlyInspect
See whether deployed fixes or model swaps worked in production, including parity verdicts, model IDs, score definition and estimated cost delta. Shows per-agent impact by default, or PR-grouped impact with view='pr'. Answers: 'did my fixes work?', 'what PR changed this?', 'show me PR impact'.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Filter PR view to a repository full name, e.g. owner/repo | |
| view | No | Group results by agent (default) or PR | |
| limit | No | Maximum deployments to return (default: 10) | |
| cursor | No | Cursor returned by a previous deployment impact call | |
| status | No | Filter by verification status (optional) | |
| agentId | No | Filter to a specific agent (optional — shows all agents if omitted) | |
| customerId | No | (Converra superadmin only) Target customer ID | |
| includeDirect | No | In PR view, include direct deployments with no PR |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true/destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: it discloses the default grouping (per-agent), the alternate grouping (PR), and the kinds of values returned (parity verdicts, model IDs, score definition, estimated cost delta). It omits pagination/cursor behavior and the superadmin-only nature of customerId, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences: purpose and payload first, mode/default behavior second, intent-matching example questions third. No redundancy and nothing buried — every sentence contributes to selection or invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-param, no-output-schema read tool, the description does the heavy lifting of describing the returned content (verdicts, model IDs, score definition, cost delta), which compensates for the missing output schema. It leaves cursor/pagination and status-filter semantics entirely to the schema, so it is strong but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all eight parameters (including the view enum and its default). The description reinforces view semantics and default grouping but adds no new syntax, format, or constraint detail beyond what the schema states; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('see whether deployed fixes or model swaps worked in production') with an explicit enumeration of what the response contains (parity verdicts, model IDs, score definition, cost delta). It also distinguishes its two modes — per-agent by default vs PR-grouped with view='pr' — so an agent can tell it apart from neighbors like get_pr_context or get_score_timeline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context via the default grouping rule and the 'view=pr' alternative, plus three example questions ('did my fixes work?', 'what PR changed this?', 'show me PR impact') that map intent to invocation. It does not, however, name a competing sibling tool or state when NOT to use it, so it stops short of explicit alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fine_tuning_projectARead-onlyInspect
The project workspace: the eight-step journey, the bound frozen dataset version, review progress, every training job's four independent facts (status, gate outcome, endpoint cleanup, spend) and the in-context approvals with their state. Gate elements appear as names and outcomes only; use get_gate_result for one verdict element by element.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Fine-tuning project ID from list_fine_tuning_projects | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds materially useful behavior: that gate elements surface as names and outcomes only (a deliberate detail limitation), which is not derivable from the schema or annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The payload contents are front-loaded in one dense but well-formed sentence, followed by a short routing sentence for get_gate_result. Every clause carries information, though the opening enumeration is heavy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately carries the burden of describing returns by enumerating the five component groups. It is complete enough for an agent to call the tool and know what to expect, though it is silent on pagination or size characteristics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with only two parameters (projectId, customerId), both already documented in the schema including the superadmin caveat. The description adds no syntax or format detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates exactly what the resource contains — the eight-step journey, bound dataset version, review progress, training job facts, and approvals — so an agent can tell it apart from siblings like get_training_job or get_gate_result. The retrieval verb is only implied (carried by the name), so it stops short of a full verb+resource statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly routes the agent to get_gate_result when only a single verdict element is needed, which is clear alternative guidance. It does not state broader when-to-use conditions (e.g., versus list_fine_tuning_projects or get_training_job), so it is clear context without full exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fleet_intelligenceARead-onlyInspect
Fleet-level failure patterns with business impact descriptions and fix verification status. Shows the most impactful issues across all agents, with before/after failure counts and 'Improved'/'Fixed' badges where Converra has deployed fixes. Answers: 'what are the biggest issues hurting my fleet?', 'what has Converra improved?', 'show me patterns with business impact'.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context — that results are ranked by impact and that badges indicate Converra-deployed fixes — but says nothing about scoping, pagination, result volume, or freshness, which matter for a fleet-wide aggregation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the resource definition, then supported by concrete output details, then scenario questions. The example-question sentence is slightly padded but earns its place by mapping to real user phrasings; overall there is little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With readOnly annotations, a single optional parameter, and no output schema, the description is nearly self-sufficient — it explains what the returned data contains and how fixes are signalled. The remaining gap is sibling disambiguation against the other fleet/insight tools, which is not addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is only one optional parameter (customerId, superadmin-only), so the schema carries the parameter burden adequately. The description does not mention the customerId parameter or its superadmin restriction, but baseline 3 is appropriate when the schema is fully documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource — fleet-level failure patterns with business impact descriptions and fix verification status — and enumerates the concrete content (before/after failure counts, 'Improved'/'Fixed' badges). It's clear what it returns, but it never distinguishes itself from close siblings like get_fleet_overview, get_fleet_timeline, or get_insights, which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The three example questions ('what are the biggest issues hurting my fleet?', etc.) give implied usage context and make the intended scenario fairly obvious. However, there is no explicit when-not guidance and no sibling is named as an alternative, so the routing decision against get_fleet_overview or get_insights is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fleet_overviewARead-onlyInspect
Fleet-level dashboard showing all agents with their performance scores, run counts, failure rates, and deployment stats. The entry point for understanding agent health across the fleet. Answers: 'how are all my agents doing?', 'which agent needs attention?', 'what has Converra fixed?'
| Name | Required | Description | Default |
|---|---|---|---|
| sortBy | No | Sort agents by score (worst first), run count, or name (default: score) | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered without the description's help. The description adds that results are aggregated fleet-wide and hinted at remediation ('what has Converra fixed?'), but says nothing about pagination, result size, or scope limits beyond the annotation surface.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the resource and its payload fields, followed by a positioning sentence and illustrative questions. The question framing is somewhat promotional but does double as usage guidance, so waste is limited.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully compensates by enumerating the return fields (scores, run counts, failure rates, deployment stats). For a zero-required-parameter read tool with full schema coverage, this is largely sufficient, though aggregation granularity and time window are unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: sortBy is documented with enum meanings and default, and customerId's superadmin restriction is stated in the schema itself. The description adds no parameter meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (fleet-level dashboard of all agents) and enumerates the content it exposes: performance scores, run counts, failure rates, deployment stats. It does not, however, explicitly distinguish itself from nearby siblings like get_fleet_intelligence or get_fleet_timeline, which also sound fleet-wide.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Calls itself 'the entry point for understanding agent health across the fleet' and frames use cases as questions, giving an agent a clear sense of when to reach for it. It names no alternatives and states no when-not conditions, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fleet_timelineARead-onlyInspect
Run-weighted score timeline aggregated across ALL agents in the fleet. Use when you need to answer 'how is the whole fleet trending over time?' instead of one agent at a time. Returns daily fleet-wide avg score, total run count per day, and the number of agents that contributed each day. Deployment markers are unioned across agents.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default: 30, max: 365) | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds valuable behavioral detail beyond that: the return contents (daily fleet-wide avg score, total run count, contributing agent count) and the fact that deployment markers are unioned across agents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core purpose, then the usage cue, then the return payload. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating what is returned (avg score, run count, contributing agents, unioned deployment markers). Combined with a fully documented input schema, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (days with default 30/max 365, and customerId superadmin targeting) are fully documented in the schema. The description adds no parameter-specific detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (timeline retrieval), resource (run-weighted score timeline), and scope (aggregated across ALL agents in the fleet). This clearly separates it from per-agent timeline tools like get_score_timeline in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use framing ('how is the whole fleet trending over time?') and contrasts it with the per-agent alternative ('instead of one agent at a time'), which functionally identifies get_score_timeline. It does not name the sibling tool outright, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gate_resultBRead-onlyInspect
One frozen-gate verdict, element by element, with each element's own scalar measurements. The verdict is minted outside the app by the gate harness; this only reads what was recorded. A development dry run is never acceptance evidence and is labelled as such.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Training job ID | |
| projectId | Yes | Fine-tuning project ID from list_fine_tuning_projects | |
| verdictId | No | Which verdict to return. Defaults to the protected acceptance verdict, or the most recently recorded one when there is none. | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), and the description adds genuine context beyond that: the verdict is 'minted outside the app by the gate harness', so the data is externally produced and immutable, and dry-run results are explicitly labelled and are not acceptance evidence. That provenance and labelling detail materially affects how an agent should treat the returned values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with what is returned, then provenance, then the dry-run caveat. Slightly ornamental phrasing ('minted outside the app by the gate harness') but no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing the return shape; it gestures at 'element by element, with each element's own scalar measurements' but does not clarify what an element is or what fields a verdict carries. The dry-run labelling caveat is valuable, but an agent still lacks a clear picture of the response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so jobId, projectId, verdictId (including its default-to-protected-acceptance behavior) and the superadmin-only customerId are already documented in the schema. The description adds no parameter-level detail, which is acceptable given full coverage but earns no extra credit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it reads 'one frozen-gate verdict, element by element, with each element's own scalar measurements'. It also implicitly separates itself from the write-side sibling record_gate_result by saying it 'only reads what was recorded'. However, it never names or contrasts with the other nearby read tools (get_verification_evidence, get_adjudication_queue, get_review_case), so the boundary is only partly drawn.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance. The only routing signal is the caveat that a development dry run is never acceptance evidence, which hints at how to interpret results rather than when to call the tool. Nothing tells the agent how this differs from record_gate_result or the other verdict/evidence readers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insightsBRead-onlyInspect
Get aggregated performance insights for an agent based on run data
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default: 30) | |
| agentId | Yes | The agent ID to get insights for | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety behavior is covered. The description adds that the output is aggregated performance insights derived from run data, but does not disclose return structure, aggregation dimensions, or any other behavioral traits beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. Every word contributes to the purpose statement, and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only aggregation tool with fully described parameters and annotation-covered safety, the definition is minimally adequate. However, without an output schema or additional description, an agent still lacks clarity on what specific performance insights are returned or how they are aggregated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters including agentId, days, and the superadmin-only customerId are already documented. The description does not add any parameter-level meaning beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get'), resource ('aggregated performance insights'), and scope ('for an agent based on run data'). It distinguishes itself from run-level tools like get_run_insights by specifying agent-level aggregation, but it does not explicitly name or contrast with the closest siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no when-to-use or when-not-to-use guidance and does not mention alternatives such as get_run_insights, refresh_agent_insights, or get_fleet_intelligence. Usage context is only implied by the phrase 'for an agent based on run data'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_integration_guideARead-onlyInspect
Get a step-by-step integration guide for connecting your LLM application to Converra. Describe your tech stack (e.g., 'Next.js with Vercel AI SDK', 'Python FastAPI with OpenAI', 'Voice agent with OpenAI Realtime API') and get the exact code, packages, and configuration needed.
| Name | Required | Description | Default |
|---|---|---|---|
| stack | Yes | Your LLM tech stack — e.g., 'Vercel AI SDK with streamText', 'OpenAI Python SDK', 'Anthropic + LangChain', 'OpenAI Realtime/Voice API', 'webhook-based — I can POST runs when they end' | |
| runtime | No | (Optional) Runtime environment — e.g., 'Node.js', 'Edge/serverless', 'Lambda', 'Vercel Functions' | |
| agentName | No | (Optional) Name for your agent in Converra — e.g., 'Support Bot', 'Voice Receptionist' | |
| framework | No | (Optional) Web framework — e.g., 'Next.js', 'Express', 'FastAPI', 'Flask' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that the result is code/packages/config rather than prose, which is useful since there is no output schema, but it discloses nothing about freshness, breadth, or limits of the guide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, purpose front-loaded, followed by the interaction instruction. Efficient, with only mild redundancy between the description's stack examples and the schema's identical examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only generation tool with no output schema, the description tells the agent what it will receive (code, packages, config) and what to provide. Nothing essential to calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters are already documented with examples. The description's stack examples duplicate rather than extend the schema's own examples, so it adds no semantics beyond what is structured.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (step-by-step integration guide) and concretely elaborates the output — 'exact code, packages, and configuration'. This clearly separates it from sibling tools like verify_integration or list_integrations, though it never names those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence implies usage: describe your stack and get matching code. That is clear context for when to reach for it, but there are no exclusions and no routing against verify_integration or list_integrations, which the agent must infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_model_optimization_statusARead-onlyInspect
Poll for model optimization job status and results. Returns progress while running, full report when complete.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | The job ID returned by optimize_model. | |
| customerId | No | (Converra superadmin only) Target customer ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely new context the annotations cannot: the response progresses (progress while running) and matures into a full report on completion, which matters when there is no output schema. It stops short of stating terminal/error states or polling cadence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler, and the core action (poll for status) is front-loaded. The second sentence earns its place by describing the two-stage return behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry return-value meaning and it does so at a high level: progress during execution, full report after completion. It is nearly complete for a polling tool, though failure/terminal-state handling and expected call cadence remain unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: jobId is documented as the value returned by optimize_model and customerId as a superadmin-only target. The description adds nothing about either parameter, so the baseline 3 is correct given the schema carries the full load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: poll a model optimization job for status and results. It is clear what the tool does, but it does not distinguish itself from near-siblings such as get_optimization_details, get_training_job, or get_simulation_status, which an agent might otherwise confuse with it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Poll" implies repeated invocation until the job finishes, which is useful implied guidance. However, it names no alternatives and gives no explicit when-to-use/when-not-to-use conditions (e.g., versus get_optimization_details or get_training_job), leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_optimization_detailsBRead-onlyInspect
Get detailed information about an optimization run including variants, activities, and results
| Name | Required | Description | Default |
|---|---|---|---|
| processId | Yes | The optimization process ID | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| includeActivities | No | Include activity log (default: true, set false for summary only) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered by structured data. The description adds that the response contains variants, activities, and results, which is useful disclosure of scope, but it does not address the includeActivities toggle behavior or the superadmin-only customerId constraint (both left to the schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb and scope come first and every clause carries content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with no output schema, the description is adequate because it names the entity types returned (variants, activities, results), but it gives no sense of response shape, size, or pagination, and does not clarify the relationship to sibling retrieval tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (processId, customerId, includeActivities) are already documented in the schema. The description adds no format, default, or semantics beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (optimization details) and enumerates what is included: variants, activities, results. It is clear on its own, but it does not explicitly differentiate itself from close siblings like get_variant_details, get_run, or list_optimizations, leaving the agent to infer which 'optimization' entity is meant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives despite a dense sibling list containing get_variant_details and list_optimizations. Usage is only implied by the required processId parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_personaARead-onlyInspect
Get full details of a specific persona including its description and usage stats
| Name | Required | Description | Default |
|---|---|---|---|
| personaId | Yes | The persona ID to retrieve | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful content context by naming what is returned (description and usage stats), but says nothing about permissions beyond the schema note, nor about error behavior for an unknown ID.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler, and the core action is front-loaded. It is appropriately sized for a simple lookup tool, though it could carry one routing clause at no cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with full schema coverage and annotations covering safety, the definition is nearly sufficient; naming the returned fields compensates for the absent output schema. The only real gap is routing guidance against list_personas.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both personaId and the superadmin-only customerId are fully documented in the schema. The description adds no parameter detail beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('a specific persona') plus the payload it returns (description and usage stats). It is clear what the tool does, but it never names its sibling list_personas, so the agent must infer that this is the single-item counterpart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'a specific persona' signals that a known personaId is required, which distinguishes it loosely from list_personas. There is no explicit when-to-use/when-not statement and no mention that list_personas should be used to discover IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pr_contextARead-onlyInspect
Comprehensive reviewer briefing for a specific deployment/PR. Returns everything needed to make a review decision in one call: issues fixed, what changed, simulation evidence, before/after example, metric breakdown, regression results, testing methodology, review guidance, previous feedback, and current agent failure patterns. Answers: 'tell me about this PR', 'should I merge this?', 'what does this fix?'.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | (Converra superadmin only) Target customer ID | |
| includeDiff | No | Include full baseline and variant prompt content in raw data (default: false — summary only) | |
| deploymentId | Yes | The deployment ID to get context for (from get_review_queue) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint=true and destructiveHint=false annotations already establish the safety profile. The description adds useful behavioral context by saying it returns a comprehensive set of review evidence in one call and lists the categories of information included. It does not contradict annotations and adds meaningful value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then supports it with a return-content list and example questions. The long enumeration of returned items is justified by the absence of an output schema, though it is somewhat list-heavy rather than maximally tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only getter with no output schema, the description does a good job of explaining the rich content returned and the review scenarios it supports. It does not cover pagination, limits, or relationships to alternative tools, leaving a few minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents deploymentId, customerId, and includeDiff with clear descriptions. The tool description adds no parameter-specific meaning beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides a comprehensive reviewer briefing for a specific deployment/PR and enumerates the content returned. It does not explicitly name or differentiate itself from similar siblings such as get_review_case or get_verification_evidence, so it is clear but not sibling-differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete usage signals via example user intents: 'tell me about this PR', 'should I merge this?', 'what does this fix?'. It establishes when to reach for this tool, but gives no explicit when-not-to-use guidance or alternative tool recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_production_testBRead-onlyInspect
Get production A/B test status, arm counts, and decision state.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | (Converra superadmin only) Target customer ID | |
| productionTestId | Yes | The production test ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the useful detail of what the read returns (arm counts, decision state), but says nothing about the superadmin-only customerId escalation path, pagination, or freshness of the status. Modest value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. Every clause (status, arm counts, decision state) earns its place by telling the agent what comes back.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by naming the returned fields, and annotations cover the safety profile. It is nearly complete for a simple read; only the elevated-permission path and any staleness/pagination behavior are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema itself documents both productionTestId and the Converra-superadmin-only customerId. The description adds no parameter semantics of its own, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and a specific resource (production A/B test), and enumerates what it surfaces: status, arm counts, decision state. It is clearly distinguishable from mutation siblings like start_production_test or promote_production_test, but it does not differentiate itself from read siblings such as get_variant_details or get_gate_result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no alternatives named. An agent must infer that this is the status-read for a production test rather than a simulated or benchmark test (simulate_ab_test, start_model_test, get_benchmark_status all exist as siblings). No prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_regression_suiteARead-onlyInspect
Get the regression test suite for an agent, including scenario details, source tracking (synthetic vs reproduction from production failures), and baseline scores. Use this to understand what scenarios guard against regressions during optimization.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The ID of the agent to get the regression suite for | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful context by disclosing the returned contents, including source tracking (synthetic vs production reproduction) and baseline scores, which an agent would not otherwise know. It omits any permission/rate-limit detail, but the annotation baseline is already satisfied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the resource and payload front-loaded, and the interpretive purpose second. Nothing is wasted or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with no output schema, the description usefully enumerates the returned fields, which compensates for the absent output schema. It is nearly complete; only the inability to reference alternatives for this specific use-case leaves a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (agentId, customerId) are already documented in the schema, including the superadmin-only note. The description adds no syntax, format, or default detail beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ('Get') with a precise resource ('the regression test suite for an agent') and enumerates the payload (scenario details, source tracking, baseline scores). It is clearly distinct from write-oriented siblings like add_regression_scenarios and regression_test, though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It offers a purpose-level context ('Use this to understand what scenarios guard against regressions during optimization'), which implies the usage. However, it gives no when-not guidance and does not name alternatives (e.g., add_regression_scenarios for writing, regression_test for executing), so the routing guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_review_caseARead-onlyInspect
One cluster's review case: the representative candidate with its finding, evidence, proposed training target and independent verification; the contrasting verified success when one exists; the decision history; and a page of members. Members are paged because a cluster can hold hundreds.
| Name | Required | Description | Default |
|---|---|---|---|
| clusterId | Yes | Cluster ID from get_adjudication_queue or get_dataset | |
| customerId | No | (Converra superadmin only) Target customer ID | |
| memberLimit | No | Members to return (default: 10, max: 50). membersTotal reports the full count. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), so the description's real contribution is paging behavior: it explains that members are paged because a cluster can hold hundreds, and that the contrasting verified success appears only 'when one exists'. That is genuine behavioral context beyond the annotations, though it says nothing about ordering, permissions, or error modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both load-bearing. The return contents lead, and the paging rationale is placed last as the consequence rather than mixed into the enumeration. No filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description carries the full burden of describing the return shape, and it does so thoroughly for a read-only detail endpoint — enumerating each section of the case. Minor gaps remain (ordering of decision history, whether members are sorted) but nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter (clusterId, customerId, memberLimit, including the superadmin-only constraint and the default/max on memberLimit) is documented in the schema itself. The description only indirectly motivates memberLimit via the paging sentence, adding no syntax or format detail beyond what the schema already provides — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource precisely — a single cluster's review case — and enumerates the contents (representative candidate, finding, evidence, proposed training target, verification, contrasting success, decision history, member page). An agent knows it retrieves the detail view for one cluster. It never states a verb or contrasts itself against near-siblings like get_review_queue or get_adjudication_queue, so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'One cluster's review case' signals this is the per-cluster drill-down reached from a queue, and the schema notes clusterId comes from get_adjudication_queue or get_dataset. There is no explicit when-to-use, no exclusion, and no named alternative, so the routing decision is left for the agent to reconstruct from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_review_queueARead-onlyInspect
Prioritized list of pending optimization PRs/deployments that need human review. Shows the most impactful items first, ranked by issue severity, simulation evidence strength, wait time, and agent run volume. Answers: 'what should I review?', 'any pending PRs?', 'what needs my attention?'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum items to return (default: 10, max: 25) | |
| agentId | No | Filter to a specific agent (optional — shows all agents if omitted) | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely useful behavior beyond that: the ordering/prioritization logic (issue severity, simulation evidence strength, wait time, agent run volume) and that the most impactful items come first. It does not mention pagination or default/max limits in prose, but the schema's limit param covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core definition before ranking detail and intent examples. No filler, though the quoted-questions sentence partially restates usage already implied by the first sentence, keeping it just shy of maximally tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, zero-required-param listing tool with annotations covering the safety profile and no output schema, the description supplies what an agent needs: content, ordering rationale, and intent mapping. The only minor gap is not clarifying how it differs from the adjacent queue/approval tools, which the sibling list makes relevant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three params (limit, agentId, customerId) are already documented, including the superadmin-only note on customerId. The description adds no parameter-specific meaning beyond the schema, which is the correct baseline-3 outcome when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb+resource: a prioritized list of pending optimization PRs/deployments needing human review, and it specifies scope (human review, optimization artifacts). It stops short of differentiating from closely related siblings like get_adjudication_queue, list_pending_approvals, or get_review_case, so the agent must infer the boundary. Clear but not fully disambiguated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context by enumerating the user intents it serves ('what should I review?', 'any pending PRs?', 'what needs my attention?'). This frames when to reach for it, but it names no exclusions or alternative tools for the many adjacent queue/approval siblings, leaving the when-not boundary unstated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_runARead-onlyInspect
Get full details of a specific run including insights. Look up by Converra run ID or by external session ID (e.g. LangSmith/Langfuse session_id).
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | No | External session ID (LangSmith/Langfuse session_id or Converra SDK sessionId). Used only when conversationId is not provided. | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| conversationId | No | The Converra run ID | |
| includeInsights | No | Include run insights (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds only the includeInsights default behavior, which is already in the schema, and says nothing about pagination, size limits, or what happens when the lookup key resolves to nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core action and immediately followed by the lookup mechanism. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with a fully documented schema, this is nearly sufficient: it covers the action, scope, and both lookup keys. It is mildly thin on what 'details' and 'insights' actually return, though the absence of an output schema makes that only a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description echoes the dual lookup-key semantics (run ID vs session ID) but adds no precedence rules or format/example beyond what the schema already states, and it ignores customerId and includeInsights entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (get) plus resource (run) with an explicit scope qualifier ('full details ... including insights') and two documented lookup keys. It is distinguishable from list_runs and get_run_insights, though it never names those siblings to make the boundary explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the two ways to look up a run (Converra run ID vs external session ID), which is useful usage context, but gives no when-to-use guidance relative to the many sibling read tools (get_run_insights, get_run_finding_context, get_worst_run, list_runs). Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_run_calibration_reviewARead-onlyInspect
Get the next canonical evidence-bound calibration question for a run. Returns exact publication and question hashes required to record the answer.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | (Converra superadmin only) Target customer ID | |
| conversationId | Yes | Run whose active insight publication to review |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond the annotations: it returns exact publication and question hashes, and those hashes are specifically what is needed to record an answer, establishing the read-then-record relationship.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero waste. The primary action is front-loaded, and the second sentence carries only the workflow-relevant detail about return values. Nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must convey returns, and it does specify publication and question hashes. Combined with full param coverage and read-only annotations, an agent has what it needs to call the tool, though a brief hint about sequencing with the recording tool would fully close the loop.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema, including the superadmin restriction on customerId. The description adds only the framing 'for a run,' which maps loosely to conversationId and adds little beyond the schema. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: fetching 'the next canonical evidence-bound calibration question for a run.' This distinguishes it implicitly from the write counterpart record_run_calibration_review, though no sibling is named. Purpose is clear without needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: 'the next ... question' and the note about hashes 'required to record the answer' signal this is a read step preceding record_run_calibration_review. However, there is no explicit when/when-not guidance or named alternative, leaving the agent to infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_run_finding_contextARead-onlyInspect
Get bounded grounding context for reviewing a run finding: transcript, latest insight, trusted prompt snapshot status, architecture context, and agent prior dismissed feedback.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| conversationId | Yes | The ID of the run whose finding context to load | |
| responderRunId | No | Optional exact responder run ID. When present, runtime evidence is selected by this run instead of taking the first bounded contexts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds one useful behavioral trait — that the context is "bounded" (i.e., truncated/limited) — but never says how it is bounded, nor what happens when a finding has no transcript or insight available.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and the key scope qualifier "bounded", followed by a compact enumeration of contents. The list is long but each item conveys real payload information, so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates what the agent receives, and read-only annotations cover the safety profile. What is missing is the bound size/truncation rule and any indication of failure modes when context is unavailable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (customerId, conversationId, responderRunId) are documented in the schema itself, including the responderRunId selection behavior. The description adds no parameter-level meaning beyond that baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (run finding context) and enumerates the five content pieces returned, which lets an agent distinguish it from neighbors like get_run_insights or get_run_step_diagnosis. It stops short of explicitly naming which sibling it displaces for a given need.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"for reviewing a run finding" implies the trigger condition, but there is no explicit when-not guidance and no named alternative among the many sibling readers of run data. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_run_insightsBRead-onlyInspect
Get detailed insights for a specific run, including metrics, findings, terminal status, and the activePublication CAS target required for an external generation write.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | No | External session ID (LangSmith/Langfuse session_id or Converra SDK sessionId). Used only when conversationId is not provided. | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| conversationId | No | The ID of the run to get insights for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a pure read (readOnlyHint=true, destructiveHint=false), so the safety profile is covered. The description does add genuine context beyond annotations by disclosing that the payload carries a terminal status and the activePublication CAS target needed for an external generation write, tying it to publish_external_run_insight_generation. It still says nothing about pagination, cost, or result size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence with the resource and the full content list front-loaded; no filler. The trailing "activePublication CAS target required for an external generation write" is dense internal jargon, which slightly reduces first-pass readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with 3 fully documented parameters and no output schema, the description covers what comes back and why one field matters downstream. The remaining gap is selection guidance against neighboring insight/get tools, none of which the description addresses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented in the schema, making the 3 baseline appropriate. The description adds no format or syntax detail for sessionId, customerId, or conversationId, though it does clarify that these resolve to "a specific run."
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ("Get detailed insights for a specific run") and enumerates what those insights contain (metrics, findings, terminal status, CAS target), which separates it from get_run, get_insights, and get_run_finding_context. It stops short of explicitly naming a sibling it is not, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this tool over get_run, get_insights, get_run_finding_context, or regenerate_run_insights, and no prerequisites or exclusions are given. The only routing hint ("sessionId used only when conversationId is not provided") lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_run_step_diagnosisARead-onlyInspect
Get step-level failure diagnosis for a run. Shows which step first failed, cascade effects, root cause hypothesis, and per-turn timeline. Available for all runs (uses trace data when available, otherwise transcript-based diagnosis).
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| conversationId | Yes | The ID of the run to diagnose |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuine behavioral context beyond that: the tool degrades gracefully by using trace data when available and falling back to transcript-based diagnosis otherwise, which tells the agent what it can expect from different runs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the core capability and its outputs come first, followed by availability and data-source behavior. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so well by naming the four diagnostic components. It is nearly complete, though it omits return format or pagination/size expectations, leaving a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (customerId, conversationId) are already documented in the schema. The description adds nothing parameter-specific, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get step-level failure diagnosis for a run') and enumerates the concrete outputs: first failing step, cascade effects, root cause hypothesis, per-turn timeline. This is clearly distinguishable from general run tools like get_run, though it never explicitly names a sibling such as get_step_failure_aggregation to sharpen the contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states availability ('Available for all runs') and the data source fallback, which implies the tool is always applicable, but it gives no explicit when-to-use versus alternatives or when the aggregation sibling is preferred. Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_score_timelineARead-onlyInspect
Daily score timeline for an agent over a date range, with deployment markers showing when PRs were merged. Answers: 'did overall performance improve after our fixes?', 'show me the score trend', 'what happened to scores this week?'
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default: 30, max: 365) | |
| agentId | Yes | The agent ID to get the timeline for | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: the output carries deployment markers marking PR merge points, which tells the agent the timeline interleaves score data with deploy events. It omits pagination/return-shape details, but for a safe read tool this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence covering what it returns, followed by three brief exemplar queries. Nothing is padded, though the three example questions are somewhat redundant with each other and could be trimmed to two.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must characterize the return value, and it does: daily granularity plus deployment markers. Combined with a fully-documented 3-parameter schema and read-only annotations, an agent has enough to call it correctly; only the exact response shape stays unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with defaults and maxima (days default 30, max 365) and a superadmin-only note on customerId already documented. The description only restates the date-range and agent scoping, adding no format or edge-case semantics. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Daily score timeline for an agent over a date range') plus a distinguishing detail: deployment markers tied to PR merges. This separates it from get_fleet_timeline (fleet scope) and get_deployment_impact by implication, but it never names or contrasts with those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Three quoted example questions ('did overall performance improve after our fixes?', 'show me the score trend', 'what happened to scores this week?') give concrete scenarios for selecting this tool. There is no explicit when-not guidance or named alternative (e.g., use get_fleet_timeline for cross-agent views), which keeps it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_settingsBRead-onlyInspect
Get account settings including general preferences and optimization configuration
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds only the content scope of the read; it does not mention the superadmin/act-on-behalf semantics that the customerId parameter implies, nor any return shape or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler. It is appropriately sized, though it stops short of using its remaining room to distinguish itself from get_account.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter read tool with annotations covering safety and a fully described schema, this is nearly complete; the description gives a rough picture of what settings are returned. The missing piece is disambiguation from get_account and update_settings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single customerId parameter is fully documented in the schema as '(Converra superadmin only) Target customer ID to act on behalf of'. The description adds nothing about parameters, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('account settings') and enumerates the content categories returned (general preferences, optimization configuration). It is not, however, differentiated from the sibling get_account, so an agent must guess which of the two to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no exclusions, and no mention of the obvious alternatives in the sibling list (get_account for account data, update_settings for modification). The agent gets no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_simulation_statusARead-onlyInspect
Get the status and results of an async simulation job. Use this to poll for completion after calling simulate_agent or simulate_ab_test.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | The simulation job ID returned by simulate_agent or simulate_ab_test | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that this is an async polling operation returning 'status and results,' but says nothing about polling cadence, terminal states, or whether partial results are returned mid-run.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no waste. The core purpose is front-loaded and the routing hint to the producing tools follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does mention that results accompany status, but it does not enumerate possible status values or terminal states an agent would need to interpret a poll response. Adequate for a simple two-parameter read tool, with a minor interpretive gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the origin of jobId and the superadmin-only nature of customerId, so the schema does the heavy lifting. The description adds no format or syntax detail beyond what the schema already states; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (status and results of an async simulation job), and explicitly ties itself to the two producing tools simulate_agent and simulate_ab_test, distinguishing it from other status tools like get_agent_status or get_benchmark_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear when-to-use guidance: 'Use this to poll for completion after calling simulate_agent or simulate_ab_test.' It names the producing tools, but offers no when-not guidance (e.g., no note about how often to poll or what to do if the job never completes).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_step_failure_aggregationARead-onlyInspect
Get fleet-level step failure patterns across all diagnosed runs for an agent. Shows failure type distribution, root cause categories with guidance, agent-type breakdown, and optimization suggestions. Use this to answer 'what are my top failure patterns?' or 'which agent steps are causing the most failures?'.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The ID of the agent to aggregate failures for | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds the aggregation scope ('across all diagnosed runs', 'fleet-level'), which is useful, but the rest enumerates return contents rather than behavioral traits like auth needs or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose, then output contents, then usage cues. The output enumeration is a list but each item is informative and none is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully describes what the aggregation returns (failure distribution, root causes, agent-type breakdown, suggestions), which compensates for the missing schema. Purpose, scope, and usage are all present; minor gaps only around sibling disambiguation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — agentId and the superadmin-only customerId are both documented in the schema, so the description need not restate them. It adds no parameter syntax or semantics beyond that baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get fleet-level step failure patterns across all diagnosed runs for an agent'), with an explicit scope that contrasts with single-run diagnosis tools. It does not name a sibling such as get_run_step_diagnosis or get_worst_run, so differentiation is implied by scope rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete selection context via example questions ('what are my top failure patterns?', 'which agent steps are causing the most failures?'), which tells the agent when this tool applies. It stops short of naming alternatives or when-not-to-use conditions (e.g., single-run diagnosis).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stream_urlARead-onlyInspect
Get the SSE stream URL for real-time optimization updates. Connect to this URL with EventSource for live progress.
| Name | Required | Description | Default |
|---|---|---|---|
| processId | Yes | The optimization process ID to stream |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered; the description adds real value by disclosing that the return is a URL to be consumed via EventSource rather than data itself, which matters with no output schema. It omits URL lifetime/expiry and auth requirements, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the what (SSE stream URL) front-loaded before the how-to-consume instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description adequately explains what is returned (an SSE URL) and how to use it. Missing only minor operational details such as URL validity window or whether the stream terminates on process completion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 100% schema description coverage ('The optimization process ID to stream'), so the schema already carries the semantics. The description adds no format, source, or constraint detail beyond what the schema states – baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get the SSE stream URL') and scopes it to real-time optimization updates, which distinguishes it from plain-read siblings like get_optimization_details and get_model_optimization_status. It does not name any sibling explicitly, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Connect to this URL with EventSource for live progress' implies the usage context (live streaming rather than polling), but never states when to prefer this over the status/details siblings or any exclusions. Usage is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trace_lineageARead-onlyInspect
Get the runtime trace lineage for a traceId: the trace(s) that spawned it (ancestors), the trace itself, and the traces it spawned (children). Use this to navigate multi-trace workflows, for example a design run that spawned an interview run. Each trace may map to multiple runs (multi-agent).
| Name | Required | Description | Default |
|---|---|---|---|
| traceId | Yes | The runtime trace ID to resolve lineage for | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered by structured data. The description adds one useful behavioral fact — that each trace may map to multiple runs in multi-agent setups — but says nothing about permissions, the superadmin customerId path, or result limits, so added value is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the first defines the operation and its output shape, the second gives a concrete usage scenario, and the third flags the multi-run multiplicity caveat. The core purpose is front-loaded with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry the return-shape burden — and it does, explicitly naming ancestors, self, and children. Combined with the multi-agent caveat and annotations covering read-only safety, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (traceId, customerId) are already documented in the schema, including the superadmin-only note on customerId. The description only restates that lineage is resolved for the traceId and adds no syntax, format, or edge-case detail beyond that. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (get), the exact resource (runtime trace lineage for a traceId), and enumerates the three parts of the result: ancestors, the trace itself, and children. This makes it immediately distinguishable from siblings like get_run or get_run_finding_context, which operate on runs rather than trace lineage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear when-to-use signal: 'Use this to navigate multi-trace workflows, for example a design run that spawned an interview run.' However, it does not name any alternative tool (e.g., get_run) or state when-not to use this one, so the routing guidance stops short of explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_training_jobBRead-onlyInspect
One training job's four independent facts plus its hash-bound receipts. A job can be done with a failed gate and a verified endpoint deletion at once — these never collapse into one status. Gate verdicts are listed by id and outcome; get_gate_result returns one in full.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Training job ID | |
| projectId | Yes | Fine-tuning project ID from list_fine_tuning_projects | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuine domain context — that a job can simultaneously be done-with-a-failed-gate and have a verified endpoint deletion, and that these never collapse into one status — which helps interpretation of the result. It stops short of describing the shape of the receipts or any pagination/limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no obvious filler, and the domain caveat is placed usefully. But the opening sentence is dense, unexplained jargon ('hash-bound receipts', 'four independent facts') that consumes space without conveying actionable meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry return-value meaning; it gestures at the payload ('four independent facts plus its hash-bound receipts', gate verdicts listed by id and outcome) but never enumerates what those facts are. Combined with complete parameter coverage and read-only annotations, this is adequate but leaves the response shape partly opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with three well-documented parameters, so the schema carries the burden and baseline 3 applies. The description adds no parameter-level meaning, not even a note that customerId is a superadmin-only override.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (a single training job) and its scope, but never uses a retrieval verb — 'One training job's four independent facts plus its hash-bound receipts' is a noun phrase, not a statement of what the tool does. The jargon ('four independent facts', 'hash-bound receipts') leaves the actual return payload ambiguous, so an agent must infer that this is the read-one-job endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It points at a sibling alternative by noting 'gate verdicts are listed by id and outcome; get_gate_result returns one in full,' which implies use this tool for the summary view and get_gate_result for detail. However, there is no explicit when-to-use/when-not statement and no mention of prerequisites such as the superadmin-only customerId path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usageBRead-onlyInspect
Get current usage statistics including tokens, improvements, and plan limits
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a safe read-only operation, so the bar is lower. The description adds the useful fact that the payload covers tokens, improvements, and plan limits, but says nothing about scope (org vs customer), refresh cadence, or what happens when the optional customerId is supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the resource front-loaded and no filler. It could be tightened only marginally.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read with annotations carrying the safety profile, the definition is serviceable. However, with no output schema the reader has only a three-item hint about the return payload, and nothing explains the superadmin/on-behalf-of flow beyond the schema text.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single customerId parameter is fully documented in the schema, including the superadmin restriction. The description adds no parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Get') and resource ('current usage statistics') and enumerates the content categories (tokens, improvements, plan limits). It is distinguishable from most siblings, though it never names its nearest neighbors (get_account, get_settings, get_converra_roi).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no routing to alternatives among the many get_* siblings. 'Current' hints at real-time scope but leaves the agent to infer the rest.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_variant_detailsARead-onlyInspect
Get detailed comparison of all variants from an optimization run, including metrics and content differences
| Name | Required | Description | Default |
|---|---|---|---|
| processId | Yes | The optimization process ID | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered structurally. The description adds a modest behavioral detail by stating the response includes metrics and content differences, but it says nothing about pagination, volume of variants, or formatting of the comparison. Reasonable given annotations carry the safety burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the action and scope and closes with the returned content. No filler, no repetition of the tool name or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema, the description covers what the agent gets back (variant metrics and content diffs) and annotations cover safety. The main residual gap is the absence of any note about how many variants are returned or their ordering, which keeps it just short of full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters (processId, customerId) carry their own descriptions, including the superadmin-only caveat on customerId. The description adds no parameter-level meaning beyond the schema, which is the baseline-3 case when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get), resource (variant details), and scope (all variants from an optimization run), plus the payload (metrics and content differences). It is distinguishable from nearby siblings like apply_variant or validate_variant, though it does not explicitly contrast itself with get_optimization_details, which covers adjacent territory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied — you call this to inspect variants after an optimization run — but the description never states when to prefer it over siblings such as get_optimization_details, validate_variant, or apply_variant, nor does it mention prerequisites like a completed run. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_verification_evidenceARead-onlyInspect
Show the actual runs behind a verification claim. Model swaps return persisted pre/post scored cohorts, model IDs, score definition and estimated cost delta without requiring an issue index. For prompt fixes, a deployment ID and issue index return the pre/post failure runs. Answers: 'show me the proof', 'which runs had this issue?', 'back up this claim'.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | (Converra superadmin only) Target customer ID | |
| issueIndex | No | Which targeted issue to show evidence for (0-based, default: 0) | |
| deploymentId | Yes | The deployment ID to get evidence for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/safe behavior, so the description is free to add richer context — it discloses exactly what is returned (persisted pre/post scored cohorts, model IDs, score definition, estimated cost delta) and the differing input requirements per claim type. This is meaningful disclosure beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded lead sentence states the tool's purpose, followed by mode-specific detail and example queries. Slightly dense but every sentence carries information; no obvious filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description steps in to describe the return payload (cohorts, IDs, score definition, cost delta), covering what would otherwise be a gap. Remaining ambiguity about sibling selection keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description adds value by explaining that issueIndex is only needed for prompt-fix claims and that model swaps work without it, clarifying conditional parameter usage beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Show' and resource 'actual runs behind a verification claim', and differentiates the two operating modes (model swaps vs prompt fixes). It does not explicitly name a sibling like get_run or get_worst_run, so an agent must still infer the boundary against those tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear conditional usage: model swaps need only a deployment ID, while prompt fixes need a deployment ID plus issue index. It does not, however, state when NOT to use this tool or name alternatives (e.g. get_deployment_impact, get_score_timeline).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_webhookARead-onlyInspect
Get details of a specific webhook including delivery statistics
| Name | Required | Description | Default |
|---|---|---|---|
| webhookId | Yes | The webhook ID to retrieve | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds one useful behavioral detail — that delivery statistics are included in the response — but says nothing about permissions, pagination, or failure modes (e.g. missing webhook).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the resource and the notable payload detail are both stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with no output schema and full annotation coverage, the description is nearly sufficient, and it helpfully signals that delivery statistics come back. It falls short of 5 only because it omits any error/not-found behavior or scope caveat.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema (including the Converra superadmin-only note on customerId). The description adds no parameter meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: retrieving details for a single webhook. This is distinguishable from list_webhooks (plural) and the write siblings create/update/delete_webhook, though the description never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the phrase 'a specific webhook' — an agent can infer this needs a single webhookId, but there is no explicit when-to-use versus list_webhooks or get_webhook-vs-update_webhook guidance, and no mention of prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_worst_runARead-onlyInspect
Return the worst recent run(s) — the landing call for 'what's broken right now'. With agentId: returns the single worst run for that agent. Without agentId: returns worst-per-agent across the fleet (one entry per agent). Each result includes the canonical accepted claim and its exact occurrence evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | No | Optional. Scope to a specific agent. Omit for fleet-wide worst-per-agent. | |
| customerId | No | (Converra superadmin only) Target customer ID | |
| windowDays | No | Days to look back (default 14, max 90) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral detail: the return granularity (single run vs worst-per-agent) and the returned content (canonical accepted claim and exact occurrence evidence). It does not cover pagination, rate limits, or empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste; the primary purpose is front-loaded and the mode-specific behavior is split cleanly. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only fleet query with no output schema, the description adequately explains what is returned and how results are scoped. It omits minor operational details like default lookback and empty-result behavior, but nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented — including agentId's scoping behavior. The description restates the agentId semantics but adds no syntax, format, or default details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — return the worst recent run(s) — and immediately distinguishes the two operational modes (with vs without agentId). It also positions the tool clearly against siblings like list_runs by framing it as the 'what's broken right now' landing call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context ('landing call for what's broken right now') and explains the condition that selects each behavior (with agentId vs without). It does not explicitly name alternatives or exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_agentsARead-onlyInspect
List all agents for the authenticated customer. Each agent has agentType (the role, e.g. 'Discovery Agent'), customer (the end-customer this instance serves, e.g. 'anodot'), and instanceCount (how many of the customer's agents share this role). When instanceCount > 1, the same role runs across multiple end-customers — the response includes a 'Role families' rollup making this shape explicit.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of agents to return (default: 20) | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| includeVariants | No | Include variant agents in results (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description goes beyond that by disclosing the response shape — agentType/customer/instanceCount semantics and the 'Role families' rollup that appears when instanceCount > 1 — which is genuinely useful since no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action in the first sentence and uses the remaining two sentences to explain the response shape. Slightly verbose about the rollup, but every sentence carries information and nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully documents the returned fields and the multi-instance rollup behavior. The main gap is that usage/alternative routing and the meaning of the filter parameters are not addressed, but for a simple read-only list tool it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (limit, customerId, includeVariants all documented in-schema), so the schema does the heavy lifting. The description adds nothing about parameters — notably it does not explain the superadmin-only customerId or the includeVariants flag — so it sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List all agents') scoped to the authenticated customer, and enumerates the key fields each agent carries (agentType, customer, instanceCount). It is clearly distinguishable from the singular get_agent, though it never names siblings like list_runs or list_personas explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this over get_agent for a single agent, or over get_fleet_overview for aggregate views. No prerequisites or exclusions are stated; the agent must infer routing from the names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dataset_examplesBRead-onlyInspect
Admission state per candidate: what was admitted, rejected, left unresolved or superseded, with the lineage (direct, propagated, verified success) and the first check that did not pass. Rows carry ids, status and a headline — never the candidate's output or proposed target.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return (default: 50, max: 200) | |
| offset | No | Rows to skip, for paging through a large dataset (default: 0) | |
| datasetId | Yes | Dataset ID from list_datasets | |
| customerId | No | (Converra superadmin only) Target customer ID | |
| admissionStatus | No | Filter to one admission status (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuine behavioral value beyond that: it explains the row shape (ids, status, headline), the lineage taxonomy, and notably what is excluded ('never the candidate's output or proposed target'), which prevents an agent from expecting payload data. That exclusion is exactly the kind of context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no filler, and the row-content framing is front-loaded. The content is somewhat jargon-heavy ('lineage', 'propagated', 'superseded'), which slightly taxes parsing, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry return-value expectations, and it does: it specifies the row columns and explicitly rules out output/proposed-target payloads. Paging behavior is left to the schema, which documents limit/offset adequately. For a 5-param read-only list tool this is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with limit, offset, datasetId, customerId, and the admissionStatus enum each documented in the schema itself. The description adds no parameter-level syntax or filtering behavior beyond what is already structured, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description details what fields appear per candidate row (admission state, lineage, first failing check) but never cleanly states the act of listing dataset examples; the term 'candidate' is used without grounding it to the dataset concept. It does not differentiate itself from siblings like list_datasets or list_dataset_versions. An agent can infer it returns example rows, but the framing is oblique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use statement and no mention of alternative tools such as list_datasets (to obtain the datasetId) or list_dataset_versions (to obtain a specific version). The admissionStatus filter's purpose is left to the reader to infer. Context is entirely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_datasetsARead-onlyInspect
Training and evaluation datasets curated from an agent's completed runs. Each row carries the source agent, how many runs it was cut from, the target verifier and the fixture manifest it is bound to. Answers: 'what datasets do we have?', 'is there a dataset for this agent?'.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | No | Filter to one agent (optional — all datasets if omitted) | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds real behavioral value beyond that by spelling out the shape of each returned row (source agent, run count, target verifier, fixture manifest) in the absence of an output schema. It stops short of pagination or ordering behavior, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the resource definition before the question framing. Every sentence carries content, though the row-content sentence could be seen as slightly more than strictly needed for a listing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-optional-param read-only list with no output schema, the description supplies the return shape and usage context an agent needs. It is largely complete; only sibling routing and pagination behavior are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so agentId and customerId are already fully documented (including the superadmin-only caveat). The description adds no filter semantics beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear resource (training/evaluation datasets curated from completed runs) and implies the list verb, and clarifies the unit of return ('each row carries the source agent...'). However, it never distinguishes itself from near-name siblings like list_dataset_versions, list_dataset_examples, or get_dataset, so an agent must still infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Answers: ...' framing implies when to reach for it (inventory questions, checking for an agent's dataset), which is useful implied usage. But it names no alternatives and no exclusions — nothing tells the agent to use list_dataset_versions for version history or get_dataset for one dataset.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dataset_versionsARead-onlyInspect
Frozen versions of a dataset as counts, template coverage and hashes. The examples themselves are never returned: the protected split's contents must not reach a training-curation surface. Answers: 'is there a frozen version to train on?', 'is it training-eligible?'.
| Name | Required | Description | Default |
|---|---|---|---|
| datasetId | Yes | Dataset ID from list_datasets | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds non-obvious behavioral context: the protected split's contents are deliberately withheld, which is important to know before calling this on a protected dataset.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: what it returns, the hard constraint on contents, then the questions it answers. Front-loaded and waste-free, though the question pair is slightly rhetorical padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description summarizes the return shape (counts, coverage, hashes) and the withholding rule, so the agent knows what to expect. For a two-parameter read-only listing, that is nearly everything needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with datasetId and the superadmin-only customerId both documented in the schema. The description adds no syntax or format detail about either parameter, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and what it returns: frozen dataset versions exposed as counts, template coverage, and hashes. It implicitly separates itself from list_dataset_examples by declaring the examples are never returned, though it does not name that sibling directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete framing questions — 'is there a frozen version to train on?' and 'is it training-eligible?' — which tell the agent when this tool is the right call. It stops short of naming exclusions or pointing to a specific alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_fine_tuning_projectsARead-onlyInspect
Fine-tuning projects and each one's next journey step. A project is one pass: one agent, one objective, one frozen dataset version, one candidate plus one diagnosed rerun. Answers: 'what fine-tuning is in flight?', 'what is the next step on this project?'.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | No | Filter to one agent (optional) | |
| lifecycle | No | Filter to active or closed projects (optional) | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds a domain model of a project (one agent, one objective, one frozen dataset version, one candidate plus one diagnosed rerun), which is useful context but not behavioral traits like pagination, ordering, or result shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the resource and its scope, followed by two clarifying questions. The project definition is somewhat lengthy but earns its place by disambiguating the domain term; no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by stating what a project comprises and that the next journey step is included. For a read-only list tool with fully documented parameters, this is nearly complete; only pagination/ordering behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents agentId, lifecycle, and the superadmin-only customerId. The description adds no parameter-level detail such as filter combination behavior, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (fine-tuning projects) and adds a meaningful scope unit — each project's 'next journey step' — plus a definition of what a project is. The list semantics are carried by the name, and it is clearly distinguishable from the singular get_fine_tuning_project sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The two quoted questions ('what fine-tuning is in flight?', 'what is the next step on this project?') imply the intended use cases, but there is no explicit when-to-use versus alternatives (e.g. get_fine_tuning_project for a single project) and no stated conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_integrationsARead-onlyInspect
List all configured integrations (LangSmith, Langfuse, etc.) and their status. Use this to find the integration ID and available projects before importing.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by integration type (default: all) | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that each integration's status is returned and that the customerId parameter is superadmin-scoped, but says nothing about pagination, result size, or what happens when no integrations are configured.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler: the first declares scope and return content, the second declares the use case. Information is front-loaded and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with full schema coverage and no output schema, the description covers purpose, scope, and usage well enough to call correctly. The only gap is that it does not hint at the shape or volume of the returned list, which would help an agent plan its next call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters carry their own descriptions plus an enum with a documented default, so the schema does the heavy lifting. The description's parenthetical examples of integration types mirror the enum rather than adding new format or filtering semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all configured integrations') and even names concrete examples (LangSmith, Langfuse), so the agent knows exactly what is returned. It does not, however, distinguish itself from nearby siblings like verify_integration or get_integration_guide, which an agent could plausibly confuse with this list operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use: 'find the integration ID and available projects before importing,' which tells the agent this is a prerequisite/discovery step. No exclusions or named alternatives are given (e.g., when to use verify_integration instead), so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_optimization_feedbackARead-onlyInspect
List feedback entries for an agent. Shows thumbs up/down ratings, comments, and feedback types. Optionally filter by optimization ID or feedback type.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The agent ID to list feedback for (required) | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| feedbackType | No | Filter by feedback type | |
| optimizationId | No | Filter by specific optimization process ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description usefully discloses the shape of the returned data (ratings, comments, types), but says nothing about pagination, volume, or auth requirements beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose followed by the return contents and the optional filters. No filler, though the middle sentence is slightly redundant with the purpose statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing returns and does so (thumbs up/down, comments, feedback types). Reasonably complete for a read-only list tool, though pagination/ordering behavior is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters including the feedbackType enum and the superadmin-only customerId. The description only restates the two optional filters, adding no syntax or format detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (feedback entries) scoped to an agent, and enumerates what it returns (ratings, comments, feedback types). It does not name the sibling write tools (add_optimization_feedback, add_insight_feedback) it complements, so differentiation relies on the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions optional filtering by optimization ID or feedback type, which implies how to narrow results, but gives no explicit when-to-use/when-not guidance or alternative tools. Usage is inferred rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_optimizationsCRead-onlyInspect
List recent optimization runs
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default: 10) | |
| status | No | Filter by optimization status | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds only the vague word 'recent' — it doesn't define the recency window, ordering, pagination behavior, or that customerId requires superadmin rights. With annotations carrying the safety load, this adds very little.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero filler. It is efficient, though the extreme brevity is under-specification rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimum viable: schema documents all parameters and annotations cover the read-only safety profile, with no output schema to explain. However, the undefined 'recent' window and absent tie-breaking to sibling list/detail tools leave real gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters documented including the status enum and the superadmin-only note on customerId. The description adds no parameter meaning beyond that, so the baseline 3 applies — the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (optimization runs) with a scoping qualifier ('recent'). It is clear what the tool returns, but it does nothing to distinguish itself from siblings like get_optimization_details, list_optimization_feedback, or get_model_optimization_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus get_optimization_details, list_optimization_feedback, or get_model_optimization_status. No mention of prerequisites or when the result set is appropriate, so the agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pending_approvalsARead-onlyInspect
Fine-tuning approvals waiting on a decision, and which job each one is for. Training spend and the production switch are decided by a human on the project screen, or through decide_approval by a key that holds the approve scope — write, admin and superadmin keys cannot decide one. Answers: 'what is blocked on me?', 'why has training not started?'.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description's added behavioral content (approve-scope requirement, that write/admin/superadmin keys cannot decide) pertains mostly to the sibling decide_approval rather than to this tool's own behavior, and it says nothing about result ordering, pagination, or volume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, and the following sentences add authorization and intent context. Slightly wordy in its focus on the decision path, but no sentence is pure filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by indicating what each row represents ('which job each one is for') and the questions it answers. It is complete enough for an agent to call and interpret a read-only list, though it omits pagination/ordering details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single customerId parameter is fully documented as superadmin-only in the schema. The description adds no further meaning beyond what the schema already provides, so the 3 baseline is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (fine-tuning approvals waiting on a decision) plus a scope qualifier, and adds the return content ('which job each one is for'). This clearly separates it from siblings like decide_approval or list_fine_tuning_projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative tool (decide_approval) and explains who is permitted to act, giving the agent the routing context. It frames intent with 'what is blocked on me?'/'why has training not started?', though it stops short of an explicit when-not-to-use statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_personasBRead-onlyInspect
List available personas for simulation testing
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Filter by tags (e.g., ['frustrated', 'enterprise']) | |
| limit | No | Maximum number of personas to return (default: 20) | |
| search | No | Search personas by name or description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is fully covered elsewhere. The description adds only the domain framing that personas are for simulation testing; it says nothing about filtering behavior, default result size, or pagination. Slightly above the annotation baseline, but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficient, though it is arguably terse enough that a little more substance would have been worth the words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with annotations covering safety and a fully documented schema, the essentials are present and no output schema is needed. However, with a sibling get_persona and many other list_* tools, the description does not clarify return shape or relationship to those siblings, leaving it merely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so tags, limit, and search are already documented with examples and defaults in the schema. The description contributes no additional parameter meaning, which is the expected baseline when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('List personas') and adds scope ('for simulation testing'), which separates it from get_persona and create_persona. It stops short of explicitly naming the singular sibling it complements, so it is clear but not maximally differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus get_persona or list_optimizations-style siblings, and no stated prerequisites. The 'list' verb implies retrieval, but nothing tells the agent when this is the right call over fetching a single persona.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_runsCRead-onlyInspect
List runs, optionally filtered by agent
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of runs to return (default: 20) | |
| cursor | No | Opaque nextCursor returned by the previous list_runs call | |
| status | No | Filter by run status | |
| agentId | No | Filter by agent ID | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| hasInsights | No | Filter to only runs with insights |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered by structured data. The description adds nothing beyond the schema — no mention of ordering, result shape, pagination behavior, or the customerId superadmin restriction already hinted at in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is lean, though it errs toward under-specification rather than over-verbosity given the tool's six parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter list tool with no output schema, the description covers the bare minimum. Annotations handle safety and the schema handles parameters, but return ordering, pagination semantics, and sibling routing (get_run vs sync_runs) are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented in the schema. The description adds no syntax, format, or defaulting detail beyond that, making the baseline 3 the correct score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("List runs"), so an agent can distinguish it from get_run/create_run/delete_run at a glance. However, "optionally filtered by agent" undersells the tool: the schema supports status, hasInsights, and customerId filtering too, so the stated scope is narrower than reality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this over get_run (single run) or sync_runs, and no mention of pagination workflow even though cursor/limit exist. Usage is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_webhooksBRead-onlyInspect
List all configured webhooks
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| includeInactive | No | Include inactive webhooks (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered without description help. The description adds only the 'all configured' scope, and that phrase is slightly in tension with the schema's includeInactive default of false (inactive webhooks are not returned unless requested).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the scope is front-loaded. It is appropriately sized for a trivial list tool, though it is arguably under-specified rather than optimized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with full schema coverage and annotations covering safety, this is minimally adequate. It never addresses return shape or pagination behavior, and with no output schema present the agent gets no hint about the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (customerId superadmin scoping, includeInactive default false) are fully documented in the schema. The description adds no parameter detail, and a baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (webhooks) with the scope qualifier 'all configured'. An agent can distinguish it from get_webhook/create_webhook/delete_webhook by name, but the description itself never names those siblings or clarifies the list-vs-get distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of when to prefer get_webhook for a single item, and no prerequisites described. The agent must infer usage purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
optimize_modelADestructiveInspect
Optimize an agent's model for cost or speed without losing quality. Benchmarks cheaper/faster models, picks the best one, switches to it, and triggers prompt adaptation. Returns a jobId — use get_model_optimization_status to poll.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Optimization target: 'cost' (cheapest passing model), 'speed' (fastest), 'balanced' (best score-to-cost ratio). Default: 'cost'. | |
| agentId | Yes | The agent ID to optimize. Must be active with runs. | |
| maxTurns | No | Max conversation turns per scenario (default: 3). | |
| customerId | No | (Converra superadmin only) Target customer ID. | |
| qualityThreshold | No | Minimum quality as percentage of current model's score (0-100). E.g., 85 means candidates must score >= 85% of current model. Default: 85. | |
| skipOptimization | No | If true, switch model without triggering prompt adaptation. Default: false. | |
| candidateModelIds | No | Optional specific model IDs to evaluate. If omitted, candidates are auto-selected based on target. Fine-tuned accounts/... ids are not accepted here; benchmark them with benchmark_models. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=true, and the description adds meaningful context beyond them: the multi-step benchmark→pick→switch→adapt process and the fact that prompt adaptation is triggered (mutation of prompts, not just model). It stops short of noting reversibility or rollback, which the destructiveHint would warrant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the capability front-loaded and the async follow-up clearly appended. Zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 7-parameter mutation tool with no output schema, the description covers the workflow and the return handle (jobId) plus the polling pattern. The only gap is lack of guidance on reversibility/rollback given destructiveHint=true.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 7 parameters (including the target enum and candidateModelIds constraints) are fully documented in the schema. The description adds no parameter-level detail beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Optimize an agent's model') plus the dimensions of optimization (cost or speed without losing quality). It also enumerates the concrete steps (benchmarks, picks, switches, triggers prompt adaptation), so an agent knows exactly what this does versus read-only siblings like get_model_optimization_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context ('for cost or speed without losing quality') and names the exact follow-up tool for polling the async job. It does not explicitly state when NOT to use it versus siblings like benchmark_models or trigger_optimization, though the distinction by workflow stage is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_run_finding_prompt_diffARead-onlyInspect
Preview a read-only unified diff between the trusted prompt snapshot used by a run finding and proposed prompt content. Writes nothing and only works when the run has a trusted rendered prompt snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| conversationId | Yes | The ID of the run whose finding is being fixed | |
| proposedPromptContent | Yes | The complete proposed replacement prompt content to diff |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so 'Writes nothing' partly restates the safety profile. The added value is the eligibility constraint (requires a trusted rendered prompt snapshot) and the fact that the return is a unified diff, which the annotations do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler, and the core action (preview a diff) is front-loaded before the eligibility caveat. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only preview tool with fully documented parameters and no output schema, the description covers what the tool does, the eligibility precondition, and the nature of the return value. Only minor gaps remain (e.g. nothing about size limits for very large prompts).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including customerId, conversationId, and proposedPromptContent is already documented in the schema. The description adds no extra syntax, format, or constraint detail beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Preview) and a precise resource (a read-only unified diff between the trusted prompt snapshot used by a run finding and proposed prompt content). No other sibling tool previews a diff, so it is unambiguously distinguishable from get_run_finding_context, validate_variant, and apply_variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description supplies a real precondition - it 'only works when the run has a trusted rendered prompt snapshot' - which tells the agent when invocation is valid. It stops short of naming alternatives (e.g. validate_variant or applying the change) or stating an explicit when-not, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
promote_production_testADestructiveInspect
Promote a decided production A/B test by applying its frozen variant snapshot to the agent.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | (Converra superadmin only) Target customer ID | |
| productionTestId | Yes | The production test ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and readOnlyHint=false, and the description adds valuable context by clarifying the action applies a 'frozen variant snapshot' to the agent. This explains *what* gets mutated, which goes beyond the annotations. However, it doesn't describe irreversibility, required permissions, or side effects, leaving some gaps for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that front-loads the action and resource. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no output schema, the description covers the core action but omits important contextual details: what happens to the previous agent configuration, whether the promotion is reversible, required permissions, and any rate limits. Given the destructive nature and absence of annotations beyond safety hints, more disclosure would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no parameter-level detail (e.g., no mention of what productionTestId represents or the superadmin-only nature of customerId). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (promote), resource (decided production A/B test), and mechanism (applying frozen variant snapshot to the agent). This is highly specific and distinguishes it from siblings like rollback_production_test or apply_variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the test must be 'decided' (a precondition), but does not explicitly state when to use this versus alternatives like apply_variant or start_production_test. Some usage is implied by context but no explicit guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_external_run_insight_generationADestructiveIdempotentInspect
Publish one strict external teacher judgment as a new immutable Converra conversation-insight generation. Requires the exact active publication bundle, exact evidence, and an idempotency key. The server owns all Converra identities, hashes, tenant scope, receipts, and publication state.
| Name | Required | Description | Default |
|---|---|---|---|
| judgment | Yes | Strict outcome union enforced by the server. verified_issue requires title, summary, primaryFindingIndex, rootCause, and findings. verified_clean/review_required require title, summary, and findings. coverage_unavailable requires coverageReason, resolutionNeeded, and empty findings. incomplete requires incompleteReason and empty findings and will remain inactive. | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| provenance | Yes | ||
| schemaVersion | Yes | ||
| conversationId | Yes | ||
| idempotencyKey | Yes | ||
| expectedPublication | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is set. The description adds genuine value beyond that: it discloses that the result is immutable and that the server owns identities, hashes, tenant scope, receipts, and publication state, clarifying the agent's responsibilities versus the server's.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the core action and followed by requirements and server-side ownership. No wasted words, though the phrasing is terse enough to be opaque to a first-time reader.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, highly nested publish operation with no output schema, the description covers the essential contract but omits what happens on validation failure, how the idempotency key is scoped, and any result/receipt shape. Adequate but with clear gaps given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29% across seven parameters with deep nesting, so the schema largely does not carry the load. The description compensates for a few key inputs (expectedPublication bundle, evidence, idempotencyKey) but leaves most of the nested judgment/provenance structure to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (publish) and a precise resource (an external teacher judgment as an immutable conversation-insight generation). This is clearly distinguishable from sibling write tools like regenerate_run_insights or refresh_agent_insights, though the term 'Converra conversation-insight generation' is jargon-heavy and not self-explanatory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists prerequisites (exact active publication bundle, exact evidence, idempotency key), which implies when the tool is invocable, but it never names an alternative or states when NOT to use it versus the many insight-related siblings. Usage is inferred rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_gate_resultAIdempotentInspect
Report one verdict written by the frozen gate harness (scripts/supplier-risk/gate/gate.ts) against the job it was measured for. The app re-derives the headline from the elements and refuses a verdict bound to another attempt, model or dataset version, an acceptance verdict without a frozen preregistration, and a second acceptance verdict for the job. Only a protected acceptance verdict moves the job's gate outcome; re-posting the same verdict is a no-op. For the training runner's key. SCOPE: runner — held literally; write, admin and superadmin keys cannot call it.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Training job ID | |
| verdict | Yes | The verdict record exactly as gate.ts wrote it; the app parses it field by field | |
| projectId | Yes | Fine-tuning project ID from list_fine_tuning_projects | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, idempotentHint=false→destructive false), but the description adds substantive behavior the annotations cannot: the app re-derives the headline from the elements, rejects mismatched-attempt/model/dataset verdicts, requires a frozen preregistration for acceptance, and notes that only a protected acceptance verdict moves the job's gate outcome while re-posting is a no-op. This is unusually rich disclosure for a mutation endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The critical constraint — what the app refuses and what actually moves the gate outcome — is front-loaded before the scope restriction. It is dense and jargon-heavy but every sentence carries a rule; only the parenthetical script path is arguably expendable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-idempotent-looking write with a nested object payload, no output schema, and full schema coverage, the description supplies the validation semantics, the idempotency/no-op behavior, the outcome effect and the caller scope. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all four parameters, so the schema already documents projectId, jobId, verdict and the superadmin-only customerId. The description adds a note that the verdict must be the record exactly as gate.ts wrote it and is parsed field by field, but no additional per-parameter syntax or format detail. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — report a verdict written by the frozen gate harness against the job it was measured for — and names the producing artifact (scripts/supplier-risk/gate/gate.ts). An agent can distinguish this write path from the sibling get_gate_result read path without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives strong when-not guidance: verdicts bound to another attempt, model or dataset version are refused, an acceptance verdict without a frozen preregistration is refused, and a second acceptance verdict for the job is refused. It also states the caller scope explicitly ('runner — held literally; write, admin and superadmin keys cannot call it'). It never names an alternative sibling for the read case, so it stops short of the 5-level explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_review_decisionAInspect
Record one scoped adjudication for a cluster and reassess every member on its own checks. STAMPED WITH THE REVIEWER ROLE "agent": a decision recorded over MCP is distinguishable from a human's in the lineage, so whoever approves the dataset freeze can see which admissions rest on an agent's judgment. Decisions are immutable — a revision names the decision it supersedes.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | Yes | Whether the decision propagates to the cluster's members or binds only to the representative | |
| target | Yes | The reviewed learning target for the representative. correct_finding needs proposed or edited; an outcome that trains on nothing must send none. | |
| outcome | Yes | correct_finding: the agent should have behaved differently (needs a target). acceptable_behavior: what the agent did was fine (its own output is the target). The other three record a judgment and train on nothing. | |
| clusterId | Yes | Cluster ID from get_adjudication_queue or get_dataset | |
| rationale | Yes | Why this decision (1-4000 characters) | |
| customerId | No | (Converra superadmin only) Target customer ID | |
| supersedesDecisionId | No | The decision this one revises. Omit for a first decision; a cluster that already has one requires it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint=false/destructiveHint=false annotations, it discloses several non-obvious traits: decisions are immutable, a revision must name the decision it supersedes, recording stamps the reviewer role as 'agent' for audit lineage, and it triggers a side effect (reassessing every cluster member). These are exactly the behavioral facts an agent cannot infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Opens with the verb+resource, then layers the audit-stamp and immutability facts in three focused sentences. Slightly verbose and the mid-sentence all-caps emphasis is stylistically odd, but every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex mutation with 7 params, nested objects, enums, and no output schema, the description covers purpose, immutability, lineage tagging, and the propagation side effect. It could say a bit more about what 'reassess' changes on members, but nothing critical for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema itself documents scope, target, outcome, clusterId, rationale, and supersedesDecisionId in detail. The description only echoes the scoping/propagation idea and supersession, adding little syntax or meaning beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Record one scoped adjudication for a cluster') and adds the key consequence of propagation ('reassess every member on its own checks'). It is much clearer than a tautology, but it never names a sibling like record_run_calibration_review or record_gate_result to sharpen the boundary between the several 'record_*' tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the domain context (you have a cluster from the adjudication queue and are recording a decision), but the description offers no explicit when-to-use / when-not guidance. It does not tell the agent when to prefer this over split_review_cluster, decide_approval, or the queue/inspection reads.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_run_calibration_reviewAIdempotentInspect
Record one immutable calibration answer against the exact active publication and question. Reuse the same idempotencyKey when retrying a lost response.
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | ||
| notes | No | ||
| target | Yes | Exact target returned by get_run_calibration_review | |
| correction | No | Required when label is incorrect; otherwise empty is allowed | |
| customerId | No | (Converra superadmin only) Target customer ID | |
| conversationId | Yes | ||
| idempotencyKey | Yes | Stable key for this logical answer and all transport retries | |
| expectedPublication | Yes | ||
| expectedQuestionStateHash | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and readOnlyHint=false; the description adds meaningful context beyond them by stating the answer is immutable and by signaling optimistic-concurrency semantics via 'exact active publication and question'. It does not say what happens on a stale publication (error vs. rejection), which would complete the picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, each earning its place: the first defines the operation and its immutability/concurrency constraint, the second covers retry behavior. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutation with 44% schema coverage and no output schema, the description covers purpose and idempotency but omits conflict/stale-publication behavior, permission requirements (the superadmin-only customerId), and the required-when-incorrect correction rule, which lives only in the schema text.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 44% across 9 parameters. The description adds meaning for idempotencyKey and gestures at expectedPublication/expectedQuestionStateHash, but leaves label enum semantics, correction, customerId, and the target object unexplained. Baseline 3 is appropriate for partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: records one immutable calibration answer tied to the exact active publication and question. This clearly distinguishes it from get_run_calibration_review, but it never explicitly contrasts with the sibling record_review_decision, which an agent could plausibly confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The retry guidance ('reuse the same idempotencyKey when retrying a lost response') is a real usage rule, but there is no when-to-use/when-not framing against alternatives, and the dependency on first calling get_run_calibration_review is only implied by the target field description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_training_jobAInspect
Record the intent to train one candidate on the project's frozen dataset version: base model, method and the spend cap it will run under. Trains nothing and spends nothing — spend needs an approved training_spend approval (request_approval, then a human or an approve-scoped key decides it), and the runner outside the app is what trains. One candidate plus one diagnosed rerun per project; the rerun needs rerunReason. Scope: write.
| Name | Required | Description | Default |
|---|---|---|---|
| capUsd | Yes | Spend cap this job will run under, in USD (max 1000) | |
| method | Yes | Training method, e.g. lora (1-60 characters) | |
| baseModel | Yes | Provider base model id (1-200 characters) | |
| projectId | Yes | Fine-tuning project ID from list_fine_tuning_projects | |
| customerId | No | (Converra superadmin only) Target customer ID | |
| rerunReason | No | Required for the second attempt: the diagnosed execution defect (1-500 characters) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false and destructiveHint=false; the description adds substantial context beyond that — this call trains nothing and spends nothing, spending is gated behind an approval flow, and the job is capped at one candidate plus one diagnosed rerun. That is real behavioral disclosure an agent cannot get from the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence and each following sentence carries a distinct constraint (no train/spend, approval path, rerun limit). Slight redundancy remains, e.g. 'Scope: write' only echoes the readOnlyHint=false annotation, keeping it just short of exemplary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter write tool with no output schema, the description covers purpose, non-effects, approval gating and cardinality limits well. It does not indicate what the call returns or how to follow up (e.g. get_training_job), which is a minor gap given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including capUsd, method, projectId, customerId and rerunReason is already documented in the schema. The description restates the field list and the rerunReason requirement without adding format or edge-case detail, so it sits at the baseline for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource ('Record the intent to train one candidate on the project's frozen dataset version') and enumerates the recorded fields (base model, method, spend cap). It is clearly distinct in substance from get_training_job and update_training_job_facts, but it never names a sibling, so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit prerequisites and alternatives: spend requires an approved training_spend approval via request_approval decided by a human or an approve-scoped key, and the actual training happens in an external runner. It also states the cardinality rule (one candidate plus one diagnosed rerun) and that the rerun requires rerunReason, so the agent knows the preconditions before calling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_agent_analysisADestructiveInspect
Refresh the structural analysis of an agent's system prompt (strengths, weaknesses, opportunities, quality metrics). Use this when the agent's prompt has changed or you need to re-evaluate its structure.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Force refresh even if recently analyzed (default: false) | |
| agentId | Yes | The ID of the agent to refresh analysis for | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=true, and while the description's 'Refresh' is consistent with a mutation, it never explains why the operation is destructive — whether prior analysis is overwritten, what is lost, or that re-analysis consumes resources. It adds domain context about the analysis contents but nothing about mutation side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and resource, followed immediately by the usage condition. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description is not expected to explain return values. The main gap is behavioral: for a tool flagged destructive with a force parameter, the description never says what gets overwritten or what 'force' guards against doing to existing state, leaving a meaningful ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (force, agentId, customerId) are already documented in the schema. The description adds no parameter-level meaning beyond that, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Refresh) and resource (structural analysis of an agent's system prompt), with a parenthetical that enumerates what the analysis contains (strengths, weaknesses, opportunities, quality metrics). This differentiates it reasonably from adjacent tools like refresh_agent_insights or analyze_agent, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the triggering condition: 'when the agent's prompt has changed or you need to re-evaluate its structure.' Clear context for invocation. However, it names no alternative tool and gives no when-not guidance (e.g., versus analyze_agent or refresh_agent_insights).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_agent_insightsADestructiveInspect
Regenerate aggregated agent insights from run data (success/failure patterns, run metrics, performance trends). Use this after runs have been added or run insights regenerated.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The ID of the agent to refresh insights for | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| timeFilter | No | Time window for insights (default: 30d) | |
| forceRegeneration | No | Force regeneration even if recent insights exist (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the agent knows this overwrites state. The description adds the source of the aggregation (run data) but does not disclose the destructive scope — that existing insights are replaced — or any cost/latency implications of regeneration. It adds context but not the behavioral detail that matters most for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler: the action and data source come first, the trigger condition second. The parenthetical enumeration is informative rather than redundant, though the sentence could be marginally tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must imply the return but instead focuses on the operation and trigger, which is reasonable for a regeneration call. For a destructive, 4-parameter mutation it leaves the overwrite semantics and inter-sibling routing implicit, but covers the essential trigger and data source.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (including the superadmin-only customerId, the timeFilter enum, and forceRegeneration) are already documented in the schema. The description only implies that inputs scope run data and adds no syntax or defaulting nuance beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Regenerate) plus the resource (aggregated agent insights derived from run data) and enumerates the insight contents. It does not distinguish itself from close siblings such as regenerate_run_insights, refresh_agent_analysis, or batch_regenerate_insights, so the agent must infer scope differences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this after runs have been added or run insights regenerated" gives a concrete triggering condition. It stops short of naming alternatives or when-not-to-use conditions (e.g. when batch_regenerate_insights or refresh_agent_analysis is the better call), so routing among siblings is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_fleet_intelligenceADestructiveInspect
Force-refreshes persisted fleet intelligence and returns the newly written snapshot. Use when get_fleet_intelligence reports stale or missing trend confidence, or when a recent ingestion needs the fleet-level report recomputed immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | (Converra superadmin only) Target customer ID | |
| timeFilter | No | Window to regenerate (default: 30d) | |
| regenerateFullInsights | No | Force a full narrative regeneration instead of preserving reusable sections |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation profile is known. The description confirms it is a write ('returns the newly written snapshot') but never explains what the destructive refresh overwrites, whether previously generated sections are lost, or whether the operation is idempotent/reversible. It also omits that the customerId path requires superadmin rights (that detail exists only in the schema), so it adds limited context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler: the action and its return are front-loaded, followed immediately by the triggering conditions. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by stating that the newly written snapshot is returned, and the parameter surface is fully documented in the schema. The remaining gap is behavioral: for a destructive refresh the agent is not told what is overwritten or whether recomputation is expensive, which is the one thing missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the schema already documents all three parameters including the superadmin caveat, the timeFilter enum, and the effect of regenerateFullInsights. The description adds only the vague notion of a 'fleet-level report' and does not clarify parameter trade-offs or defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource pair ('Force-refreshes persisted fleet intelligence') and states the return ('the newly written snapshot'), which is far from a tautology. It implies fleet-level scope versus the agent-level 'refresh_agent_analysis'/'refresh_agent_insights' siblings, but never names or explicitly contrasts with them, so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies two concrete trigger conditions: 'get_fleet_intelligence reports stale or missing trend confidence' and 'a recent ingestion needs the fleet-level report recomputed immediately', explicitly naming the read counterpart the agent should check first. That is a clear when-to-use plus the alternative, with nothing left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regenerate_run_insightsADestructiveInspect
Regenerate insights for a single run. Use this when a run's insights are missing, incorrect, or need to be refreshed. The regeneration happens asynchronously.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Regenerate even if valid insights already exist; existing insights are overwritten on success, not deleted first (default: false) | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| conversationId | Yes | The ID of the run to regenerate insights for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, and the description adds a non-obvious trait: the regeneration is asynchronous. It also indirectly explains the overwrite behavior via the force param. It does not contradict the destructive annotation and adds real behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences, front-loaded with the action and immediately followed by the trigger condition. No redundant restatement of the name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, trigger, and async nature, but for a tool with no output schema and asynchronous execution it omits how to retrieve the regenerated results (e.g., get_run_insights) or how to poll status. Adequate but leaves a real gap for an async mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters (conversationId, force, customerId) are fully documented in the schema, including the overwrite semantics of force. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Regenerate) and resource (insights) with scope explicitly bounded to 'a single run', which cleanly separates it from the sibling batch_regenerate_insights. An agent can identify what it does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear trigger conditions ('missing, incorrect, or need to be refreshed') for when to invoke it. It stops short of naming the alternative (batch_regenerate_insights) or stating when not to use it, so it lacks explicit sibling routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regression_testAInspect
Run regression test for a prompt variant against its golden test suite. Tests the variant against pre-validated scenarios with known success criteria to ensure it doesn't break existing functionality. Returns pass/fail status per scenario with fluke detection for suspected regressions. If no golden suite exists, one will be automatically generated from prompt analysis. Three ways to specify the variant: (1) variantPrompt — full prompt content; (2) variantPromptId — reference an existing stored prompt; (3) variantOverrides — array of find/replace ops applied on top of promptId's content.
| Name | Required | Description | Default |
|---|---|---|---|
| promptId | Yes | The agent ID that has a golden regression suite. Required. | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| variantPrompt | No | The variant system prompt content to test. Use this OR variantPromptId OR variantOverrides. | |
| variantPromptId | No | Alternative to variantPrompt: ID of stored agent to use as variant. | |
| variantOverrides | No | Construct the variant by applying find/replace overrides on top of promptId's content. Avoids sending the full prompt when the change is small. Each override's `find` string must occur exactly once in the prompt (after prior overrides have been applied) — multiple or zero matches throw a validation error. Order matters: each find runs against the result of prior overrides. Anchors are case-sensitive and match any substring (including inside larger words) — include surrounding whitespace/punctuation to disambiguate short anchors. Example: [{find: "Be concise.\n", replace: "Be concise and warm.\n"}]. Use this OR variantPrompt OR variantPromptId. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations only declaring readOnlyHint=false and destructiveHint=false, the description adds real behavioral context: an implicit side effect (a golden suite is auto-generated if none exists), fluke detection for suspected regressions, and a per-scenario pass/fail return shape. It stops short of covering permissions, cost, or latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and intent, then the enumeration of variant modes. Dense but each clause carries information; the only mild redundancy is restating the return/pass-fail behavior already implied by the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by describing the return payload (pass/fail per scenario plus fluke detection) and the auto-generation side effect. Combined with full schema coverage of parameters, an agent has what it needs to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter guidance the schema cannot: the three variant-specification modes and their mutual exclusivity. It still defers per-param semantics (e.g., customerId scoping) to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Run regression test for a prompt variant against its golden test suite') and immediately frames the intent — protecting existing functionality. It is clearly distinguishable from siblings like validate_variant, get_regression_suite, or add_regression_scenarios.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear context for use ('ensure it doesn't break existing functionality') and explains the three mutually exclusive ways to specify a variant. It does not, however, explicitly contrast this tool with the nearest alternatives such as validate_variant or get_regression_suite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_approvalAInspect
Ask for one of the two fine-tuning approvals. training_spend names the job and the cap being approved (it must equal the job's own cap); production_switch needs a job with a passing protected gate verdict and a servable model, and takes jobId only when more than one candidate qualifies. Executes nothing and decides nothing: the request waits for decide_approval. Scope: write.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Context for whoever decides (max 500 characters) | |
| jobId | No | Required for training_spend; optional for production_switch | |
| scope | Yes | ||
| capUsd | No | Required for training_spend: the cap being approved, in USD | |
| projectId | Yes | Fine-tuning project ID from list_fine_tuning_projects | |
| customerId | No | (Converra superadmin only) Target customer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false/destructiveHint=false. The description adds substantive behavior: it 'Executes nothing and decides nothing' and the request waits for decide_approval, clarifying it is a non-side-effecting write-pending action, plus prerequisite gates for each scope. This is real value beyond the annotations, with no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the core purpose and then per-scope rules and the downstream handoff. No wasted prose, though the packed phrasing requires careful reading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter write tool with no output schema, the description covers prerequisites, the two scopes, and the follow-up flow well. Minor gaps remain on the note and superadmin-only customerId semantics, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (83%), so baseline is 3, but the description adds constraints the schema lacks: capUsd must equal the job's own cap, and jobId for production_switch is conditional on more than one qualifying candidate. That meaningfully supplements the schema without fully documenting note/customerId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Ask for one of the two fine-tuning approvals') and enumerates the two scopes (training_spend, production_switch). It explicitly names the downstream decision tool decide_approval, so an agent can distinguish it from siblings without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit per-scope conditions: training_spend requires jobId and a cap equal to the job's own cap; production_switch needs a passing protected gate verdict and a servable model, with jobId only when multiple candidates qualify. It also routes the agent to decide_approval for the actual decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rollback_production_testADestructiveInspect
Roll back a running, decided, or inconclusive production A/B test.
| Name | Required | Description | Default |
|---|---|---|---|
| customerId | No | (Converra superadmin only) Target customer ID | |
| productionTestId | Yes | The production test ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this mutates state. The description adds the eligibility states, but does not say whether the rollback is reversible, what happens to live traffic or decisions, or whether it requires elevated permissions beyond the schema's superadmin hint. With annotations carrying the safety profile, partial credit for the state qualifier.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. The eligible states are embedded efficiently without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate minimum for a 2-param destructive mutation: purpose and eligible states are clear, and the destructive hint is covered by annotations. However, no output schema exists and the description says nothing about the result of a rollback or recovery options, leaving gaps for a destructive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are documented, including the superadmin-only customerId. The description adds no syntax or format details beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (roll back) and resource (production A/B test), and qualifies the states it applies to (running, decided, inconclusive). It is distinguishable from siblings like promote_production_test or start_production_test by its verb, though it does not name the inverse tool explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'running, decided, or inconclusive' implies which test states are eligible for rollback, which is useful qualifier context. But it never states when to prefer rollback vs. alternatives such as promote_production_test, nor does it spell out prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulate_ab_testAInspect
Start async A/B simulation test comparing two agent configurations. Executes multi-turn simulated conversations for BOTH configurations against identical personas and scenarios, then compares performance metrics. Returns a jobId immediately - use get_simulation_status to poll for results. Three ways to specify the variant: (1) variantPrompt — full prompt content; (2) variantPromptId — reference an existing stored prompt; (3) variantOverrides — array of find/replace ops applied on top of the resolved baseline (no need to send full content, server applies the diff). Same for baseline (variantOverrides has no baseline equivalent — baseline must come from baselinePrompt or baselinePromptId).
| Name | Required | Description | Default |
|---|---|---|---|
| runId | No | Provider run ID for the runtime context snapshot. Required with conversationId when runtimeContextId is not provided. | |
| maxTurns | No | Maximum turns per conversation (default: 10) | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| personaCount | No | Total number of personas to use | |
| scenarioCount | No | Total number of scenarios to use | |
| variantPrompt | No | The challenger agent's full system prompt content. Use this OR variantPromptId OR variantOverrides. | |
| baselinePrompt | No | The baseline agent's system prompt content. Either this or baselinePromptId must be provided. | |
| conversationId | No | Conversation ID containing the runtime context snapshot. Required with runId when runtimeContextId is not provided. | |
| simulationType | No | Simulation type: standard, context_grounded_probe (one-turn context probe), or context_grounded_dialogue (multi-turn context-grounded dialogue). Context-grounded types require baselinePromptId plus runtimeContextId or conversationId with runId. | |
| includePersonas | No | Optional specific personas to include | |
| variantPromptId | No | Alternative to variantPrompt: ID of stored agent to use as variant. | |
| baselinePromptId | No | Alternative to baselinePrompt: ID of stored agent to use as baseline. Also fetches LLM settings. | |
| includeScenarios | No | Optional specific scenarios to include | |
| runtimeContextId | No | Runtime context snapshot ID to bind for both A/B arms. Use this OR conversationId with runId. | |
| variantOverrides | No | Construct the variant by applying find/replace overrides on top of the resolved baseline content. Avoids sending the full prompt when the change is small. Each override's `find` string must occur exactly once in the prompt (after prior overrides have been applied) — multiple or zero matches throw a validation error. Order matters: each find runs against the result of prior overrides. Anchors are case-sensitive and match any substring (including inside larger words) — include surrounding whitespace/punctuation to disambiguate short anchors. Example: [{find: "Be concise.\n", replace: "Be concise and warm.\n"}]. Use this OR variantPrompt OR variantPromptId. | |
| conversationsPerPersona | No | Conversations per persona (default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the safety profile (readOnlyHint=false, destructiveHint=false); the description adds the async contract (returns jobId immediately, poll via get_simulation_status), the multi-turn/both-arms execution model, and a validation-failure behavior ('multiple or zero matches throw a validation error'). This is substantive context beyond structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose, async behavior, and polling pointer before the denser variant-specification detail, so the critical routing info is early. The trailing parenthetical about the baseline constraint is slightly run-on but earns its place by closing a real ambiguity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter tool with no output schema and no required params, the description supplies the missing return semantics (jobId) and the conditional-requirement logic (runId+conversationId, baselinePrompt vs baselinePromptId, context-grounded type prerequisites). It leaves some interactions implicit, but is adequate to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage the baseline is 3, but the description adds real value by explaining parameter relationships the schema only states individually: the three-way variant choice, the resolved-baseline layering, and that variantOverrides has no baseline counterpart so baseline must come from baselinePrompt or baselinePromptId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Start async A/B simulation test comparing two agent configurations' — and its scope (BOTH arms, identical personas/scenarios) distinguishes it from single-agent siblings like simulate_agent and benchmark_models. An agent can identify it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to get_simulation_status for polling results, and enumerates the three mutually exclusive variant-specification paths with conditions ('no need to send full content, server applies the diff'). It also states the baseline constraint (no variantOverrides equivalent). It does not explicitly say when to prefer this over simulate_agent, so no full exclusion set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulate_agentAInspect
Start async simulated conversations to test how your agent performs against auto-generated or specified personas and scenarios. Returns a jobId immediately - use get_simulation_status to poll for results.
| Name | Required | Description | Default |
|---|---|---|---|
| runId | No | Provider run ID for the runtime context snapshot. Required with conversationId when runtimeContextId is not provided. | |
| prompt | No | The agent's system prompt content to test. If omitted, content is fetched from promptId. | |
| maxTurns | No | Maximum turns per conversation (default: 10) | |
| promptId | No | Agent ID. Used to fetch prompt content (if prompt is omitted) and LLM settings (temperature, maxTokens, etc.) | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| personaCount | No | Total number of personas to use (default: 3) | |
| scenarioCount | No | Total number of scenarios to use (default: 3) | |
| conversationId | No | Conversation ID containing the runtime context snapshot. Required with runId when runtimeContextId is not provided. | |
| simulationType | No | Simulation type: standard, context_grounded_probe (one-turn context probe), or context_grounded_dialogue (multi-turn context-grounded dialogue). Context-grounded types require promptId plus runtimeContextId or conversationId with runId. | |
| includePersonas | No | Optional specific personas to include (system will generate the rest) | |
| includeScenarios | No | Optional specific scenarios to include (system will generate the rest) | |
| runtimeContextId | No | Runtime context snapshot ID to bind for context-grounded simulations. Use this OR conversationId with runId. | |
| conversationsPerPersona | No | Conversations per persona (default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the write-but-non-destructive profile is already known. The description adds meaningful behavior beyond that: the call is asynchronous, returns a jobId immediately rather than results, and therefore requires polling. It doesn't cover auth or scale/rate behavior, but the async lifecycle disclosure is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler: the action and its scope come first, and the async return plus polling instruction follow. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter tool with no output schema and no required fields, the description compensates by disclosing the async return value (jobId) and the polling path. It leaves the runId/conversationId/runtimeContextId interlock to the schema, which is acceptable since those are fully documented there.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with 13 well-documented parameters, so the schema already carries parameter meaning. The description only loosely gestures at the persona/scenario inputs ('auto-generated or specified personas and scenarios') without adding syntax or constraint detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (start) and resource (simulated conversations) plus the goal (test agent performance against personas and scenarios), which is concrete and distinguishable in substance. It does not explicitly differentiate itself from adjacent simulation/testing siblings like simulate_ab_test, start_model_test, or start_production_test, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent the follow-up workflow ('use get_simulation_status to poll for results'), which is genuinely useful operational guidance. However, it gives no when-to-use vs. when-not guidance relative to the other simulation/test tools, so the alternative-selection dimension is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
split_review_clusterAInspect
Split an undecided cluster by one more condition, when its members are not actually one behavior. The parent is superseded by its children; decide on the children afterwards. Reversible in the sense that nothing is deleted — the parent and its children are all retained.
| Name | Required | Description | Default |
|---|---|---|---|
| clusterId | Yes | Cluster ID from get_adjudication_queue or get_dataset | |
| customerId | No | (Converra superadmin only) Target customer ID | |
| conditionKey | Yes | The condition to split on. It must be one of the dataset's splitConditionKeys and must take more than one value across the cluster's members. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds the crucial post-state semantics beyond that — the parent is superseded by its children, the children must be decided afterward, and nothing is deleted. This explains the mutation's effect and its reversibility, precisely the kind of context structured fields do not carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and trigger, followed by outcome and reversibility. Every sentence earns its place; the final clause is slightly redundant with 'the parent and its children are all retained' restating 'nothing is deleted,' but it is efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must convey the result state — and it does, explaining that the parent is superseded and children are retained. Combined with the post-step instruction, an agent has enough to invoke correctly; only the interaction with sibling decision tools is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents clusterId, customerId, and conditionKey fully. The phrase 'one more condition' reinforces that conditionKey introduces an additional split dimension, but the description adds no syntax or validation detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Split an undecided cluster by one more condition') and frames the domain clearly via 'undecided cluster', which ties it to the adjudication/review flow among siblings like get_adjudication_queue and record_review_decision. An agent can tell what it operates on and what it produces without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger condition: use it 'when its members are not actually one behavior.' It also states the follow-up workflow ('decide on the children afterwards'), which is genuine usage guidance. It stops short of naming alternative tools (e.g. record_review_decision) explicitly, so it is clear context but not full when-vs-alternatives routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_model_testAInspect
Start a production A/B test that changes only the model: the agent's current instruction runs on a second model and the cheaper one ships only if it holds quality. No optimization is required. The variant arm is delivered to the SDK, which must be configured to serve the target model (same-client override or a resolveModel hook). Promotion switches the agent's model and the deployment is verified as a model swap on fresh traffic.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The agent whose model is being tested | |
| customerId | No | (Converra superadmin only) Target customer ID | |
| targetModel | Yes | Provider model id the variant arm runs on, for example gpt-5.6-mini or accounts/<account>/models/<model>. Not validated against the catalog. | |
| scoreDefinition | No | Production score contract: gated_v1 (default) or artifact_v1 for saved artifact base scores. | |
| trafficAllocation | No | Percent of user traffic entering the test, 1-100. Default: 10. | |
| variantPercentage | No | Percent of in-test traffic assigned to variant, 1-99. Default: 50. | |
| minScoredConversationsPerArm | No | Scored runs each arm needs before the parity rule may decide. Default: 300; minimum 30 (the post-swap verifier's cohort floor). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds real behavioral context beyond that — the variant arm is handed to the SDK with a configuration requirement, promotion switches the agent's model, and deployment is verified as a model swap on fresh traffic. It does not cover failure modes or whether a started test can be abandoned, but for a non-destructive mutating tool this is meaningfully richer than the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each carrying distinct information (what it does, that no optimization is needed, what happens on promotion), with the core action front-loaded. The SDK-configuration sentence is slightly dense for a description but earns its place as a precondition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no output schema, the description covers the essential lifecycle: what starts, the SDK-side requirement, and what promotion does. Nothing critical to invoking it correctly is missing, though the outcome of the test decision (parity rule, scoring thresholds) is only hinted at via the parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each of the seven parameters is documented in-schema, so the heavy lifting is already done. The description adds only conceptual framing ('a second model', 'the cheaper one ships'), with no extra guidance on trafficAllocation, variantPercentage, or minScoredConversationsPerArm semantics, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (start a production A/B test) and immediately narrows the scope to a model-only change ('changes only the model'), which is the exact distinction from the sibling start_production_test. An agent can pick between the two test-starting tools without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context: 'No optimization is required', and explains the prerequisite that the SDK must be configured to serve the target model via a same-client override or resolveModel hook. It stops short of explicitly naming the alternative (start_production_test or an optimization-driven flow) as the choice for quality-improving changes, so the when-not is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_production_testAInspect
Start a production A/B test for a completed optimization. v0.5 is SDK-only and uses manual promote/rollback.
| Name | Required | Description | Default |
|---|---|---|---|
| processId | Yes | The completed optimization process ID | |
| variantId | No | Variant prompt ID to test. Defaults to final winner when omitted. | |
| customerId | No | (Converra superadmin only) Target customer ID | |
| scoreDefinition | No | Production score contract: gated_v1 (default) or artifact_v1 for saved artifact base scores. | |
| trafficAllocation | No | Percent of user traffic entering the test, 1-100. Default: 10. | |
| variantPercentage | No | Percent of in-test traffic assigned to variant, 1-99. Default: 50. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds non-obvious operational context beyond that: v0.5 is SDK-only and the test lifecycle uses manual promote/rollback, telling the agent this call does not auto-promote the winner. It still says nothing about side effects on live traffic or what state the test enters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and prerequisite, with the version caveat appended. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter mutation tool with no output schema, it covers purpose, prerequisite, and the manual lifecycle model, and the schema handles all parameter detail. It could go further by pointing to get_production_test for monitoring or naming promote/rollback tools directly, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter (variantId default winner, customerId superadmin-only, scoreDefinition enum, trafficAllocation, variantPercentage) is documented in the schema itself. The description adds no syntax, defaults, or constraints beyond it, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Start a production A/B test') plus a prerequisite ('for a completed optimization'), which separates it from simulate_ab_test and start_model_test at a glance. It never names those siblings explicitly, so differentiation relies on inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The prerequisite 'for a completed optimization' implies when the tool is applicable, and the v0.5 note hints that promotion is a separate manual step. But it gives no explicit when-not guidance or routing to simulate_ab_test for pre-production testing, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_optimizationBDestructiveInspect
Stop a running optimization process
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Optional reason for stopping (logged for debugging) | |
| processId | Yes | The optimization process ID to stop | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not say what stopping does to partial results, whether the optimization can be resumed, whether in-flight work or billing is lost, or what state the process is left in.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the verb front-loaded and zero filler. Nothing is wasted, though there is very little content to begin with.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full annotations and full schema coverage, the definition is minimally adequate to invoke the tool. But for a destructive mutation it omits what the agent would want to know before calling it – the effect on the running optimization and whether the action is reversible.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents processId, reason, and the superadmin-only customerId. The description adds no parameter meaning beyond the schema, which is the expected baseline 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (stop) and resource (a running optimization process), so the agent knows exactly what the tool does. However, it does not differentiate from close siblings such as delete_optimization or trigger_optimization, leaving the agent to infer the stop-vs-delete distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'running' implies the tool applies to in-flight processes, but there is no explicit when-to-use guidance, no statement of prerequisites (e.g. you need the processId of an active run), and no mention of the alternative delete_optimization for terminating a process permanently.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_context_from_urlBDestructiveInspect
Extract business context (industry, objectives) from a company website URL. Uses AI to analyze the website content and automatically populates the customer's business context fields. This helps the optimization agent understand the business better.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The company website URL to extract context from (e.g., 'https://example.com') | |
| overwrite | No | If true, overwrite existing context values. If false (default), only fill empty fields. | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context that annotations don't carry: the analysis is AI-driven and it mutates the customer's business context fields. However, it never flags that this can destroy existing data, even though destructiveHint=true, and the overwrite semantics are left entirely to the schema parameter. No mention of latency, cost, failure behavior when a URL is unreachable, or whether the result is deterministic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with the action stated first and supporting rationale afterward. The final sentence is somewhat filler for an agent, but nothing is redundant or bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, AI-backed mutation with no output schema, the description covers what is extracted but omits what the caller gets back, what happens to pre-existing values (beyond the schema's overwrite flag), and error paths. Annotations plus a fully documented schema keep it serviceable, but the prose leaves the agent guessing about post-call state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so url, overwrite, and customerId are all fully documented in the schema, including the destructive overwrite semantics and the superadmin restriction. The description adds only the target field names (industry, objectives), which is marginal beyond what the schema already conveys, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource -- extract business context (industry, objectives) from a company website URL -- and even specifies the extracted fields, so an agent knows exactly what it does. It doesn't explicitly contrast itself with any sibling, but no near-duplicate exists in the tool list (get_settings/update_settings are the closest manual alternatives and are never referenced).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied via the rationale 'This helps the optimization agent understand the business better', which hints at the scenario but never states when to call it, what prerequisites exist (e.g., customer must already exist), or when manual context entry is preferable. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_runsADestructiveInspect
Sync runs from an external integration source (e.g., LangSmith, Langfuse). The integration must be configured first. Use list_integrations to find available integrations. Optionally configure auto-sync settings.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | The integration source to sync from | |
| maxTraces | No | Maximum number of traces to sync (default: 500, max: 2000) | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| fullResync | No | Re-import sessions that already exist (clears the sync watermark and skips the exists-check) and REGENERATE their insights. Use with maxConversations to bound scope. | |
| lookbackDays | No | How many days back to sync (default: 30) | |
| enableAutoSync | No | Enable automatic syncing of new runs | |
| maxConversations | No | Cap on runs imported/re-imported this run (10-200) | |
| syncIntervalMinutes | No | Auto-sync interval: 60 (hourly), 360 (6h), 720 (12h), 1440 (daily). Default: 1440 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds the configuration prerequisite, which is useful context, but never elaborates the destructive consequences (re-importing sessions, regenerating insights) that the fullResync param actually carries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences with the core action front-loaded and the prerequisite immediately after. Efficient, with no meaningful padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive ingest tool with no output schema, it covers the action, the source requirement, the discovery path, and mentions auto-sync configuration. Return behavior isn't described, but is minor given rich parameter docs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the param descriptions themselves document defaults, bounds, and the destructive fullResync behavior. The description only gestures at source types and auto-sync settings, so it adds little beyond the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Sync) plus resource (runs) and the source class (external integration such as LangSmith/Langfuse). Clear enough to distinguish from read siblings like list_runs, though it does not explicitly contrast with the nearby sync_context_from_url.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete prerequisite ('The integration must be configured first') and routes the agent to list_integrations to discover valid sources. Lacks an explicit when-not/alternative clause, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trigger_optimizationAInspect
Start a new optimization process for an agent. Returns the optimization process ID.
IMPORTANT PREREQUISITES (optimization will fail without these):
RUNS REQUIRED: The agent must have run transcripts uploaded via create_run. Optimization analyzes real user/AI dialogues to improve the agent - it cannot run without them.
Business context (industry and/or objectives) must be set via sync_context_from_url or update_settings.
You can either:
Use an existing agent: provide agentId
Auto-create a new agent: provide prompt + agentName + llmModel
When auto-creating, the agent will be created and activated automatically before optimization starts. NOTE: Even with auto-create, you must still upload runs using create_run before triggering optimization.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Optimization mode: 'validation' for statistical rigor, 'exploratory' for faster iteration (default: exploratory) | |
| intent | No | Optional optimization intent to guide the process | |
| prompt | No | The agent's system prompt content to optimize. Required if agentId is not provided. | |
| agentId | No | The ID of an existing agent to optimize. If not provided, use prompt + agentName + llmModel to auto-create. | |
| llmModel | No | LLM model for the auto-created agent (e.g., 'gpt-4o', 'claude-sonnet-5-5', 'o1'). Required if using prompt content. | |
| agentName | No | Display name for the auto-created agent. Required if using prompt content instead of agentId. | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| personaIds | No | Specific persona IDs to test against (use list_personas to find IDs) | |
| variantCount | No | Number of variants to generate and test (default: 3, max: 5) | |
| customVariants | No | Custom variant content to test. Each variant needs either 'content' (full prompt) or 'diff' (unified diff patch applied to baseline). | |
| simulationType | No | Simulation policy override. Context-grounded modes require eligible runtime context for this exact agent prompt. | |
| agentDescription | No | Optional description for the auto-created agent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations establish a non-read-only, non-destructive mutation. The description adds meaningful behavioral detail beyond that: the sequencing prerequisites, the failure mode when runs are absent, and the auto-activation behavior when an agent is auto-created. It stops short of describing process duration, async/polling behavior, or what the returned ID is used for.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and return value are front-loaded, then prerequisites are ranked as numbered rules. Slight redundancy: the runs requirement is stated both in prerequisite 1 and repeated in the trailing NOTE, which costs a little tightness without much added clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter, nested-object, zero-required mutation tool with no output schema, the description covers the invocation paths, prerequisites, and the returned ID. It omits how to monitor the started process (though get_optimization_details exists as a sibling), which is a minor gap rather than a blocking one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the schema already documents all 12 parameters. The description goes beyond it by explaining the conditional relationship between agentId and the prompt/agentName/llmModel group, which is the key parameter-selection decision an agent must make.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Start a new optimization process for an agent') and its primary side effect (returns the optimization process ID). It is clearly distinguished from siblings like stop_optimization, get_optimization_details, and list_optimizations without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists prerequisites (runs uploaded via create_run; business context via sync_context_from_url or update_settings) and states optimization fails without them. It also enumerates the two invocation paths (existing agentId vs auto-create via prompt+agentName+llmModel) and clarifies that runs are required even for auto-create.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_agentCDestructiveInspect
Update an existing agent's system prompt or settings
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New display name | |
| tags | No | New tags | |
| status | No | Agent status | |
| agentId | Yes | The ID of the agent to update | |
| content | No | New system prompt content | |
| isActive | No | Whether the agent is active | |
| llmModel | No | LLM model to use | |
| objective | No | Business objective | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| constraints | No | What must NOT change during optimization - required structural elements or output formats | |
| description | No | New description | |
| temperature | No | Temperature setting (0-2) | |
| technicalNotes | No | Engineering rationale explaining why the agent's prompt is structured this way | |
| customEvaluations | No | Agent-level custom evaluation criteria (overrides org-level). Max 5. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is covered structurally. The description adds essentially nothing behavioral beyond that: it never says whether this is a partial or full overwrite, what happens to omitted fields, or which fields are destructive to change, which matters for a 14-parameter mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is appropriately compact, though the compactness comes at the cost of completeness rather than being a model of efficient richness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive 14-parameter mutation with no output schema, the description mentions only two conceptual targets (system prompt, settings) and omits update semantics, partial-update behavior, and the existence of most tunable fields. Annotations and schema carry the load, but the description is too thin for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 14 parameters are already documented in the schema, setting the baseline at 3. The description only gestures at 'system prompt or settings' and adds no syntax, format, or interaction details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Update) and resource (agent) and narrows scope to 'system prompt or settings', which separates it from create_agent and delete_agent. However, 'settings' is vague and undersells the actual breadth of the 14 updatable fields (tags, status, temperature, customEvaluations), so it is clear but not fully precise against siblings like analyze_agent or refresh_agent_analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and names no alternative tool. It only implies that this is the mutation counterpart to create_agent/delete_agent, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_personaBDestructiveInspect
Update an existing persona's name, description, or tags
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New persona name | |
| tags | No | New tags | |
| personaId | Yes | The persona ID to update | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| description | No | New description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the agent knows this is a mutating operation. The description adds which fields are editable but does not disclose whether omitted fields are preserved (partial update) or cleared (full replacement) — an important gap for a tool flagged destructive. With annotations covering the safety profile, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with no filler and the resource/fields front-loaded. Efficient, though it does nothing more than state the obvious.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter mutation tool with no output schema, the description is minimally adequate: it names the resource and mutable fields but omits partial-vs-full update semantics and never mentions the customerId acting-on-behalf parameter. The schema compensates on parameters, keeping this at a viable 3.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter (including the superadmin-only customerId) is documented in the schema. The description echoes the three editable fields but adds no format, validation, or semantics beyond what the schema already provides. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Update) and resource (persona) plus the mutable fields, which cleanly separates it from create_persona, get_persona, and list_personas. It stops short of explicitly naming those siblings, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'existing' implies the persona must already exist, but there is no explicit when-to-use guidance, no pointer to get_persona/list_personas for obtaining a personaId, and no statement of when this is preferred over related tools. Usage is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_settingsADestructiveInspect
Update account settings. Only provided fields will be updated.
| Name | Required | Description | Default |
|---|---|---|---|
| general | No | General account settings | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| optimization | No | Optimization settings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation/destructive profile is covered. The description usefully adds the merge semantic ('Only provided fields will be updated'), but says nothing about what a partial update does to nested objects, whether overwriting customEvaluations or excludedDataAndTopics is recoverable, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no filler. The scope statement comes first and the merge caveat second; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter settings mutation with 100% schema coverage and no output schema, the description plus annotations plus schema give an agent enough to invoke correctly. The merge caveat is the key behavioral detail and it is supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every nested field is documented in the schema, so baseline 3 applies. The description adds no parameter-level meaning and does not clarify the ambiguous merge behavior for the nested 'general' and 'optimization' objects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb + resource ('Update account settings') clearly states the operation, and the partial-update clause adds scope. It never names the sibling get_settings or the update_agent/update_webhook/update_persona peers, so an agent must infer the boundary itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no mention of the read counterpart get_settings, and no prerequisites or permission context. The superadmin-only nature of customerId is disclosed only inside the schema, not in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_training_job_factsAInspect
Report a job's independent facts: status, endpoint cleanup, spend, servable model id, provider job ref, receipts. Only the fields sent are touched. Facts that mean money is being spent (training/evaluating status, spend, model id, provider ref) are refused without an approved training_spend record, spend is bound to the approved cap, and status and cleanup only move forward. The gate outcome is not settable here. For the training runner's key. SCOPE: runner — held literally; write, admin and superadmin keys cannot call it.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Training job ID | |
| spend | No | ||
| status | No | ||
| receipts | No | Merged by kind and reference; earlier receipts are kept (max 32 per report) | |
| projectId | Yes | Fine-tuning project ID from list_fine_tuning_projects | |
| customerId | No | (Converra superadmin only) Target customer ID | |
| providerJobRef | No | ||
| servingModelId | No | accounts/<account>/models/<model>; write-once | |
| endpointCleanup | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only supply readOnlyHint=false and destructiveHint=false. The description adds substantial behavior: partial-update semantics ('Only the fields sent are touched'), a hard authorization gate (money-spending facts refused without an approved training_spend record), spend clamping to an approved cap, and monotonic constraints ('status and cleanup only move forward'). That is far more than the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the field vocabulary, then constrained behaviors, then scope. Dense and mostly earned, though the middle sentence packing authorization, cap-binding and monotonicity into one run-on reduces scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the essentials an agent needs for a partial-write tool: mutation semantics, auth gate, scope restriction, and non-settable fields. It says nothing about the response (no output schema exists), so error/return behavior is left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 56% schema description coverage, the description compensates by explaining the semantics of the money-related params (spend bound to cap, provider/serving refs gated) and the direction constraint on status/endpointCleanup. It leaves several parameters (customerId, receipts merge is only in schema) without added meaning, so it does not fully close the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Report a job's independent facts') and enumerates exactly which fact groups it covers: status, endpoint cleanup, spend, servable model id, provider job ref, receipts. It does not name the sibling it differs from (e.g. record_training_job / get_training_job), so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear callability context ('For the training runner's key... write, admin and superadmin keys cannot call it') and states an exclusion ('The gate outcome is not settable here'), which steers the agent away from using this for gate results. It does not explicitly name the alternative tool for those cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_webhookCDestructiveInspect
Update a webhook's URL, events, or active status
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | New HTTPS URL for the webhook | |
| events | No | New list of events to subscribe to | |
| isActive | No | Enable or disable the webhook | |
| webhookId | Yes | The webhook ID to update | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is carried by structured data. The description adds no behavioral context beyond restating schema fields: it doesn't clarify whether 'events' replaces or appends to the existing subscription list, what 'destructive' entails, or whether changes are reversible — the key unknowns for a destructive mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no padding; the verb and affected fields come first. Efficient, though its brevity comes at the cost of the missing behavioral detail noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the annotation covers safety but the description leaves partial-update semantics, event-list replacement behavior, and the superadmin-only customerId purpose unaddressed. The schema covers parameters, so it is minimally complete rather than fully so.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema, and the description merely mirrors three of them. It adds no new syntactic or semantic detail (e.g., that events is a full replacement set) beyond what the schema provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (update) and resource (webhook) and enumerates the mutable fields (URL, events, active status). The name alone routes it apart from create_webhook/delete_webhook/get_webhook, though the description never explicitly contrasts those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not, or alternative guidance. It does not say whether this is a partial update (only supplied fields change) or a full replacement, nor when to prefer create_webhook vs this tool. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_variantAInspect
Re-test a variant from a prior optimization head-to-head against the original baseline on a fresh scenario pool. Generates NO new variants — runs only V1 vs the source baseline. Use this to confirm whether a winning variant is real signal or sample noise (especially when an exploratory run was small). Returns a new processId; poll get_optimization_details on it for results.
| Name | Required | Description | Default |
|---|---|---|---|
| processId | Yes | Source optimization process ID (the run that produced the variant you want to validate) | |
| variantId | Yes | ID of the variant to test from that optimization. Get this from get_variant_details. | |
| customerId | No | (Converra superadmin only) Target customer ID to act on behalf of | |
| scenarioCount | No | Scenarios per persona to simulate (1-50, default 8). Higher values add evidence and cost. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds meaningful behavior beyond the (readOnlyHint=false, destructiveHint=false) annotations: it discloses that it creates a new run (returns a new processId), that it spawns no new variants, and that results must be polled via get_optimization_details. This async/polling contract is exactly the context annotations don't convey; it stops short of describing cost magnitude relative to the scenarioCount tradeoff.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly-scoped sentences, front-loaded with what it does, then the negative constraint, then the usage trigger and the required follow-up call. No filler, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an async, non-destructive run trigger with no output schema, the description supplies everything an agent needs: what it produces (a new processId), how to retrieve results (poll get_optimization_details), and when it is warranted. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all four parameters including required vs optional and the scenarioCount range/default. The description links the concept ('fresh scenario pool') but adds no format or syntax detail beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('re-test a variant') plus resource and scope: head-to-head against the original baseline on a fresh scenario pool. The explicit 'Generates NO new variants — runs only V1 vs the source baseline' distinguishes it cleanly from siblings like apply_variant, regression_test, and simulate_ab_test.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear when-to-use condition: 'to confirm whether a winning variant is real signal or sample noise (especially when an exploratory run was small).' It does not explicitly name or exclude an alternative tool, but the triggering scenario is unambiguous enough that an agent can route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_integrationARead-onlyInspect
Verify that your Converra integration is working by checking recent runs. Run this after setting up the SDK or webhook to confirm data is flowing.
| Name | Required | Description | Default |
|---|---|---|---|
| promptName | No | (Optional) Agent name to check for — filters to a specific agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that the check inspects recent runs and is meant to confirm data flow, which is useful framing, but says nothing about what a failed verification looks like or how results are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, zero filler, with the purpose front-loaded and the timing guidance second. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only verification tool with no output schema, the description covers what it does, why, and when to call it. The one remaining gap is how an agent should interpret the verification result, but that is a minor omission given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single optional promptName parameter, so the schema already carries the semantics and a 3 is the baseline. The description never mentions filtering by agent name, so it adds nothing beyond structured data here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'verify that your Converra integration is working by checking recent runs' — which is concrete and actionable. It does not, however, differentiate itself from adjacent siblings like list_runs, get_agent_status, or list_integrations, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit triggering context: 'Run this after setting up the SDK or webhook to confirm data is flowing.' That is a clear when-to-use signal. It stops short of naming alternatives or stating when this tool is the wrong choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
108 tool updates
- First observed
add_insight_feedback - First observed
add_optimization_feedback - First observed
add_regression_scenarios - First observed
analyze_agent - First observed
apply_variant - First observed
batch_regenerate_insights - First observed
benchmark_models - First observed
bind_dataset_version - First observed
classify_optimization_failure - First observed
close_fine_tuning_project - First observed
create_agent - First observed
create_dataset - First observed
create_fine_tuning_project - First observed
create_persona - First observed
create_run - First observed
create_webhook - First observed
decide_approval - First observed
delete_agent - First observed
delete_optimization - First observed
delete_run - First observed
delete_user - First observed
delete_webhook - First observed
dismiss_deployment - First observed
fix_worst_run - First observed
freeze_dataset_version - First observed
get_account - First observed
get_adjudication_queue - First observed
get_agent - First observed
get_agent_status - First observed
get_benchmark_status - First observed
get_converra_roi - First observed
get_dataset - First observed
get_deployment_impact - First observed
get_fine_tuning_project - First observed
get_fleet_intelligence - First observed
get_fleet_overview - First observed
get_fleet_timeline - First observed
get_gate_result - First observed
get_insights - First observed
get_integration_guide - First observed
get_model_optimization_status - First observed
get_optimization_details - First observed
get_persona - First observed
get_pr_context - First observed
get_production_test - First observed
get_regression_suite - First observed
get_review_case - First observed
get_review_queue - First observed
get_run - First observed
get_run_calibration_review - First observed
get_run_finding_context - First observed
get_run_insights - First observed
get_run_step_diagnosis - First observed
get_score_timeline - First observed
get_settings - First observed
get_simulation_status - First observed
get_step_failure_aggregation - First observed
get_stream_url - First observed
get_trace_lineage - First observed
get_training_job - First observed
get_usage - First observed
get_variant_details - First observed
get_verification_evidence - First observed
get_webhook - First observed
get_worst_run - First observed
list_agents - First observed
list_dataset_examples - First observed
list_dataset_versions - First observed
list_datasets - First observed
list_fine_tuning_projects - First observed
list_integrations - First observed
list_optimization_feedback - First observed
list_optimizations - First observed
list_pending_approvals - First observed
list_personas - First observed
list_runs - First observed
list_webhooks - First observed
optimize_model - First observed
preview_run_finding_prompt_diff - First observed
promote_production_test - First observed
publish_external_run_insight_generation - First observed
record_gate_result - First observed
record_review_decision - First observed
record_run_calibration_review - First observed
record_training_job - First observed
refresh_agent_analysis - First observed
refresh_agent_insights - First observed
refresh_fleet_intelligence - First observed
regenerate_run_insights - First observed
regression_test - First observed
request_approval - First observed
rollback_production_test - First observed
simulate_ab_test - First observed
simulate_agent - First observed
split_review_cluster - First observed
start_model_test - First observed
start_production_test - First observed
stop_optimization - First observed
sync_context_from_url - First observed
sync_runs - First observed
trigger_optimization - First observed
update_agent - First observed
update_persona - First observed
update_settings - First observed
update_training_job_facts - First observed
update_webhook - First observed
validate_variant - First observed
verify_integration
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1611 npm1MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs117 npm54 PyPIMIT
- AlicenseAqualityCmaintenanceRevnuvo Company Intelligence tells AI agents what changed at a company, with evidence. It observes company websites, technologies, and DNS over time and returns timestamped, confidence-aware changes, signals, and monitoring.9MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.