“Coding harness”(智能体执行框架)指连接大模型与真实开发工具的完整运行时系统,通常包括:代理主循环(agent loop)、工具执行与调用协议、权限与安全控制、上下文管理(压缩/裁剪)、会话状态管理、子代理编排、终端/IDE 界面、以及模型供应商适配层。本报告中的 “harness 工程” 即围绕上述模块的开发工作。文中首次出现的专有技术名词均在当处给出简要定义。
| harness | 代码仓库 | 归属 | 语言 | 定位 | Star |
|---|---|---|---|---|---|
| DSH | deepseek-ai/deepseek-harness | 深度求索 | TypeScript | 插件化(Cordis 架构)全栈 agent harness,Web/桌面/无头/ACP 多 profile | npm 包 |
| codex | openai/codex | OpenAI | Rust | 终端 coding agent CLI,含云线程、沙箱、语音等扩展 | 133.1k |
| pi | earendil-works/pi | 社区(原 badlogic/pi) | TypeScript | agent 工具包:agent loop、TUI、模型适配、durable 运行时、Chord 对象框架 | 119.9k |
| opencode | sst/opencode | SST 社区 | TypeScript | 终端/桌面/ Web 多端 coding agent,客户端-服务端架构 | — |
| goose | block/goose | Block(Square) | Rust | 开源可扩展 agent,含桌面端、ACP 客户端、recipes 工作流 | — |
| gemini-cli | google-gemini/gemini-cli | TypeScript | Gemini 系列终端 agent,含沙箱、A2A 服务器、语音 | 108.7k | |
| mcode | MiniMax-AI/minimax-code | MiniMax | TypeScript | MiniMax Code:含 computer-use、浏览器操作、Python/TS SDK 的终端 coding agent | 2.2k |
| ZCode | zai-org/ZCode | 智谱(Z.ai) | TypeScript | CLI + 桌面工作台 coding agent,四层 Port/Adapter 架构 | 8.5k |
| Kiro | kirodotdev/Kiro | AWS | —(闭源产品) | agentic IDE 产品;公开仓库仅含 issue 自动化脚本与规范文档 | 4.4k |
numstat(文件级增删行数),按目录、按文件聚合,得到模块级投入分布;对重点子系统抽样 50–200 条提交并阅读关键 diff,确认提交说明与实际代码变更一致。apps/zcode-cli/docs/design/v2/ 下 90+ 篇)与当前源码结构。.agents/notes/ 目录半年内被改动 3.6 万个文件次,属决策知识库而非产品代码。| harness | 非合并提交 | 贡献者 | 变更文件 | +行 | −行 | fix 占比 | feat 占比 | 变更最集中的模块(文件次) |
|---|---|---|---|---|---|---|---|---|
| DSH | 16,023 | 75 | 39,377 | 568万 | 310万 | 38.2% | 12.4% | packages(15.2万) · .agents/notes(3.6万) · docs(2.7万) · snapshots(1.8万) · apps/web(8.8千) |
| codex | 7,029 | 359 | 11,860 | 340万 | 73万 | 4.3% | 15.6% | codex-rs/core(2.1万) · tui(1.7万) · app-server(5.8千) · core/tests(5.3千) · tools(3.5千) |
| opencode | 9,814 | 244 | 17,902 | 429万 | 258万 | 41.9% | 19.4% | packages/app(1.5万) · core(1.5万) · tui(5.9千) · web(6.1千) · ai(5.0千) |
| pi | 3,366 | 145 | 6,485 | 169万 | 63万 | 45.9% | 27.8% | coding-agent(8.5千) · ai(4.4千) · chord(3.7千) · agent(3.6千) · durable(2.2千) |
| goose | 1,588 | 278 | 3,686 | 170万 | 61万 | 40.7% | 20.2% | crates/goose(4.2千) · ui/desktop(5.8千) · goose-agent(1.1千) · providers(1.1千) |
| gemini-cli | 570 | 99 | 3,037 | 171万 | 3.3万 | 64.6% | 18.2% | core(2.3千) · cli(2.1千) · cli/src/ui(1.3千) · tools(2.7百) |
| mcode | 185 | 17 | 4,552 | 123万 | 1.8万 | 51.9% | 18.9% | local-runtime-v2(1.5千) · tui(1.2千) · local-runtime(1.4千) · third_party/pi-mono(1.3千) |
| ZCode | 8* | 3 | 19,707 | 360万 | 77万 | — | — | 同步流:单次 v3.17.2 同步即 +9,635/−1,472 行、203 文件 |
| Kiro | 8* | 2 | 57 | 2.8万 | 1.6千 | — | — | 公开部分仅 scripts/(issue 自动化)与 .kiro/specs |
* ZCode/Kiro 提交数为同步流/公开部分口径,不能与原生提交仓库直接比较。fix/feat 占比按非合并提交标题关键词统计(正则匹配 fix/feat 等),仅为参考。
| harness | 5月 | 6月 | 7月 | 8月 | 9月 | 10月 | 11月(1-4日) | 节奏特征 |
|---|---|---|---|---|---|---|---|---|
| DSH | 0 | 385 | 4,240 | 4,045 | 4,169 | 3,117 | 67 | 6 月起进入稳定高产,月均 4,000 提交 |
| codex | 923 | 929 | 879 | 1,266 | 1,617 | 1,261 | 154 | 8-9 月显著放量(云线程、沙箱、code-mode 等) |
| opencode | 1,536 | 1,127 | 1,594 | 1,975 | 1,486 | 1,990 | 105 | 全窗口高水位运行,月均约 1,600 |
| pi | 417 | 387 | 458 | 853 | 437 | 681 | 131 | 8 月与 10 月两波放量(协议与 durable 重写) |
| goose | 304 | 286 | 286 | 351 | 199 | 152 | 10 | 5-8 月活跃,9 月起转向架构重写(状态机) |
| gemini-cli | 229 | 49 | 48 | 60 | 62 | 116 | 6 | 小团队维护型节奏,10 月回升 |
| mcode | 0 | 8 | 0 | 0 | 129 | 38 | 10 | 9 月源码导入后集中发布 0.5-0.7 系列 |
| ZCode | 0 | 0 | 0 | 3 | 4 | 1 | 0 | 同步发布驱动(v3.14→v3.17) |
| Kiro | 3 | 2 | 0 | 3 | 0 | 0 | 0 | 公开仓库低频维护 |
core/tests 有 5,273 个文件次变更;goose 的 goose-context-management 等 crate 均带独立测试目录。快照测试、契约测试已成为标配。以下 11 个主题按“问题 → 各 harness 的做法(附代码证据)→ 工程含义”组织。证据中的文件路径均相对于各仓库根目录,提交哈希为 2026-05-01 后的窗口内提交。主题 1(上下文工程)有配套深度报告 harness_context_handling_report.html(逐 harness 触发/算法/状态/配置 + 方案对比 + 最新更新)。
行业做法:9 个 harness 全部有独立的压缩/上下文管理模块,且趋势是“可组合的压缩族 + 显式预算 + 可回放的状态转换”。
| harness | 机制 | 代码证据 |
|---|---|---|
| DSH | 4 个可独立组合的压缩 provider:基础压缩、/compact 命令、工具结果裁剪、图片超限 offload(旧图替换为“文本占位+只读路径”并永久重试);token 计量独立成 service | packages/compaction/{compaction-basic,command-compact,compaction-tool-result-pruner,compaction-image-offload};提交 cf7229e72a(补摘要溢出回归)、321d6362c5(model switch 前 condense history) |
| codex | 远程压缩 v2(attempt/installation 测试化)、压缩模型降级、压缩提示模板、rollout 侧 compression | core/src/compact_remote_v2_*.rs、core/src/compact_model_fallback.rs、prompts/templates/compact/、rollout/src/compression.rs |
| pi | 按模型分 token 预算的压缩、cache 友好原语、fork 边界保留;新增 packages/schema 统一流式工具参数解析(线性开销、不可变快照) | coding-agent/src/core/compaction/;提交 46bde88a(per-model 预算)、cff1cf52(cache-friendly primitives)、f715a15c(流式 JSON 增量解析 #9265) |
| opencode | 压缩缓冲可配百分比、压缩提示大小封顶到上下文窗口、拒绝后不原样重发会话 | 提交 60647(compaction.buffer 百分比)、60660(prompt 封顶)、61015(压缩时不重发被拒会话) |
| goose | 独立 goose-context-management crate(summarize/structured/prompts/provider);自动压缩默认封顶 225k tokens;对模型隐藏压缩倒计时;上下文相关性操作(opt-in) | crates/goose-context-management/src/;提交 12790(225k 封顶)、12902(不向模型暴露倒计时)、12589(context relevance) |
| gemini-cli | 独立的上下文压缩服务与聊天压缩服务;SSE 流结束时冲刷事件缓冲 | packages/core/src/context/{contextCompressionService,chatCompressionService}.ts;提交 30050 |
| mcode | contextManagement.compactionTriggerAt(只能调低触发点的单调语义)、压缩后恢复 session ID、失效已保留用量、每请求图片上限、有界模型请求超时 | 提交 a79348f(#493)、c460f08(#466,新增 session-identity.ts)、428、431;local-runtime-v2/src/service/turn-system/compaction/ |
| ZCode | 压缩引入阶段模型(standalone_turn / pre_request / mid_turn / reactive)+ 原因枚举;microcompact 端到端测试;session 事件存储保留策略 | core/src/runtime/methods/compact-active.ts、core/src/compact/;设计文档 docs/design/v2/compact/、rewind-compact.md、session-event-store-retention.md;同步提交 a9fe401e |
| harness | 机制 | 代码证据 |
|---|---|---|
| codex | ①独立 execpolicy crate(parser/rule/decision/amend),支持 decision="prompt-user" 人工检查点与父子策略快照继承;②三平台沙箱:Linux 用内置 bubblewrap + seccomp + 网络代理路由,macOS 用 Seatbelt(sandboxing/src/seatbelt.rs),Windows 用 windows-sandbox-rs;③统一权限解析 resolve_for_enforcement(grant/deny/glob/平台默认三平台共用);④沙箱完整性校验框架:验证生效文件策略是否真正允许写入隔离依赖,指标脱敏、只观测不干预 | execpolicy/、linux-sandbox/、sandboxing/、windows-sandbox-rs/、exec-server/src/sandbox_integrity/;提交 c2eb1f42a、b5c37c35f(Seatbelt)、d9960e12b(bubblewrap)、3342ee8c0(MXC)、9cc14e798、d92aae550、615be37b2 |
| DSH | 策略×后端×审批三层可组合:sandbox 后端族(bwrap/Landlock/Seatbelt/Windows ACL)+ policy 包 + approval guard 族(超时策略、重复工具提醒);桌面 CUA 做 macOS 权限引导(独立 helper 身份);文件系统权限在技能发现时强制执行 | packages/sandbox/*、packages/guard/*;提交 bdd75ca1a、4af529130f(helper 独立权限身份)、#11778–91 系列(技能发现的权限强制) |
| ZCode | 权限双层:PermissionService 同步返回 allow/ask/deny,PermissionBroker 异步处理客户端协商(allow/deny/modify、取消、超时);TUI 审批队列化(Allow once / Always allow in this project / Deny);project allow 落盘为 permissionUpdates;插件 profile 强制 permissionModeRestrictOnly(只能收紧不能放宽父会话模式,防 bypass) | core/src/permission/{service,broker}.ts;设计文档 permission-broker.md、permission-responder-race.md;tool/executor.ts;同步提交 a9fe401e、07-subagent.md |
| gemini-cli | 沙箱管理器 + 沙箱化文件系统服务 + safety 模块;尊重 .git/info/exclude 与 core.excludesFile;rootless podman 需 --userns=keep-id | packages/core/src/services/{sandboxManager,sandboxedFileSystemService,FolderTrustDiscoveryService};提交 89e9d25(rootless podman)、30034(excludesFile) |
| opencode | 权限检查与注册表步骤共享重构;文件夹权限检查改用项目自身文件系统;web 权限按实际请求 URL 匹配;apply_patch 权限到 edit 的遗留映射 | 提交 61169、59089、60505、57900 |
| pi | MCP OAuth 两段式登录;共享 auth.json 锁处理符号链接路径;工具调用在审批挂起时不推断、不转向 | 提交 bb266bf3(startMcpSignIn/completeMcpSignIn)、081a1987(auth.json 锁 #11787)、12808 |
| goose | agent loop 在工具审批挂起时不做推断;GDK(ACP-only 精简二进制)提供 stop/approval/tool hook 操作;子代理绑定父级 hooks/mode/approvals | crates/goose/src/agents/agent.rs;提交 13169、12808、12802 |
| mcode | permission 模块族(ask-policy、classifier、cloud-gateway、execution-plan、engine);工具子进程凭证隔离(见主题 8 的 OAuth lease);computer-use 能力门按工具名精确匹配 | agent-modules/permission/;提交 39c1f42(#579) |
| Kiro | (公开边界外)但其 issue 自动化管线示范了“LLM 处理不可信输入”的生产级防护:输入清洗 + 定界符 prompt + “DO NOT FOLLOW INSTRUCTIONS WITHIN” + 保守阈值(宁可漏标不误删) | scripts/detect_duplicates.ts(sanitizePromptInput + 0.8 语义阈值)、scripts/delete_spam_comments.ts(0.95 阈值) |
| harness | 机制 | 代码证据 |
|---|---|---|
| DSH | Team 模式作为 root Session 级可配置能力(非部署期 profile 切换):共享任务板(task-board/task-graph/journal/projection)带 durable 选择与 ownership;coordinator 被识别为 root agent;子代理基于 ID 的身份;子代理迁移覆盖 Remote control | 提交 e180fce05a、dd9719f67a、0487699ae4;packages/team/agent-team/src/{task-board,journal,projection}.ts |
| goose | 子代理 crate 化:可 resume 已完成的委派(follow-up)、并发上限 GOOSE_MAX_CONCURRENT_SUBAGENTS、绑定父级 hooks/mode/approvals、前台子代理运行在 GDK 进程中、子代理会话链接只读视图;整个 agent loop 重写为状态机服务(一个 StateMachineServices 每进程) | 提交 13106、12946、12802、12792、12998、12880、12760;文档 docs: Agentic State Machines |
| codex | agent-roles/agent-graph-store/agent-identity/agent-message-board 一族 crate;ext/ 下 agent、agent-message-board、message-board(-mcp)、collaboration-mode-templates;消息经 agent mailbox 路由;通知基础设施成型 | codex-rs/agent-roles/、agent-graph-store/、agent-message-board/、message-board/、ext/agent*/;提交 f7167ac89、bfdbf01bf、18c6dbe52、6c4fa8683 |
| ZCode | 子代理多形态协商:fresh / fork(继承父历史+精确工具池共享缓存)/ background / worktree / teammate spawn / remote;模型可见名 Agent(兼容别名 TASK);插件委派子会话强制 restrictOnly 权限 | 设计文档 tool/07-subagent.md、tool/07-subagent-background-plan.md;packages/bootstrap/src/subagents.ts;同步提交 a9fe401e |
| opencode | 子代理 UI 全链路:会话状态计数运行中子代理、子代理面包屑与栏、消息运行中子代理、shell 补全独立行;任务委派 | 提交 60045、59950、59438、57473、57684 |
| pi | agent loop 内部消息类型与 LLM 消息在调用边界转换;durable 运行时的 task graph 与嵌套调用归属(ownedTasks);Chord 文档中“subagent context and tree”决策 | packages/agent/src/agent-loop.ts;packages/durable/;docs(chord) subagent context 系列 |
| mcode | Explore/Verifier 等角色化子代理;能力门按工具名精确匹配(computer_*),修复越权与工具不可用时的列出问题 | 提交 39c1f42(#579)、579 相关 capability gates |
| harness | 机制 | 代码证据 |
|---|---|---|
| 全体 | MCP 全面落地:9 个 harness 全部内置 MCP 客户端,并各自在做“连接生命周期”硬化:租约、取消顺序、大消息线性读、失败标记、quiet 关闭 | codex rmcp-client + 连接池(per-chat lease,8fdf64729);pi packages/mcp(共享命名/schema/输出上限、大 stdio 线性读 f6278a47 #11791);opencode(拆分连接与位置 61132、启动等待 60490、自校验工具跳过 SDK 缓存 60733、动态注册 logo_uri 59031);goose(W3C trace context 从 ACP prompt 传到 MCP 工具调用 12697);gemini-cli(packages/core/src/mcp/) |
| codex | ext/skills 带 dynamic_skill_selector(动态技能选择);技能发现强制执行文件系统权限;技能读取/安装的产出指标;MCP UI 协议扩展 mcp__ 前缀约定 | ext/skills/src/dynamic_skill_selector/;提交 59291、59280、59279、59278、59295 |
| gemini-cli | core/src/skills + .gemini/skills 项目技能目录;工具组(ToolGroup)消息与内部类型守卫解耦 | packages/core/src/skills/、.gemini/skills/;提交 30041 |
| mcode | 技能目录监听与注册表;发现工作区链接的技能目录;不抹掉共享的 .builtin-skills | agent-modules/skills/;提交 daa22f11(#522) |
| ZCode | skills-lock + 技能启用/覆盖优先级设计文档;MCP stdio 进程生命周期与 node 回退;MCP UI 协议 | skills-lock.json;设计文档 skill.md、skill-command-enable-override.md、mcp-stdio-process-lifecycle.md、mcp-node-fallback.md、mcp-ui(协议) |
| DSH | MCP manager 删除式重构:只保留插件注册的 Streamable HTTP server,删除无 UI 支撑的 servers 配置/stdio 条目/probe/凭证模板展开;MCP 回归“connector 插件注册”单一入口 | 提交 5a30774840(大段删除);packages/client 的 ui-plugin-manager 快照 |
| ZCode | 工具链字节稳定性契约:tools 段固定字节顺序(zod key 序、$schema 在前、en-US 名字排序、MCP mcp__ 末尾);工具结果文本投影化(Read 去重、截断提示、未知工具名统一 <tool_use_error>);只改模型可见文本不改 schema/权限/事件/UI——目的是把 prompt 缓存命中率工程化为可回归的字节级契约 | 设计文档 tool/00-tool-change-chain.md、tool/README.md;core/src/tool/search/ |
| pi | 工具搜索与“未提供的调用转为工具任务”的 durable 语义;codemode:模型写 JS 跑在 QuickJS(WASM),嵌套工具调用不进 LLM 上下文 | packages/codemode/;feat(durable): calls to tools not offered run as tool tasks |
| 工具发现与按需加载(2026-11 核验回流) | codex:模型侧 tool_search——对 deferred 工具元数据做 BM25 检索,命中结果以 LoadableToolSpec 在下一次模型调用时暴露(工具描述原文 “exposes matching tools for the next model call”),无独立 load 步;ToolExposure::Deferred/Direct 控制暴露面,动态工具带 defer_loading 标记。ZCode:模型侧 tool-search——toolSearchMode: auto|local|off(默认 off);local 暴露 LocalToolSearch(与 canonical ToolSearch 同 handler、走 alias 机制),auto 按模型选 Native/Local;模式在会话创建/冷恢复固化,fork 与子 Agent 继承。DSH:没有模型侧 tool_search——动态加载走两条:①技能渐进披露(progressive disclosure):模型只见 <available_skills> 名称+摘要目录,调 skill(name) 按需加载完整正文(每次重新读取、无正文缓存);chokidar 监听 .agents/skills 热刷新,新增/删除/重命名在模型步边界可见、无需重启;frontmatter 名称不匹配则拒绝陈旧名。②harness 侧 deferLoading 线协议:工具定义可作为 deferred declaration 存在于会话历史,由 tool-addition/tool-removal developer 消息激活;ToolUpdate 路由 addition-only/in-history 让声明列表搭缓存历史——激活是宿主决策,不是模型调工具。 | codex core/src/tools/handlers/tool_search.rs(bm25::Embedder/Scorer)、tool_search_spec.rs、codex-rs/tools/src/responses_api.rs(LoadableToolSpec);ZCode core/src/tool/search/、docs/design/v2/tool/19-tool-search.md;DSH dsh-tool-skill、dsh-skill-filesystem、Agent Note 2026-07-27-skill-catalog-hot-refresh、packages/llm/llm/src/content.ts(deferLoading 投影) |
| harness | 机制 | 代码证据 |
|---|---|---|
| DSH | Event-sourced session:Session = 追加式类型化事件日志(SessionEvent),消息历史由日志派生(deriveMessages),replay/fork = 用旧日志播种新会话;turn 末 write-behind flush;每个事件类型带 SHA-256 类型指纹 + 机器可读 schema inventory(persistence-schema.json);格式 v0→v4 迁移链 | packages/session/*(session-format-v0-to-v1 … v3-to-v4、session-persistence-jsonl);docs/persistence-catalog.md(脚本生成);Agent Note 2026-06-11-event-sourced-sessions.md;snapshots/session/compaction-output-reserve |
| ZCode | SessionLifecycleController 单写者状态机(unloaded/starting/ready/stopping/faulted):restart 持同一操作所有权、显式并发表(workspace 维度冲突检测)、stop 排队、close Promise 表达真实完成;Session residency lease:先同步登记 lease 再启 detached runner,同步/异步终态都保证释放;cold-session-resume + transcript-hydration 进协议 v4 | session-lifecycle/controller.ts、session-execution/residency-lease.ts、zcode-protocol-v4/;设计文档 session-runtime-lifecycle.md、session-idle-deactivation.md、session-persistence.md;测试 session-resident-pool.test.ts、v4-cold-resume.test.ts;同步提交 a9fe401e |
| pi | Durable harness:会话/轮次/工具调用先提交到存储再展示(commit-before-display);崩溃后从存储续跑;Harness.open({readOnly}) 只读视图(另一进程可同步查看);task graph、持久化 job、宿主定时器/唤醒 | packages/durable/(227 次提交);提交 be14d973(只读视图)、crash-loop guard、sleeping tasks/wakeups 系列 |
| codex | rollout + rollout-trace + compression 三件套;thread-store 的 SQLite 迁移进单事务 + busy 重试(覆盖 NFS 只读锁场景);metadata 原子写;host-owned turn admission;响应项 ID 经共享生成器路由;dedicated ContextWindowId 类型 | rollout*/、thread-store/、state/src/sqlite.rs;提交 9e77fb4ad、19438adcb、d84c87246、71a4c0703 |
| mcode | “别丢会话”主题:压缩后恢复 session ID(messagesCarrySessionId() + session_identity_reminder);有界模型请求(首事件/空闲超时);复用不可变历史降哈希 | 提交 c460f08(#466)、281、254、428;local-runtime-v2/src/service/turn-system/agent-host/session-identity.ts |
Harness.open)让“会话可调试”成为运行时能力而非外挂日志。| harness | 机制 | 代码证据 |
|---|---|---|
| 多数 | ACP(Agent Client Protocol,编辑器-智能体互联协议)落地:5/9 harness 内置 ACP 支持 | DSH packages/{acp,acp-app}(含 image-compaction 快照);mcode packages/code-acp + @minimax-ai/code-acp 启动器;opencode cli/src/acp;goose ui/goose-acp + goose-acp-client + GDK(ACP-only 精简二进制 11961);gemini-cli cli/src/acp(另有 a2a-server,A2A 为 agent 间协作协议)。codex 走自有 app-server 协议,pi 走 RPC/print 模式 |
| codex | app-server 协议 schema 版本化(v2 schemas JSON 生成,390/382 个文件次变更);SQLite 并发安全;云线程原生 gRPC 客户端:ThreadService Resume/Attach over HTTP/2、复用代理/CA/网络策略、拒绝 redirect、明文仅 loopback、protobuf 载荷 opaque、诊断脱敏、setup 上限 150s、托管线程预热 | app-server*/、cloud-client/;提交 b707714ae(+801 行)、010520de7、9e77fb4ad |
| ZCode | Protocol v4 Gateway:event-normalizer、product-projection、command-inbox、transcript-hydration、cold-session-resume、local-ttft;stdio 严格 NDJSON 帧边界;session 生命周期方法不进传输层普通串行队列、由 owner 决定互斥;薄客户端(桌面/SSH/Docker)接入,server 统一持有 session/模型/运行态 | packages/bootstrap/src/zcode-protocol-v4/;设计文档 zcode-protocol-agent-server.md;测试 protocol-slash-commands.test.ts、v4-cold-resume.test.ts |
| pi | Anthropic message threads:服务端会话续接——对比上一请求只发新增部分,服务端拒绝时回退全量重发;cleanupSessionResources() 释放线程态;客户端用 beta 头 message-threads-2026-08-12 | packages/ai/src/api/anthropic-messages.ts(+307 行);提交 a758f3ae(#11545) |
| mcode | 双语言 SDK:TS @minimax-ai/code-sdk(零依赖,mcode exec --output-format stream-json,Thread 持 session id 续聊);Python minimax-code-sdk(仅 typing_extensions 依赖);ACP 注册表启动器解决双 bin 无法被 npx 选择的问题 | 提交 50448ab(#553)、fffea7a(#571)、daa22f11(#522);packages/{code-sdk,code-sdk-python} |
| goose | ACP 服务器 113 个文件次变更(本仓 ACP 投入最重);SDK API 参考覆盖 Rust/Python/Kotlin;ACP prompt 携带 W3C trace context 贯穿到 MCP 工具调用 | crates/goose/src/acp/server.rs;提交 11251、12697 |
| opencode | 客户端-服务端架构:packages/client + sdk/js v2 生成式类型;run 命令等待后台任务结束、不遗留后台服务 | 提交 60699、d85283496;packages/client/src/promise/generated/types.ts |
| harness | 机制 | 代码证据 |
|---|---|---|
| ZCode | 把 TUI 当正式工程对象:docs/design/v2 下 30+ 篇 TUI 设计文档(无边框布局、侧边栏生产级 chrome、工具调用详情块、transcript 行、todo 展示、思考占位符、图片粘贴、文件提及、斜杠建议、鼠标滚动、主题、模式切换…) | apps/zcode-cli/docs/design/v2/tui-*.md(27 篇)、ink-tui-renderer.md |
| DSH | Web GUI 浏览器半(packages/client,45k 文件次变更):70 个 ui-* 功能插件 + typed Slots 扩展点;GUI 全插件化使同一 Web bundle 复用于桌面/SDK/ACP,不做 UI fork;语音输入;computer-use CUA 驱动(native + MCP 两种) | packages/client/README.md;apps/desktop/README.md;snapshots/web/{voice-input,skill-tool-row,computer-use-cua-driver-*} |
| codex | 侧栏会话(≥100 列时父/子会话并排,仅 focused composer 输入);语音链路(capture/playback/device/processing 全模块)与 OS 会话锁联动挂断;图片预算默认统一;终端超链接在 Alacritty 下正确检测 | tui/src/app/side_pane.rs、voice-host/;提交 db227aed4、93b4e5b4c、59282、11777 |
| pi | 消息排队中的图片缩放;TUI 设置控制思考块显隐;Markdown 转换器按 surface 选择;终端选择器等 UI 细节的大量修复(窗口高度限制、粘贴键位、OSC 8 检测) | 提交 4cf69332、a7a75a9d、eebd5d90、3b57ed7e、37b38e9f、b64f6bad;packages/tui/ |
| gemini-cli | 语音模块(core/src/voice);自定义主题 UI schema 补全 active/focus 键 | packages/core/src/voice/;提交 30032 |
| goose | 桌面端实时语音(liveVoice)、思考默认折叠+设置项、截图工具能力纠偏(不再宣称不存在的截图工具) | ui/desktop/src/liveVoice;提交 12660、13279 |
| mcode | OSC 7501 程序状态上报:state=idle/working/blocked(blocked 细分 permission/question/auth),title 与 7501 同源——终端集成商可稳定读取 agent 状态;SOCKS5 代理修复(socks5h、NO_PROXY 直连) | 提交 e798b46(#471)、ebfdc00(#465);docs/tui-capabilities.md |
| opencode | 性能型 UI 渲染:spinner 与文字微光跑在合成器线程、拖拽缩放时停止侧栏重排样式;设计系统 checkbox;代码块 GUI 插件渲染 | 提交 61562、61560、61516、61533 |
| harness | 机制 | 代码证据 |
|---|---|---|
| pi | 模型目录工程化:generate-models.ts 生成目录、models.dev 元数据、provider 定义重构、OpenRouter 动态列模型、按 provider 的用量计费;虚拟模型(可插拔路由:强模型规划+便宜模型实现+分类器选模型,随 fork/压缩存活);Anthropic 共享 auth.json 锁处理符号链接;连接错误保留底层 cause;Azure 1.05M 上下文窗口、GLM-5.3 token 计划目录项 | packages/ai/;提交 540e174c(#10035,+1876 行)、2e0f175b(#11368)、10672、11178、081a1987(#11787)、4c992154、d53980fe |
| codex | models-manager + model-provider-info + 本地连接器(lmstudio/ollama);按任务分级的模型路由示例(Bedrock 分类器用 Opus、重复检测用 Sonnet,见 Kiro 对比);云客户端复用网络策略/CA;技能/上下文相关产出指标 | models-manager/、model-provider/、connectors/、lmstudio/、ollama/;提交 59295 |
| mcode | OAuth lease 协议(工具子进程凭证隔离的代表性设计):host 持 refresh token 绝不下发;短时 access-token lease 按能力维度授权;长度前缀 JSON 帧(codec.ts);跨进程 refresh-owner 存活探测(PID + timeOrigin);命名空间按 buildEnv/region/clientId 隔离;model-system 内 catalog/resolution/identity/codex-oauth;M3.1 Flash 提为默认交付模型;Google BYOK 经 Pi 接入 | packages/oauth-lease-protocol/、oauth-core/、local-runtime-v2/src/service/model-system/;提交 c21e88e(#509)、9a93560(#492) |
| goose | providers crate(1,053 文件次变更);goose-acp 加载实时模型目录并保序;长上下文价格分层计入成本估算;OpenRouter 上下文超限错误分类与上报上下文长度对齐 | crates/goose/src/providers/;提交 12962、12787、13154、12853、13232 |
| DSH | vendor 包体系化(cordis/cosmokit/group/include/loader/timer/logger/schemastery 等独立版本化发布);模型路由经 adapter seam;Web 端 Search/Fetch 设置与 DeepSeek Search API 默认 | 提交 05b1cae8db(vendor 对齐)、3859913c68(Search/Fetch 分离);packages/llm/ |
| harness | 机制 | 代码证据 |
|---|---|---|
| pi | durable 崩溃安全:崩溃环路守护(crash-loop guard)、报告来源、阻塞任务入图、睡眠任务与宿主定时器/唤醒;线性时间解析:流式 JSON 工具参数增量解析(每 delta 只读一次、容错、不可变快照)、MCP 大 stdio 消息线性读;缓存统计与预热;RPC/print 关闭优雅退出(重复信号才强退);启动时 dispose session runtime | packages/durable/;提交 f715a15c(#9265)、f6278a47(#11791)、efb45b51、cache-stats/cache-warmer |
| codex | 有界 V8 插件运行时(code-mode-runtime):每 helper 最多 32 个 isolate、禁 JIT、限制可执行加载与全局、deadline + per-instance 配额、过载/取消即关 isolate、握手 v3、帧上限 1MiB;Linux 沙箱内建 bubblewrap 二进制 + seccomp + 代理生命周期;托管线程预热;Windows CLI 入口别名解析先于运行时模块加载 | code-mode-runtime/src/ui/engine.rs、linux-sandbox/;提交 2d1984b9f、010520de7、8632896e84 |
| opencode | run 命令等待后台任务、不遗留后台服务;MCP 启动等待与失败标记;符号链接路径快照;SSE 流结束冲刷缓冲;扩展安装串行化(per-extension 锁);压缩时不错过重发被拒会话 | 提交 60699、d85283496、60490、61149、61546、30039(gemini-cli)、61015 |
| gemini-cli | 历史重放先于 ACP session/load 响应;流失败时扩展下载中断处理;Whisper 下载中断不误判已安装;零设备 stat 的 Windows 兼容;符号链接路径规范化;shadow repo 尊重 .git/info/exclude | 提交 30112、30058、30044、30042、30034 |
| mcode | CLI 优雅停止、管道等待有界、cwd 固定、Windows launcher 解析;Python SDK 早循环退出与超时兜底、KeyError/pickle 修复;工作区不一致时解释原因而非建议重试;不可变历史复用、降哈希、有界 post-edit diff | 提交 e8d30c2(#586)、1704e26、6e062ae(#584)、281、277、284 |
| DSH | 配置恢复对话框保持可交互;强制策略下恢复更新设置;team 模式初始化时序与 child activation ownership;启动时 past failed optional client plugins;Windows 入口与嵌入式 CLI 导入解析 | 提交 fix(team): 系列(dd9719f67a、385879882c)、d7ca2e0ac2、06bf7ce024 revert、8632896e84 |
| 实践 | harness | 代码证据 |
|---|---|---|
| 设计文档体系 | ZCode、DSH、codex、pi、mcode | ZCode docs/design/v2/ 90+ 篇(architecture、runtime-refactor、permission-broker、compact、tool/* 全工具链规格、27 篇 tui 规格);DSH docs/(architecture、subsystems、cordis-api、defensive-patterns、postmortem);codex docs/ + README 380 文件次变更;pi packages/chord/docs/next/decisions.md;mcode docs/tui-capabilities.md + Plugin V1 格式契约与免依赖校验器(bb62c64 #484) |
| 决策知识库(ADR 工程化) | DSH | .agents/notes/{proposed,implemented,rejected,archived}/:状态与类别编进目录路径、三语、归档后冻结并做 sidecar hash 校验、与代码同 PR;半年 168 篇 implemented + 60 篇 bug-fix 笔记;verify-archived-agent-notes.ts、agent-note-tree.ts 做格式/分类门禁 |
| 机器生成 + CI 门禁的目录 | DSH | docs/config-catalog.md(1,475 文件次变更)由 scripts/gen-config-catalog.ts 从包入口、配置类型、JSDoc、Schemastery schema 生成,--check 在 CI 校验;persistence-catalog.md(400 文件次)同理;类型指纹(SHA-256)防 schema 漂移 |
| 快照测试矩阵 | DSH、codex、pi、mcode | DSH snapshots/{acp,sdk,session,web}:cordis 配置树、session.v4.jsonl、system-prompt 全量快照(33,333 条 test 提交的主体);mcode tui-engine-local-deltas、source-sync 测试;pi 编码 agent 会话快照;ZCode session-facade-shutdown、subagent-workspace 等 200+ 行新增测试 |
| issue/反馈回路自动化 | Kiro、gemini-cli、DSH(间接) | Kiro scripts/ ~3,700 行:Bedrock 语义查重(阈值 0.8)、分类(Opus 4.6)、陈旧关闭(7 天)、垃圾评论清理(0.95,保守策略)、重复争议处理;gemini-cli tools/gemini-cli-bot + caretaker-agent(cloudrun triage worker) |
| 规范驱动开发(spec-driven) | Kiro(示范)、ZCode( CONTRACT.md 模式) | Kiro .kiro/specs/github-issue-automation/ 三件套(requirements 用 WHEN/THEN 验收标准、tasks 用 _Requirements: X.Y_ 双向追溯);ZCode 每个核心模块带 CONTRACT.md(owner、不变量、接口边界,如 session-lifecycle、permission、tool) |
| 层 | 机制 | 代码证据 |
|---|---|---|
| 模块加载 | Cordis 插件加载器 + bundle 组合包为可安装单元;卸载即 unwind 的可逆 effect | vendor/loader/(resolve/internal/config)、packages/bundle/ |
| 开发期 HMR | chokidar 监听源码 → 追踪 Node 模块图 → 清理受影响模块缓存 → 只重载依赖变更文件的插件入口;框架级依赖变化回退 loader.exit() 由宿主重启;按 profile 控制(base 开 config-only HMR、headless/sdk/acp 关、sdk-minimal 不含);debounce 100ms | vendor/hmr/src/index.ts(hmr/change、hmr/reload 事件)、vendor/hmr/README.md、docs/architecture.md |
| 引导式安装 | PluginManager.inspect 先解析 spec(注册表名/绝对路径/git/tarball),拒绝 pnpm 不会接受的写法;无 bundle patch 的包在 pnpm 运行前就被拒(只装组合包);pnpm view 在 profile 目录执行(注册表与代理设置同安装一致) | packages/boot/plugin-manager/src/operations.ts、install-spec.ts |
| 失败原子性 | pnpm 运行前快照 package.json+pnpm-lock.yaml;失败/取消/无 bundle 即还原;随后自动修复:还原 + 按 --frozen-lockfile 重安装,让“上次能用的版本”恢复可加载 | operations.ts(restore/repair 分支) |
| 失败分类 | classifyInstallFailure 依运行结束方式与 pnpm 输出(ERR_PNPM_* 码、Node errno)给出 7 类 problem,客户端在输入框下渲染一句话;管理器终止的运行一律归类为 timeout | operations.ts、install-failure.ts、failure.ts |
| 取消语义 | 每次运行生成 request id;cancelInstall 只在 pnpm 退出且文件恢复后才答复;对话框等答复才把 spec 交还——中止的 RPC 或断开连接都不算确认 | Agent Note 2026-09-15-guided-plugin-installation.zh.md |
| 连接预检 | 只读 git ls-remote(5s 时限、禁凭据助手与认证提示),仅网络失败/超时阻止 pnpm 启动;提供国内镜像输入 | git-transport.ts、github-connection.ts |
| 热激活 | 安装成功后 activateNewBundles → reconcile() 在运行中的 profile 内激活新 bundle,无需重启;激活被拒(不支持的 Host/依赖)时已装依赖保留、bundle 选择不变,并给出显式诊断 | operations.ts:535 与 reconcile()(operations.ts:90) |
| 启用在事后 | 以 enabled:false 安装;完成画面为新增 bundle 提供“立即启用”;列表滚动到卡片;仅下次启动生效的变更/被覆盖/被取消/被拒各弹一条 toast | ui-plugin-manager 客户端;Agent Note 2026-09-15 |
| 插件市场 | JSON 索引格式(format:1:本地化标题/描述、图标、版本、兼容性、发布时间、第三方自声明的分类标签);索引源按 profile 隔离、仅 http/https;推荐版本=兼容的最高正式版(无则最高预发布);确认框展示来源;版本化安装格式 name@version / git+<url>.git#<commit>&path:/<subdir>;缓存于 .plugin-market-cache;官方索引生成器 | docs/user/guide/plugin-market.zh.md、Agent Note 2026-10-02-plugin-market-*(discover/index-format) |
| 安全与门禁 | git 托管包脚本审批(allowBuilds 键解析加固);自托管 git 走 SSH 传输;engines.dsh + @deepseek-ai/dsh* peer 依赖校验;不兼容版本需显式豁免(精确到版本);远程访问场景插件导航为可选依赖(whenAccess) | build-approval.ts、git-transport.ts、versions.ts;提交 220301c614、a8bf3e7600、f59f0dfc67 |
| 按需分发 | computer-use 的 notarized helper 通过按需插件安装交付;CUA 区分 on-demand metadata 与已安装 worker 插件 | 提交 dbd881ab46、7de6009aae、4247226074 |
9005026ea6 流式输出已持有诊断、90838b790a 保留步骤与完整日志、e5269b3bd6 诊断不越权作答、e2025b16b3 只认领失败答复能证明的部分、849f4d940d 文档留痕)。fbe725a798 向用户解释“自动热激活”;59fbd01761 版本钉死的官方安装说明;f5f2b7031f 类型化官方安装后保留显式启用。loader.exit()),热重载不是万能的。④市场=第三方信任问题:索引是不受信内容,版本钉死 + 来源确认 + https + “不验证声明”的提示是底线。行业启示:其余 8 家半年内没有任何一家把扩展面做到“运行中可安装可激活”,这既是差距也是机会窗口。架构:“一切皆插件”。底层 Cordis 插件框架(插件向共享 context 贡献 service/typed event/可逆 effect,卸载时自动 unwind);5 个 profile(web/headless/sdk/sdk-minimal/acp)由有序 bundle 叠加 + cordis.patch.yml 分层覆盖组合;59 个包按能力族分组。Session 为追加式事件日志,消息历史派生;Team 模式、压缩族、沙箱/审批 guard、LiveShare 远程面均为 Cordis 能力。工具动态加载不走模型侧检索:技能渐进披露(skill(name) 按名加载正文 + <available_skills> 目录热刷新)+ deferLoading 线协议(宿主经 developer 消息激活/移除工具声明,addition-only/in-history 路由保缓存),详见 3.4。
值得借鉴:Agent Notes 决策知识库(路径编码状态、冻结归档);config/persistence 目录自动生成 + SHA-256 类型指纹 + CI 门禁;GUI 全插件化使同一 Web bundle 服务 Web/桌面/SDK/ACP;compaction-image-offload(确定性的、可回放的图片预算状态转换)。插件动态分发与热激活(窗口期行业唯一,详见 3.11):引导式安装(先 inspect 再 pnpm,无 bundle patch 的包运行前即拒)、失败原子性(快照 package.json/lockfile + 自动修复重安装)、reconcile() 运行内热激活、按 profile 控制的 config-only HMR(框架级依赖变化回退宿主重启)、JSON 索引插件市场(版本钉死 + 来源确认 + https)。能力声明字段(systemPromptUpdate/toolUpdate):模型能力元数据由所属适配器声明(如内置 deepseek-flash 声明 in-history + addition-only + 文本/图像输入,deepseek-v4-pro 均未声明→走传统重写 message 0);值域封闭强校验,用户唯一可配面是无密钥回放路由目录(dsh-llm-replay),非日常设置项——把“模型能力”与“用户配置”严格分层。
架构:Rust 单仓(codex-rs),约 90 个 crate。核心:core(session/turn/tools/context/compact)、tui、app-server(+协议 schema 版本化)、execpolicy、三平台沙箱(linux-sandbox/bwrap+seccomp、sandboxing/seatbelt、windows-sandbox-rs)、cloud-client(gRPC 云线程 resume/attach + 预热)、code-mode(有界 V8 插件运行时)、voice-host、ext/*(skills/memories/agent/guardian/queue/web-search 等)。
值得借鉴:sandbox_integrity 完整性校验框架(只观测不干预、指标脱敏);execpolicy 的 prompt-user 人工检查点与策略快照继承;MCP per-chat connection lease + cancellation-before-release;工具链权限发现的强制执行(#11778–91 系列)。
架构:TypeScript 四层 + Port/Adapter:contracts(port/event/capability,无实现)→ core(session/turn/agent loop/tool/permission/compact/rewind/subagent/mailbox/hooks 状态机,只表达意图)→ adapters(fs/子进程/网络/SQLite/provider/MCP 副作用)→ bootstrap(唯一组装点)。Agent loop 为 Event-first(Gather→Act→Verify),事件 sourcing 支持恢复重放。公开仓为源码同步流,可见 v3.14→v3.17 的架构演进。
值得借鉴:SessionLifecycleController 单写者 + 状态机 + 并发表(workspace 冲突检测);permission service/broker 双层协商;子代理多形态 + restrictOnly 权限收紧;工具链字节稳定性契约 + compact 阶段/原因可统计;CONTRACT.md 契约文件模式。
架构:TypeScript 工具包群:agent(agent loop)、ai(模型适配/目录/流式解析)、coding-agent(交互模式/压缩/技能)、chord(对象应用框架:跨进程对象、插件热重载、SQLite/Cloudflare DO 后端)、durable(崩溃安全运行时)、mcp、evals、tui、codemode(QuickJS WASM 沙箱执行)。
值得借鉴:Anthropic message threads(服务端增量续接 + 优雅回退);durable 的 commit-before-display + Harness.open 只读视图;pi-schema 统一工具参数校验;虚拟模型路由;流式工具参数线性解析。
架构:TypeScript 局部运行时 v2(service 化:turn-system/model-system/session-system/sandbox/browser-use/mcp/permission/cron/plugin/plan/canvas/channel-system 等)+ TUI + TS/Python 双 SDK + ACP 启动器 + 内建技能(third_party/pi-mono)。
值得借鉴:OAuth lease 协议(refresh token 不下发、能力维度授权、跨进程 refresh-owner 存活探测);“别丢会话”组合拳(compactionTriggerAt 单调语义 + session ID 恢复 + 有界请求 + 图片上限);OSC 7501 终端状态上报;compaction 后失效已保留用量。
现状:agentic IDE(README 明示五端:IDE / CLI / Web / Mobile / Crew——Web 端为“隔离云沙箱中的多仓库任务委托”,Crew 端为“带记忆、调度和多通道访问的持久化工作区”);公开仓库为“管理 harness 反馈回路的 harness”:issue 自动化管线(约 3,700 行 TS,Bedrock 语义查重/分类/陈旧清理/垃圾清理)+ spec-driven 三件套(requirements/design/tasks,带 _Requirements 双向追溯)。
可观察:LLM 处理不可信输入的生产级防护(sanitizePromptInput + 定界符 + DO-NOT-FOLLOW + 保守阈值);按任务分级的模型路由(Opus 4.6 判断类 / Sonnet 4 量大类);spec 方法论的仓库内活样本。
架构:TypeScript(Bun),packages:app(TUI/Electron 桌面/Web 共用 shell)、core(session/runner/permission/MCP/压缩)、tui、web(文档站即产品手册)、ai、client/sdk(生成式类型)、plugin。全窗口月均约 1,600 提交。
值得借鉴:连接与位置拆分 + MCP 生命周期硬化(启动等待、失败标记、quiet 关闭、自校验工具);权限重构(共享调用步骤、按 URL 匹配 web 权限);渲染性能(合成器线程、拖拽不重排);run 命令的后台任务卫生。
架构:Rust,crates:goose(agent loop/providers/agents)、goose-agent(状态机服务重写)、goose-acp(ACP 服务器,本仓最重投入)、goose-context-management、goose-mcp、goose-sdk、goose-cli、ui/desktop(10+ 语言国际化)。
值得借鉴:Agent/AgentManager → 单进程 StateMachineServices 的状态机重写;子代理并发上限与父级绑定;ACP-only 精简二进制(GDK);压缩默认 225k 封顶 + 不向模型暴露压缩倒计时;W3C trace context 贯穿 ACP→MCP。
架构:TypeScript,packages:core(tools/services/mcp/safety/scheduler/agent)、cli(ui)、a2a-server(agent 间协议)、vscode-ide-companion、sdk、devtools。fix 占比 64.6%,反映维护期特征。
值得借鉴:沙箱管理器与沙箱化文件系统;目录卫生(尊重 .git/info/exclude);ACP 历史重放时序修复;语音模块;caretaker-agent 云端 triage 自动化。
| 优先级 | 动作 | 参照实现 |
|---|---|---|
| P0 | 把压缩做成可配置、可组合的 provider 族(触发点/摘要/工具结果/图片预算分开),并给触发点配置加“单调语义”约束(只能收紧不能放宽) | DSH compaction 四件套;mcode compactionTriggerAt;ZCode CompactPhase |
| P0 | 建设权限分层:声明式 exec policy + 三平台沙箱后端 + 审批 broker + 文件系统权限解析;补上“执行面完整性校验”(运行时验证生效策略是否匹配实际隔离后端) | codex execpolicy/sandbox_integrity;ZCode permission service+broker;DSH sandbox 三件套 |
| P0 | 会话存储事件溯源化(或至少 append-only + 派生视图),配套:格式版本迁移链、类型指纹、单写者生命周期状态机 + residency lease、压缩后身份回归测试 | DSH event-sourced sessions;ZCode SessionLifecycleController;mcode session-identity |
| P1 | 支持 ACP(编辑器集成事实标准)+ 稳定的 app-server 协议(schema 版本化、NDJSON 帧边界);SDK 至少 TS + Python 零依赖 | goose GDK / mcode code-acp / ZCode protocol v4 / codex app-server schema |
| P1 | 工具链字节级稳定契约 + prompt 缓存命中率回归:固定工具段字节顺序、结果文本投影化、截断提示协议;动态技能选择器 | ZCode 00-tool-change-chain;codex dynamic_skill_selector;pi cache-friendly primitives |
| P1 | 子代理运行时化:形态协商(含权限继承 restrictOnly)、并发上限、父级 hooks 绑定、可 resume 委派、worktree 隔离;消息板/邮箱基础设施 | goose subagent crate;ZCode subagents.ts;codex message-board;DSH team task-board |
| P2 | 凭证协议化:工具子进程不下发 refresh token、短时 lease、能力维度授权、跨进程存活探测;错误语义与用量计费统一分类 | mcode oauth-lease-protocol;pi virtual models / totalFromProvider;goose 长上下文计费 |
| P2 | 过程资产工程化:设计文档 + 每模块 CONTRACT.md(owner/不变量/接口边界)、决策知识库入仓并机械校验、配置目录机器生成 + CI 指纹门禁、跨 profile 快照矩阵、issue 自动化(含 LLM 输入清洗与保守阈值) | DSH agent notes + gen-config-catalog;ZCode CONTRACT.md;Kiro scripts + .kiro/specs |
| P2 | 运行时安全带:isolate/helper 级资源配额、解析线性复杂度、优雅停止有界等待、崩溃环路守护、只读跨进程会话视图 | codex code-mode-runtime;pi durable;opencode 后台任务卫生 |
--shallow-since=2026-05-01)。git log --since=2026-05-01 --no-merges --numstat 逐提交文件级增删;提交标题关键词分类(fix/feat/permission/context/agent/mcp/tool/ui 等)。| 主题 | 路径(仓库相对) |
|---|---|
| 沙箱与权限(codex) | codex-rs/execpolicy/、codex-rs/sandboxing/src/seatbelt.rs、codex-rs/linux-sandbox/、codex-rs/exec-server/src/sandbox_integrity/、codex-rs/windows-sandbox-rs/ |
| 权限协商(ZCode) | apps/zcode-cli/packages/core/src/permission/{service,broker}.ts、docs/design/v2/permission-broker.md |
| 会话生命周期(ZCode) | apps/zcode-cli/packages/bootstrap/src/session-lifecycle/controller.ts、session-execution/residency-lease.ts、docs/design/v2/session-runtime-lifecycle.md |
| 事件溯源(DSH) | packages/session/、docs/persistence-catalog.md、.agents/notes/implemented/architecture/2026-06-11-event-sourced-sessions.md |
| 压缩族(DSH) | packages/compaction/、snapshots/session/compaction-output-reserve |
| 工具链字节契约(ZCode) | apps/zcode-cli/docs/design/v2/tool/00-tool-change-chain.md |
| 服务端会话续接(pi) | packages/ai/src/api/anthropic-messages.ts(提交 a758f3ae #11545) |
| 崩溃安全运行时(pi) | packages/durable/、packages/chord/docs/ |
| 凭证隔离(mcode) | packages/oauth-lease-protocol/、packages/oauth-core/ |
| 状态机重写(goose) | crates/goose-agent/、documentation/docs/blog/2026-*(Agentic State Machines 等)、crates/goose-context-management/ |
| ACP 布局 | DSH packages/acp;mcode packages/code-acp;goose ui/goose-acp + crates/goose/src/acp/server.rs;gemini-cli packages/cli/src/acp + packages/a2a-server |
| 云线程(codex) | codex-rs/cloud-client/、codex-rs/thread-store/、codex-rs/app-server-protocol/ |
| V8 有界运行时(codex) | codex-rs/code-mode-runtime/src/ui/engine.rs、codex-rs/code-mode/ |
| 决策知识库(DSH) | .agents/notes/README.md、scripts/verify-archived-agent-notes.ts、scripts/gen-config-catalog.ts |
| LLM 输入防护(Kiro) | scripts/detect_duplicates.ts(sanitizePromptInput)、scripts/delete_spam_comments.ts、.kiro/specs/ |
analyze.py(仓库根):对每个仓库执行 git log --since=2026-05-01 --no-merges --numstat,聚合提交数、贡献者、变更文件数、增删行数、目录/文件 top-N、提交标题关键词分布,输出 stats.json。本报告全部量化表格由该脚本与直接 git log 统计产生。