Architecture

Agent backend vs model router

Where HarnessRouter, OpenRouter, TokenRouter, and model routers fit in an AI product stack.

Short answer

Use a model router for model access. Use HarnessRouter when your product needs an agent harness to return work that a human can review, accept, save, or ship.

  • OpenRouter, TokenRouter, and model routers sit near the inference/provider layer.
  • HarnessRouter sits between the product UI and a harness run.
  • They are complementary; do not position HarnessRouter as a drop-in model gateway.

Give each layer one job

Product UI
Collects the user's task, shows run status, and lets the user review the result.
HarnessRouter
Routes the product task to the right harness and returns a run your app can handle.
Agent harness
Executes the task in a specialized agent environment such as Codex, Claude Code, Hermes, or Pi.
Model router
Selects or accesses models, providers, fallback paths, or gateway controls.

The difference is what comes back

QuestionModel router / LLM gatewayHarnessRouter
InputPrompt, message, model name, provider preference, or inference request.Product task that should become completed work inside the app.
OutputModel response, JSON, tool-call data, media, embedding, or stream.Harness run result your product can inspect, render, accept, save, or ship.
Best forProvider access, fallback, cost control, and model choice.Agent-backed product features without building the harness backend.

Use both when the product needs both layers

  • Keep OpenRouter, TokenRouter, or another model router below the harness/model layer.
  • Use HarnessRouter for user-facing work requests that need a harness run.
  • Keep the UI language focused on the user's task, not the infrastructure stack.

FAQ

Is HarnessRouter an OpenRouter alternative?
No. OpenRouter focuses on model access and routing. HarnessRouter focuses on routing product tasks to agent harnesses.
Is HarnessRouter a TokenRouter alternative?
No. TokenRouter-style products belong near the model gateway layer. HarnessRouter belongs near the product workflow and harness run layer.
Can a product use both?
Yes. A product can use a model router underneath while HarnessRouter routes the user-facing agent task.

Sources

Open integration docs