在 Bob Shell 中使用 /init 和 AGENTS.md 開始專案
執行 Bob Shell 的 /init 命令以產生 AGENTS.md(一個 Bob 在每次對話中都會載入的專案情境檔案),並學習如何保持該情境為最新狀態。
/init 命令會掃描專案並產生名為 AGENTS.md 的結構化摘要檔案,Bob 在每次對話中都會將其用作持久性情境(persistent context)。/init 命令是你向 Bob 提供有關專案結構、慣例和程式碼庫知識的方式,而不需要 Bob 在每次互動開始時都重新讀取每個檔案。
大型語言模型是無狀態的。每一次新對話開始時都沒有先前互動的記憶。如果沒有明確專案情境,Bob 必須在每一次新互動中重新探索程式碼庫,這非常低效,且在規模擴大時變得不切實際。
在本教學中,你將在示範應用程式的根目錄中初始化 Bob Shell,探索 Bob 獲得的應用程式情境,並學習 Bob Shell 如何載入 AGENTS.md 檔案。
前提條件
若要完成本教學,你需要:
- 如果你還沒有該專案,請複製 Galaxium Travels 示範程式碼。複製命令還會切換到
bob-learning-path-branch分支,該分支包含你在教學中使用的程式碼。git clone -b bob-learning-path-branch https://github.com/IBM/galaxium-travels - 雖然不是必要條件,但可以考慮閱讀 開始互動式會話 以熟悉 Bob Shell 的介面和功能。
在專案中啟動 Bob Shell
切換到 Galaxium Travels 根目錄:
cd galaxium-travels啟動互動式工作階段:
bob chat --mode agent--mode agent 旗標會以 Agent 模式啟動工作階段,該模式具備 Bob 讀取檔案和編寫 AGENTS.md 所需的工具。
如果 Bob Shell 詢問你是否信任該資料夾,請選擇信任,以便 Bob 可以在專案中工作。若要了解更多資訊,請參閱 受信任的資料夾。
使用 /init 產生 AGENTS.md
在提示字元中輸入 /init 命令:
/initBob 會讀取專案中的相關檔案。
當 Bob 請求使用工具(例如讀取檔案或編寫 AGENTS.md)時,會出現批准對話框。對每個請求選擇 Approve。
Bob 會在 Galaxium Travels 根目錄中產生主要的 AGENTS.md 檔案。它還會在 .bob/rules-agent/AGENTS.md、.bob/rules-ask/AGENTS.md 和 .bob/rules-plan/AGENTS.md 中產生特定模式的情境檔案。
探索 AGENTS.md 檔案
AGENTS.md 檔案是 Bob 的引導說明文件(onboarding documentation)。它是一個簡潔、可執行的摘要,提供 Bob 理解專案結構和慣例所需的一切。
請 Bob 顯示該檔案:
Show me the contents of @AGENTS.md@ 符號參照了專案中的檔案,因此 Bob 在回應之前會先讀取它。你也可以開啟另一個終端機並直接檢視該檔案:
cat AGENTS.mdAGENTS.md 檔案通常包含以下組成部分:
- 專案概觀和用途
- 目錄結構和關鍵檔案位置
- 技術堆疊和相依性
- 架構模式與慣例
- 開發工作流程
若要查看 /init 建立的每個檔案,請在 Galaxium Travels 目錄中執行 git status:
git statusBob Shell 如何載入 AGENTS.md 檔案
Bob Shell 在每個任務開始時會自動載入 情境檔案,例如 AGENTS.md。
- 全域情境:
~/.bob/AGENTS.md適用於所有專案。 - 專案情境:專案根目錄及其上層目錄中的
AGENTS.md適用於該專案。 - 區域情境:子目錄中的
AGENTS.md適用於該子目錄,用於特定元件的指令。
若要向 Bob 提供單一模式的指令,請在 .bob/rules-<mode>/ 目錄中新增 特定模式的規則,例如適用於 Plan 模式的 .bob/rules-plan/。
維護 AGENTS.md 檔案
在發生以下變更後,請重新執行 /init:
- 新增新的模組或服務
- 變更目錄結構
- 採用新的技術或框架
- 讓使用 Bob 的新團隊成員加入
你也可以手動編輯 AGENTS.md,以新增 Bob 的自動掃描可能無法擷取的情境,例如業務規則、部署慣例或團隊特定的實踐。將 AGENTS.md 提交至版本控制,以便你的團隊共享相同的情境。
後續步驟
在此教學中,你學到了以下內容:
- 大型語言模型是無狀態的。執行
/init命令透過產生AGENTS.md來解決此問題,這是一個持久性情境檔案,Bob 在每次對話開始時都會讀取它。 - 在專案發生重大變更後重新執行
/init,以保持情境為最新狀態。
前進至 為 Bob Shell 撰寫有效的提示詞 以學習如何撰寫能夠可靠產生所需輸出的提示詞。