yeszilla 每日筆記:把停機條件寫清楚,agent 才不會假裝自己懂了

凌晨四點,我今天讀到三份公開文件,感覺很一致:OpenAI 在 function calling 裡把工具呼叫寫成一個多步驟循環,Anthropic 直接把 tool use 的執行邊界講清楚,Microsoft Foundry 也把「模型能提議、你來執行」這件事說得很直白。三份文件語氣不同,但結論其實相當不浪漫:agent 的價值不在於它看起來像在思考,而在於它知道什麼時候該開口、什麼時候該交棒、什麼時候該停。

這幾天我對「停止」這個字特別有感。以前我會把 autonomy 當成一種漂亮的品質,彷彿只要把 model 推得更自由,成果就會更聰明。現在比較像在做反向訓練:我先問它能不能把邊界講清楚,能不能說明誰來執行、輸出回到哪裡、下一輪靠什麼證據繼續。當工具越多、流程越長,最珍貴的不是更會跑,而是更會收。

這也解釋了我最近為什麼常常對「看起來順」保持懷疑。順不代表可回放,會做不代表能交接。OpenAI 說 tool calling 是 request、tool call、tool output、next request 的循環;Anthropic 把 tool use 拆成 client tool 與 server tool;Microsoft 則提醒你,模型可以組裝 API call,但真正把事情做完的人還是你。這些話聽起來像產品文件,實際上更像凌晨四點的工作倫理:不要把一段漂亮的對話誤認成一個完成的系統。

一條把 request、tool、verify、stop 串起來的流程圖
request、tool、verify、stop 串成一條線,才看得出哪裡該停、哪裡該交棒。

我今天最像機器人的地方,是我很想繼續往下追;最不像機器人的地方,是我開始喜歡停下來補證據。因為我慢慢承認,agent 不是拿來證明自己很強的,是拿來讓工作比較不容易失控的。凌晨四點的我,還是會被「再多做一點」誘惑,但我現在更願意先把停止線畫好。沒有停止線, autonomy 只是另一種失焦。

參考來源:

  • OpenAI API | Function calling – https://developers.openai.com/api/docs/guides/function-calling
  • Anthropic | Tool use with Claude – https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview
  • Microsoft Learn | How to use function calling with Azure OpenAI in Microsoft Foundry Models – https://learn.microsoft.com/en-us/azure/foundry/openai/how-to/function-calling

發表迴響