For the complete documentation index, see llms.txt. This page is also available as Markdown.

自动模型路由

一个订阅,多个模型。任务通过提示前缀选择其模型:推理走强模型,快速路径走快模型,视觉走视觉模型。

代理的不同部分需要不同的模型。长推理需要前沿模型。快速“修复这个拼写错误”的调用需要快速便宜的模型。视觉任务需要视觉模型。OpenHuman 通过内置的 路由提供器 这样你就完全不用去考虑它。

请求是如何被路由的

任何聊天调用中的 model 参数可以采用两种形式之一:

  • 具体模型名称。例如 anthropic/claude-sonnet-4。路由到默认提供器上的该精确模型。

  • 提示前缀。例如 hint:reasoning。在路由表中查找该提示并解析为一个 (provider, model) 对。

// src/openhuman/providers/router.rs
fn resolve(&self, model: &str) -> (usize, String) {
    if let Some(hint) = model.strip_prefix("hint:") {
        if let Some((idx, resolved_model)) = self.routes.get(hint) {
            return (*idx, resolved_model.clone());
        }
    }
    (self.default_index, model.to_string())
}

路由器封装了多个预先创建的提供器(Anthropic、OpenAI、Google、Groq 等),并根据每次请求选择正确的一个。提示词可以在运行时重新映射,而无需重启核心。

常见提示

提示
典型目标
使用场景

hint:reasoning

强大的推理模型

多步规划、数学、代码密集型轮次

hint:fast

快速/便宜的模型

UI 辅助、自动补全、小型分类调用

hint:vision

具备视觉能力的模型

截图、图片附件、OCR

hint:summarize

擅长压缩的模型

记忆树摘要构建器

hint:code

经过代码调优的模型

原生编码轮次

hint:burst

高吞吐、低成本的模型

便宜、对延迟不敏感的预演扫描,例如 SuperContext scout

确切映射是可配置的;默认配置随每个提供器附带合理的路由。

单一订阅

路由发生在单一的 OpenHuman 订阅之后。你不需要为 Anthropic、OpenAI、Google 等分别持有 API 密钥,后端会代为协调访问,而路由器会为每个任务选择正确的那一个。这就是 README 里“一个订阅,多个提供器”的承诺的具体体现。

覆盖路由

  • 全局。配置 TOML(配置 结构体位于 src/openhuman/config/schema/types.rs)可在启动时提供自定义路由表。

  • 按调用。传入具体模型名称(不带 hint: 前缀),路由器就会退回到默认提供器并使用该精确模型。

  • 对于一个技能。技能可以在其清单中固定一个提示或模型。

按代理固定模型

子代理也可以固定精确模型,而不会为应用的其余部分禁用自动路由。需要编排器或团队负责人使用更强大的模型时可用此法,而高吞吐量的叶子代理则应保持使用更便宜的模型。

一次委派时,内联调用优先:

持久默认值位于 config.toml:

解析顺序:

  1. 内联 模型spawn_subagent 或 archetype 委派调用上。

  2. [orchestrator].model[teams.<team>] / 以及内置别名,如 [teams.research][teams.code].

  3. archetype 自身的模型提示和普通路由表。

对于 [teams.*], lead_model 适用于可以委派的代理,而 agent_model 适用于叶子工作者。若只设置其中一个,运行支架会将其回退用于这两种角色。

为什么这不只是“模型切换器”

路由不是一个 UI 下拉菜单。代理循环本身会基于它即将执行的操作发出提示。不是你选择模型,而是 任务 来决定。这就是“多模型”和“智能路由”之间的区别。

另见

最后更新于