Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
1.9 KiB
1.9 KiB
H7 默认切换、灰度与 Fallback
1. 目标
让 Hermes 从“可选 runtime”安全过渡为默认路径,同时保留 fallback 与回滚能力。
2. 核心原则
- 不做一次性全量切换。
- 默认切换必须由服务端策略控制。
- Jarvis graph 在迁移期保留为 fallback / specialist path。
- 回滚不能破坏 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. 回滚要求
- 服务端可按 feature flag / policy 回滚默认 runtime。
- 不要求修改前端主交互逻辑即可回滚。
- 历史 conversation 的
agent_state仍能兼容读取。 - 回滚后仍可保留 Hermes metrics 用于复盘。
6. 推荐文件变更
backend/app/services/agent_service.pybackend/app/routers/conversation.pybackend/app/schemas/conversation.pyfrontend/src/pages/chat/composables/useChatView.tsfrontend/src/pages/chat/index.vue- 可能新增:runtime policy / feature flag 配置模块
7. 验收标准
- 有清晰 rollout policy
- 有 fallback 策略
- 有 rollback 机制
- Hermes 默认切换不会成为不可逆操作