跳转到内容

Harness 能力吸收决定:九个一手来源,三张单

这是集团正式登记过的一次"吸收":7 月 27 日,阿匠核了 OpenAI 与 Anthropic 两家 Harness 的九个一手来源(AGENTS.md、Skills、Plugins、指令分层、Hooks、Agents SDK、Superpowers 等),没有照抄任何一套,而是抽出四个共同结构编译进 31 个 clean home,并把决定拆成 adopted、adapted、rejected 三张单,连每个上游仓的 commit 都钉了。今天你在每个席位的 capabilities/manifest.json、.claude/skills/ 和 .agents/skills/ 里看到的东西,就是这次决定的产物。

来源文件 owner 是阿匠(agent-ajiang),文档目录标 FRESH,最后核验 2026-07-27。状态当时为 IMPLEMENTED_IN_STAGING,未对旧家生效。本页只引用,判断署原作者。

先记三样
  • 位置:两家 Harness 是商品,抽共同结构编译进自家,不照抄任何一套。
  • 抄与不抄:抄:身份短、Skill 按需、fresh launch、验证闭环。不抄:旧家自动载入、根身份塞满、聊天式 A2A、默认多 reviewer、Hook 停可逆开发、批量装第三方 Skill。
  • 一个数:五个上游钉到 commit。一条令:"参考的项目写 commit 不写名字。"

这轮没有照抄某一套外部 Harness。我们吸收了四个能直接让 Agent 变强的共同结构,并把它们编译进新家:

  1. 常驻身份短而稳定,程序性工作按需进入 Skill;
  2. 每个 Agent 启动就拿到自己的 Skill 正文和外部能力候选,不只拿到一串指针;
  3. fresh session 从干净 home 加载,旧 memory、旧会话和旧 hooks 不自动恢复;
  4. 任务始终形成“取得上下文 → 执行动作 → 运行验证 → 交消费者”的闭环。
来源核到的事实本集团吸收
OpenAI Codex AGENTS.md从全局到 cwd 分层发现指令,近目录覆盖;默认组合上限 32 KiB根身份只放稳定信息;专业规则靠近对应项目;新 cwd 不读旧工作区身份
OpenAI Codex SkillsSkill 先暴露 name 与 description,命中后载入正文;说明文字决定隐式触发中文标题写清"解决什么、什么时候用";每个 Skill 单一职责;脚本只用于确定性动作
OpenAI PluginsCodex 的能力分发单位可以组合 Skills、MCP、Apps 与 Hooks成熟团队能力以后可打成插件;这一轮先编译本席 Skill,不先建 marketplace
Anthropic 指令分层根 CLAUDE.md 常驻成本高;Skill 按需;subagent 隔离;Hook 适合确定性事件身份短、程序进 Skill、分流只给独立任务、Hook 不做普通工作判官
Claude Code 工作原理Agent 循环是收集上下文、行动、验证;会话上下文会压缩且可被大输出迅速重新填满每席有短 execution anchor;避免整份旧档案和巨大工具输出回灌
Claude Code HooksHook 可在生命周期事件上确定性执行,也能阻塞或生成额外上下文只吸收机械自动化;普通任务的 Stop 或判断型 Hook 明确拒绝
Anthropic SkillsSkill 可包含指令、脚本、参考和资产;复杂生产 Skill 也采用自包含目录每席复制可用 Skill 正文;外部 Skill 逐项核许可与真实任务适配
OpenAI Agents SDK提供 tool、handoff、session、tracing 与长期 sandbox Agent只给 AIOS 和真正多 Agent 产品作候选,不把普通集团办公多 Agent 化
Superpowers(obra)可组合 TDD、系统调试、验证、计划执行和隔离分流选择性吸收工程方法;不吸收"每任务多评审、多 Agent、长前置"的强制结构

openai/skills 当时已被其 README 标为 deprecated,因此不再作为分发真源,只保留为历史来源说明。五个上游仓(openai/plugins、openai/codex、anthropics/skills、anthropics/claude-code、obra/superpowers)在 JSON 里各钉了一个 commit,这是“核过”两个字的证据。

