教學

規劃和實作複雜功能

使用 IBM Bob 的 Plan 模式與 AI 編碼代理一起確定範圍、審查和實作複雜功能。學習如何編寫規劃提示、優化生成的計劃以及在 Agent 模式下執行實作。

在本教學中,你將使用 Bob 的 Plan 模式為 Galaxium Travels 示範應用程式建立一個結構化的實作計劃,以新增座位等級。然後你批准該計劃,讓 Bob 在前端、後端和資料庫層實作該功能。

本教學教你如何編寫有效的規劃提示、審查生成的計劃時要注意什麼,以及如何在 Bob 編寫任何程式碼之前迭代計劃。

先決條件

為什麼使用 Plan 模式

Bob 是一個自主代理。當你使用模糊的提示時,Bob 會用自己的假設填補任何空白。這些假設可能與你的意圖不符,即使它們在技術上是準確的。

當你建立計劃時,Bob 會生成一組 Markdown 檔案,描述範圍、架構決策和有序的實作步驟。由於計劃與實作分離,你可以在 Bob 編寫任何程式碼之前閱讀、質疑和優化它。

設定你的環境

複製 Galaxium Travels 示範程式碼。clone 命令還會檢出包含你在教學中使用的程式碼的 bob-learning-path-branch

git clone -b bob-learning-path-branch https://github.com/IBM/galaxium-travels

在 Bob 中,點擊 File,然後點擊 Open Folder

導航到你複製的 galaxium-travels 目錄並開啟它。

在你的專案中初始化 Bob

在 Bob 聊天面板中執行 /init,讓 Bob 建立根 AGENTS.md 檔案和規則 AGENTS.md 檔案。

AGENTS.md 檔案告訴 Bob 專案的整體結構、慣例和目標,以便 Bob 可以編寫適合你專案的程式碼。沒有它,Bob 每次都會從頭開始,因為 Bob 是無狀態的。

.bob 中的規則檔案是 Bob 為其每個模式建立 AGENTS.md 的地方:Agent、Plan 和 Ask。每個模式都有一組不同的規則來指導 Bob 在該模式下的行為。

/init

Bob 請求建立 AGENTS.md 檔案的權限。點擊 Approve todo tools for task 以建立檔案。

如何編寫 Plan 提示

你在 Plan 模式中編寫的提示成為 Bob 工作的規範。模糊的提示會產生模糊的計劃。在輸入之前,回答這四個問題:

  • 功能做什麼,不做什麼? 明確的範圍可以防止 Bob 新增你沒有要求的工作。
  • 功能涉及哪些層? 例如,UI、API 和資料庫。
  • 適用哪些約束? 檔案數量限制、命名慣例、向後相容性要求以及 Bob 應視為不可協商的任何其他內容。
  • 「完成」是什麼樣子? 具體的驗收標準。例如,「使用者可以在預訂期間選擇 Economy、Business 或 Galaxium 等級」為 Bob 提供了明確的目標。

生成計劃

使用 Plan 模式建立 Bob 在實作座位等級功能時遵循的計劃。

開啟代理聊天側邊欄

如果聊天介面已關閉,請透過點擊導覽列旁邊的 Bob 圖示或使用快捷鍵 Option + Command + B(Mac)或 Ctrl + Alt + B(Windows)開啟它。

IBM Bob IDE 中開啟的 Bob 聊天面板

切換到 Plan 模式

從聊天介面中的模式選擇器中選擇 Plan

使用 Plan 模式

建立計劃

在輸入欄位中執行以下提示。該提示應用了如何編寫 Plan 提示部分的範圍界定原則:命名要更改的層、設定檔案數量限制、排除管理儀表板並陳述驗收標準。

Bob 請求使用技能工具和子代理的權限,以便它可以執行 Create plan 技能。點擊 Approve skill tools for taskApprove subagent tools for task 以批准請求。

我想為 Galaxium Travels 新增座位等級。乘客在預訂航班時應該能夠選擇 Economy、Business 或 Galaxium 等級。

