先列出使用者會期待你的外掛程式做到的事。外掛程式的名稱、說明、技能、工具,以及與既有產品的連結,都會讓使用者產生期待。你的實作應滿足這些期待;若不支援,也應有經過考量的理由。
這項工作有助於決定外掛程式應包含哪些內容:
- 如果指示、範例或隨附資源能引導模型 完成工作流程,就加入 技能 。
- 如果工作流程需要即時資料、身分驗證、 受控工具,或在你管理的基礎架構上執行的程式碼,就加入 MCP 伺服器 。
- 只有在視覺互動能實質改善 部分工作流程時,才為 MCP 伺服器加入使用者介面 。
從使用者的期待出發
想像某位使用者已安裝你的外掛程式,但尚未閱讀文件。他們合理地會要求它做些什麼?
從下列來源蒐集可能的請求:
- 使用者目前已能在你的產品或服務中完成的任務。
- 使用者訪談、支援請求、搜尋查詢和功能需求。
- 使用者描述你的產品、資料和工作流程時常用的詞彙。
- 目前需要在不同工具之間複製資料的變通做法。
- 外掛程式的名稱、刊登頁面、螢幕擷取畫面和起始提示詞。
同時納入指名你的外掛程式的直接請求,以及只說明目標的間接請求。例如,專案管理外掛程式可能需要同時處理「顯示我的 Acme 上市看板」和「有哪些問題阻礙了上市?」。
構思時,不要只考慮目前 API 能支援的工作流程。先記錄使用者的期待,再對照你能安全、可靠地支援的功能。
建立使用案例清單
針對每個使用案例,記錄以下資訊:
| 欄位 | 要回答的問題 |
|---|---|
| 使用者目標 | 使用者想完成什麼? |
| 請求範例 | 使用者可能如何直接或間接提出請求? |
| 預期結果 | 怎樣才算成功完成這次互動? |
| 所需上下文 | 需要哪些資訊、帳戶存取權或先前狀態? |
| 外掛程式能力 | 技能能處理這項需求,還是需要 MCP 工具? |
| 安全界線 | 是否可能暴露資料、變更狀態、花費金錢或影響他人? |
| 支援決策 | 第一版會支援、延後支援,還是明確排除這個使用案例? |
將目標相同的請求歸為一組。「列出我尚未完成的任務」、「我今天需要做什麼?」和「顯示逾期工作」可能只是同一個任務檢視使用案例套用不同的篩選條件,而非三個互不相關的功能。
檢查涵蓋範圍
逐一對照使用者的期待與規劃中的外掛程式能力:
- 確認每個支援的使用案例都有完整流程,能從接收請求一路產生有用的結果。
- 找出缺少的技能、工具、資料、權限,或尚未涵蓋的錯誤狀態。
- 找出只提供技術操作,卻無法完成明確使用者目標的工具。
- 確認寫入動作包含適當的授權與確認機制。
- 檢查外掛程式是否能說明自己做不到的事,並提供有用的下一步建議。
如果外掛程式只支援預期工作流程中的一小部分,就不應暗示自己具備廣泛能力。如果使用者能建立專案,卻無法列出、檢視或更新專案,就應補齊缺少的功能,或縮小外掛程式的定位範圍。
記錄刻意排除的項目
你不必實作所有能想像到的請求。不過,每個重要的排除決定都應有充分理由,例如:
- 該動作會帶來無法接受的安全或隱私風險。
- 底層產品或 API 無法可靠地支援該動作。
- 工作流程需要外掛程式無法驗證的權限。
- 缺少外掛程式無法存取的資訊,會使結果產生誤導。
- 該使用案例不在第一版的支援範圍內,且外掛程式的刊登頁面已清楚說明這項限制。
記錄這些決定,作為制定技能界線、工具說明、拒絕行為、測試案例和公開刊登文案的依據。
將使用案例轉化為開發決策
針對每個支援的使用案例,選擇能完成它的最精簡實作方式:
- 建立技能,提供可重複使用的指示與 資源。
- 建立 MCP 伺服器,提供即時資料與 受控動作。
- 當使用者需要檢視、比較、編輯、確認或瀏覽結構化資訊時, 為 MCP 伺服器加入使用者介面。
保留使用案例清單,作為測試計畫。加入具代表性的直接請求、間接請求、邊界情況請求,以及超出範圍的請求,再逐一驗證完成的外掛程式是否如預期運作。
如果外掛程式需要即時資料或受控動作,請接著閱讀 定義工具。