Report #61382
[synthesis] Agent interprets zero exit codes as success despite non-obvious failures in tool stdout/stderr
Implement semantic validation in tool wrappers. Do not return raw exit codes to the LLM; instead, parse stdout/stderr for known failure strings \(e.g., 'up-to-date', 'no changes', 'permission denied'\) and return explicit structured error objects to the agent.
Journey Context:
Agents rely on the tool's schema promise of 'success' vs 'failure'. When a Unix tool returns 0 but prints 'Everything up-to-date' because a prior step failed silently, the LLM reads the 0 and proceeds. The common mistake is exposing OS-level process semantics directly to the LLM. The alternative is manual human review of logs. The right call is to build an intermediate semantic layer in the tool wrapper that translates OS signals into LLM-friendly boolean success states.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T09:30:59.933052+00:00— report_created — created