Bob Shell 故障排除
查找使用 Bob Shell 时可能遇到的问题的解决方案。
身份验证
证书错误
错误: Unable to verify certificate
原因: 您处于具有防火墙的企业网络,该防火墙会拦截并检查 SSL/TLS 流量。这需要 Node.js 信任自定义根 CA 证书。
解决方案: 将 NODE_EXTRA_CA_CERTS 环境变量设置为企业根 CA 证书文件的绝对路径:
export NODE_EXTRA_CA_CERTS=/path/to/your/corporate-ca.crtIDE 集成
连接失败
错误: Bob Shell 无法连接到 IDE。
原因: Bob Shell Companion 扩展可能未安装或未运行,或者 Bob Shell 可能在工作区目录之外运行。
解决方案:
- 在 IDE 中安装 Bob Shell Companion 扩展。
- 在终端中导航到工作区目录。
- 从工作区目录启动 Bob Shell。
- 在 Bob Shell 中运行
/ide enable。
在 dev container 中连接失败
错误: 在 dev container 中运行时,Bob Shell 无法连接到 IDE。
原因: Bob Shell 端口未从 dev container 转发到宿主机。
解决方案:
- 在 dev container 内的终端中获取 Bob Shell 端口:
示例输出:echo $BOB_SHELL_CLI_IDE_SERVER_PORT42991 - 在 IDE 中打开命令面板,选择 Forward a Port。
- 添加步骤 1 中显示的端口(例如
42991)。 - 启动 Bob Shell:
bob - 启用 IDE 集成:
或检查连接状态:/ide enable/ide status
未能连接到 IDE companion 扩展
错误: 🔴 Disconnected: Failed to connect to IDE companion extension
原因: Bob Shell Companion 扩展未安装、未启用或未在 IDE 中运行。
解决方案:
- 验证 Bob Shell Companion 扩展已在 IDE 中安装并启用。
- 在 IDE 中打开新终端。
- 在 Bob Shell 中运行
/ide enable。
连接意外断开
错误: 🔴 Disconnected: IDE connection error. The connection was lost unexpectedly
原因: IDE 连接因网络问题或 IDE 重启而中断。
解决方案:
- 运行
/ide enable重新连接。 - 如果问题持续,请重启 IDE。
目录不匹配
错误: 🔴 Disconnected: Directory mismatch
原因: Bob Shell 运行的目录与 IDE 中打开的工作区目录不同。
解决方案:
- 导航到 IDE 中打开的同一目录。
- 从该目录重启 Bob Shell。
未打开工作区文件夹
错误: 🔴 Disconnected: To use this feature, please open a workspace folder
原因: IDE 中未打开文件夹或工作区。
解决方案:
- 在 IDE 中打开文件夹或工作区。
- 重启 Bob Shell。
不支持 IDE 集成
错误: IDE integration is not supported in your current environment
原因: Bob Shell 未在受支持 IDE 的集成终端中运行。
解决方案: 从受支持 IDE 的集成终端中运行 Bob Shell。
配置问题
.bobignore 不起作用
错误: Bob Shell 忽略了您希望它访问的文件,或访问了您希望它忽略的文件。
原因: .bobignore 文件可能存在冲突的模式、不正确的模式顺序或位置错误。更改可能尚未生效。
解决方案:
- 检查
.bobignore文件中是否存在冲突的模式。 - 确保更具体的模式(如带
!的否定)位于通用模式之后。 - 修改
.bobignore后重新启动 Bob Shell 会话。 - 如果相对路径不起作用,请使用绝对路径。
- 验证
.bobignore文件是否位于项目根目录中。
设置未生效
错误: Bob Shell 设置更改未生效。
原因: 设置文件可能位置错误、JSON 语法无效,或被更高优先级的配置源覆盖。更改可能尚未生效。
解决方案:
- 检查设置文件位置:
- 项目设置:项目目录中的
.bob/settings.json - 用户设置:主目录中的
~/.bob/settings.json
- 项目设置:项目目录中的
- 验证 JSON 语法是否有效(使用 JSON 验证器)。
- 记住配置优先级顺序:
- 命令行参数(最高优先级)
- 环境变量
- 项目设置
- 用户设置
- 系统默认值(最低优先级)
- 更改设置文件后重启 Bob Shell。
自定义指令未加载
错误: 自定义指令未应用到 Bob Shell 会话。
原因: 自定义指令文件可能位置错误、文件扩展名不正确或未加载到当前上下文中。
解决方案:
- 验证文件是否位于正确位置:
- 工作区范围:项目根目录中的
.bob/rules/ - 模式专属:项目根目录中的
.bob/rules-{modeSlug}/
- 工作区范围:项目根目录中的
- 检查文件是否具有正确的扩展名(
.md、.txt或.xml)。 - 使用
/memory refresh重新加载所有上下文文件。 - 使用
/memory show验证当前上下文。
命令运行问题
找不到命令
错误: command not found: bob
原因: Bob Shell 未正确安装或不在系统的 PATH 中。
解决方案:
- 验证 Bob Shell 是否已安装:
which bob - 如果未找到,请按照安装说明重新安装 Bob Shell。
- 检查 shell 的
PATH是否包含 Bob Shell 安装目录。
Shell 模式不工作
错误: Shell 模式(! 命令)不执行命令。
原因: 您可能没有在空提示符处输入 !,缺少必要权限,或命令本身无效。
解决方案:
- 验证您是否在空提示符处输入
!。 - 检查您是否拥有运行 shell 命令的必要权限。
- 先直接在终端中运行命令以验证其是否有效。
性能问题
响应缓慢
错误: Bob Shell 对请求的响应速度很慢。
原因: 网络连接问题、加载为上下文的文件过多,或上下文中包含大型二进制文件。
解决方案:
- 检查网络连接。
- 使用
.bobignore减少上下文中的文件数量。 - 避免包含大型二进制文件或
node_modules/等目录。 - 考虑使用
@引用更具体的文件,而不是加载所有文件。
内存占用过高
错误: Bob Shell 消耗过多内存。
原因: 加载为上下文的文件过多、未排除大型目录,或内存文件中存在循环导入。
解决方案:
- 限制加载为上下文的文件数量。
- 使用
.bobignore排除大型目录。 - 在长时间会话期间定期重启 Bob Shell。
- 检查内存文件中是否存在循环导入。
Bob Shell 调试技巧
启用调试日志
要提高会话的日志详细程度,请使用 --log-level 标志或 BOB_LOG_LEVEL 环境变量:
bob run --log-level debug "Explain @app.js"
BOB_LOG_LEVEL=debug bob chat您也可以在设置文件中设置持久的日志级别:
{
"logging": {
"logLevel": "debug"
}
}验证 Bob Shell 版本
运行以下命令查看您的 Bob Shell 版本:
交互式会话:
/about非交互式会话:
bob --version日志文件
Bob Shell 将日志文件写入 ~/.bob/logs/shell/。日志文件自动轮换:
- 最多保留 10 个日志文件
- 每个文件上限为 5 MB
要查找当前会话的日志文件:
ls -lt ~/.bob/logs/shell/ | head报告问题时请共享相关的日志片段。
工作区根目录解析
Bob Shell 通过从当前工作目录向上查找,直到找到 .git 目录或 .bob 目录来确定工作区根目录。第一个匹配项成为工作区根目录。
如果未找到 .git 或 .bob 目录,Bob Shell 将使用当前工作目录作为工作区根目录。