67 lines
1.9 KiB
Markdown
67 lines
1.9 KiB
Markdown
|
|
# 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 默认切换不会成为不可逆操作
|