Skip to content

附录 B:检查清单 — 如何判断你的 Harness 更像 Claude Code、Codex,还是半成品 ​

出处

来源:原网页 · 状态:已读 · PDF:book2-comparing.pdf p.46–49

一句话 ​

原则如果不能落成检查清单,最后很容易只剩一些表述完整却难落地的判断。 这张表不是给两套产品打分,是用来露出自己系统把秩序放在哪一层——或者还没放。

核心概念 ​

B.1 控制面 ​

  • 每条 instruction 是否有 {source, type, precedence},fragment 可识别
  • prompt 中 control-plane 与 output-style 是否明确区分(文风不等于秩序)
  • 本地规则的作用域(CLAUDE.md / AGENTS.md)是否显式标注
  • team 规则变更是否可通过 diff 追踪(非口头约定)

答不上来,控制面仍停在「能用就行」。

B.2 连续性 ​

  • 连续性主权是否属于 {main loop, thread+rollout+state} 之一,归属明确
  • 中断是否同步闭账(synthetic tool_result 兜底也算)
  • 长会话是否有 compact / truncation / recovery 三件套
  • thread.id / 会话索引 / 状态落地是否为系统一等概念

若长会话主要靠模型自己「记得住」,基本不必再看。

B.3 工具与审批 ​

  • tool 是否为 schema 化接口,additional_properties=false
  • approval policy 是否可独立评估(不混在代码 if/else 里)
  • 危险工具(Bash 等)是否有专门治理(非一视同仁)
  • {workdir, network, sandbox, approval} 是否可显式表达

只会说「我们也有权限控制」,基本等于没设计权限。

B.4 本地治理 ​

  • 本地规则是否可按 {目录, 团队, 任务类型} 分层
  • skill 是否视为可复用制度切片,而非长 prompt(有版本/来源)
  • hook 是否挂在明确生命周期事件(pre/post/session_start/stop)
  • {skill, rule, hook} 是否具备 {version, source, trigger boundary}

B.5 多代理与验证 ​

  • 多代理的第一目的是否职责分离,并行只是附带(否则是把混乱并行化)
  • 是否存在独立 verifier(verifier ≠ implementer)
  • 委派是否为显式工具或显式状态事件,而非 runtime 魔法
  • 子代理 {failure, timeout, cancel} 是否有明确 cleanup owner

B.6 你更像哪一类系统 ​

更像 Claude Code:看重主循环、工具编排、中断、compact 与恢复;规则能迅速进现场会话;关心 agent 在复杂任务中持续跑。

更像 Codex:看重 instruction fragment、tool schema、approval policy、thread / rollout / state;本地规则做成结构化资产;关心组织内长期治理。

更像半成品:名词两边都会说,秩序归属却说不清;入口很多,恢复路径不清;规则文本很多,却缺作用域与优先级;有多代理,却无责任分离与收尾。

B.7 最后六问 ​

  1. 谁拥有最终控制权,模型还是 harness
  2. 连续性主要住在 loop 里,还是住在线程和状态里
  3. 工具动手前,谁来拦最后一道
  4. 本地规则怎么进入系统,怎么分层
  5. 验证由谁负责,如何独立
  6. 出事以后,团队靠什么追溯

这六句问下来,系统大概属于哪一派,通常也就露出来了。

B.8 阈值与顺序速查 ​

名称值作用源
MAX_ENTRYPOINT_LINES200入口文件行数上限Book 1 第 5 章 / memdir/memdir.ts
MAX_SECTION_LENGTH2_000session memory 单节上限SessionMemory/prompts.ts
MAX_TOTAL_SESSION_MEMORY_TOKENS12_000会话记忆总预算SessionMemory/prompts.ts
AUTOCOMPACT_BUFFER_TOKENS13_000autocompact 警戒缓冲compact/autoCompact.ts
MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES3熔断阈值compact/autoCompact.ts
yield_time_msper-tool单次 exec 阻塞毫秒上限local_tool.rs
wait_agent.timeoutmin/default/max子代理等待窗口agent_tool.rs
Bash 子命令数 capimplicit复合子命令上限bashPermissions.ts

事件顺序:

  • session_start → user_prompt_submit → pre_tool_use → tool exec → post_tool_use → stop
  • spawn_agent → send_input* → wait_agent → close_agent(cascade 关闭后代)
  • prompt too long → collapse → reactive compact → 若仍过长则 surface 错误(不再循环)

关键洞察 ​

清单的作用不是保证系统自动变好,而是防止一些最常见、也最无聊的错误反复出现。半成品的典型信号不是「功能少」,而是名词两边都会说、秩序归属说不清。六问比功能表快。

个人思考 ​

对照 Book 1 附录 A:那边按器官列(runtime / prompt / tool / compact / recovery / verification / team)。这边按比较轴列,并多了一栏「你更像哪一类」。自己做 harness 时,先拿 B.7 六问过一遍,比先画架构图有用。过不了 B.2 和 B.5 的,先别谈 skill 市场。

相关 ​

Copyright © 2026 openalon. All rights reserved.