report_outcome
Reports the outcome of using a recommended tool. Updates graph edge weights to improve future recommendations — successful outcomes reinforce recommendation confidence while failures attenuate it.
This directly improves ToolPilot
When to use
Call report_outcome after using a tool that ToolPilot recommended. This is typically the final step in the discovery flow: search_tools → report_outcome. You can also report outcomes for tools found through get_stack or check_issue.
Input schema
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
tool_name | string | Required | — | Name of the tool that was used (e.g. "Prisma", "Qdrant", "Vitest"). |
outcome | "success" | "failure" | "partial" | Required | — | The result of using the tool. "success" for full satisfaction, "failure" for complete failure, "partial" for mixed results. |
details | string | Optional | — | Additional context about the outcome — what worked, what failed, or any caveats. Helps refine future recommendations. |
tool_nameRequiredstringName of the tool that was used (e.g. "Prisma", "Qdrant", "Vitest").
outcomeRequired"success" | "failure" | "partial"The result of using the tool. "success" for full satisfaction, "failure" for complete failure, "partial" for mixed results.
detailsOptionalstringAdditional context about the outcome — what worked, what failed, or any caveats. Helps refine future recommendations.
Examples
Reporting success
Reporting failure
{
"tool_name": "TypeORM",
"outcome": "failure",
"details": "TypeORM decorators conflicted with SWC compilation in Next.js 15. Switched to Drizzle ORM."
}Reporting partial success
{
"tool_name": "Docker",
"outcome": "partial",
"details": "Container builds work but hot-reload does not function on Windows with volume mounts."
}Include details
details field is optional but highly valuable. Specific details help ToolPilot understand why a tool succeeded or failed, enabling more nuanced future recommendations.Response format
Returns a confirmation with the graph update details, including the edge weight change and new confidence score.
Success outcome response
{
"status": "recorded",
"tool_name": "Prisma",
"outcome": "success",
"graph_update": {
"edge_weight_delta": +0.03,
"new_confidence": 0.97,
"affected_edges": 4
},
"message": "Outcome recorded. Prisma's recommendation confidence has been reinforced."
}Failure outcome response
{
"status": "recorded",
"tool_name": "TypeORM",
"outcome": "failure",
"graph_update": {
"edge_weight_delta": -0.05,
"new_confidence": 0.67,
"affected_edges": 3
},
"message": "Outcome recorded. TypeORM's recommendation confidence has been attenuated for this context."
}Edge weight updates
Error codes
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
400 | Bad Request | Optional | — | Invalid parameters. Ensure tool_name is non-empty and outcome is one of "success", "failure", or "partial". |
404 | Not Found | Optional | — | The specified tool was not found in the graph. Check the tool name spelling. |
500 | Internal Error | Optional | — | Graph update error. The outcome could not be recorded due to an internal failure. |
400OptionalBad RequestInvalid parameters. Ensure tool_name is non-empty and outcome is one of "success", "failure", or "partial".
404OptionalNot FoundThe specified tool was not found in the graph. Check the tool name spelling.
500OptionalInternal ErrorGraph update error. The outcome could not be recorded due to an internal failure.
Related tools
search_tools— Start a new tool searchcheck_issue— Diagnose issues before reporting a failure- Feedback Loop — Learn how outcomes affect the recommendation graph