Skip to content

工具参考

CodeBuddy Code 可用工具的完整参考,包括权限要求。

CodeBuddy Code 内置一系列工具来帮助理解和修改代码库。下表中的工具名称即为权限规则子代理工具列表Hook 匹配器中使用的标识符。

工具说明需要权限
Agent生成具有独立上下文窗口的子代理来处理任务
AskUserQuestion向用户提出多选问题,收集需求或澄清歧义
Bash在你的环境中执行 Shell 命令。参见 Bash 工具行为
CronCreate在当前会话内调度定时或一次性任务(退出后失效)。参见定时任务
CronDelete按 ID 取消定时任务
CronList列出当前会话中所有定时任务
DeferExecuteTool执行通过 ToolSearch 发现的延迟加载工具
Edit对文件进行精确的字符串替换编辑
EnterPlanMode切换到计划模式,在编码前设计实现方案
EnterWorktree创建隔离的 git worktree 并切换到其中
ExitPlanMode提交计划供用户审批并退出计划模式
Glob基于 glob 模式查找文件
Grep在文件内容中搜索正则表达式模式
ImageEdit基于文本指令编辑或修改已有图片
ImageGen根据文本描述生成图片
LeaveWorktree退出 worktree 会话并返回原始目录
LSP通过语言服务器提供代码智能。文件编辑后自动报告类型错误和警告。还支持跳转定义、查找引用、获取类型信息、列出符号、查找实现、追踪调用层级等导航操作。需要代码智能插件及其语言服务器二进制文件
MultiEdit在单个原子操作中对同一文件执行多步编辑
NotebookEdit修改 Jupyter notebook 单元格内容
Read读取文件内容,支持图片、PDF 和 Jupyter notebook
SendMessageAgent 团队中向队友发送消息
Skill在主对话中执行 Skill 技能
SlashCommand执行自定义斜杠命令
StructuredOutput返回符合 JSON Schema 的结构化输出
TaskCreate创建新任务到任务列表
TaskGet获取特定任务的完整详情
TaskList列出所有任务及其当前状态
TaskOutput获取后台任务或子代理的输出
TaskStop按 ID 终止正在运行的后台任务
TaskUpdate更新任务状态、依赖、详情或删除任务
TeamCreate创建 Agent 团队以协调多个代理协作
TeamDelete删除 Agent 团队及其任务目录
ToolSearch搜索并加载延迟加载的工具,支持内置工具和 MCP 工具
WebFetch获取指定 URL 的内容并进行 AI 分析
WebSearch执行网络搜索
Write创建或覆盖文件

权限规则可通过 /permissions 命令或在权限设置中配置。另请参阅工具特定的权限规则

工具别名

部分工具拥有别名,可在权限规则中互换使用:

工具别名
TaskOutputBashOutput
TaskStopKillShell

Bash 工具行为

Bash 工具在独立进程中执行每条命令,具有以下持久化特性:

  • 工作目录在命令间保持不变。设置 CODEBUDDY_BASH_MAINTAIN_PROJECT_WORKING_DIR=1 可在每次命令后重置到项目目录。
  • 环境变量不会持久化。一条命令中的 export 不会在下一条命令中生效。

在启动 CodeBuddy Code 前激活你的 virtualenv 或 conda 环境。要使环境变量在 Bash 命令间持久化,启动前设置 CODEBUDDY_ENV_FILE 指向一个 shell 脚本,或使用 SessionStart Hook 动态填充。

沙箱模式

Bash 工具支持沙箱隔离,可限制文件系统和网络访问。启用沙箱时,命令在受限环境中执行,防止未授权的系统访问。

通过 dangerouslyDisableSandbox 参数可逐条命令绕过沙箱(需要用户审批)。

后台执行

通过 run_in_background 参数可将命令在后台运行,使用 TaskOutput 工具读取输出。适用于长时间运行的构建、测试等场景。

延迟加载工具

部分工具(如通过 MCP 服务器提供的工具)采用延迟加载机制。这些工具不会在初始工具列表中出现,需要通过 ToolSearch 发现和激活。一旦激活,工具在会话剩余时间内保持可用。

通过产品配置可以将内置工具设置为延迟加载:

json
{
  "tools": {
    "ToolName": {
      "deferLoading": true
    }
  }
}

另请参阅