[fix] handle mixed external_execution and regular tools for OpenAI (#6630)
Summary
Fixes index-based tool_call_id mapping in OpenAI Responses API that broke when mixing
external_execution=Trueand regular tools in the same agent.Fixes #6612
Type of change
- Bug fix (non-breaking change which fixes an issue)
Checklist
- Code complies with style guidelines
- Ran
./scripts/format.shand./scripts/validate.sh- Self-review completed
- Tests added/updated (8 new tests)
Additional Notes
Root cause:
format_function_call_resultsused index-based mapping (tool_call_ids[index]) to assign call IDs. When external tools are present,tool_call_idshas entries for ALL tools butfunction_call_resultsonly has internally-executed ones, causing wrong ID assignment.Fix: Replaced with name-based
fc_id -> call_idlookup from the assistant message’s tool_calls, consistent with_format_messagesat line 449-457.
Co-authored-by: Uzair Ali 72073401+uzaxirr@users.noreply.github.com Co-authored-by: uzaxirr uzaxirr@gmail.com Co-authored-by: Claude Opus 4.6 noreply@anthropic.com Co-authored-by: Willem Carel de Jongh willemcarel@gmail.com Co-authored-by: kausmeows shuklakaustubh84@gmail.com
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802032778号
Build, run, and manage agentic software at scale.
What is Agno
Agno is the runtime for agentic software. Build agents, teams, and workflows. Run them as scalable services. Monitor and manage them in production.
Quick Start
Build a stateful, tool-using agent and serve it as a production API in ~20 lines.
Run it:
In ~20 lines, you get:
Connect to the AgentOS UI to monitor, manage, and test your agents.
http://localhost:8000).https://github.com/user-attachments/assets/75258047-2471-4920-8874-30d68c492683
Open Chat, select your agent, and ask:
The agent retrieves context from the Agno MCP server and responds with grounded answers.
https://github.com/user-attachments/assets/24c28d28-1d17-492c-815d-810e992ea8d2
You can use this exact same architecture for running multi-agent systems in production.
Why Agno?
Agentic software introduces three fundamental shifts.
A new interaction model
Traditional software receives a request and returns a response. Agents stream reasoning, tool calls, and results in real time. They can pause mid-execution, wait for approval, and resume later.
Agno treats streaming and long-running execution as first-class behavior.
A new governance model
Traditional systems execute predefined decision logic written in advance. Agents choose actions dynamically. Some actions are low risk. Some require user approval. Some require administrative authority.
Agno lets you define who decides what as part of the agent definition, with:
A new trust model
Traditional systems are designed to be predictable. Every execution path is defined in advance. Agents introduce probabilistic reasoning into the execution path.
Agno builds trust into the engine itself:
Built for Production
Agno runs in your infrastructure, not ours.
You own the system. You own the data. You define the rules.
What You Can Build
Agno powers real agentic systems built from the same primitives above.
Single agents. Coordinated teams. Structured workflows. All built on one architecture.
Get Started
IDE Integration
Add Agno docs as a source in your coding tools:
Cursor: Settings → Indexing & Docs → Add
https://docs.agno.com/llms-full.txtAlso works with VSCode, Windsurf, and similar tools.
Contributing
See the contributing guide.
Telemetry
Agno logs which model providers are used to prioritize updates. Disable with
AGNO_TELEMETRY=false.↑ Back to top