一切皆插件
能力通过共享上下文注册;插件卸载时,副作用随之撤销。
当你在 Web 客户端发出一条消息,背后究竟发生了什么?从 Cordis 插件树到 Agent Loop,从持久事件日志到 UI 投影——沿真实源码还原一次完整运行。
“不存在需要打补丁的特权内核。”
Harness 最重要的设计不是又一个 Agent Loop,而是让模型适配器、工具注册表、会话日志,乃至循环本身都成为可挂载、可替换、可卸载的 Cordis 插件。
能力通过共享上下文注册;插件卸载时,副作用随之撤销。
模型可见的输入必须可由 SessionEvent 日志完整重建。
接口、Provider 与 Consumer 分离,让本地能力可整体切换到远程沙箱。
Profile 不是固定应用,而是一组按顺序叠加的组合包。点击节点查看它向运行时贡献了什么。
Turn 可以包含多个 Step;每个 Step 都是一次模型请求及其工具调用。横向滚动,跟踪控制权的交接。
消息进入 Agent inbox,唤醒 driver。
agent/inbox/inserted领取输入,并在会话日志写入边界。
turn/start拼接提示词片段、工具 schema 与历史。
agent/pre-step流式 chunk 先落日志,再投影到 UI。
assistant/chunk*按屏障与滚动池调度,结果保持模型顺序。
tool/call → result仍欠工作则下一 Step,否则关闭 Turn。
turn/end浏览器端通过连接层驱动 Agent,并消费 session/event。原始 chunk 被保留,因此刷新、回放与流式 UI 可以共享同一事实源。
Vite 应用入口、静态资源、端到端测试
VIEW SHELLReact 渲染、连接、布局、轨迹、主题、设置
CLIENT PLUGINS承载静态前端,跨边界传递命令与事件
BRIDGE活跃状态走 agent/*,可回放事实走 session/event
SOURCE OF TRUTH权限、沙箱、超时、守卫和结果重写都作为瀑布事件插入流水线,不必侵入工具实现。
模型产出的 tool-call 先写入会话日志,UI 此时即可渲染 pending 卡片。
这些命令直接由人触发,不需要先走一轮模型。列表来自 Web 组合包及其 Host、Client 插件。
不要从 7,000 多个文件里随机漫游。这条路线覆盖 Web 客户端最重要的边界。