内置工具
AtomCode 目前内置 21 个工具,按能力分成文件与 Shell、代码图谱、Web、自动化四类。模型会根据任务自动挑选,大多数情况下你不需要手动指定。
文件与 Shell(9 个)
| 工具 | 作用 | 需要确认 |
|---|---|---|
read_file | 读取文件内容,支持行号偏移与范围 | 否 |
write_file | 写入完整文件内容(覆盖写) | 敏感路径:是 |
edit_file | 基于字符串匹配的局部编辑,返回编辑上下文 | 敏感路径:是 |
search_replace | 批量字符串替换,适合跨行 / 多处模式 | 敏感路径:是 |
bash | 执行 shell 命令,破坏性命令会触发权限对话框 | 破坏性命令:是 |
grep | 基于 ripgrep 语义的正则搜索 | 否 |
glob | 文件名通配符匹配(如 src/**/*.ts) | 否 |
list_directory | 列出目录内容 | 否 |
change_dir | 切换 agent 的当前工作目录 | 否 |
敏感路径
写入 /etc、~/.ssh、shell 配置文件等路径会强制触发权限对话框,无法用"始终允许"一次性跳过。源码文件的 rm 删除同样需要显式确认。
代码图谱(8 个)
这是 AtomCode 区别于一般 agent 的最大亮点。借助代码图谱索引,模型无需读遍整棵代码树就能精准定位符号、引用和调用关系,在大型仓库上效果尤其明显。
| 工具 | 作用 |
|---|---|
list_symbols | 列出某个文件或目录下定义的所有符号(函数、类、常量等) |
read_symbol | 精准读取某个符号的完整定义片段,而不用把整个文件拉进上下文 |
find_references | 查找某个符号被引用的所有位置 |
trace_callers | 回溯某个函数的调用方链路 |
trace_callees | 展开某个函数内部调用了哪些下游 |
trace_chain | 在两个符号之间搜索可能的调用链 |
file_deps | 分析某个文件的 import/依赖关系 |
blast_radius | 评估修改某个符号可能影响到的文件 / 符号范围 |
典型使用场景
- 重构前评估风险 —— "我想改
formatDate的签名,影响面有多大?"模型会调用blast_radius+find_references。 - 定位 Bug 根源 —— "用户点击按钮为什么没响应?" 从入口函数开始
trace_callees,一路下探。 - 读懂陌生代码 —— "帮我讲讲
AuthService.login是怎么跑的" →read_symbol+trace_callees。
Web(2 个)
| 工具 | 作用 |
|---|---|
web_search | 在 web 上搜索关键词,返回标题 / 摘要 / URL 列表 |
web_fetch | 抓取某个 URL 的内容并转换为 markdown 供模型阅读 |
典型用途:查最新的文档、对比不同库的 API、读取一篇 GitHub issue。在离线环境或想省钱时可以用 --disable-tools web_search,web_fetch 关掉它们。
自动化(2 个)
| 工具 | 作用 |
|---|---|
auto_fix | 运行项目的 lint / typecheck,按错误列表循环修复直到通过 |
use_skill | 调用用户自定义的 skill,把一个多步流程打包成可复用的命令 |
详见 Skills 扩展。
禁用特定工具
用 --disable-tools 参数可以在启动时把某些工具对模型完全隐藏。例如在 SWE-bench 沙箱里:
atomcode -p "solve this issue" --disable-tools web_search,web_fetch
禁用后的工具不会出现在 tool schemas 里,模型不会尝试去调用一个必然失败的工具。