最佳实践
遵循这些指南,充分发挥 Bob Shell 的使用效果。
了解和使用模式
Bob 的模式是面向特定任务的角色,塑造其行为方式。选择合适的模式有助于获得最佳结果。
内置模式
Bob Shell 内置三种模式,每种模式针对特定用途而设计:
| 模式 | 用途 | 适用场景 |
|---|---|---|
| Agent | 编写和修改代码 | 实现功能、修复 bug 或改进代码 |
| Plan | 规划和设计 | 实现前需要规划架构或创建技术规范时 |
| Ask | 获取信息 | 需要说明或信息但不修改文件时 |
模式选择策略
实现最高效工作流:
从 Plan 模式开始,为新项目或复杂功能创建详细的实现计划,然后再编写任何代码。 仔细阅读计划,确认它与你的目标一致。
切换到 Agent 模式,处理准备实现的大多数日常开发任务。
使用 Ask 模式,在需要说明或信息但不修改文件时使用。
在 bob chat 会话中,通过输入 /mode agent、/mode plan 或 /mode ask 切换模式。有关更多详情,请参阅模式。
自定义模式
你可以为特定任务或工作流创建专属模式:
- 为安全审查或文档编写等专项任务创建模式。
- 配置具有特定工具访问权限和角色定义的自定义模式。
- 与团队共享模式以标准化工作流。
在自定义模式文档中了解更多关于创建和配置自定义模式的信息。
工作流优化
编码前先规划
对于复杂项目或功能,始终在 Plan 模式中开始:
- 生成详细的实现计划。
- 将复杂问题分解为可管理的步骤。
- 在问题出现之前识别潜在挑战。
- 为实现创建路线图。
这种方式可以防止破坏性变更,并为开发提供明确方向。
将 git 作为安全网
频繁提交工作,以便从不理想的更改中恢复:
- 使用清晰的提交信息频繁创建小型提交。
- 定期将更改推送到远程仓库。
- 为实验性功能使用分支。
如果 Bob 的结果不理想,回退到之前的提交比尝试用新指令修正错误输出更有效。回退后开始新的 bob chat 会话,以确保错误输出不再出现在上下文中。
监控使用情况并优化成本
通过查看账户使用情况追踪 Bobcoin 消耗。注意上下文窗口大小——长对话消耗更多 token,因此也消耗更多 Bobcoins。
与版本控制集成
Git 提供了必要的安全网,防止代码被意外永久删除。在 AI 辅助的重大变更前后定期提交。
沟通策略
编写有效的提示词
提示词的质量直接影响 Bob 响应的质量:
- 具体且清晰:模糊的提示词会导致模糊的输出。详细说明 Bob 应该做什么和不应该做什么。
- 提供示例:尽可能包含期望输出格式或风格的示例。
使用上下文引用
上下文引用让你可以在与 Bob Shell 的对话中直接引用项目的特定元素:
- 使用
@/path/to/file.js包含特定文件内容。 - 使用
@/path/to/folder包含目录中的所有文件。
bob chat
# 引用特定文件
> 解释 @src/utils.js 的作用以及它的工作原理
# 引用目录
> 检查 @tests/ 中的测试并找出遗漏之处这种方式比复制粘贴代码或描述文件位置更高效。
管理上下文窗口
Bob 的上下文窗口为 270,000 token,包括对话历史、文件内容和工具输出。要有效使用它:
- 定期开始新的
bob chat会话,每次有明确目标。 - 避免一次性提供整个代码库给 Bob。
- 使用直接文件引用提供针对性上下文。
- 将复杂任务分解为更小、更专注的子任务。
有关上下文窗口工作原理和管理策略的深入说明,请参阅上下文窗口管理。
安全与控制
配置自动批准设置
Bob Shell 允许你控制哪些操作在运行前需要你的批准:
- 手动批准:审查并批准 Bob 采取的每个操作(最安全的设置)。
- 自动批准:授予 Bob 运行特定任务而不被中断的能力。
- 混合方式:对低风险操作自动批准,对高风险任务要求确认。
- 自动批准的命令:定义 Bob 可以无需每次请求批准即可运行的可信命令列表。
根据你的舒适程度和项目的敏感性,在 ~/.bob/settings/settings.json 中配置这些设置。
在自动批准操作文档中了解更多关于自动批准设置的信息。
使用 .bobignore
.bobignore 文件让你可以指定 Bob 不应访问或修改的文件和目录:
在项目根目录创建 .bobignore 文件。
添加敏感文件、构建产物和大型资产的匹配模式。
使用与 .gitignore 相同的语法。
这有助于保护敏感信息,防止对生成文件的意外更改。
在忽略文件文档中了解更多关于控制文件访问的信息。
有关安全指南的更多详细信息,请参阅安全指南。
设置规则
Bob 允许你指定规则来控制 Bob 执行任务的方式:
- 在
.bob目录中全局或按项目定义规则。 - 在
.bob/rules-{mode-slug}/目录中创建模式专属规则。 - 使用规则强制执行编码标准、文档要求或其他工作流约束。
有关自定义模式和规则的更多信息,请参阅自定义模式文档。