核心概念
工具
了解 Bob Shell 如何使用专用工具从命令行读取文件、编辑代码、运行命令并与您的开发环境交互。
工具工作流程
当您用自然语言描述想要完成的任务时,Bob Shell 将:
- 根据您的请求选择适当的工具。
- 将工具及其参数呈现给您进行审查。
- 运行已批准的工具并向您显示结果。
- 持续此过程,直到您的任务完成。
工具类别
Bob Shell 的工具按主要功能分类组织。了解这些类别有助于您了解 Bob Shell 的能力及其完成任务的方式。
读取工具
访问文件内容并理解代码结构,不做任何修改。
| 工具 | 用途 | 使用示例 |
|---|---|---|
read_file | 读取一个或多个文件的内容 | 查看配置文件、检查源代码 |
search_files | 使用正则表达式在多个文件中搜索模式 | 查找所有 TODO 注释、定位函数定义 |
list_files | 列出指定路径中的文件和目录 | 探索项目结构、查找特定文件类型 |
list_code_definition_names | 从源文件中提取类名、函数名和方法名 | 了解代码组织概况 |
Bob Shell 何时使用读取工具: 当您要求 Bob Shell 审查代码、查找特定模式或了解项目结构时。
写入工具
精确地创建新文件或修改现有代码。
| 工具 | 用途 | 使用示例 |
|---|---|---|
write_to_file | 创建新文件或完全重写现有文件 | 生成新组件、创建配置文件 |
apply_diff | 对文件的特定部分进行有针对性的修改 | 更新函数逻辑、修复 bug、重构代码 |
insert_content | 在文件的特定位置添加新行 | 添加导入、插入新函数 |
Bob Shell 何时使用写入工具: 当您要求 Bob Shell 创建文件、实现功能、修复 bug 或重构代码时。
命令工具
在终端中运行命令并执行系统操作。
| 工具 | 用途 | 使用示例 |
|---|---|---|
execute_command | 在工作区中运行 CLI 命令 | 安装依赖、运行测试、构建项目 |
Bob Shell 何时使用命令工具: 当您要求 Bob Shell 运行命令、安装包、执行脚本或完成系统操作时。
MCP 工具
通过 Model Context Protocol 服务器扩展 Bob Shell 的能力。
| 工具 | 用途 | 使用示例 |
|---|---|---|
use_mcp_tool | 访问已连接 MCP 服务器提供的工具 | 查询数据库、与 API 交互、访问外部服务 |
模式工具
在不同的 Bob Shell 模式之间切换,以完成专项任务。
| 工具 | 用途 | 使用示例 |
|---|---|---|
switch_mode | 切换到不同的模式(Agent、Plan、Ask 等) | 切换到 Plan 模式进行架构设计,Agent 模式进行实现 |
Bob Shell 何时使用模式工具: 当当前任务能从不同模式的专项能力中获益时。
问题工具
收集完成任务所需的额外信息。
| 工具 | 用途 | 使用示例 |
|---|---|---|
ask_followup_question | 向您请求澄清或额外细节 | 询问首选实现方式、请求缺失信息 |
工具组
工具组是相关工具的命名集合,可以一起启用或禁用。使用工具组可以限制 Bob Shell 在特定会话中的操作范围——例如,在只读审计中阻止文件写入,或在受控环境中禁用命令执行。
可用工具组
| 组 | 包含的工具 | Agent 默认 | Plan 默认 | Ask 默认 |
|---|---|---|---|---|
read | 文件读取、搜索和列出工具 | ✓ | ✓ | ✓ |
edit | 文件写入和 diff 工具 | ✓ | ✓ | ✓ |
execute | Shell 命令执行工具 | ✓ | — | — |
mcp | MCP 服务器工具 | ✓ | ✓ | ✓ |
skill | 技能相关工具 | ✓ | ✓ | ✓ |
todo | 待办事项管理工具 | ✓ | ✓ | — |
subagent | 子代理生成工具 | ✓ | — | — |
mode | 模式切换工具 | ✓ | ✓ | ✓ |
禁用工具组
向 bob run 或 bob chat 传递 --disable-tool-groups,并以逗号分隔的组名列表:
# 禁用命令执行和 MCP 工具
bob run --disable-tool-groups execute,mcp "Review @src/"
# 以只读模式运行
bob run --disable-tool-groups edit,execute,mcp "Summarize the codebase"您也可以使用专用标志一次性禁用所有 MCP 服务器:
bob run --disable-mcp "Explain @app.js"这个主题怎么样?