vllm-project / vllm-project/agentic-api

Define and implement Responses Programmatic Tool Calling support

Open
#334 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.