AtomCode v4.25.5 → v5.0.9 版本差异全量分析
基于
strings/readelf差异对比的跨版本逆向分析 2026-09-09
概览
| 属性 | v4.25.5 (旧) | v5.0.9 (新) |
|---|---|---|
| 大小 | 28,518,576 字节 | 34,166,592 字节 |
| 增长 | — | +5,648,016 字节 (+19.8%) |
| MD5 | 921f831d3d0e4d7672df5773c4491af7 | f7aa98704af26f37e83a4653d0f49ace |
| strings (-n 6) | 32,881 行 | 42,353 行 |
| strings 增长 | — | +9,472 行 (+28.8%) |
ELF 段尺寸对比
| 段 | v4.25.5 | v5.0.9 | 变化 |
|---|---|---|---|
.text | 7,727,046 | 11,222,838 | +3,495,792 (+45.2%) |
.rodata | 17,576,604 | 19,348,124 | +1,771,520 (+10.1%) |
.eh_frame | 1,204,404 | 1,681,156 | +476,752 (+28.2%) |
.data | 15,144 | 24,600 | +9,456 |
结论:.text 增长 45% 是迄今最大的代码量跃升,远超此前任何小版本迭代,证实这是跨大版本(v4→v5)的功能性升级而非简单维护。
1. 外部 Agent 子代理(全新子系统 — 本次最大新增功能)
1.1 源码模块(全新)
crates/atomcode-capabilities/src/subagent/claude_code.rs ← Claude Code 子代理
crates/atomcode-capabilities/src/subagent/codex.rs ← Codex 子代理
crates/atomcode-capabilities/src/subagent/proc.rs ← 子进程管理
crates/atomcode-capabilities/src/subagent/tool.rs ← 工具封装
crates/atomcode-coding/src/subagent_tiers.rs ← 子代理分层旧版(v4.25.5)中不存在任何 subagent/ 源码路径,此子系统全新加入。
1.2 配置结构体
rust
struct ExternalSubagentConfig // 7 元素
struct SubAgentConfig // 新增
// 字段: permission / allow_dangerous / timeout_secs / evaluator_provider
// default_workdir / providers / ...配置项:
subagent.max_concurrent subagent.max_rounds
subagent.codex subagent.claude1.3 权限模式映射
read-only → 外部 Agent 只读
accept-edits → 接受编辑
auto → 自动
bypass → 需显式启用,非交互/调度场景强制降级为 read-only1.4 运行特征
- 输出文件前缀:
atomcode-codex-out- - CLI 风格:
Claude Code -p风格(print 模式) - 工具命名:
subagent_<name>挂载为主模型可直接调用的工具 - 约束:
subagent may not touch sensitive paths (credentials / ~/.ssh / .env) - 错误:
codex error:/subagent task crashed:/subagent stopped early - 系统提示语模板:
You are a READ-ONLY investigation subagent.../You are a focused EXECUTION subagent...
1.5 与既有子代理体系的整合
## EXTERNAL AGENT SUBAGENTS:
- 既有内部子代理 (subagent_type) 保留
- 新增外部 agent 作为命名子代理工具
- 委派提示模板:Delegate a self-contained coding task to the ...
- 进度可视化:子代理行显示委派任务内容,Codex 活动经 --json 流式呈现2. Code Review 深度模式(全新子系统)
2.1 源码模块(旧版仅 3 文件 → 新版 9 文件)
crates/atomcode-review/src/assemble.rs ← 跨维度合并去重
crates/atomcode-review/src/confine.rs ← 范围收敛(仅审查变更文件)
crates/atomcode-review/src/fanout.rs ← 维度 fan-out 并发
crates/atomcode-review/src/impact_plan.rs ← 影响面规划(code-graph 引导)
crates/atomcode-review/src/round_budget.rs ← 轮次预算
crates/atomcode-review/src/config.rs ← 新增
crates/atomcode-review/src/review_tool.rs ← 保留(旧有)
crates/atomcode-review/src/rules.rs ← 保留(旧有)
crates/atomcode-review/src/diff.rs ← 保留(旧有)2.2 审查维度(fan-out 并行)
| 维度 | 透镜 |
|---|---|
| correctness | ## This review's lens: CORRECTNESS |
| security | Running Security |
| performance | — |
| tests & contracts | Concentrate on whether the change is covered by tests... |
2.3 verify 阶段
deep+verify:每条 finding 由独立 reviewer 依据 diff 验证一次,剔除误报- 弱模型 reviewer 增加纪律约束
ZVerify the following single candidate finding from a prior review.
2.4 运行状态字符串
Deep review: 0 dimensions completed
Deep review: 4 dimensions completed
Deep review complete
Deep review incomplete
every dimension failed (0/
Failed dimensions:2.5 范围收敛
path is required under review scope confinement; pass a path within the changed/reviewable files
No high-risk symbol targets were inferred. Review the changed hunks and only use deeper code-graph tools if a hunk changes runtime behavior, dependency resolution, or public contracts.
## Review impact plan (deterministic, code-graph guided)3. 会话恢复(resume)
3.1 命令
resume <id|name> ← 按 id/名称恢复指定会话(TUI 与 headless 均可用)
← 无参恢复最近会话
-p --resume <id> ← headless 用法3.2 相关字符串
resume failed:
Resume session (
another session resume is still in progress
session preparation is taking unusually long (large session or slow disk); please try again
session is active in another atomcode process; close it before resuming4. Headless / ACP 可观测性
4.1 JSONL 结构化输出
--output-format jsonl
run.started / message.delta / tool.started / usage / turn.completed 等版本化事件4.2 新 CLI 标志
--ephemeral 不创建/恢复/写入会话状态
--no-tools 暴露空工具目录(纯模型评测)
--permission-mode 权限模式
--dangerously-skip-permissions
--model4.3 ACP v2(Agent Client Protocol draft v2)
全新源码模块(旧版无 atomcode-cli/src/acp/):
crates/atomcode-cli/src/acp/{commands,discovery,dispatch,elicitation,engine,mod,options,permission,sessions,turn,v2}.rs- 外部依赖:
agent-client-protocol-2.0.0(官方 Rust crate,路径/usr/local/cargo/registry/.../agent-client-protocol-2.0.0/src/role/acp.rs) - 协议能力:
- session/prompt 立即确认
state_update通知- agent 消息 id
session/deleteadditionalDirectories- MCP http 传输
$ /cancel_request取消请求
- ACP 通道可切换执行模式 / reasoning_effort / 模型,运行中热生效
acp serve failed:
acp: mcpServer ...
acp: request_permission round-trip failed
acp: request_user_input: bad payload
acp: v2 $/cancel_request for request
ACP protocol version / required ACP protocol version / unsupported ACP protocol version5. Reasoning Effort 增强
5.1 新增档位
low / medium / high / xhigh / max ← 五档(xhigh 为新增)
/effort 命令5.2 服务端档位宣告
reasoning_effort_levels ← CodingPlan 网关宣告优先于客户端内置表
reasoning_effort ← 请求字段
reasoning_history / thinking_budget / thinking_keep / thinking_type5.3 相关字段(模型能力声明)
capable_model / context_window / max_tokens / user_agent / supports_vision
default_proxy / skip_tls_verify / retry_max_attempts6. Provider / 网络扩展
6.1 新增 Provider 端点
| Provider | 端点 | 说明 |
|---|---|---|
| OpenAI | https://api.openai.com/v1 | 新增 |
| Anthropic | https://api.anthropic.com | 新增 |
| OpenRouter | https://openrouter.ai/api/v1 | 新增 |
| Moonshot | https://api.moonshot.cn/v1 | 新增 |
| MiniMax | https://api.minimaxi.com/v1 | 新增 |
| SiliconFlow | https://api.siliconflow.cn/v1 | 新增 |
| Xiaomi MiMo | https://api.xiaomimimo.com/v1 | 新增 |
| Volcengine Ark | https://ark.cn-beijing.volces.com/api/v3 | 新增 |
| Alibaba DashScope | https://dashscope.aliyuncs.com/compatible-mode/v1 | 新增 |
| LongCat | https://api.longcat.chat/openai/v1 | 新增 |
| Zhipu (Coding Plan) | https://open.bigmodel.cn/api/coding/paas/v4 | 新增 |
| Zhipu AI | https://open.bigmodel.cn/api/paas/v4 | 新增 |
| OpenCode | https://opencode.ai/zen/v1 | 新增 |
| TaoToken | https://taotoken.net/api/v1 | 新增 |
| Ollama | http://localhost:11434 | 保留 |
| DeepSeek | https://api.deepseek.com/v1 | 保留 |
对应 API Key 环境变量:DASHSCOPE_API_KEY / ARK_API_KEY / MIMO_API_KEY / LONGCAT_API_KEY / ZHIPUAI_API_KEY / MINIMAX_API_KEY / SILICONFLOW_API_KEY / OPENROUTER_API_KEY / OPENAI_API_KEY / ANTHROPIC_API_KEY
6.2 新增模型
claude-3 / claude-4 / claude-5 / claude-6 / claude-7
claude-sonnet / claude-opus / claude-haiku
gpt-4o / vision-vl / vl-ocr / 4v / 4.1v
pixtral / llava / qvq / deepseek-reasoner / deepseek-r1 / kimi
mimo-xiaomi / mimo-p6.3 流式解析新增
message_start / content_block_start / content_block_delta / content_block_stop
message_delta / message_stop / redacted_thinking / text_delta / thinking_delta
signature_delta / content_block / cache_read_input_tokens / cache_creation_input_tokens
partial_json / base64 / tool_use_id / done_reason / prompt_eval_count / eval_count7. 配置系统扩展
7.1 顶层配置结构(Config 27 元素)
UiConfig / ProxyConfig / LoopConfig / ToolsConfig / CodingConfig / PluginConfig
DatalogConfig / NetworkConfig / ProxyFileConfig / SubAgentConfig / TodoToolConfig
WebSearchConfig / ScheduleTask / NotificationConfig / TelemetryConfig
ExternalSubagentConfig / LspServerConfig / ProviderConfig / ModelProfileConfig
ProviderAccountConfig7.2 关键结构体字段数
| 结构体 | 字段数 |
|---|---|
Config | 27 |
ProviderConfig | 19 |
ModelProfileConfig | 16 |
ScheduleTask | 11 |
ExternalSubagentConfig | 7 |
ProviderAccountConfig | 7 |
LspServerConfig | 3 |
TelemetryConfig | 2 |
7.3 新增配置路径
subagent.max_concurrent / subagent.max_rounds / subagent.codex / subagent.claude
coding.max_rounds / coding.shell_guard_policy
loop_config.max_rounds
tools.todo.enabled
ui.auto_copy_code_blocks / ui.ai_session_naming / ui.terminal_status_glyph / ui.truncate_resumed_history
notifications.enabled / notifications.bell
datalog.enabled / telemetry.enabled
lsp.enabled / lsp.auto_detect
plugin.auto_update_marketplaces7.4 新增配置结构体
struct ProviderConfig with 19 elements
struct ModelProfileConfig with 16 elements ← 模型能力档案(能力声明)
struct ProviderAccountConfig with 7 elements ← 账号(display_name, avatar_url, email...)
struct ScheduleTask with 11 elements ← permission_mode/notify/last_run_at/last_status
struct ExternalSubagentConfig with 7 elements
struct LspServerConfig with 3 elements7.5 新增枚举
rust
enum Schedule {
Daily (1 字段),
Cron (1 字段),
Weekly (2 字段),
Interval(1 字段),
Hourly,
}7.6 新增环境变量
ATOMCODE_SUBAGENT ← 外部子代理开关
ATOMCODE_SUBAGENT_MAX_ROUNDS
ATOMCODE_REVIEW_MAX_ROUNDS
ATOMCODE_REVIEW_MAX_DURATION_SECS
ATOMCODE_VERIFY ← verify 阶段
ATOMCODE_REQUEST_USER_INPUT
ATOMCODE_GOAL_MAX_ROUNDS
ATOMCODE_GOAL_MAX_DURATION_SECS
ATOMCODE_LOOP_MAX_ROUNDS
ATOMCODE_MEMORY_TOOL
ATOMCODE_MEMORY_APPROVAL
ATOMCODE_PROJECT_MEMORY_DIR
ATOMCODE_PLUGIN_AUTO_INSTALL
ATOMCODE_PLUGIN_MARKETPLACES
ATOMCODE_STREAM_TIMEOUT_SECS
ATOMCODE_TURN_MAX_ROUNDS
ATOMCODE_MAX_PARALLEL_TOOLS
ATOMCODE_DAEMON_IDLE_TIMEOUT
ATOMCODE_MCP_TRUST_STORE
ATOMCODE_ASKPASS_SOCK / ATOMCODE_ASKPASS_TOKEN
ATOMCODE_QR_DENSE / ATOMCODE_QR_BRAILLE
ATOMCODE_AI_SESSION_NAMING / ATOMCODE_BRAND_NAME / ATOMCODE_OAUTH_PROVIDER_NAME
ATOMCODE_APP_RELAY / ATOMCODE_RELAY_CLIENT_BIN / ATOMCODE_RELAY_CLIENT_SKIP_DOWNLOAD
ATOMCODE_DESKTOP_DOWNLOAD_URL8. CLI 命令重构与新增
8.1 新增子命令
| 命令 | 说明 |
|---|---|
daemon | HTTP daemon(VS Code 集成),--client / --idle-timeout |
webui | WebUI 启动 |
plugin | 管理 skill/command 插件(镜像 claude plugin),操作 $ATOMCODE_HOME/plugins/ |
mcp | 管理 .mcp.json(claude mcp add 风格) |
schedule | 管理本地定时任务(add/list/remove/enable/disable),--daemon |
askpass | 内部 askpass helper(SUDO_ASKPASS/SSH_ASKPASS) |
acp | ACP agent over stdio |
resume | 恢复会话 |
review | 代码审查(支持 deep/deep+verify) |
effort | reasoning effort 调整 |
goal | goal 模式 |
loop | loop 模式 |
completion | shell 补全脚本 |
8.2 Uninstall 重构(非交互)
--yes Skip prompts; use per-group default decisions (binary=yes, credentials=no, state=yes)
--purge PURGE
--keep-data Keep ~/.atomcode/ entirely (only remove binary + PATH edit)
--dry-run DRY_RUN8.3 Setup 重构
Setup Take over a stale lock AND force reinstall even if seeds are already present
Install seed files (skills/commands/hooks/MCP) to `~/.atomcode/`
setup-state.json9. 其他新功能特征
9.1 文件/编辑器集成
.claude/agents / .claude/commands / .claude/skills / .agents/skills
AGENTS.md / CLAUDE.md / ATOMCODE.md / .atomcode.md / .atomcode.user.md
JetBrains-JediTerm / TERMINAL_EMULATOR / ATOMCODE_TMUX_PASSTHROUGH9.2 构建器集成(内置构建命令识别)
python3 xargs .sh .py .js .rb .pl cargo npm bun gradle gradlew mvn ninja msbuild rustc gcc g++ clang clang++ tsc javac pytest dotnet compile publish bench clippy9.3 Telemetry 队列强化
telemetry/queue / telemetry/health.json
events_tracked / events_dropped_mpsc / events_dropped_disk / segments_posted / bytes_sent
last_post_unix_ms / last_post_isoc
install_completed_install_uuid9.4 插件系统强化(git 源 marketplace)
ATOMCODE_PLUGIN_ROOT / CLAUDE_PLUGIN_ROOT
marketplaces.json / marketplaces.atomcode/ / plugins.atomcode/ / plugins/local
installed_plugins.json / hooks.json
spawn git clone / --depth / ATOMCODE_GIT_PATH
.plugin/plugin.json / .claude-plugin/plugin.json / .claude-plugin/marketplace.json
add marketplace / remove / update marketplace9.5 会话 rewind 能力
session/rewind.rs ← 新源码
rewind point has no code snapshot
code rewind compensation lost its checkpoint
rewind transaction requires an active session lease
conversation rewind must have an undo plan10. 新增源码模块全清单(121 个文件路径)
全新 crate / 模块组
| 模块 | 文件 | 性质 |
|---|---|---|
| subagent | capabilities/src/subagent/{claude_code,codex,proc,tool}.rs | 全新 |
| acp | cli/src/acp/*.rs (11 文件) | 全新 |
| team | coding/src/team/{manager,runner,tool}.rs | 全新 |
| review 扩展 | review/src/{assemble,confine,fanout,impact_plan,round_budget,config}.rs | 扩展 |
| tools 新增 | capabilities/src/tools/{atomgit,atomgit_bash_gate,bash_workspace_gate,credential_bash_gate,memory,output_artifact,repair,request_user_input,task}.rs | 扩展 |
| session | capabilities/src/session/{manager,rewind,usage_provider}.rs | 扩展 |
| atomgit 工具 | capabilities/src/atomgit/{client,issue,pr,push_label_mw,remote,repo}.rs | 扩展 |
| askpass | capabilities/src/askpass/{cache,server}.rs | 扩展 |
| coding 子系统 | coding/src/{config,controllers,execution_policy,mcp_instructions,next_prompt_suggestion,rate_limit,runtime,session_title,skill_first,subagent_tiers,todo,vision}.rs | 扩展 |
| tuix 模态框 | tuix/src/modals/{config_panel,dir_picker,password,provider_panel,qr,rewind,usage,usage_render}.rs | 扩展 |
| daemon | daemon/src/{api_auth,auth_token,commands,kernel_runtime,legacy_convert,native_live,runtime_host}.rs | 扩展 |
11. 发布节奏
| 版本 | 本地日期 | 说明 |
|---|---|---|
| v4.25.5 | 2026-06-24 | 此前分析的最新版 |
| v5.0.0 ~ v5.0.8 | 2026-07 ~ 2026-08 | 中间版本(未追踪) |
| v5.0.9 | 2026-08-27 | 本次下载的最新版 |
跨 5 个 minor 版本、2 个多月,是仓库首次跨越 v4 → v5 大版本。
12. 逆向分析方法论总结
- strings 差异是识别新功能的最快路径:
comm -13 <(sort old) <(sort new) - Rust 编译后源码路径作为 panic/错误字符串保留 → 新 crate/模块结构可直接枚举
- 结构体名 +
with N elements保留在类型元数据中 → 可重建配置模型 - 环境变量名是功能开关的强指示器
.text段大小是代码量变化的可靠量化指标
本报告由持续分析循环生成 — v5.0.9 首次全量差异分析