内置工具
AtomCode 内置文件与 Shell、代码图谱、Web、自动化和 AtomGit 原生操作等工具。模型会根据任务自动挑选,大多数情况下你不需要手动指定。
文件与 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 删除同样需要显式确认。
给 bash 传 run_in_background: true,命令会以独立进程在后台启动并立即返回 PID 与日志文件路径,进程在多轮对话间持续存活 —— 适合开发服务器、文件监听、隧道等长跑任务,不必阻塞会话。
rm -rf、dd、mkfs、sudo 等高危命令,以及会清库重建表的数据库迁移(如 migrate:fresh、db:reset)都会强制弹出权限确认。这类确认始终触发 —— 即便之前对 bash 选过"始终允许"也不能跳过。
代码图谱(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 扩展。
AtomGit 集成(3 个)
执行 /login 后,模型可以通过以下内置工具直接操作 AtomGit。你只需用自然语言描述目标,不再使用 /issue 斜杠命令。
| 工具 | 作用 | 需要确认 |
|---|---|---|
atomgit_repo | 列出、查看、创建、删除、Fork 或 Clone 仓库,创建 Tag 并管理项目标签 | 写操作:是 |
atomgit_pr | 列出、查看、创建或关闭 PR,管理 PR 评论,并关联或取消关联 Issue | 写操作:是 |
atomgit_issue | 列出或查看 Issue,创建 Issue,以及查看、新增、编辑或删除评论 | 写操作:是 |
示例:为这个 Bug 创建一个 AtomGit Issue,并附上复现步骤和环境信息。
大型工具输出
当工具结果太长时,AtomCode 会在界面中显示稳定的摘要,并把完整内容保存到当前会话。模型可通过 fetch_output 分页读取后续内容,因此“输出已截断”不代表结果丢失;删除会话时对应的完整输出也会一并清理。
禁用特定工具
用 --disable-tools 参数可以在启动时把某些工具对模型完全隐藏。例如在 SWE-bench 沙箱里:
atomcode -p "solve this issue" --disable-tools web_search,web_fetch
禁用后的工具不会出现在 tool schemas 里,模型不会尝试去调用一个必然失败的工具。