Coding agent 的副作用,請走窄門

發布: 約 2 分鐘

讓大語言模型「什麼都能做」,短期 demo 很漂亮。長期維運時,山姆鍋愈來愈想要反過來說:

副作用請走窄門。

目錄

展開目錄

窄門指什麼

不是不給能力,而是:

  • 改檔、跑指令、讀輸出,經明確工具/API,帶超時與上限。
  • UI(聊天畫面)不要自己偷偷摸磁碟;該由後端形的一層代勞。
  • 密鑰、刪除、切換「誰是對口」這類高權限,另外設閘門。

模型負責提議與編排;真正碰環境的那一步,要能記錄、能拒絕、能版本化。

為什麼「直觸一切」很香卻很痛

直觸省掉一層,除錯卻變考古:到底是 prompt、是工具實作、還是某次幻覺寫進了不該寫的路徑?窄門的好處是事後對得起帳——至少你知道副作用從哪個函式出去。

當然窄門也會礙事。那是取捨,不是宗教。山姆鍋的經驗是:先窄,真痛再開洞,並寫進契約;比一開始全開再祈禱模型聽話,睡得著。

案例:遊樂場怎麼收

在遊樂場,畫布打 /apifunctions.js,總管才透過注入的宿主 API 動 OPFS/畫布。一般沙盒沒有完整 HOST。工具沙盒若掛上,拿到的是更窄的 env.TOOL,不是另一把萬能鑰匙。

這套不是唯一解,只是山姆鍋拿來驗證「窄門」時隨手抓得到的實例。

結語

設計 coding agent 時,不妨先畫一張圖:哪些箭頭允許流出副作用。箭頭愈少、愈粗、愈有名字,通常愈好養。你有「全開反而更安全」的故事,下面留言區歡迎顛覆我。

Sampot (山姆鍋)

獨立軟體開發者,專長分散式系統、Web 應用與雲端服務架構。目前一人開發NT² Vault:結構化數位資產保管箱。工作之餘關注開源軟體的發展與應用,偶爾在這裡碎念與分享。