Skip to content

[Feature]: Add schema_deferred routing mode — keep tool names & descriptions, strip inputSchema #971

Description

@JeffC0628

Problem

retrieve_tools mode has a blind-search problem: the agent sees only meta-tools and has no idea what upstream tools exist until it guesses a query. direct mode dumps all schemas upfront, eating 30K+ tokens for ~100 tools.

There's no middle ground: let the agent see all tool names + descriptions, but defer inputSchema until needed.

Proposal

Add routing_mode: "schema_deferred":

  • tools/list returns all upstream tools with name + description, but inputSchema set to {}
  • Agent calls the existing describe_tool(name) to get the full schema when it's ready to use a specific tool
  • No new execution primitives needed — describe_tool and call_tool_* already exist

Config:

{
  "routing_mode": "schema_deferred"
}

That's it. One mode, one behavior change.

Why

  • Agent gets full visibility into available tools (no blind search)
  • Context cost drops from ~30K to ~3.5K tokens for 100 tools (~88% reduction)
  • One extra describe_tool round-trip per tool call — acceptable trade-off

Proposed solution

Industry precedent

Alternatives considered

No response

Which edition?

Personal

Pre-submission checklist

  • I searched existing issues and discussions for a similar request

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions