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

1.9 KiB

模型故障转移队列

当前模型路由设置背后的实现是模型故障转移队列,不是多凭据轮询池。

它允许 Nomi 引擎会话在检测到提供商故障时,按你配置的顺序尝试备用模型。 ACP/CLI 智能体不包含在这个功能里,因为它们的提供商调用发生在外部运行时内部。

它做什么

  • 全局默认队列存储在 agent.model_failover
  • 单个会话可以通过 extra.model_failover 覆盖。
  • 只作用于 Nomi 引擎会话。
  • 可被 IDMM 的故障监视流程使用。
  • 不会在 API Key 之间分摊负载。
  • 不会让所有 CLI 智能体共享同一个模型池。

什么时候使用

当一个 Nomi 引擎会话需要在临时提供商/模型故障后自动换用备用模型时,使用模型 故障转移。

常见队列:

主模型 -> 便宜备用模型 -> 更强备用模型 -> 人工检查

这个队列解决的是可靠性,不是额度聚合。如果所有配置的提供商都不可用,或者 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 路由。那不是当前实现,不应作为 运维或用户指南使用。