Skip to content

fix: enable Eredu function calls and tool-result followups - #1

Merged
michaelneale merged 1 commit into
mainfrom
fix/native-tools
Oct 29, 2026
Merged

michaelneale merged 1 commit into
mainfrom
fix/native-tools

Conversation

@michaelneale

Copy link
Copy Markdown
Contributor

Summary

Eredu clients can request checkpoint-native function calls, receive OpenAI JSON/SSE tool calls, and replay tool results for a follow-up answer. Unsupported templates fail closed; the plugin never executes tools.

Supports auto/none/required tool choice, opt-in parallel policy, and enable_thinking. Named-function tool-choice objects remain unsupported. Fixes an immediate-followup admission race: completion is sent only after device settlement and admission release.

Example

{"model":"eredu-local","messages":[{"role":"user","content":"Weather in Bogotá?"}],"tools":[{"type":"function","function":{"name":"weather","parameters":{"type":"object","properties":{"city":{"type":"string"}},"required":["city"]}}}],"tool_choice":"required","enable_thinking":false}

Replies include message.tool_calls with stable IDs and JSON-string arguments, and finish_reason: "tool_calls"; streaming emits indexed tool-call deltas. Replay the assistant message and matching tool_call_id result.

Validation

  • just verify: all 13 mock tests, fmt, warning-denying Clippy pass.
  • just check-native and just build: pass.
  • Native-feature all-target warning-denying Clippy: pass.
  • Real cached Qwen3-1.7B-4bit MLX checkpoint: required tool call, immediate result replay with tool_choice none and nonempty followup, streaming tool-call output pass. Owned endpoint terminated after test; no weights downloaded or unrelated processes changed.
  • No broad model, parallel-call, agent harness or remote-Mesh qualification claimed. Readiness still does not advertise blanket tool capability.

Originating Buzz channel: 88c67ad6-ea81-46d7-aa24-387b6500459b; thread 9c6ac22a1f1a1d7dff1b7570a679e4b5061fe6847d81868c330d1a5c6d804b2c.

@coderabbitai

coderabbitai Bot commented Oct 29, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 8444b64a-3ed0-434b-9c50-b33891291f9d
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@michaelneale
michaelneale merged commit d7be40a into main Oct 29, 2026
2 checks passed
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