工具参考
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 | 否 |
SendMessage | 在 Agent 团队中向队友发送消息 | 否 |
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 命令或在权限设置中配置。另请参阅工具特定的权限规则。
工具别名
部分工具拥有别名,可在权限规则中互换使用:
| 工具 | 别名 |
|---|---|
TaskOutput | BashOutput |
TaskStop | KillShell |
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
}
}
}