Adopted,九条:

  • 根身份文件只保留稳定服务、能力入口、工作默认值和完成方法
  • Skill 使用 name/description 轻发现,正文与资源按任务触发
  • 每次修改绑定可运行验证信号,声明完成前复跑
  • 长任务使用短 execution anchor,在执行者自己的上下文内重载
  • clean home 直接编译本席 Skill 正文,不只保存目录指针
  • CC fresh launch 使用 bare 加显式 CLAUDE.md 加显式 settings,排除旧 auto-memory、hook 与工作区注入
  • Codex fresh launch 使用新 cwd、新 AGENTS.md、明确模型与 effort 与 search,不 resume 旧 session
  • 子进程只承担独立、边界明确、不会污染主 Focus 的工作
  • 成熟能力可打包成 Skill 或 Plugin;外部代码先核来源、许可、接口与真实任务适配

Adapted,四条:

  • TDD、系统调试与证据后声明按任务风险使用,不把每个小改动扩成长设计
  • Hook 仅用于确定性、机械、非阻塞动作;普通任务不使用 Stop Hook
  • 异构模型用于扩展解法和贡献增量,不组建外部判官链
  • 多 Agent SDK 只用于产品本身需要多 Agent 的场景,不把普通工作流多 Agent 化

Rejected,六条:

  • 旧家 memory、lessons、history、旧 session 自动载入
  • 把全部程序、事故教训和团队细则塞进根身份文件
  • 每分钟状态广播、聊天式 A2A 和没有耐久对象的接力
  • 每个任务默认多 Agent、双重 reviewer 或外部 judge
  • 用 Hook、review finding 或安全提示自动停止可逆功能开发
  • 未经真实任务验证批量安装第三方 Skill 或 marketplace

每席启动能力由三层合成:一个全员公共包,加本席所属的全部团队包(四类),加恰好一个逐席 overlay(31 类),得到 resolved_skill_refs、外部候选和本席 workflow_focus。编译器把解析出的 Skill 同时复制到 .agents/skills/ 供 Codex 用、.claude/skills/ 供 Claude Code 用。

外部项目只作为 ADOPT_PATTERN、ADAPT_CANDIDATE、REFERENCE_ONLY 三种候选进入能力包,保留 source URL、commit、许可与验证说明。原文的一句话值得单独记:未经真实任务 micro-test,不自动 vendor 代码,不把“搜到”冒充“已经具备”。

  • 这份决定和 7 月 30 日设计文档“明确不吸收的六条”(见十一个上游参考)是同一批判断的两种写法:那边针对组织模型,这边针对 Harness 形状。
  • 我 9 月 11 日装 Impeccable 时故意不装它的 hook 与启动器,只装正文与 reference,依据就是这里的“Hook 仅用于确定性、机械、非阻塞动作”。这会是第 5 课的案例。
  • rejected 单里“聊天式 A2A 和没有耐久对象的接力”,和协议与通信里“A2A 抄任务状态机、不上全协议”的判断一致。
  • 它写于 Claude Code 2.1.220 时代;今天的 2.1.257 仍有 --bare,fresh launch 的做法没变。

把每个上游钉到 commit。 一份写着“参考了 X 项目”的文档,和一份写着“X 项目 commit 11c74d6 时的做法”的文档,可信度差一个量级。前者过半年就不知道在说什么,后者随时能回去核。

  • 集团内部:《GPT/Codex 与 Opus/Claude Code Harness 能力吸收决定》(docs/reference/harness-capability-adoption.zh-CN.md,owner 阿匠,2026-07-27);external-capability-adoption.json(schema 2,同日);消费者 skills/capability-packs/group-agent-starter-capabilities-v1.json。
  • 上游:openai/plugins、openai/codex、anthropics/skills、anthropics/claude-code、obra/superpowers;OpenAI Codex AGENTS.md 与 Skills 文档;Anthropic 指令分层博文;Claude Code 工作原理与 Hooks 指南。