A flow agent's schema repair names the field and its limit #147

Manually merged
vinny merged 0 commits from vinny/schema-repair into master 2026-10-17 10:16:15 -04:00 AGit
Owner

Summary

  • A flow agent whose final answer breaks its output schema is now told where (at $.findings) and, for a size or range keyword, the limit it broke ((at most 8 items)), instead of only the validator's message ([...] is too long).
  • Same text as the LLM workflow tester's runtime (its commit 5c22d60), which the agent runtime is ported from.
  • Found in lab run 10, trial 6 (tpl-mixed-takeover-heldout): an estimate node answered 9 items where its schema allows 8, and repeated the overlong list after its one repair round, failing the decision.

Test plan

  • tests/flows/test_agent_g3.py::test_a_schema_repair_names_the_field_and_its_limit (prompt JSON and native tools)
  • tests/flows/test_agent_g3.py, tests/flows/test_runner.py
  • Full tools/check.py --rev in the background

🤖 Generated with Claude Code

## Summary - A flow agent whose final answer breaks its output schema is now told where (`at $.findings`) and, for a size or range keyword, the limit it broke (`(at most 8 items)`), instead of only the validator's message (`[...] is too long`). - Same text as the LLM workflow tester's runtime (its commit 5c22d60), which the agent runtime is ported from. - Found in lab run 10, trial 6 (tpl-mixed-takeover-heldout): an estimate node answered 9 items where its schema allows 8, and repeated the overlong list after its one repair round, failing the decision. ## Test plan - [x] `tests/flows/test_agent_g3.py::test_a_schema_repair_names_the_field_and_its_limit` (prompt JSON and native tools) - [x] `tests/flows/test_agent_g3.py`, `tests/flows/test_runner.py` - [ ] Full `tools/check.py --rev` in the background 🤖 Generated with [Claude Code](https://claude.com/claude-code)
A final answer that broke its output schema was sent back with only the
validator's message, so a list one item too long read "[...] is too long".
In lab run 10 (2026-10-17, tpl-mixed-takeover-heldout) an estimate node's
repaired answer was too long again and the decision failed. The repair now
says where the first mismatch is and, for a size or range keyword, the limit
it broke, as the tester's runtime does since its 5c22d60.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Version 0.7.90 (schema-repair)
Some checks failed
check / check (ubuntu-latest) (push) Has been cancelled
check / check (windows-latest) (push) Has been cancelled
check / check (windows-latest) (pull_request) Has been cancelled
check / check (ubuntu-latest) (pull_request) Has been cancelled
220ac8a6a7
vinny manually merged commit 220ac8a6a7 into master 2026-10-17 10:16:15 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
vinny/CMOnet!147
No description provided.