ae1f4f78 ยท zzmq.dev@gmail.com/zz
Commit
ae1f4f78be348c2b233943495a90cdf95bece4eb
Fix three real agent-loop reliability gaps; note A2A as a future roadmap item 1. The loop treated "no tool_calls in the response" as unconditional completion. If the model stops right after an unresolved tool error, that's a sign it gave up, not that it finished -- now nudges it ("retry or explicitly deny") up to twice before truly ending. 2. Validation error messages described the correct shape in prose only. Small models follow a literal example far more reliably than a description -- every ladder_write_rung validation error now includes one concrete, copyable valid rung. 3. Found while testing qwen3-coder:30b specifically: it serializes a complex argument (an object/array meant to be nested JSON) as a JSON string rather than passing it natively. The loop now parses any top-level string argument that looks like JSON before it reaches a tool, instead of each tool having to guess at this independently. Verified end to end against thoward/bsharptree with qwen3-coder:30b (pulled for this test): a clean run with zero tool errors, a successful first-attempt ladder_write_rung, and real persisted content -- confirmed via ladder dump, not just the agent's own say-so. Also notes A2A (https://github.com/a2aproject/a2a) in site/content/ mcp/index.md's Open Questions as a future alternative to proxying cross-agent coordination through more MCP tool calls -- explicitly out of scope for now, revisit once there's more than one real agent. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Troy Howard <thoward37@gmail.com> -- 2026-10-08T08:18:29.000Z