Files
JARVIS/development-doc/plan/hermes-update/adr-hermes-first-architecture.md

2.4 KiB
Raw Blame History

ADRHermes-first 架构

状态

Accepted进入实施规划

背景

Jarvis 当前已经具备较强的自研 agent runtime 能力,但核心执行链路仍然偏自定义、偏集中式,导致:

  • 执行 runtime 与产品层耦合过深
  • Hermes 虽已接入真实 bridge但仍只是 adapter 分支
  • 长驻 session、恢复、执行循环等能力没有形成更清晰的 runtime ownership
  • 前端虽然能切 runtime但本质仍是 Jarvis-centered UX + backend branching

同时,用户明确表达:

  • 更偏好 Hermes 的体系化能力
  • 不希望继续扩展自研 agent 主链路
  • 希望连续对话、常驻 session、不冷启动
  • 要求先文档后开发

决策

采用 Hermes-first architecture

  • Hermes 成为默认 execution core
  • Jarvis 保留为 product shell
  • 旧 Jarvis graph 在迁移期保留为 fallback / specialist path
  • 前端继续使用 Jarvis chat product shell而不是直接暴露 Hermes 终端形态
  • SSE 契约保持稳定,由 Jarvis 负责做 runtime event mapping

责任边界

Hermes 负责

  • session lifecycle
  • runtime resume / restart / health
  • execution loop
  • chunk streaming
  • runtime-internal tool orchestration

Jarvis 负责

  • conversation/message persistence
  • memory / knowledge / retrospective assembly
  • skill shortlist
  • task graph shaping
  • product continuity envelope
  • SSE contract
  • observability / metrics / attachments
  • rollout / fallback / rollback policy

不采用的方案

方案 A继续保持 adapter-first

不采用原因:

  • Hermes 长期只会是支线 runtime
  • AgentService 会继续膨胀
  • 无法真正把架构中心从 Jarvis runtime 本体迁走

方案 B直接删除 Jarvis自上而下改成 Hermes 原生产品

不采用原因:

  • 会丢失 Jarvis 已有的 conversation、memory、task、业务层价值
  • 缺乏迁移和回滚路径
  • 风险过高

影响

正向影响:

  • runtime 职责更清晰
  • 长驻 session 方向更明确
  • 后续维护重心从“造 runtime”转向“做产品能力”

负向影响:

  • 迁移期需要同时维护 Hermes default path 与 Jarvis fallback path
  • 需要重构 AgentService 和 continuity state
  • 需要补 durable lifecycle 和 rollout policy

验收标准

  1. Hermes 成为默认 execution core。
  2. Jarvis 仍保留 product shell 能力。
  3. 多轮对话 continuity 不依赖每轮冷启动。
  4. SSE 前端契约保持稳定。
  5. 默认切换有灰度与回滚路径。