範圍:
- 更新預訂 UI 以顯示座位等級選擇器
- 更新後端預訂 API 以接受並儲存所選等級
- 更新資料庫架構以向 bookings 表新增 seat_class 欄
- 不要新增管理儀表板更改 — 這超出範圍

約束:
- 在 galaxium-travels 資料夾中建立一個名為 `plans` 的資料夾
- 不要建立超過三個計劃檔案
- 保持資料庫更改向後相容

完成條件:使用者可以在預訂期間選擇座位等級,所選等級將儲存並顯示在其預訂確認中。

以下螢幕截圖顯示 Bob 提出澄清問題以了解你的意圖。根據你編寫提示的方式,你的問題可能會有所不同。回答問題,或告訴 Bob 選擇最佳選項。

Bob 在 Plan 模式下提出澄清問題

當 Bob 完成時,它會請求批准寫入計劃檔案。點擊 Approve edit tools for task

Bob 將計劃檔案作為 Markdown 檔案放置在 plans 資料夾中。你的計劃檔案名稱可能會有所不同。

/galaxium-travels/plans/seat-class-plan.md

審查計劃

計劃檔案是 Bob 建構的規範。審查位於 plans 資料夾中的計劃,以了解建議的更改。

審查計劃時,尋找以下內容:

  • 範圍匹配: 計劃是否包含你要求的所有內容?是否包含你沒有要求的內容?
  • 模糊語言: 尋找「根據需要新增」或「適當更新」等短語。這些是未聲明的假設。在批准之前用具體說明替換它們。
  • 命名檔案: 每個步驟都應標識它涉及的檔案。如果某個步驟說「更新預訂元件」而沒有命名檔案,請要求 Bob 更具體。

迭代計劃

如果計劃與你的意圖不符,請要求 Bob 在同一 Plan 模式對話中修改它。你不需要重新開始。

例如,Bob 在上一步中生成的計劃對每個等級的顏色或徽章不夠具體。

   b. Apply a distinct colour or badge per class (e.g. grey for Economy, gold for Business, cosmic-gradient for Galaxium) consistent with the existing status colour pattern

要解決此問題,你執行以下提示以明確設定每個等級的顏色:

請更新計劃以指定每個等級的以下顏色:
- Economy: green
- Business: gold
- Galaxium: cosmic-gradient

你的計劃中可能沒有相同的問題。審查計劃並要求 Bob 澄清你注意到的任何模糊語言或新增缺失的細節。

實作新功能

開始新對話

點擊聊天介面頂部的加號以開始新對話並清除上下文視窗。

在代理聊天側邊欄中開始新對話

開始新對話會清除上下文視窗,這樣:

  • 防止早期規劃討論消耗你的令牌預算。
  • 使實作上下文專注於已批准的計劃。
  • 降低 Bob 混淆規劃和實作指令的風險。

切換到 Agent 模式

從模式選擇器中選擇 Agent 以切換到 Agent 模式。

建構功能

提交此提示以實作功能:

建構 plans 資料夾中的功能
@plans/

@plans/ 參考參考資料夾中的所有計劃,因此你不需要單獨命名檔案。

以下螢幕截圖顯示了一個範例 plans 資料夾:

計劃檔案

Bob 提示你 Approve todo tools for taskApprove edit tools for task。批准兩個請求。

你已在預訂 UI、後端 API 和資料庫中新增了座位等級支援,Economy、Business 和 Galaxium 等級選項在整個系統中得到體現。

後續步驟

在本教學中,你學習了如何編寫有範圍的規劃提示、審查生成的計劃以查找空白和模糊語言、迭代計劃直到它與你的意圖匹配,以及使用乾淨的上下文視窗實作已批准的規範。

繼續學習標準化 Bob 的行為以了解如何建立自訂規則來控制 Bob 的行為。

建立新的上下文視窗中了解 Bob 的上下文視窗如何工作,以理解為什麼開始新對話可以提高實作品質。

探索新增 Bob 功能以擴展 Bob 在你的專案中可以做的事情。

這個主題如何?