Files
freedak f7a720204a Update: 将子项目从 submodule 转为完整内容
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用
- 添加所有子项目的完整源代码
- 保留原始 .git 为 .git.bak 备份
2026-07-04 19:20:46 +08:00

49 lines
1.9 KiB
Markdown

# 模型故障转移队列
当前模型路由设置背后的实现是**模型故障转移队列**,不是多凭据轮询池。
它允许 Nomi 引擎会话在检测到提供商故障时,按你配置的顺序尝试备用模型。
ACP/CLI 智能体不包含在这个功能里,因为它们的提供商调用发生在外部运行时内部。
## 它做什么
- 全局默认队列存储在 `agent.model_failover`
- 单个会话可以通过 `extra.model_failover` 覆盖。
- 只作用于 Nomi 引擎会话。
- 可被 IDMM 的故障监视流程使用。
- 不会在 API Key 之间分摊负载。
- 不会让所有 CLI 智能体共享同一个模型池。
## 什么时候使用
当一个 Nomi 引擎会话需要在临时提供商/模型故障后自动换用备用模型时,使用模型
故障转移。
常见队列:
```text
主模型 -> 便宜备用模型 -> 更强备用模型 -> 人工检查
```
这个队列解决的是可靠性,不是额度聚合。如果所有配置的提供商都不可用,或者
prompt / tool 状态本身无效,故障转移也无法让这一轮成功。
## 与 IDMM 的关系
IDMM 有独立的故障监视和决策停滞监视。模型故障转移属于故障侧:当某个提供商
故障被判定为可恢复,且该会话启用了故障转移时,IDMM 可以让会话运行时按配置
队列重试。
AutoWork 位于更上一层:它负责让标签队列继续认领和推进需求,而 IDMM / 模型
故障转移负责尽量让每个已认领的回合活下来。
## 真相来源
- `crates/backend/nomifun-conversation/src/model_failover.rs`
- `crates/backend/nomifun-conversation/src/failover_seam.rs`
- `crates/backend/nomifun-app/src/router/model_failover.rs`
- `crates/backend/nomifun-idmm/src/policy.rs`
本页旧版本曾把该功能描述成多凭据 round-robin 路由。那不是当前实现,不应作为
运维或用户指南使用。