Skip to content

工具总览

工具是什么

deepcode 的主循环靠一组内置工具干活:读写文件、搜索代码、执行命令、派生子代理/技能、访问网络与长期记忆、管理后台任务与定时任务。每次工具调用都会在 TUI 里实时展示,并按当前权限模式决定要不要弹窗确认。

按类分组

下表按用途分组列出内置工具(工具名取自源码,与实际注册一致);「只读」列对应工具的 isReadOnly 属性,决定它是否会被权限系统自动放行——具体判定规则见下一节。

文件与 notebook

工具说明只读
Read读取文件内容,带行号;编辑任何文件前必须先读
Write整文件写入(新建或覆盖),已存在文件覆盖前必须先 Read
Edit对文件做精确字符串替换
NotebookEdit编辑 Jupyter notebook(.ipynb)的单个 cell:替换/插入/删除,不执行 cell

搜索

工具说明只读
Glob按 glob 模式查找文件路径(自动忽略 node_modules/.git
Grep按正则在文件内容中搜索,返回 文件:行号:行内容

执行

工具说明只读
Bash在持久化工作目录中执行 shell 命令,可前台或转后台

agent 编排

工具说明只读
Agent派生一次性子代理完成子任务,子代理看不到当前对话上下文
Workflow用确定性 JavaScript 编排多个子代理(循环/条件/并发扇出)
Skill调用一个技能,技能指令作为独立消息交付并执行
TaskCreate在任务清单中创建一个任务
TaskGet按 id 取一个任务的全部字段
TaskUpdate更新任务状态/字段(含依赖阻塞判定)
TaskList列出当前任务清单
BgTaskList列出所有后台进程任务
TaskOutput读取后台任务输出(增量或从指定偏移)
TaskStop按 id 停止一个运行中的后台任务

记忆

工具说明只读
SearchMemory在长期记忆(项目内 + 跨项目全局抽屉)里全文检索相关片段

网络

工具说明只读
WebFetch抓取一个 http(s) URL,按 prompt 提取或总结内容
WebSearch搜索网络获取最新信息,返回标题/链接/摘要

定时与通知

工具说明只读
Sleep等待指定秒数,用户可随时中断
ScheduleWakeup安排 /loop 动态模式下一次续跑
CronCreate按 cron 周期或一次性安排未来的任务
CronList列出本会话已安排的 cron 任务
CronDelete取消一个已安排的 cron 任务
Monitor启动后台监控,从长跑脚本流式取事件
PushNotification在用户终端发桌面通知

交互与流程控制

工具说明只读
AskUserQuestion弹结构化多选题问用户(仅交互式可用)
ExitPlanModeplan 模式下请用户审批计划,通过后退出只读限制

worktree 隔离

工具说明只读
EnterWorktree创建隔离的 git worktree 并把当前会话切进去
ExitWorktree退出当前 worktree 会话,恢复到原工作目录

配置

工具说明只读
Config读写用户级配置(敏感字段如 apiKey/hooks/mcpServers 不可经此工具改)

外部工具(MCP)

连接的 MCP server 会把各自的工具动态热插进这份工具表,不在上面固定清单里、名字由 server 自己定义。见 MCP

工具在 TUI 里怎么显示

调用序列会实时列出「工具名 + 一句摘要」,跑完给一行成本结算:

› 给 utils 补单测并跑通

  Grep  搜索 utils 相关文件
  Read  src/utils.ts
  Edit  src/utils.test.ts
  Bash  npm test

  utils.ts 里 4 个函数补了单测,npm test 跑通(12 passed)。

  ¥0.03 · 3 turns · 8.2k tokens

权限类别

isReadOnly 为真的工具默认自动放行,不弹确认框;写文件/执行命令类工具默认需要你确认(除非权限模式或规则另有规定)。完整的判定优先级——deny 规则 > plan 模式只读 > 系统级安全兜底 > 只读短路 > allow/ask 规则——见 权限模式,这里不重复展开。

完整参数参考

每个工具的逐个参数、输入 schema 见 工具参考


下一步:MCP(连接外部工具)、权限模式