Agent Harness 学习

comparison matrix / 对照矩阵

同一个问题,四种架构回答

行是 Harness 工程里绕不开的设计问题,列是四个开源实现。点开任意一行,能看到四家在这件事上的真实代码——固定 commit、标注行号、可跳转 GitHub 核对。四家的做法不同不代表谁更好,而是暴露出这个问题有哪些解法维度。

15
设计维度
4
跟踪框架
30 / 60
带代码的格
带代码仅摘要待补未核实的格子一律标「待补」,不作推测性描述。
2026-W34 周报四家同时在动子代理,openJiuwen 开始长出插件系统本周变化 →
循环2

主循环形态

openJiuwen
有界迭代预算的 for 循环
Codex
无界 loop,回合内反复取用户插话
DeepSeek Harness
idle / running / maintenance 三相状态机
Pi
显式内外两层 while,注释直接写明分工
上下文4

上下文压缩

openJiuwen
按上下文预算比例触发,挂多档压缩器
Codex
三条并行路径:本地摘要 / 远端摘要 / 直接换新窗口
DeepSeek Harness
阈值细分到每个 provider + model
Pi
一行公式,全局单一设置
工具5

工具定义方式

openJiuwen
抽象基类 + ToolCard 元数据,元类织入生命周期
Codex
trait 对象注册表,显式处理重名冲突
DeepSeek Harness
defineTool 接口,强制声明规范化输出
Pi
TypeBox schema + 工厂函数,内核只有四个工具
运行时8

沙箱与权限

openJiuwen
策略层规则引擎,三档判定 allow / ask / deny
Codex
协议里的类型枚举,落到 seatbelt / landlock / Windows
DeepSeek Harness
同样三个模式名,但状态是会话事件的折叠结果
Pi
不做沙箱,改问「你信任这个目录吗」
多 Agent7

子代理隔离

openJiuwen
独立子代理运行时,带并发上限与 LRU 驱逐
Codex
独立线程 + 从父配置派生的角色覆盖
DeepSeek Harness
子代理是可插拔 provider —— 包括别家的 Harness
Pi
内核不提供,示例扩展用独立进程实现
循环2

停止条件

openJiuwen
迭代预算 + force_finish + 停止评估器
Codex
hook 返回、任务完成或取消令牌
DeepSeek Harness
turn() 返回值驱动,收敛到 idle 相位
Pi
内层看工具调用,外层看排队消息
循环2

中断与恢复

openJiuwen
中断状态记住迭代号,从下一轮继续
Codex
rollout 回放 + 线程存储
DeepSeek Harness
重放事件日志即恢复
Pi
从当前上下文续跑,用两条断言守住前置条件
结构3

内核与扩展边界

openJiuwen
core 与 harness 分层,harness 内再分 12 个子系统
Codex
codex-core 为可嵌入库 crate,上百个 crate 环绕
DeepSeek Harness
无特权内核,运行中的 Harness 是配置生成的插件树
Pi
内核只有循环 + 四工具,其余全在扩展与示例
结构3

生命周期挂载点

openJiuwen
Rails:双层挂载点(core rail + harness rails)
Codex
独立 hooks crate + 工具级 hook 名
DeepSeek Harness
hooks 也是一个插件包
Pi
扩展机制(loader / runner / wrapper)
上下文4

会话状态存储

openJiuwen
core/session + checkpointer
Codex
rollout / thread-store / state 三个 crate
DeepSeek Harness
append-only 事件日志,另有 spill 包
Pi
session-backends/sqlite-node
上下文4

提示词缓存

openJiuwen
不管前缀,管子代理的 KV 缓存亲和性
Codex
请求字段逐个比对,新字段强制显式表态
DeepSeek Harness
不放缓存断点,但把缓存 token 记成不相交三份
Pi
按线路协议声明缓存能力,能力差异写进配置
工具5

MCP 接入

openJiuwen
工具基础设施下的 mcp 子模块
Codex
既是客户端也是服务端
DeepSeek Harness
packages/mcp 插件包
Pi
不支持 —— 全仓库无 MCP 实现
工具5

Skills 与渐进披露

openJiuwen
harness/skills 与 single_agent/skills 双处
Codex
独立 skills crate + 角色级开关
DeepSeek Harness
packages/skill 插件包
Pi
单文件 harness/skills.ts
进化6

评估与自改进

openJiuwen
把递归自我改进做成一级子系统 rsi/
Codex
两阶段记忆流水线,从历史会话里长出记忆
DeepSeek Harness
只收集人类反馈,且明确不回灌模型
Pi
内置 evals 包,直接拿来横向比 Harness 配置
多 Agent7

Agent 间通信

openJiuwen
层级消息总线团队
Codex
agent_communication.rs + 协作工具面
DeepSeek Harness
统一子代理结果契约
Pi
内核无 Agent 间通信