1. Web、Headless 不是两个 Harness
它们是同一套基础能力上的不同 profile/bundle。Web 增加浏览器服务、客户端 projection/renderer;Headless 增加一次性 runner,不需要服务器。核心 loop/session/tools/llm 仍是同一抽象。
2. UI 应该消费 Session/Agent,而不是偷偷成为状态源
UI 通过 live agent registry 发命令,通过 session event/projection 渲染。这样刷新浏览器、换客户端并不会改变 agent 的真实状态。
3. 一个可替换外壳应只做三件事
- 把人的输入送入 Agent inbox。
- 订阅 Session/Agent 生命周期与 projection。
- 把权限请求、工具卡片、流式 chunk 映射为交互。
4. 对你复刻项目的建议
先做 headless,再做 Web。UI 很容易制造“已经做了很多”的错觉,但真正决定兼容性的,是 event log、loop、tool pipeline 和 scope。