Skip to content

[codex] Validate model tool calls#31

Closed
gold-silver-copper wants to merge 10 commits into
mainfrom
codex/validate-unknown-tool-calls
Closed

[codex] Validate model tool calls#31
gold-silver-copper wants to merge 10 commits into
mainfrom
codex/validate-unknown-tool-calls

Conversation

@gold-silver-copper

Copy link
Copy Markdown
Owner

Summary

  • Preserve the executable Rig tool names advertised for each completion turn.
  • Reject unknown model-emitted tool calls with PromptError::UnknownToolCall before hooks, tool execution, or tool-result feedback in both prompt paths.
  • Surface Gemini malformed/unexpected tool-call finish reasons as completion errors instead of empty successful streamed turns.
  • Allow .tool(...).hook(...).build() and cover it with a compile regression test.

Root Cause

Rig trusted structured tool calls too late in the prompt loop. If a provider/model emitted a tool name Rig had not advertised for the current request, the call could proceed into normal hook/tool handling and corrupt the multi-turn state. For Gemini streaming this could show up later as an empty final response warning rather than the real protocol error.

Validation

  • cargo fmt
  • cargo check -p rig-core
  • cargo test -p rig-core agent::prompt_request::
  • cargo test -p rig-core providers::gemini::
  • cargo test -p rig-core hook_can_be_set_after_tool_configuration

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant