vllm-project / vllm-project/agentic-api
Define and implement Responses Programmatic Tool Calling support
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 284
- Forks
- 74
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 93
Description
Problem statement / motivation
The Responses API exposes programmatic_tool_calling plus eligible tool settings such as allowed_callers and output_schema. Agentic API has no tool variant for this capability, and function normalization loses those settings. Existing code-interpreter support does not supply this protocol or runtime contract.
Proposed solution
Start with a documented execution-location decision: an upstream-hosted built-in capability, a gateway-executed isolated runtime, or separately advertised support for both. Define the supported vLLM integration before promising local execution. Implement typed declarations, program calls/outputs, nested client function calls, and continuation for the selected deployment profile.
Acceptance criteria
- A short design records execution ownership, upstream requirements, supported transports, and explicit unsupported-path errors.
- Preserve
allowed_callers,output_schema, call IDs, and the supported programmatic item/event contract across storage and continuation. - Enforce direct/programmatic/either caller policies, including nested client-executed functions and structured outputs.
- An end-to-end scenario calls multiple tools, filters/aggregates intermediate outputs, and returns the final output with correct usage and failure behavior.
- If gateway execution is selected, the runtime is isolated with explicit CPU/memory/output/time/concurrency limits, cancellable execution, and joined teardown. Ambient host filesystem, credentials, subprocesses, and network access are unavailable; external effects go through enabled tools.
- Test nested call failures, malformed outputs, timeout/cancellation, continuation, and JSON/SSE parity using shared ingestion and tool routing.
- Record reference/gateway examples through the existing cassette workflow and document deliberate compatibility limits.
Additional context
Related: #160 (typed tool execution), #308 (serverless code interpreter), #314 (request fidelity). Programmatic Tool Calling is a distinct feature; avoid silently lowering it to an ordinary code-interpreter or function tool.
Source: Programmatic Tool Calling.
Reviewed at cdac36f: implementation. Documentation checked September 18, 2026; pin the implementation-time API/model version when recording conformance.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the reviewed implementation at crates/agentic-server-core/src/types/tools/params.rs, then compare the requirements with issues #160, #308, and #314 and the linked Programmatic Tool Calling reference. Establish the execution-location design and supported vLLM integration before implementation. Done means the selected profile satisfies the acceptance criteria, including nested calls, continuation, isolation limits, failure cases, JSON/SSE parity, and cassette examples.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, backend-api-design, security, testing-qa
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100