Model-backed tools

Use Advisor, Sub-agent, or Fusion for bounded nested model calls inside one routed request.

2 min readEdit this page

Model-backed tools make additional model calls inside BitRouter's server-tool loop. Choose by the job the nested call performs:

ToolUse it whenNested result
AdvisorThe parent needs an expert answer to one questionAdvice returned to the parent model
Sub-agentThe parent can delegate a self-contained taskWorker's final result
FusionSeveral models should analyze the same promptJudge analysis, then synthesis

Every nested call has its own tokens, latency, and provider cost. A tool can improve unit-token productivity, but it is not free parallelism.

Enable the implementations

server_tools:
  advisor: true
  subagent: true
  fusion:
    panel:
      - anthropic:claude-opus-4.8
      - openai:gpt-5
    judge: anthropic:claude-opus-4.8

Advisor and Sub-agent use the parent request model unless their declaration pins another model. Fusion defaults come from the deployment block and can be overridden by an explicit declaration.

Advisor

Declare bitrouter:advisor when the parent should ask a focused question and then continue its own work:

{
  "type": "bitrouter:advisor",
  "args": {
    "model": "anthropic:claude-opus-4.8",
    "instructions": "Review only the authentication edge cases."
  }
}

At call time the parent supplies prompt; it may also override model. The advisor sees the question and configured instructions, not ownership of the outer task.

Sub-agent

Declare bitrouter:subagent for a task whose context and expected result can be stated independently:

{
  "type": "bitrouter:subagent",
  "args": {
    "model": "openai:gpt-5",
    "instructions": "Return a concise factual summary."
  }
}

The parent calls it with task_name and the required task_description. The worker receives the task description, works in isolation, and returns its result. It does not inherit the parent's transcript or environment automatically.

Fusion

Fusion runs a panel of up to eight models in parallel, asks a judge to compare their answers, and lets the parent or a dedicated synthesizer write the final response.

{
  "type": "bitrouter:fusion",
  "args": {
    "panel": [
      {"model": "anthropic:claude-opus-4.8"},
      {"model": "openai:gpt-5"}
    ],
    "judge": {"model": "anthropic:claude-opus-4.8"}
  }
}

When server_tools.fusion is configured, bitrouter/fusion is also available as a model alias. The alias injects the deployment defaults and is the simplest cross-protocol entry point.

The judge compares panel answers; it does not silently merge them. Treat Fusion as a deliberate high-cost path for questions where independent perspectives justify the added calls.

Nested tools

Advisor and Sub-agent declarations may include provider-namespaced tools for their nested model. Fusion panel members may do the same. Those declarations do not grant new credentials or bypass provider capability checks.

Use Observability to attribute the nested attempts, and Routing to inspect the models each declaration selects.

How is this guide?

On this page