fix(agents): declare each tool name once per request #96

Merged
peersky merged 2 commits from fix/duplicate-tool-declaration into dev 2026-09-05 04:14:25 +00:00
Owner
  • Fixed Bug two sources could claim one name, a room's user tool called search_web beside the agent's own, and Gemini refuses such a request with 400 "Duplicate function declaration found", failing the round
  • Added Redundancy the first registration wins, so a user tool cannot quietly replace what the agent already serves under that name, and the dropped one is logged
  • Added Function a test that a colliding user tool leaves exactly one declaration standing
- Fixed Bug two sources could claim one name, a room's user tool called search_web beside the agent's own, and Gemini refuses such a request with 400 "Duplicate function declaration found", failing the round - Added Redundancy the first registration wins, so a user tool cannot quietly replace what the agent already serves under that name, and the dropped one is logged - Added Function a test that a colliding user tool leaves exactly one declaration standing
fix(agents): declare each tool name once per request
All checks were successful
CI / Dependency Age Check (pull_request) Successful in 3s
CI / Lint & Audit (pull_request) Successful in 1m45s
CI / Spell Check (pull_request) Successful in 5s
Commit Lint / Validate PR Title (pull_request) Successful in 3s
CI / Test (pull_request) Successful in 7m44s
031c6d30f9
- Fixed Bug two sources could claim one name, a room's user tool called search_web beside the agent's own, and Gemini refuses such a request with 400 "Duplicate function declaration found", failing the round
- Added Redundancy the first registration wins, so a user tool cannot quietly replace what the agent already serves under that name, and the dropped one is logged
- Added Function a test that a colliding user tool leaves exactly one declaration standing
fix(agents): refuse a config that declares one search tool twice
All checks were successful
CI / Dependency Age Check (pull_request) Successful in 4s
CI / Lint & Audit (pull_request) Successful in 1m8s
CI / Spell Check (pull_request) Successful in 5s
Commit Lint / Validate PR Title (pull_request) Successful in 3s
Publish Release / Create Tag & Sync (pull_request) Has been skipped
Publish Release / Publish to crates.io (pull_request) Has been skipped
Publish Release / Publish dry-run (no side effects) (pull_request) Has been skipped
Publish Release / Create GitHub Release (pull_request) Has been skipped
CI / Test (pull_request) Successful in 5m23s
91f004b17f
- Fixed Bug where a seat setting both `delegated_search` and `provider_executed_tools` declared one tool name twice in the request, so the backend answered `Duplicate function declaration found` and every task failed, not only the searches
- Added Function `AgentConfig::validate_search_tools`, refusing the pair rather than deduplicating it: the two entries mean different things, so dropping one silently yields an agent that starts, offers the name and calls the other thing
- Added Ability to catch the same pair in the launch path, because an agent configured from the registry never passes through the config loader
- Added Function `validate_tool_names`, refusing an agent whose extra-context, sandbox and delegated-search tools collide on a name
- Improved Interface docs in `reference/provider-tools.md` with the refusal text and what to clear
peersky deleted branch fix/duplicate-tool-declaration 2026-09-05 04:14:26 +00:00
Sign in to join this conversation.
No reviewers
No labels
release
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
peeramid-labs/quorum-rs!96
No description provided.