Files
JARVIS/development-doc/plan/hermes-update/phase-h7-default-rollout-and-fallback.md

1.9 KiB
Raw Blame History

H7 默认切换、灰度与 Fallback

1. 目标

让 Hermes 从“可选 runtime”安全过渡为默认路径同时保留 fallback 与回滚能力。

2. 核心原则

  1. 不做一次性全量切换。
  2. 默认切换必须由服务端策略控制。
  3. Jarvis graph 在迁移期保留为 fallback / specialist path。
  4. 回滚不能破坏 conversation/message 数据。

3. 推荐 rollout 顺序

Stage 1显式 opt-in

  • 仅对开发/内部用户开放
  • 用户可显式选择 Hermes

Stage 2内部默认 Hermes

  • 对内部账号或灰度 cohort 默认走 Hermes
  • 保留 fallback 开关

Stage 3新会话默认 Hermes

  • 仅新 conversation 默认 Hermes
  • 历史 conversation 可按策略维持原路径或迁移

Stage 4全量默认 Hermes

  • 普通用户默认走 Hermes-first
  • runtime toggle 从主 UI 淡出

4. Fallback 策略

触发 fallback 的场景示例:

  • Hermes session hydrate 失败
  • Hermes runtime health 不达标
  • 连续 error/restart 达到阈值
  • 某类 specialist workflow 尚未迁移

fallback 目标:

  • 切回 Jarvis graph 或受控备用路径
  • 不丢 conversation continuity
  • 不破坏前端 SSE 契约

5. 回滚要求

  1. 服务端可按 feature flag / policy 回滚默认 runtime。
  2. 不要求修改前端主交互逻辑即可回滚。
  3. 历史 conversation 的 agent_state 仍能兼容读取。
  4. 回滚后仍可保留 Hermes metrics 用于复盘。

6. 推荐文件变更

  • backend/app/services/agent_service.py
  • backend/app/routers/conversation.py
  • backend/app/schemas/conversation.py
  • frontend/src/pages/chat/composables/useChatView.ts
  • frontend/src/pages/chat/index.vue
  • 可能新增runtime policy / feature flag 配置模块

7. 验收标准

  • 有清晰 rollout policy
  • 有 fallback 策略
  • 有 rollback 机制
  • Hermes 默认切换不会成为不可逆操作