實作指南 / 11 分鐘
為每個工具建立窄契約
把模型意圖轉成有邊界、可觀察的應用行動。
OpenAI tools 可以搜尋、檢索檔案、執行程式、透過 MCP 連線,或呼叫自訂函式。可靠性來自每個 action 周圍的邊界:小 schema、明確權限、idempotency 與模型可理解的結果。
A
工作原則
能力不等於權限
Tool definition 只表示可以呼叫;server 仍要判斷哪個 user、task 與 environment 可以執行。
小 schema 更可靠
偏好一個參數受限的明確 operation,不要提供通用 execute-anything surface。
結果也是 protocol message
回傳穩定 ID、有界資料與明確 error categories,讓下一步能推理 outcome。
B
實地程序
- 01
盤點 side effects
把工具分成 read-only、可逆 write、不可逆 write 或外部溝通;先從 read-only 開始。
- 02
定義最小 schema
使用 required fields、enums、length limits 與 additional-property 控制;credential 不進 arguments。
- 03
加入 authority gate
執行前解析 authenticated actor 與 task scope,高影響操作必須核准。
- 04
讓執行具 idempotency
Write 使用 operation key;重複 intent 應回傳先前結果。
- 05
回傳精簡結果
分開 success、可修正錯誤、policy denial 與 transient failure,不把巨大 log 塞回 context。
PASS / FAIL
驗收清單
- 每個 tool 都有 owner 與 impact class。
- Arguments 不包含 credentials。
- Writes 有 idempotency 或 duplicate detection。
- Audit 串起 intent、actor、execution 與 result。
WATCH / REJECT
失敗模式
- 單一廣泛 shell 或 database tool。
- 把 description 當 authorization。
- 把 stack trace 或巨大 payload 原樣回傳模型。