启动交互式会话
交互式会话在您的终端中直接提供与 Bob 的对话界面,让您能够实时获得开发任务的协助。

何时使用交互式会话
交互式会话最适合:
- 探索性编码。
- 调试和排查问题。
- 学习新概念或技术。
- 需要多次来回交流的任务。
- 需要在应用变更前进行审查的项目。
启动交互式会话
使用 bob chat 子命令在终端中启动交互式会话。
语法
bob chat [options]启动会话
打开新的终端窗口。
首次启动 Bob Shell 时,您必须使用 IBMid 登录并接受许可协议。
导航到项目的主目录。
运行以下命令启动交互式会话:
bob chat高效使用技巧
- 请求内容越具体,回复越有针对性。
- 需要提供代码上下文时,使用
@引用。 - 对于复杂任务,将其拆解为较小的步骤。
- 使用 slash 命令快速访问常用功能。
- 处理大型代码库时,引导 Bob Shell 关注最相关的文件。
基本用法
与 Bob Shell 交互
- 直接在终端中输入您的指令或问题。
- 按 Enter 将消息发送给 Bob。
- Bob Shell 将回复其分析结果和建议。
- 对于工具使用(例如读取或写入文件),系统会提示您批准或拒绝每项操作。
工具批准
当 Bob Shell 请求使用工具时,会显示批准对话框。该对话框提供以下选项:
| 选项 | 描述 |
|---|---|
| Approve Once | 允许此次特定工具调用继续执行。未来的调用仍会提示。 |
Approve <group> tools for task | 在任务剩余时间内允许同一工具组中的所有工具。MCP 工具不显示此选项。 |
| Always Allow Command for task | 在任务剩余时间内允许特定的 shell 命令。 |
| Reject | 拒绝工具调用。Bob Shell 不会执行该操作。 |
批准或拒绝调用时,您还可以添加可选备注。备注会作为额外上下文转发给模型。
要在不打开审批对话框的情况下切换自动批准,请在 macOS 上按 Ctrl+F,在 Windows、Linux 和 WSL 上按 Alt+F。
响应流式传输过程中,按 Escape 可中断 Bob。
多轮对话
Bob Shell 在整个对话过程中保持上下文,允许您:
- 提出后续问题。
- 完善之前的请求。
- 在早前回复的基础上继续构建。
引用文件和资源
使用 @ 符号引用项目中的文件:
Explain the functionality in @src/main.js这会告知 Bob Shell 在回复前读取并分析指定的文件。
- 每个文件最多内联 100 KB。
- 所有
@引用的总内联内容上限为 500 KB。 - 目录最多显示 50 个条目。
您也可以使用 server:resource-name 格式引用已连接服务器公开的 Model Context Protocol (MCP) 资源:
@my-server:schema.json引用技能
输入 $ 后跟技能名称,可打开技能选择器并将技能引用插入到提示词中。
查看文件变更
当 Bob Shell 需要修改文件时,它会以 CLI diff 视图的形式在终端中显示建议的变更内容。
使用 slash 命令
输入 / 可访问可用命令菜单:
- 内置命令,例如
/help获取帮助 - 模式切换命令,例如
/mode ask - 您自己创建的自定义命令
完整的可用命令列表,请参阅 Bob Shell 中的 Slash 命令。
消息队列
当 Bob 正在流式传输响应时,您可以将其他消息加入队列,而无需等待。按 Tab 将当前输入加入队列。队列中的消息在每轮完成后会按顺序自动发送。
| 按键 | 操作 |
|---|---|
Tab | 将当前输入加入队列(空闲时立即提交) |
↑ | 将焦点移至队列列表 |
Enter | 编辑选中的队列项 |
Tab(在队列中) | 立即发送选中的项目 |
Delete / Backspace | 从队列中删除选中的项目 |
Shift+K / Shift+J | 将选中的项目上移 / 下移 |
状态栏
输入框下方的状态栏显示实时会话信息:
| 字段 | 描述 |
|---|---|
| Mode | 当前模式名称(例如 Agent Mode)——启用自动批准时会显示红色的 (auto-approve) 后缀 |
| Context | 已使用的 token 数与上下文窗口大小的比例(含百分比) |
| Cost | 当前任务的累计费用(以 Bobcoin 计:🅞) |
会话管理
恢复之前的会话
启动 bob chat 时可以恢复之前的会话:
bob chat --resume <task-id>
bob chat --resume latest要查找之前会话的任务 ID,请使用 bob --list-tasks:
bob --list-tasks附加到命名实例
使用 --instance-id 附加到特定命名实例,而非启动新实例:
bob chat --instance-id my-project通用实用标志
某些标志直接通过 bob 调用,而非 bob chat 或 bob run。可用标志如下:
| 标志 | 描述 |
|---|---|
--list-tasks [n|all] | 列出当前工作区的已保存任务并退出。默认为 20。传递数字或 all 以控制显示数量。 |
--limit <n> | 使用 --list-tasks 显示的最大任务数。 |
--show-license | 显示 IBM 许可协议并退出。 |
机器可读输出
当 stdout 不是 TTY 时——例如,当您通过管道或重定向输出时——--list-tasks 会从人类可读的表格切换为 NDJSON,每行一个 JSON 对象。
每行的格式如下:
{"id":"<uuid>","title":"<string>","status":"<string>","workspace":"<file-uri>","updatedAt":<unix-ms>}| 字段 | 类型 | 描述 |
|---|---|---|
id | string (UUID) | 唯一任务标识符,可与 --resume 一起使用 |
title | string | 任务标题,回退到第一条消息,然后是 id |
status | string | 任务状态(active、completed、paused) |
workspace | string (file URI) | 工作区的绝对路径,格式为 file: URI |
updatedAt | number | 最后更新时间戳(Unix 毫秒) |
示例
# 通过管道传递给 jq
bob --list-tasks all | jq '.id'
# 保存到文件后处理
bob --list-tasks 100 > tasks.ndjson
# 显示许可协议
bob --show-license选项
| 选项 | 描述 |
|---|---|
--instance-id <id> | 附加到特定命名实例,而非启动新实例 |
--resume <task-id> | 通过任务 ID 恢复之前的任务 |
--resume latest | 恢复最近的任务 |
--mode <mode> | 启动模式(例如 agent、plan、ask) |
--log-level <level> | 日志详细程度:error、warn、info、debug 或 trace |
--auto-approve | 抑制会话的工具批准提示。在不受信任的文件夹中无效。 |
--trust | 将当前文件夹持久化为受信任,跳过首次访问的信任对话框。等同于手动选择"信任文件夹"。请参阅受信任的文件夹。 |
--team-id <id> | 在特定团队 ID 下运行(使用 general 类型的 API 密钥时必需) |