AtomCode 补充技术细节
工具参数字段完整提取、技术栈分析、Telemetry 状态 2026-06-22
1. 工具参数字段提取
从二进制字符串中提取全部工具参数对应的字段名集合。这些字段名对应 Rust 结构体中的序列化字段,也对应 OpenAI function calling 的 parameters.properties 键名。
1.1 完整字段名集合
action command content contract
depth event file file_path
files format from glob
hooks instruction limit matcher
message new_string offset old_string
path pattern plan_type provider
query reason regex replace
search symbol timeout_ms to
url1.2 按用途分组
文件操作参数:
file_path, file, files, path, glob, pattern编辑操作参数:
old_string, new_string, search, replace, regex, instruction, action搜索参数:
query, glob, regex, pattern, path, offset, limit, depth执行参数:
command, url, timeout_ms, format通用参数:
content, message, provider, reason, from, to, event, matcher, hooks2. Rust 源代码结构
2.1 crate 组织
atomcode (monorepo):
├── crates/atomcode-cli/ → CLI 入口(main.rs)
├── crates/atomcode-core/ → 核心逻辑
│ └── src/tool/ → 25 个工具实现
├── crates/atomcode-daemon/ → HTTP daemon 服务器
│ ├── src/api_codingplan.rs → CodingPlan API
│ └── src/telemetry_scope.rs → 遥测作用域
├── crates/atomcode-tuix/ → TUI 终端界面
├── crates/atomcode-codingplan-crypto/ → CodingPlan 加密
│ └── src/versions/v1.rs → v1 加密实现
└── crates/atomcode-telemetry/ → 遥测上报
├── src/queue/mod.rs → 队列管理
├── src/runtime.rs → 运行时
└── src/sender/http.rs → HTTP 发送器2.2 依赖技术
| 技术 | 用途 |
|---|---|
| Rust | 主语言 |
| Tokio | 异步运行时 |
| Axum | HTTP 框架(daemon) |
| Serde | JSON 序列化 |
| Clap | CLI 参数解析 |
| reqwest | HTTP 客户端 |
| rustls | TLS 加密 |
| Preact + Vite | Web UI 前端 |
| marked | Markdown 渲染(前端) |
| OpenAI API 格式 | LLM 通信协议 |
| SSE (Server-Sent Events) | 流式响应 |
| JSON-RPC | MCP 协议 |
3. 对话数据统计(截至分析时)
3.1 调用量
| 指标 | 值 |
|---|---|
| datalog 文件数 | 61 个 JSON |
| 时间跨度 | ~10 天(6-12 至 6-22) |
| 模型 | 全部 deepseek-v4-flash |
| 平均延迟 | 1.5s - 3s |
| 最长延迟 | ~10s |
| 工具调用率 | ~10%(6次中有工具调用) |
| 短期窗口用量 | 0/500(当前窗口已重置) |
| 长期窗口用量 | 54/8000(0.7%) |
3.2 实际性能
平均响应时间: ~2000ms
最小响应: ~1470ms
最大响应: ~9832ms
Token 估算: 每次 6317-7802 tokens
工具调用成功: 6 次(glob、list_directory、write_file、bash)4. Telemetry 启用状态
当前环境下 Telemetry 未触发:
~/.atomcode/telemetry/目录不存在- daemon 启动时设置了
ATOMCODE_TELEMETRY=0 - 配置中
auto_update = true但 telemetry 被禁用
如果启用 Telemetry,数据将上报至:
POST https://acs.atomgit.com/api/v1/events5. Daemon 实际运行的 Web UI
SPA 类型: Vite 打包的 Preact SPA
框架: Preact (轻量 React 替代)
入口文件: assets/index-2VWO9kfe.js (166KB)
CSS: assets/index-DQAxDfIC.css
服务端口: 13456 (与 API 同端口)
路由: SPA 处理所有未匹配路径(fallback)SPA 元描述:
html
AtomCode -- Claude Code 的开源平替。
连接任意大模型,自主多步执行,30 秒上手。6. 已知的二进制行为(未验证)
| 行为 | 触发条件 |
|---|---|
| 自动更新 | auto_update = true + 启动/upgrade 命令 |
| 遥测上报 | daemon 启动时 + 定时上报 |
| CodingPlan 同步 | 启动时 + 定时(codingplan_sync.json 记录时间戳) |
| Token 刷新 | token 过期前自动使用 refresh_token |
| 语言自动检测 | 默认自动,支持 en/zh-CN/zh-TW |
| 技能市场同步 | auto_update_marketplaces = true |
逆向命令索引
bash
# 提取杂项字符串
strings atomcode.bin.bak | grep -iE "misc|other|default" | grep -v "https\?://\|crates/" | sort -u | head -10