这一页站在整个框架的高度:我们是什么形态、别人是什么形态、强在哪、弱在哪、缺什么。子系统级的对标已经有六份(沙箱、agent协作、长期记忆、记忆采纳、发言人身份、聊天附件),本页不重做它们,只吸收结论。十二维每维一句话定性加一张图,细节留在各自的子系统页里。
下面三条是这次调研要回答的全部。后面的十二维矩阵和盲区清单都是这三条的证据。
十二个参考对象中没有确认第二个实现把函数调用树写入对话历史。模型工具调用结果,以及启用会话 DAG 记录、非 expose=hidden 且持久化成功的 Agent method 调用层,会规范化为会话 DAG 的 code 节点,与 user、llm 节点共用 caller/predecessor 边并保存在同一会话 git 仓库。多个 head 可引用不同历史分支。
OpenClaw 和 pi-mono 都有 transcript 分支:OpenClaw Control UI 提供 fork、rewind 和 branch,pi-mono 的 JSONL 记录带 parentId 且 /tree 可切换。OpenProgram 的额外差异是 user、llm 以及统一承载工具结果和嵌套调用的 code 节点共用 DAG。Transcript 分支与 worktree 是独立机制:默认 agent 分支共享当前工作目录,只有显式绑定 worktree_id 的 job 才隔离文件修改。
OpenProgram 支持随包 provider、动态 community provider、自定义 provider、MCP 客户端、skills 和 plugins;外部程序可通过认证的 stdio MCP server调用工具,也可通过ACP server驱动会话。尚未确认的是 OpenAI 兼容端点、稳定且版本化的远程控制 SDK、公开的完整 headless 事件协议和自维护 IDE 扩展。Owner 认证的 WebSocket 与 Python 库入口仍是内部或嵌入式接口,不能替代这些对外兼容承诺。
项目说明文件方面,我们和 OpenClaw 同样把 agent 级说明保存在 agent 工作区。OpenClaw 提供 migrate-claude 和 migrate-hermes,Codex desktop/CLI 的 import 可迁移 Claude Code 与 Cursor 的 setup 和 recent work;OpenProgram 当前没有外部 agent 会话、配置与 skill 导入器。
模型不再发工具调用,而是当场写JavaScript调工具;CodeModeOnly模式下模型可见的工具面只剩exec和wait两个。背后是四个crate加一个V8运行时,在功能台账里默认关着,只看默认行为会判成不存在。
OpenProgram 允许模型先生成 workflow package,经静态校验和原子发布后再执行版本化 Python 流程;Codex code mode 则在当前轮次即时生成 JavaScript 并调用工具。OpenProgram 当前没有这种逐轮即时 code mode,也没有把模型可见工具面压缩到 exec/wait 两个入口。
一个 Python 通用 agent harness。安装后提供 openprogram 命令和常驻 worker;TUI、网页、Electron 桌面与四个聊天渠道经 dispatcher 共用 process_user_turn,Python 库入口由 Agent.run 或 Runtime 直接进入 agent_loop。会话 transcript 的事实源是每会话一个 git 仓库;SQLite 用于 usage 账本;记忆正文是 Markdown,检索使用可重建的内存 BM25/embedding 索引。工作流可定义为带 Agent method 的 Python 函数,符合记录条件且持久化成功的嵌套函数调用写入同一张会话 DAG。
同一套口径数出来的首方源码行数:只算 .py/.ts/.tsx/.js/.rs/.go,排除测试、node_modules、dist、target、vendor。横轴是对数刻度,因为最大和最小之间差了350倍。这一栏只用来判断复杂度落差,不代表能力高低。
openprogram/ 约 13.4 万。
能力结论中,Claude Code、Codex、OpenClaw 与 OpenCode 按 2026-09-01 官方稳定版本和官方文档复核;代码量、内部实现细节及其余对象继续使用 references/ 与本机安装包的固定版本。两类证据不会混写为同一时点的完整源码审计。
control-plane/move-session.ts 可在同一项目内把会话及 Git changes 重定位到另一绝对目录或 worktree,但不能迁移到另一台机器,也不接管活动轮次。OpenProgram 已有常驻 worker、WebSocket 客户端和每会话 git 存储;若增加跨 worker 迁移,仍缺版本化迁移协议、目标放置、身份验证、处理中轮次语义和失败恢复设计。
每格一句话定性。我们那一列按判定上色:绿=领先、橙=持平、红=落后。表格宽,自己横向滚。
| 维度 | OpenProgram | claude-code | codex | openclaw | opencode | hermes-agent | pi-mono | weclaw |
|---|---|---|---|---|---|---|---|---|
| 定位形态 | 通用harness | 编码CLI加云端 | 编码CLI加云端 | 多渠道网关平台 | 编码CLI加SaaS周边 | 私人助理加研究harness | 编码TUI加库 | 微信转接器 |
| 目标用户 | 单人本机 | 单人,订阅或企业 | 单人,配置分七层 | 单人运营,多人经渠道进 | 单个开发者 | 单人,陌生人靠配对码 | 单人本机 | 单人,零鉴权 |
| 执行模型 | 常驻worker | 进程内加daemon加云容器 | 进程内加App Server加云端 | 网关加 paired devices、opt-in cloud workers 与 managed worktrees | 本机也拆服务端客户端 | 进程内加网关守护 | 单进程 | 守护进程转发 |
| 状态存哪 | 每会话一个git仓库 | 每项目一组JSONL | rollout JSONL加5个SQLite | 每agent SQLite保存运行态与transcript;JSONL仅归档或旧格式迁移 | SQLite加drizzle | SQLite加FTS5 | JSONL会话树 | 内存,重启即失 |
| 上下文装配 | L0/L1/L2组件注册表 | 静态前缀加动态边界标记 | 每模型提示词编进二进制 | 工作区文件加引导预算 | 13套按模型提示词 | stable/context/volatile三层 | 按已启用工具裁提示词 | 没有 |
| 项目说明文件 | agent工作区AGENTS.md | CLAUDE.md四层含系统级 | AGENTS.md从git根往下拼 | 工作区AGENTS/SOUL/TOOLS | 全局加项目,首个命中 | 四种格式加子目录提示 | 祖先目录全走一遍 | 没有 |
| 工具面 | 动态 registry,常驻 preset 加 tool_search 延迟目录 | 约24个外露,ToolSearch | 约28个,code mode可压到2个 | 约35个分11组,tool_search | 16个,按模型换apply_patch | 约82个,32个toolset | 7个,3个默认关 | 0个 |
| 权限审批 | 5种模式加规则加tool.before门 | 6种模式:default/acceptEdits/plan/auto/dontAsk/bypassPermissions | 4种含Granular,execpolicy DSL | 分层裁剪,审批卡进聊天 | 默认ask,bash命令分词 | 55条危险模式,辅助LLM自动批 | 没有,靠工具白名单 | 自动全批 |
| 扩展口 | 插件加skills加MCP客户端加32事件 | 插件市场加27钩子加122命令 | 插件市场加11钩子,模型可自装 | 126插件加59skills加ClawHub | 插件19钩子,可往TUI里渲染 | 20钩子加shell脚本钩子加178skills | 约40事件加包管理器,无MCP | 只有配置文件 |
| 多渠道 | 4个 | 手机网页桥,Slack,Discord | Slack 集成,依赖 cloud 账户与工作区配置 | 原生10个,插件渠道20多个 | GitHub加Slack加ACP加两个IDE | 约26个,另加webhook与cron | 没有 | 1个 |
| 界面 | TUI加网页加Electron | 自研Ink分支加Vim加语音 | ratatui,IDE经socket提供上下文 | TUI加控制台加macOS/iOS/watchOS/Android节点 | OpenTUI加网页加Electron | Ink TUI加React网页 | 自研TUI框架,能跑DOOM | 只有终端 |
| 对外接口 | 认证stdio MCP server加ACP;无稳定远程SDK | MCP server加Agent SDK加会话服务 | App Server加Python/TypeScript SDK;codex mcp-server已deprecated | 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起的子进程也盖得住。OpenProgram 现已为绑定session/turn的本地agent子进程注入shell、Python和Node常用删除拦截,并提供trash list/restore;cron、后台任务、Docker、SSH、绝对路径命令、直接syscall和禁用注入等路径仍不覆盖。
二:度量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 长期记忆误判为未实现,原因是该完整子系统默认关闭。 | 未实现。统一feature registry仍是待单独设计批准的候选。 |
| codebuddy | 五套部署档,提示词与工具授权是数据:109个提示词模板、每agent工具白名单、模型白名单全在一个product.json里,SaaS/内网/零信任/自托管/云托管换文件不换代码。 |
我们的系统提示词组件是Python函数,工具授权在agent.json里,但"整套配置作为一个可替换的部署档"这个层级不存在。 |
部分该做。我们的组件注册表已经是对的骨架,缺的是把整套值外置成一份可替换的档。 |
| opencode | 控制面:在同一项目内把会话及 Git changes 重定位到另一目录或 worktree,以及把会话发布成一个公开URL(增量流进Durable Object加对象存储,自托管版也有)。control-plane/move-session.ts · share/share-next.ts | OpenProgram 把会话作为本机资产。每会话一个 git 仓库可作为本机目录重定位和公开分享设计的输入,但当前没有对应产品入口。 | 可评估本机目录重定位与公开分享;跨 worker 迁移需要独立协议设计。 |
| 主题三 · 让agent可信 | |||
| codebuddy | 把删除拦在工具层之下:PATH里放rm/rmdir/unlink替身,PYTHONPATH里放sitecustomize.pypatch掉Python的删除API,全部改道回收站二进制。子进程也盖得住。 |
OpenProgram 已在绑定session/turn的本地agent子进程中覆盖shell、Python和Node常用删除入口;没有上下文的cron与后台任务、Docker、SSH、绝对路径命令、直接syscall和禁用注入等路径仍不覆盖。 | 部分实现。剩余覆盖范围仍是待确认候选,该机制不是完整安全边界。 |
| codex | execpolicy:命令允许清单是一门独立的小语言,规则文件发到~/.codex/rules/default.rules,和操作系统沙箱是两层。另有guardian,用一个LLM复核审批提示。 |
我们的权限规则是字符串匹配加fnmatch,够用但表达不了"这条命令的第三个参数不能是绝对路径"这类判断。而"审批本身要不要复核"这个问题我们没问过。 | DSL先不做。guardian值得试,它正好补上我们Gate.ask三态里悬空的那一态。 |
| openclaw | 沙箱的能力与默认行为分开记:backend支持Docker、Podman、SSH、OpenShell,mode取off/non-main/all,默认是off。Docker模式默认无网络、只读根文件系统、非root并丢弃capabilities;官方同时明确它不是完美的安全边界。 |
只看到Docker backend会把"具备隔离能力"误写成"默认处于隔离中"。backend、启用范围、默认值和安全保证需要分别比较。 | 借鉴Docker的收紧默认值,但不把容器本身当成完整信任边界;验收同时检查默认模式与实际启动参数。 |
| openclaw | 扩展市场与公网Gateway形成两条独立风险面:ClawHub允许任何人发布技能,已经出现恶意指令注入案例;Gateway存在CVE-2026-25253。 |
我们的skills与owner认证Gateway都按本机单人边界设计。技能市场引入不受信发布者,对外服务引入远程攻击者,两者都会改变现有信任前提。 | 如果建设技能市场,发布者身份、权限说明、扫描、下架与安装确认是准入条件;如果对外暴露服务,认证、默认绑定、补丁响应和版本升级单独设门,不能沿用仅面向本机的假设。 |
| codebuddy | 度量AI写了多少代码:git HEAD watcher按文件归因agent与人类的改动比例并上报。 | 我们记token和成本,不记产出归属。企业要买单的时候问的是后者。 | 先记录不上报。我们有每轮git提交,归属信息是现成的。 |
| openclaw | 轨迹导出:系统提示词加工具清单加每一个事件,脱敏后打成一个带版本的包,10 MB/50 MB/256 KB三级上限。src/trajectory/ | OpenProgram 已能把会话导出为默认脱敏的Markdown或HTML,内容面向人工阅读并截断工具参数与结果;尚未把system prompt、完整工具定义、运行时事件、provider artifacts、usage/cache与runtime settings组成版本化轨迹包。 | 部分实现。完整结构化轨迹仍是待确认候选。 |
| 主题四 · 让agent更主动、更好测 | |||
| openclaw | Automations加Heartbeat:Automations支持cron、固定间隔与一次性任务,结果投递到聊天渠道或webhook;Heartbeat默认每30分钟主动运行一轮主会话,只上报值得注意的事项。 | OpenProgram Scheduler 已实现一次性、周期和监控任务的持久登记、签名执行、重试、恢复与常驻 worker,可运行 agent prompt 或受控命令;尚无把结果投递到聊天渠道或 webhook 的协议,也没有默认周期执行主会话并按重要性筛选结果的 heartbeat。 | 剩余候选是两个独立范围:Scheduler 结果投递协议,以及具备频率、静默和筛选规则的主会话 heartbeat;两者仍需单独设计批准。 |
| openclaw | 承诺追踪:从聊天里抽出隐含承诺,转成有类型的条目(约定、截止、关心、未了事),置信度阈值0.86,每天最多主动发3条。另有心跳与开机一次性两条独立的主动路径。src/commitments/ | 我们的 proactive 层执行显式登记的外部事件或 Scheduler 任务;当前不会从普通对话内容自动创建未来动作。 | 若设计自动承诺提取,必须同时定义置信度阈值、每日主动消息上限、撤销方式和误触发处置;当前未获实施批准。 |
| openclaw | Dreaming:后台按评分阈值从每日笔记memory/YYYY-MM-DD.md提炼条目并提升进MEMORY.md;上下文压缩前另有自动memory flush,先保存值得长期保留的信息。 |
我们的记忆有每晚reorganize(),但没有"每日笔记按评分晋升到核心记忆"这条显式生命周期;压缩前提炼与后台整理也不是同一个阶段。 |
值得作为分层记忆机制继续比较;评分阈值、自动写入归属和压缩前失败语义必须同时定义。 |
| openclaw | 节点把远端设备能力挂成工具:macOS、iOS、watchOS、Android都是原生节点;手机节点提供传感器、日历与通知等能力,Android可经无障碍服务控机,macOS提供computer.act桌面自动化。 |
我们的渠道只用来收发消息,没有把另一台设备的能力注册到agent工具面。"节点协议"与"为产品做一套原生App界面"是两件可分离的事,不能因为不做手机App就把远端设备工具一并排除。 | 节点协议值得单独设计;原生App不是它的前置条件,具体设备能力仍按权限、可撤销授权与平台成本逐项选择。 |
| pi-mono | 假provider加HTTP录制回放:一个完整注册的假模型按脚本吐文本、思考和工具调用,chunk大小可配;另有HTTP与WebSocket的录制回放,磁带存在测试夹具里。 | OpenProgram 已有测试专用scripted provider,可经正常注册路径驱动文本、思考、工具调用、错误和多轮响应,并覆盖真实agent_loop工具结果回填;它不是正式发布的生产provider。 |
部分实现。是否提供正式provider仍需单独设计批准。 |
| pi-mono | 会话中途换供应商:把思考块签名和工具调用 id 归一化,使同一段历史可在不同供应商间继续;另有扩展用生成的交接提示词创建新会话。 | OpenProgram 的 Web/TUI 可在同一会话切换模型;providers/_shared/transform_messages.py 归一化跨协议消息、思考块和工具调用 ID,测试覆盖跨供应商工具调用历史。它不等同于另建会话的交接提示词扩展。 |
已实现同会话跨供应商继续;独立的新会话交接工作流不是本项必需语义。 |
独有本身不是价值,独有并且换来了别人换不到的东西才是。三件里两件成立,一件目前只是形状上独有。
| 我们的 | 它是什么 | 别人最接近的 | 这份独有买到了什么 |
|---|---|---|---|
| 会话DAG 分支即head指针 |
一张图,三种节点角色(user/llm/code),两种边(caller/predecessor)。每会话使用一个 git 仓库;history JSON 节点可在锁内创建、补写 output/metadata 或删除。meta.json 中当前 head 与可选 branch refs 使用 CAS;title/archive 由锁保护的原子替换更新。系统不维护可变的完整 transcript 快照。 |
OpenClaw 的 Control UI 提供 transcript fork、rewind 与 branch;pi-mono 的 JSONL 记录带 parentId,/tree 可切换并摘要废弃分支。opencode 的 fork 创建新会话,codex 的 agent graph 记录 agent 关系。 |
OpenProgram 的已确认差异是 transcript 分支、user/llm/code 统一 DAG 和每会话 git 存储。OpenClaw 与 pi-mono 已具备 transcript 多分支,不能据此声明该能力只有 OpenProgram 与 pi-mono。OpenProgram 自身也不会自动为每个 transcript 分支创建独立 worktree;文件隔离只适用于显式绑定 worktree_id 的 job。 |
| Agent method 流程固化成代码 |
一个Python装饰器。启用会话 DAG 记录、非 expose=hidden 且持久化成功时,对应调用层会记成会话 DAG 上的 code 节点,和用户消息、模型消息、工具结果共用同一套边,写进同一个git仓库。 |
没有对应物。pi-mono的扩展、opencode的tool/*.ts、hermes的skills都能注册新工具,但工具执行对它们是一个黑盒,只有入参和返回值进历史。反方向的对应物是codex的code mode:模型当场写代码调工具。 |
持久化成功的内部步骤可与对话一起回看;顶层手动函数可通过 Retry/Edit 形成 sibling branch。任意嵌套步骤的状态恢复或重放尚未实现。 |
| 四域协作工具面 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 | scripted provider:部分实现。测试专用实现可按脚本产生文本、思考、工具调用、错误与多轮响应。 | 已通过正常provider注册路径覆盖真实agent_loop与工具结果回填;正式发布的生产provider尚未实现,也未获设计批准。 |
tests/component/providers/scripted_provider.py · test_scripted_provider.py |
| 2 | MCP server:已实现。CLI提供认证的stdio服务端并暴露允许的OpenProgram工具。 | 实现复用现有工具注册、权限模式与allow-pattern映射;稳定远程SDK、OpenAI兼容端点和入站webhook不在这一实现范围内。 | openprogram/mcp/server/server.py · apps/cli/python/openprogram_cli/_impl/commands/mcp.py |
| 3 | 轨迹导出:部分实现。会话可导出为默认脱敏的Markdown或HTML。 | 现有格式面向人工阅读,并截断工具参数与结果;system prompt、完整工具定义、运行时事件、provider artifacts、usage/cache与runtime settings尚未形成版本化结构化包。 | openprogram/store/session/export.py |
| 4 | 可恢复删除:部分实现。绑定session/turn的本地agent子进程具备shell、Python与Node常用删除拦截、manifest和trash list/restore。 |
没有上下文的cron与后台任务、Docker、SSH、绝对路径命令、直接syscall和禁用注入等路径不覆盖;该机制不是完整安全边界。 | openprogram/sandbox/recoverable_delete.py · apps/cli/python/openprogram_cli/_impl/commands/trash.py |
| 5 | 功能台账与默认阶段:未实现。 | 当前没有统一的运行时feature registry来记录每项能力的阶段与默认开关;该候选仍需单独设计批准。 | 无统一feature registry |
| 6 | 外部agent会话与配置导入:未实现。 | 现有外部CLI credential discovery不等于会话、配置、skills与历史迁移;该候选仍需单独设计批准。 | 无外部session/config importer |
宏观层的理想只有三句,每句对应上面三个问题里的一个。
会话已经是一个git仓库,里面是一张完整的图。理想状态下这个仓库可以整个交给另一台机器接着跑,可以脱敏后发出去给别人看,可以从图上任意一个节点重新分叉。三件事共用同一个载体,不需要三套导出格式。
现有MCP server与ACP已经提供标准本机入口;理想状态还需要稳定且版本化的远程控制契约,并保留外部会话与配置导入能力。后两项仍是未批准候选。
每个能力在台账上有一条记录,标着阶段和默认开关;每一次运行都能导出成一份脱敏的完整轨迹。前者让我们说得清自己有什么,后者让别人说得清我们哪里坏了。这两件缺一件,规模一大就失控。
主要产品能力按 2026-09-01 官方稳定版复核;源码结构、行数和国产安装包仍使用固定本地版本。表内明确区分两种证据。
| 对象 | 取证来源 | 日期 | 注意 |
|---|---|---|---|
| OpenProgram | integrated candidate@d91c3e66 的代码、CLI/Web/TUI 入口与对应测试 | 2026-09-01 | MCP server、ACP、LSP、mid-turn steer、Scheduler、跨会话 agent provenance、会话导出、跨供应商历史兼容与可恢复删除按当前实现边界复核;未实现候选不按设计文档记为完成 |
| claude-code | 官方稳定版 v2.1.252及官方文档 | 2026-09-01 | 旧参考源码树与本机 2.1.226 只用于内部实现补充;当前公开能力以官方稳定版证据为准 |
| codex | 官方稳定版 rust-v0.152.0及官方文档 | 2026-09-01 | worktree、cloud、Web、GitHub、Slack、Automations、import 与 App Server/SDK 按正式公开能力计;旧本地源码只用于内部结构补充 |
| openclaw | 官方稳定版 v2026.8.1及官方文档 | 2026-09-01 | session SQLite/search/archive、paired devices、需显式配置 profiles 的 cloud workers、managed worktrees、Control UI 与 Workboard 按版本对应文档复核 |
| opencode | 官方稳定版 v1.18.25、tag-pinned 源码及官方文档 | 2026-09-01 | Scout 存在 docs/source 冲突,按稳定源码记为未确认;worktree core 存在但路由仍属 experimental |
| 其余四家 | references/ 下固定源码:Hermes、pi-mono、weclaw 与协议参考 pi-ai | 固定版本 | 不声明为项目最新发布版;功能结论只限列明证据 |
| 国产四家 | 本机~/.npm-global/lib/node_modules/下的npm包,读dist/打包产物 | 2026-08 | 前三个是包装器,改动集中在环境变量与配置层;gemini那个是真源码分支 |
| Trae | 未获取到实现 | — | 本机没装,/Applications、应用支持目录、VS Code与Cursor扩展目录里都没有。不写猜测 |
| 条目 | 旧参考源码树 | 本机固定二进制 | 用途 |
|---|---|---|---|
| claude-code的子agent深度上限 | 树里没有这个开关 | 有,默认3,可用环境变量覆盖,且带灰度开关2.1.226 @249432727附近 | 内部机制补充;当前公开能力另按 v2.1.252 官方证据 |
| claude-code的按agent裁工具 | 有裁剪,但不含深度 | 裁剪函数直接吃agentDepth,只有深度小于上限才给出派子agent的工具;另有三张常量表分别管普通agent、异步agent、协调者模式@256834891 · @75243888 · @75243840 · @75243792 |
内部机制补充;当前公开能力另按 v2.1.252 官方证据 |
| claude-code的Slack | 只有一个市场安装链接 | 有完整的Slack对话面,含机器人、人类回合校验、频道搜索@78014240 · @106577664 · @106582768 · @70680752 | 内部机制补充;当前公开能力另按 v2.1.252 官方证据 |
| claude-code的产物发布 | 完全没有 | 有一整套:计划产物发布成带脚本哈希白名单的托管HTML,另有独立的产物工具与一组开关@75228592 · @75228672 · @75228896 · @75229360 · @75180658 | 内部机制补充;当前公开能力另按 v2.1.252 官方证据 |
| claude-code的定时与外部触发 | 没有 | 有三个定时工具、一个远程触发工具,以及一组给自托管CI跑的工具集@75240320 | 内部机制补充;当前公开能力另按 v2.1.252 官方证据 |
| codex的长期记忆 | 源码里是完整子系统(读写两阶段管线加独立数据库),功能台账里标Stable但default_enabled: false。只看默认行为会判成"没有",今天已经误判过一次。 |
按"有"计 | |
第一层的 OpenProgram 状态按集成候选复核;第二层中四个主要产品的公开能力按 2026-09-01 官方稳定版本复核,代码量与内部实现细节仍是固定本地版本;第三层校准六项候选,第四层描述未完整达到的目标形态。
| 条目 | 状态 | 落点 |
|---|---|---|
| 形态图、代码量级、十二维矩阵、国产四家、盲区清单、差异机制 | 能力状态按上表版本复核;代码量和内部结构只代表固定本地版本 | 官方稳定版证据 + 固定 references/ 与本机包,见上表 |
| 第三层六项候选与第四层三句 | 候选未表示已批准;目标形态尚未完整实现 | 具体边界见第三层各行 |
| MCP server | 已实现 | openprogram/mcp/server/server.py · apps/cli/python/openprogram_cli/_impl/commands/mcp.py |
| scripted provider、轨迹导出、可恢复删除 | 部分实现 | tests/component/providers/scripted_provider.py · store/session/export.py · sandbox/recoverable_delete.py |
| 功能台账、外部agent会话与配置导入 | 未实现;仍需单独设计批准 | 无统一feature registry或external session/config importer |