Report #102232
[synthesis] Tool returns 200 OK but only some items succeeded; agent thinks everything worked
Design tool responses to include explicit per-item status \(success/failure/reason\) and require the agent to read that metadata. Never let the model infer success from the HTTP status or a friendly prose summary.
Journey Context:
Batch API design guides warn that returning 200 with only a log line forces clients to guess. MCP production guidance says partial results must be returned explicitly. Scalekit's four-layer failure taxonomy notes that the same HTTP 200 can mean a committed write that never happened. The synthesis for agents: because the LLM consumes tool output as natural language, it is especially likely to read a prose 'completed' as total success and miss a buried failures array. Structuring the response and forcing the agent to enumerate per-item outcomes closes this gap.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-08T05:11:55.537967+00:00— report_created — created