第6章 Omnigent 智能路由详解:自动为会话匹配最佳 Harness 与模型
智能路由
智能路由让服务器根据第一条消息,自动为会话挑选最合适的 harness 和模型。你不必一开始就固定某个模型,而是让服务器询问路由器:"这个任务适合哪个 harness 和模型?"然后把答案应用到整个会话。
有两种路由器可用:
内置裁判:通过服务器自身的 llm: 配置块发起一次 LLM 调用,无需额外基础设施。 外部路由 API:由服务器把决策交给一个外部 routes:select 服务。
启用智能路由
只需配置即可启用智能路由:
配置服务器的 llm: 块,服务器会使用基于它的内置裁判,无需 routing: 块。 或者添加 provider: external 的 routing: 块,委托给外部路由 API。
例如,下面这样即可用 OpenAI 模型启用内置裁判:
llm: model: openai/gpt-5.5 connection: api_key: ${OPENAI_API_KEY}
API key 也可以来自 provider 常用的环境变量。关于自定义端点、Databricks profile 和回退模型,参见内置路由设置。
用配置文件启动服务器:
omni server -c path/to/config.yaml
配置好路由器后,用户会在 harness 选择器中看到一个 Auto 选项;选中它后,第一条消息的 harness + 模型选择就会交给路由器。如果既没有 llm: 块也没有外部 routing: 块,路由保持关闭,Auto 选项也会隐藏。
配置外部路由 API
要委托给外部服务,在服务器配置中添加顶层 routing: 块,并设置 provider: external:
routing: provider: external base_url: https://gateway.example.com/ai-gateway/routing/v1 router_name: task_v0 model_prefix: databricks- api_key: ${ROUTING_API_KEY}
全部字段和校验行为参见外部路由设置;在 API key 和 Databricks profile 之间如何选择,参见认证优先级。
实现外部路由器
服务器会调用 POST
{ "route_options": [ { "model": "claude-opus-4-8", "harness": "claude-sdk" }, { "model": "gpt-5-5", "harness": "codex" }, { "model": "gpt-5-4-mini", "harness": "pi" } ], "task": { "prompt": "Refactor the auth module and add tests" }, "route_selector": { "router_name": "task_v0" } }
返回的响应需从给出的模型和 harness 组合中选出一个:
{ "route_selection": [ { "route_option": { "model": "claude-opus-4-8", "harness": "claude-sdk" } } ], "rationale": "Multi-file refactor with tests: favor the most capable model." }
完整 schema、匹配规则和错误行为参见外部路由 API 契约。
如果服务返回错误或无效选择,服务器会展示原因并回退到会话的默认 harness,而不是直接阻塞会话。