啟動互動式工作階段

互動式工作階段在您的終端機中提供與 Bob 對話的介面,讓您能即時獲得開發任務的協助。

Bob Shell 互動式工作階段

何時使用互動式工作階段

互動式工作階段最適合用於:

  • 探索性的程式設計工作階段。
  • 除錯和疑難排解。
  • 學習新概念或技術。
  • 需要多次來回交流的任務。
  • 需要在套用變更前審查的專案。

啟動互動式工作階段

使用 bob chat 子命令在您的終端機中啟動互動式工作階段。

語法

bob chat [options]

開始工作階段

開啟新的終端機視窗。

注意

當您第一次啟動 Bob Shell 時,必須使用 IBMid 登入並接受授權合約。

切換至您專案的主目錄。

執行以下指令以啟動互動式工作階段:

bob chat

有效使用的技巧

  • 在請求中具體說明,以獲得更有針對性的回應。
  • 需要時使用 @ 參照提供程式碼上下文。
  • 對於複雜的任務,將其分解為較小的步驟。
  • 使用 slash commands 快速存取常用功能。
  • 處理大型程式碼庫時,將 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 commands

輸入 / 以存取可用命令選單:

  • 內建命令,例如 /help 取得協助
  • 模式切換命令,例如 /mode ask
  • 您自行建立的自訂命令

完整的可用命令清單,請參閱 Bob Shell 中的 slash commands

訊息佇列

當 Bob 正在串流回應時,您可以將額外訊息加入佇列,而不必等待。按 Tab 將目前輸入加入佇列。佇列中的訊息將在每個回合完成後依序自動傳送。

按鍵動作
Tab將目前輸入加入佇列(閒置時立即提交)
將焦點移至佇列清單
Enter編輯選取的佇列項目
Tab(在佇列中)立即傳送選取的項目
Delete / Backspace從佇列中移除選取的項目
Shift+K / Shift+J將選取的項目上移 / 下移

狀態頁尾

輸入欄位下方的頁尾顯示即時工作階段資訊:

欄位說明
Mode目前的模式名稱(例如 Agent Mode)——啟用自動批准時會顯示紅色的 (auto-approve) 後綴
Context已使用的 token 數量與上下文視窗大小的比較,以及百分比
Cost目前任務累計的費用,以 Bobcoins(🅞)計算

工作階段管理

恢復先前的工作階段

您可以在啟動 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 chatbob 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>}
欄位類型說明
idstring (UUID)唯一任務識別碼,可與 --resume 搭配使用
titlestring任務標題,回退至第一則訊息,然後是 id
statusstring任務狀態(activecompletedpaused
workspacestring (file URI)工作區的絕對路徑,格式為 file: URI
updatedAtnumber最後更新時間戳記(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>起始模式(例如 agentplanask
--log-level <level>日誌詳細程度:errorwarninfodebugtrace
--auto-approve抑制工作階段的工具批准提示。在不受信任的資料夾中無效。
--trust將目前資料夾持久化為受信任,跳過首次存取的信任對話框。等同於手動選擇「信任資料夾」。請參閱受信任的資料夾
--team-id <id>在特定團隊 ID 下執行(使用 general 類型的 API 金鑰時必需)
這個主題如何?