> For the complete documentation index, see [llms.txt](https://tinyhumans.gitbook.io/openhuman/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tinyhumans.gitbook.io/openhuman/zh/gong-neng/model-routing.md).

# 自动模型路由

代理的不同部分需要不同的模型。长推理需要前沿模型。快速“修复这个拼写错误”的调用需要快速且便宜的模型。视觉任务需要视觉模型。OpenHuman 通过内置的 **路由提供商** 因此你完全不必操心。

## 请求如何被路由

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

* **具体模型名称**。例如 `anthropic/claude-sonnet-4`。使用该确切模型路由到默认提供商。
* **提示前缀**。例如 `hint:reasoning`。会在路由表中查找该提示，并解析为一个 `（提供商，模型）` 对。

```rust
// 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 里“一个订阅，多个提供商”的承诺，变得具体可见。

订阅是默认选项，不是强制要求。同一个路由器也可以配合 **你自己的提供商密钥** 或 **完全本地模型**，按工作负载分别使用，而且三者可以混用。参见 [本地模型与自带密钥](/openhuman/zh/gong-neng/model-routing/local-and-byok-models.md) 了解设置，以及每条路由对聊天、视觉和嵌入各自支持什么。

## 覆盖路由

* **全局**。config TOML（`Config` 结构体在 `src/openhuman/config/schema/types.rs`）可在启动时提供自定义路由表。
* **按调用**。传入具体模型名称（不要带 `hint:` 前缀），路由器就会回退到默认提供商并使用该确切模型。
* **对于某个技能**。技能可以在其清单中固定提示或模型。

## 按代理固定模型

子代理也可以固定一个确切模型，而不会为应用的其余部分关闭自动路由。当编排器或团队负责人需要更强的模型，而高吞吐量的叶子代理应继续使用更便宜的模型时，就使用这种方式。

单次委派时以内联调用为准：

```json
{
  "agent_id": "researcher",
  "model": "anthropic/claude-sonnet-4",
  "prompt": "为发布备忘录收集来源笔记。"
}
```

持久默认值位于 `config.toml`:

```toml
[orchestrator]
model = "anthropic/claude-sonnet-4"

[teams.research]
lead_model = "openai/gpt-5.1"
agent_model = "groq/llama-3.1-8b-instant"

[teams.code]
agent_model = "qwen/qwen3-coder"
```

解析顺序：

1. 内联 `模型` 于 `spawn_subagent` 或在原型委派调用中。
2. `[orchestrator].model` 或 `[teams.<team>]` / 内置别名，例如 `[teams.research]` 以及 `[teams.code]`.
3. 原型自身的模型提示以及常规路由表。

对于 `[teams.*]`, `lead_model` 适用于可以委派的代理，而 `agent_model` 适用于叶子工作器。如果只设置了一个，测试框架会将其回退用于这两个角色。

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

路由并不是一个 UI 下拉框。代理循环本身会根据即将执行的操作发出提示。不是你选择模型，而是 *任务* 在决定。这就是“多模型”和“智能路由”之间的区别。

## 另请参阅

* [智能 Token 压缩](/openhuman/zh/gong-neng/token-compression.md)。这使大规模推理调用变得可负担。
* [原生工具](/openhuman/zh/gong-neng/native-tools.md)。不同的工具调用会提示不同的路由。
* [本地模型与自带密钥](/openhuman/zh/gong-neng/model-routing/local-and-byok-models.md)。可使用你自己的密钥运行，或完全在本地设备上运行。
* [本地 AI（可选）](/openhuman/zh/gong-neng/model-routing/local-ai.md)。轻量聊天提示可在本地设备上运行。
