Skip to content

feat: add cross-provider tool call ID compatibility#417

Open
mikehostetler wants to merge 4 commits intomainfrom
feature/cross-provider-tool-ids
Open

feat: add cross-provider tool call ID compatibility#417
mikehostetler wants to merge 4 commits intomainfrom
feature/cross-provider-tool-ids

Conversation

@mikehostetler
Copy link
Contributor

Summary

  • add a framework-level engine to normalize/validate tool call IDs across provider switches
  • add generation option () and provider callback
  • wire provider-specific policies for Anthropic-family, Bedrock Converse, and Vertex Gemini/Claude paths
  • enforce local unresolved-tool-turn validation for strict providers
  • add provider and compat tests plus a simplified live integration test for OpenAI -> Anthropic

Implementation Notes

  • constrained providers sanitize/reject as needed; OpenAI-compatible providers default to passthrough
  • Gemini body handling now uses shared policy plumbing to drop
  • Bedrock Converse applies sanitize + 64-char max ID handling

Tests

  • Compiling 17 files (.ex)
    Generated req_llm app
    Running ExUnit with seed: 103226, max_cases: 20
    Excluding tags: [:coverage, :integration]

.................................................................................................................................................................
Finished in 0.3 seconds (0.3s async, 0.03s sync)
161 tests, 0 failures

  • Running ExUnit with seed: 716380, max_cases: 20
    Including tags: [:coverage, :integration]

...
Finished in 3.0 seconds (0.00s async, 3.0s sync)
3 tests, 0 failures

@mikehostetler mikehostetler added the needs_work Changes requested before merge label Feb 14, 2026
@mikehostetler
Copy link
Contributor Author

Thanks for pushing this large change through. I'm adding needs_work because CI is currently failing on this branch.

The failing jobs are in Test / Elixir 1.18 and Test / Elixir 1.19 with FunctionClauseError in ReqLLM.Providers.GoogleVertex.get_model_family/1 (seen from test/providers/google_vertex_gemini_test.exs).

Please address the failing path and re-run CI; once tests are green, this can move forward.

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

Labels

needs_work Changes requested before merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant