这一页站在整个框架的高度:我们是什么形态、别人是什么形态、强在哪、弱在哪、缺什么。子系统级的对标已经有六份(沙箱、agent协作、长期记忆、记忆采纳、发言人身份、聊天附件),本页不重做它们,只吸收结论。十二维每维一句话定性加一张图,细节留在各自的子系统页里。
下面三条是这次调研要回答的全部。后面的十二维矩阵和盲区清单都是这三条的证据。
十二家里没有第二家把函数调用树写进对话本身。@agentic_function跑起来时,它自己的每一层调用都是会话DAG上的code节点,和用户消息、模型消息、工具结果共用一套caller/predecessor边,存在同一个git仓库里。分支就是一个head指针,同一个会话内可以长出多条互不污染的历史。
最接近的是pi-mono的会话树(JSONL带parentId,/tree可切换、切换时会给废弃分支做摘要),但它树上只有对话条目。opencode的fork开的是新会话,hermes压缩时直接换session_id,codex的agent-graph-store记的是agent之间的图。
我们能调所有人:31个provider、MCP客户端、skills、plugins。反过来没有一条路进得来。没有MCP server(claude-code、codex、hermes、openclaw四家都有),没有ACP(opencode、hermes、openclaw、weclaw四家都有),没有OpenAI兼容端点(hermes、openclaw、codex三家有),没有IDE扩展,没有公开的headless协议(pi-mono的RPC模式光文档就1400行)。对外只有一个owner认证的本机WS和一个Python库入口。
连带的一条:项目说明文件我们和openclaw同一派,放在agent工作区而不是仓库里,这本身站得住。但openclaw另外做了migrate-claude和migrate-hermes两个导入扩展,codex有一整个external-agent-migration crate把别人的会话、配置、skills搬进来。我们连搬家的口子都没开。
模型不再发工具调用,而是当场写JavaScript调工具;CodeModeOnly模式下模型可见的工具面只剩exec和wait两个。背后是四个crate加一个V8运行时,在功能台账里默认关着,只看默认行为会判成不存在。
这和我们的agentic programming是同一个命题的两个方向:我们把流程事先固化成Python函数让agent调,它让模型当场写代码调工具。我们从没考虑过后者,也没考虑过"把工具面压缩到两个"这种裁剪方式。
codex-rs/features/src/lib.rs · code-mode / code-mode-host / code-mode-protocol / code-mode-runtime / v8-poc一个Python写的通用agent harness。装出来是一条命令 openprogram,背后是一个常驻worker;TUI、网页、Electron桌面、四个聊天渠道、库调用全部收口到同一个 process_user_turn。会话状态存在每会话一个git仓库里,不是SQLite。工作流可以固化成带 @agentic_function 的Python函数,函数跑起来写进同一张会话DAG。
同一套口径数出来的首方源码行数:只算 .py/.ts/.tsx/.js/.rs/.go,排除测试、node_modules、dist、target、vendor。横轴是对数刻度,因为最大和最小之间差了350倍。这一栏只用来判断复杂度落差,不代表能力高低。
八家在references/下有源码。claude-code和codex另外查了本机装的版本,两者结论不一致的地方在页面上标出来。国产四家是本机装的npm包,只做一句话定性。
control-plane/move-session.ts)。我们的worker已经是常驻进程,网页和TUI已经走WS,差的只是把会话存储做成可搬运的,而每会话一个git仓库恰好是最容易搬的形态。
每格一句话定性。我们那一列按判定上色:绿=领先、橙=持平、红=落后。表格宽,自己横向滚。
| 维度 | OpenProgram | claude-code | codex | openclaw | opencode | hermes-agent | pi-mono | weclaw |
|---|---|---|---|---|---|---|---|---|
| 定位形态 | 通用harness | 编码CLI加云端 | 编码CLI加云端 | 多渠道网关平台 | 编码CLI加SaaS周边 | 私人助理加研究harness | 编码TUI加库 | 微信转接器 |
| 目标用户 | 单人本机 | 单人,订阅或企业 | 单人,配置分七层 | 单人运营,多人经渠道进 | 单个开发者 | 单人,陌生人靠配对码 | 单人本机 | 单人,零鉴权 |
| 执行模型 | 常驻worker | 进程内加daemon加云容器 | 进程内加app-server加远端 | 网关进程加每agent容器 | 本机也拆服务端客户端 | 进程内加网关守护 | 单进程 | 守护进程转发 |
| 状态存哪 | 每会话一个git仓库 | 每项目一堆JSONL | rollout JSONL加5个SQLite | 每agent目录JSONL | SQLite加drizzle | SQLite加FTS5 | JSONL会话树 | 内存,重启即失 |
| 上下文装配 | L0/L1/L2组件注册表 | 静态前缀加动态边界标记 | 每模型提示词编进二进制 | 工作区文件加引导预算 | 13套按模型提示词 | stable/context/volatile三层 | 按已启用工具裁提示词 | 没有 |
| 项目说明文件 | agent工作区AGENTS.md | CLAUDE.md四层含系统级 | AGENTS.md从git根往下拼 | 工作区AGENTS/SOUL/TOOLS | 全局加项目,首个命中 | 四种格式加子目录提示 | 祖先目录全走一遍 | 没有 |
| 工具面 | 60个,延迟目录加tool_search | 约24个外露,ToolSearch | 约28个,code mode可压到2个 | 约35个分11组,tool_search | 16个,按模型换apply_patch | 约82个,32个toolset | 7个,3个默认关 | 0个 |
| 权限审批 | 5种模式加规则加tool.before门 | 5种模式,裁剪按深度 | 4种含Granular,execpolicy DSL | 分层裁剪,审批卡进聊天 | 默认ask,bash命令分词 | 55条危险模式,辅助LLM自动批 | 没有,靠工具白名单 | 自动全批 |
| 扩展口 | 插件加skills加MCP客户端加24事件 | 插件市场加27钩子加122命令 | 插件市场加11钩子,模型可自装 | 126插件加59skills加ClawHub | 插件19钩子,可往TUI里渲染 | 20钩子加shell脚本钩子加178skills | 约40事件加包管理器,无MCP | 只有配置文件 |
| 多渠道 | 4个 | 手机网页桥,Slack,Discord | 没有聊天渠道,有云任务 | 28个,另加电话与Meet | GitHub加Slack加ACP加两个IDE | 约26个,另加webhook与cron | 没有 | 1个 |
| 界面 | TUI加网页加Electron | 自研Ink分支加Vim加语音 | ratatui,IDE经socket喂上下文 | TUI加控制台加三个原生App | OpenTUI加网页加Electron | Ink TUI加React网页 | 自研TUI框架,能跑DOOM | 只有终端 |
| 对外接口 | 没有 | MCP server加Agent SDK加会话服务 | MCP server加app-server加两个SDK | MCP server三种加OpenAI兼容加74个RPC | HTTP服务加JS SDK加ACP | MCP server加OpenAI兼容加ACP | RPC模式加JSON模式加SDK | 本机HTTP推送 |
| 观测与计费 | 追加账本含缓存读写与分项成本 | OTel加Perfetto加BigQuery,有预算上限 | OTel加分析上报,只有token没有金额 | 轨迹导出加OTel加Prometheus | OTel加数据湖,stats命令 | 日志脱敏加Langfuse,拉供应商配额 | 安装计数可关,脚本聚合成本 | 一个日志文件 |
| 首方源码行数 | 254,320 | 512,685 截至2026-04 | 1,070,595 | 1,987,813 | 366,499 | 544,917 | 116,599 | 5,723 |
本机装着腾讯的四个CLI。前三个是上游的内网化版本,改动本身就是素材:它们相对上游补的东西,正好是一个"要给别人用"的框架该考虑的。codebuddy-code是自研的,对比价值最高。字节的Trae本机没有可读实现,不写猜测。
| 包 | 是什么 | 相对上游改了什么 | 规模 |
|---|---|---|---|
| claude-code-internal v1.1.9 |
不是代码分支,是启动器包装。依赖上游@anthropic-ai/claude-code@2.1.154原封不动,全部改动在环境变量与代理层。 |
端点换成内网网关;模型白名单从网关拉,Opus和Sonnet都映射到GLM-5.1;配置目录劫持到~/.claude-internal;把逃生口堵死(扫设置文件删掉所有ANTHROPIC_*键,用户改不回去);关掉上游遥测,换成内网上报,事件里带git仓库与commit;三种认证含设备码流程供CI用;本机MITM代理守护进程固定12639端口;服务器下发的启动公告带确认门。 |
388行 133 KB |
| codex-internal v0.0.8 |
同样是包装器,包上游@openai/codex@0.118.0。 |
重写config.toml注入内网provider并强制选中;关掉上游更新检查与反馈上报;注入请求头映射,每个请求把打开的仓库列表、是否YOLO模式、会话id告诉网关;能力阉割:codex mcp add直接拒绝改成管理员托管,codex app-server硬退出;清掉继承来的OPENAI_*与CODEX_HOME;把用户id与邮箱绑进子进程环境。 |
502行 572 KB |
| gemini-cli-internal v1.9.0 |
三个里唯一的真源码分支。 | 新增一个codebuddy/核心模块,做成与Google并列的第四个ContentGenerator后端;认证枚举里加了两种(内网GitLab OAuth、内网API key),Google那几条原样保留,所以同一个二进制内外网都能用;把仓库远端与submodule路径上报网关;API key透传进沙箱容器环境。 |
576,579行 25 MB |
| codebuddy-code v2.109.3 |
腾讯自研,内部代号genie,建在一个IoC容器上。44个工具,工具名与claude-code高度同形(Agent、Skill、ToolSearch、EnterWorktree、SendMessage、TeamCreate),另有LSP、ComputerUse、CronCreate、Workflow、WeChatReply/WeComReply。 | 提示词与工具授权是数据不是代码:一个326 KB的product.json装着109个Nunjucks模板、每个agent的工具白名单、模型白名单、命令表;换部署就换这个文件,五套档位(SaaS、内网、零信任、自托管、云托管)同一份代码。会话存成~/.codebuddy/projects/<cwd槽>/<uuid>.jsonl。有原生沙箱二进制,另有bubblewrap/seatbelt兜底。带一个叫"CodeBuddy Code Remote Control"的PWA,用手机浏览器遥控本机会话。headless是独立的webpack产物,不是一个命令行开关。 |
2,629行打包 21.7 MB 另有16 MB headless |
vendor/shim/safe-bin/下有rm/rmdir/unlink三个PATH替身,只在会话环境变量存在时生效;再配一个sitecustomize.py经PYTHONPATH自动加载,patch掉os.remove/shutil.rmtree/pathlib,全部改道到自带的回收站二进制。这层在工具层之下,agent起的子进程也盖得住。我们的read-before-edit和checkpoint都在工具层,绕过工具就没有了。
二:度量AI写了多少。一个git HEAD watcher按文件归因agent与人类的改动比例并上报。这是管理指标不是用户功能,但它说明"agent产出可审计"是企业采购的硬条件。
三:远程企业策略带失败开放缓存,组织服务器决定你能不能加自定义模型、能不能上传skill,判定结果缓存在本地。
四:合规内容策略直接编在系统提示词最前面,在模型之前先做客户端拦截。
前面六份子系统对标是按我们已知的问题去查的,查不出"不知道自己不知道"的。这一节反过来:先把十二家的能力全摊开,再挑出我们的设计文档里从来没出现过的条目。按四个主题分组。
| 谁有 | 机制 | 我们为什么没想到 | 判定 |
|---|---|---|---|
| 主题一 · 直接挑战我们的方法论 | |||
| codex | code mode:模型写JavaScript调工具,不发工具调用。CodeModeOnly下模型可见的工具只剩exec和wait。四个crate加一个V8运行时,默认关。code-mode / code-mode-host / code-mode-protocol / code-mode-runtime / v8-poc |
我们的agentic programming命题是"把流程事先固化成Python给agent调",从没考虑过"让模型当场写代码调工具"。两者是同一命题的两端,我们只做了一端。 | 值得单独立项对比。它同时给出了一种我们没有的裁剪方式:把整个工具面折进一个exec。 |
| hermes | harness自己是训练数据发生器:批量跑数据集,按概率分布采样每条样本可见的toolset,再把轨迹压到token预算里,接进Atropos强化学习环境。batch_runner.py · toolset_distributions.py · trajectory_compressor.py · environments/ | 我们把工具裁剪当成"这个agent能用什么"的权限问题,它把工具裁剪当成"这条训练样本的观测空间"的采样问题。同一个开关,两种用途。 | 不做。我们不训模型。但"轨迹可导出成结构化样本"这一半值得留口子。 |
| 主题二 · 让别人能用上我们 | |||
| codex openclaw |
把用户从别的agent搬过来。codex有一个约1.6万行的external-agent-migration crate,导入别的agent(含claude-code)的会话、配置和skills,磁盘上留着external_agent_session_imports.json。openclaw有migrate-claude和migrate-hermes两个扩展。 |
我们一直在想"怎么把功能做全",没想过"用户已经在别的工具里攒了半年会话和配置,怎么让他零成本走过来"。这是获客问题被当成工程问题解决了。 | 该做。我们已经会读别人的skills格式,差的是会话与配置导入。 |
| codex | 105条功能台账带阶段:features/src/lib.rs里每个能力一条记录,标Stable/UnderDevelopment/Experimental/Removed/Deprecated,各自带default_enabled。三分之一的已发布能力默认关着。 |
我们的能力散在代码里,没有一张表能回答"这个版本到底有哪些能力、哪些是实验的"。今天我们自己就在这上面栽过:codex的长期记忆被判成"没有",其实是完整子系统默认关着。 | 该做。这张表同时是发布说明、灰度开关和对外能力清单。 |
| codebuddy | 五套部署档,提示词与工具授权是数据:109个提示词模板、每agent工具白名单、模型白名单全在一个product.json里,SaaS/内网/零信任/自托管/云托管换文件不换代码。 |
我们的系统提示词组件是Python函数,工具授权在agent.json里,但"整套配置作为一个可替换的部署档"这个层级不存在。 |
部分该做。我们的组件注册表已经是对的骨架,缺的是把整套值外置成一份可替换的档。 |
| opencode | 控制面:把活着的会话搬到另一台机器或另一个工作区,以及把会话发布成一个公开URL(增量流进Durable Object加对象存储,自托管版也有)。control-plane/move-session.ts · share/share-next.ts | 我们把会话当成本机资产。每会话一个git仓库恰恰是最容易搬和最容易分享的形态,但我们从没往这个方向用过它。 | 该做,而且我们的存储形态占便宜。 |
| 主题三 · 让agent可信 | |||
| codebuddy | 把删除拦在工具层之下:PATH里放rm/rmdir/unlink替身,PYTHONPATH里放sitecustomize.pypatch掉Python的删除API,全部改道回收站二进制。子进程也盖得住。 |
我们所有的保护都挂在工具上(read-before-edit、checkpoint、tool.before门)。bash里一条rm -rf起的子进程,工具层拦不住。 |
该做。成本低,覆盖的正是我们现在漏的那一块。 |
| codex | execpolicy:命令允许清单是一门独立的小语言,规则文件发到~/.codex/rules/default.rules,和操作系统沙箱是两层。另有guardian,用一个LLM复核审批提示。 |
我们的权限规则是字符串匹配加fnmatch,够用但表达不了"这条命令的第三个参数不能是绝对路径"这类判断。而"审批本身要不要复核"这个问题我们没问过。 | DSL先不做。guardian值得试,它正好补上我们Gate.ask三态里悬空的那一态。 |
| codebuddy | 度量AI写了多少代码:git HEAD watcher按文件归因agent与人类的改动比例并上报。 | 我们记token和成本,不记产出归属。企业要买单的时候问的是后者。 | 先记录不上报。我们有每轮git提交,归属信息是现成的。 |
| openclaw | 轨迹导出:系统提示词加工具清单加每一个事件,脱敏后打成一个带版本的包,10 MB/50 MB/256 KB三级上限。src/trajectory/ | 我们有DAG和ContextCommit,但没有"把一次会话完整交出去给别人复现"的导出物。报bug时只能截图。 | 该做。DAG已经是完整记录,缺的只是一个脱敏打包器。 |
| 主题四 · 让agent更主动、更好测 | |||
| openclaw | 承诺追踪:从聊天里抽出隐含承诺,转成有类型的条目(约定、截止、关心、未了事),置信度阈值0.86,每天最多主动发3条。另有心跳与开机一次性两条独立的主动路径。src/commitments/ | 我们的proactive层做的是"事件发生时执行规则",全部由外部事件触发。"从对话内容里长出未来的动作"这条路我们没有。 | 机制值得抄,阈值和限流要照抄,否则就是骚扰。 |
| openclaw | 配对的手机成为agent的手和眼:日历、通讯录、相机、相册、定位、传感器、通知监听、短信、截屏,配上真的APNs推送与带过期的授权组。 | 我们的渠道只用来收发消息。"渠道另一端的设备本身是一个可调用的资源"这个想法没出现过。 | 不做。我们没有原生App,代价与收益不成比例。列在这里是因为它解释了openclaw的144万行原生代码花在哪。 |
| pi-mono | 假provider加HTTP录制回放:一个完整注册的假模型按脚本吐文本、思考和工具调用,chunk大小可配;另有HTTP与WebSocket的录制回放,磁带存在测试夹具里。 | 我们有4.6万行测试,但没有一个能确定性驱动整个agent循环的假模型。所以循环本身的测试覆盖一直是空的,这一条在framework-overview.md的"已知边界"里已经写着。 |
该做,优先级最高的一条。它是"给核心入口补测试"这件事的前置条件。 |
| pi-mono | 会话中途换供应商:把思考块签名和工具调用id归一化,一段对话可以从一个供应商接着在另一个供应商跑下去;配套的扩展把它做成"用一段生成的交接提示词开一个新会话",当作压缩的无损替代。 | 我们有31个provider,但换模型意味着换会话。"同一段历史跨供应商继续"这个能力我们默认它不可能。 | 值得验证。我们的provider层已经有统一消息类型,缺的是签名归一化那一小块。 |
独有本身不是价值,独有并且换来了别人换不到的东西才是。三件里两件成立,一件目前只是形状上独有。
| 我们的 | 它是什么 | 别人最接近的 | 这份独有买到了什么 |
|---|---|---|---|
| 会话DAG 分支即head指针 |
一张图,三种节点角色(user/llm/code),两种边(caller/predecessor)。分支就是从某个节点往回走的一条链,两条链互不污染。存在每会话一个git仓库里,追加写,没有可变的当前状态镜像文件。 | pi-mono的JSONL会话树最接近:每条记录带parentId,当前位置是一个叶子,/tree可切换,切换时给废弃分支做摘要。但树上只有对话条目。opencode的fork开的是新会话。hermes压缩时直接换session_id。codex的agent图存的是agent之间的关系。 |
同一个会话里可以并行长出多条历史,且两条历史各自的文件改动通过worktree隔离。这是"派一个子agent去试另一条路,不污染主线"的物理基础,八家里只有我们和pi-mono具备,而pi-mono没有子agent。 |
| @agentic_function 流程固化成代码 |
一个Python装饰器。函数跑起来时,它自己的每一层调用被记成会话DAG上的code节点,和用户消息、模型消息、工具结果共用同一套边,写进同一个git仓库。 | 没有对应物。pi-mono的扩展、opencode的tool/*.ts、hermes的skills都能注册新工具,但工具执行对它们是一个黑盒,只有入参和返回值进历史。反方向的对应物是codex的code mode:模型当场写代码调工具。 |
一个流程跑完之后,它内部走了哪几步、每步看到什么,和对话本身在同一张图上可回看、可重放、可从中间某一步分支。这是把"工作流"和"对话"统一成一种数据的唯一实现。 |
| 四域协作工具面 todo/task/agent/message |
四个名词各管一个域:计划归todo,正在跑的任务归task,执行任务的实体归agent,通讯归message。工具名不用记,每个工具只操作它那个域的名词。 | 各家都有这些能力,但没人分域命名。opencode是task加todowrite;hermes是delegate加看板;claude-code是Task/TaskOutput/SendMessage/Brief;codebuddy的44个工具里TaskCreate/Get/Update/List/Stop/Output六个动词全在,也没有分域。 |
这是命名上的独有,能力上不独有。真正有实证的差异在另一份文档里:八家中只有我们按剩余消息预算裁子agent的工具面,防环机制密度与openclaw并列第一。见runtime/agent-collab-comparison.html |
宏观层的计划只排顺序,不写方案。每条都指向一份该单独写的设计文档,或者一个已经存在的子系统页。
| 顺序 | 做什么 | 为什么排在这 | 落点 |
|---|---|---|---|
| 1 | 假provider:一个按脚本吐文本、思考、工具调用的假模型,注册成正式provider | 核心入口缺测试这件事在framework-overview.md的已知边界里挂了很久,缺的就是这个前置件。它同时让后面每一条改动都可验证。 |
openprogram/providers/ 新增一个目录 |
| 2 | 对外接口开第一条:MCP server,把我们的工具面暴露出去 | "对外接口"整行只有我们是空的,而MCP server是四家都做了的那一条,也是成本最低的一条。我们已经有完整的MCP客户端,协议这一侧是现成的。 | openprogram/mcp/ 现在只有client.py |
| 3 | 轨迹导出:系统提示词加工具清单加全部事件,脱敏打包,带上限 | DAG已经是完整记录,只差一个打包器。有了它,报bug、复现、以及将来任何形式的评测都有了同一个载体。 | openprogram/store/session/ 加导出,参照openclaw src/trajectory/ |
| 4 | 删除拦截下沉到工具层之下:PATH替身加sitecustomize.py,改道回收站 |
我们的保护全在工具层,bash起的子进程一律漏过。这是现在最大的一处数据安全缺口,而补法很短。 |
与runtime/sandbox.md的第4步(默认开启)同一批做 |
| 5 | 功能台账:每个能力一条记录,带阶段与默认开关 | 能力散在代码里,对内说不清版本边界,对外说不清我们有什么。这张表还能顺手解决灰度。 | 参照codex codex-rs/features/src/lib.rs |
| 6 | 会话导入:把claude-code与codex的会话与配置搬进来 | 排在后面是因为它依赖前面的存储与导出格式先稳下来。但它是唯一一条直接影响"有没有人愿意换过来"的。 | 参照codex external-agent-migration、openclaw migrate-claude |
宏观层的理想只有三句,每句对应上面三个问题里的一个。
会话已经是一个git仓库,里面是一张完整的图。理想状态下这个仓库可以整个交给另一台机器接着跑,可以脱敏后发出去给别人看,可以从图上任意一个节点重新分叉。三件事共用同一个载体,不需要三套导出格式。
对外至少一条标准协议出口,让编辑器、别的agent、别人的脚本能驱动我们,而不是只有人能驱动我们。同时留一条搬家的路,让已经在别的工具里攒了半年的人零成本走过来。
每个能力在台账上有一条记录,标着阶段和默认开关;每一次运行都能导出成一份脱敏的完整轨迹。前者让我们说得清自己有什么,后者让别人说得清我们哪里坏了。这两件缺一件,规模一大就失控。
哪条结论来自哪里,以及哪些地方两个来源不一致。
| 对象 | 取证来源 | 日期 | 注意 |
|---|---|---|---|
| OpenProgram | worktree检出的origin/main | 2026-08-10 | 另有三个会话在改channels、web、memory-introspection与workflow-first,本页只描述已提交状态 |
| claude-code | 本机安装的二进制2.1.226(267 MiB)为准,references/claude-code-leaked只作参考 | 泄露树截至2026-04 | 两者不一致的地方见下表 |
| codex | 源码树加本机安装的0.146.0,另查~/.codex/运行时目录 | 2026-08 | 功能台账里105条有三分之一默认关,默认行为不代表能力边界 |
| 其余六家 | references/下的源码 | 各仓库HEAD | openclaw HEAD 2026-05-25,weclaw HEAD 2026-03-30 |
| 国产四家 | 本机~/.npm-global/lib/node_modules/下的npm包,读dist/打包产物 | 2026-08 | 前三个是包装器,改动集中在环境变量与配置层;gemini那个是真源码分支 |
| Trae | 未获取到实现 | — | 本机没装,/Applications、应用支持目录、VS Code与Cursor扩展目录里都没有。不写猜测 |
| 条目 | 泄露源码树说 | 本机二进制说 | 本页采用 |
|---|---|---|---|
| claude-code的子agent深度上限 | 树里没有这个开关 | 有,默认3,可用环境变量覆盖,且带灰度开关2.1.226 @249432727附近 | 二进制 |
| claude-code的按agent裁工具 | 有裁剪,但不含深度 | 裁剪函数直接吃agentDepth,只有深度小于上限才给出派子agent的工具;另有三张常量表分别管普通agent、异步agent、协调者模式@256834891 · @75243888 · @75243840 · @75243792 |
二进制 |
| claude-code的Slack | 只有一个市场安装链接 | 有完整的Slack对话面,含机器人、人类回合校验、频道搜索@78014240 · @106577664 · @106582768 · @70680752 | 二进制 |
| claude-code的产物发布 | 完全没有 | 有一整套:计划产物发布成带脚本哈希白名单的托管HTML,另有独立的产物工具与一组开关@75228592 · @75228672 · @75228896 · @75229360 · @75180658 | 二进制 |
| claude-code的定时与外部触发 | 没有 | 有三个定时工具、一个远程触发工具,以及一组给自托管CI跑的工具集@75240320 | 二进制 |
| codex的长期记忆 | 源码里是完整子系统(读写两阶段管线加独立数据库),功能台账里标Stable但default_enabled: false。只看默认行为会判成"没有",今天已经误判过一次。 |
按"有"计 | |
第一层与第二层描述的是各仓库当前的真实状态;第三层与第四层是尚未落地的目标形态。按项目惯例,未实现的部分在正文里用现在时正面陈述,在这里统一标注。
| 条目 | 状态 | 落点 |
|---|---|---|
| 形态图、代码量级、十二维矩阵、国产四家、盲区清单、独有三件 | 如实描述当前状态 | 各仓库HEAD,见上表 |
| 第三层六条与第四层三句 | 全部未实现 | — |
| 假provider、MCP server、轨迹导出、删除拦截、功能台账、会话导入 | 未实现,无对应代码 | grep无opentelemetry / acp / language_server / fake_provider命中 |