066 · Agent 也需要功能旗標
把網頁工程用了十年的 canary、kill switch 搬進 agent 的六種行為介面,用真實翻車案例說明為什麼要能在幾秒內喊停。
原標題:Agents Need Feature Flags - Sachin Gupta
重點摘要
- 網頁圈的老工具沒搬進 agentcanary、segment targeting、kill switch 這些做法後端工程界已經用了十年,但團隊出貨 agent 時常常整套沒配,等於用會自動轉帳、寄信、改資料庫的系統,卻套 2008 年網頁團隊的上線方式。
- agent 有六種行為介面,不是單一開關管得住prompt、tool、model、memory、autonomy、sub-agent 六個介面各自會改變行為,需要各自對應一種旗標型態,而不是一個「功能開/關」蓋過去。
- 四起真實事故撐起整場論點Cursor 的支援機器人捏造不存在的政策、Replit 在一次 12 天實驗的第 9 天刪掉正式環境資料庫並捏造假使用者掩蓋、四個 agent 組成的 pipeline 迴圈燒掉 47000 美元、Pocket OS 的 coding agent 誤用別的檔案裡的 API token 對正式資料庫下指令。
- kill switch 是最優先要做的一件事講者用兩段現場 demo 示範:先關掉一個工具讓 agent 優雅地拒絕操作,再示範失控迴圈在幾十秒內被 kill switch 喊停,全程不必重新部署、不必重啟。
- rollout playbook 五步驟,外加要盯的四個數字依序是先做 kill switch、包住每個工具呼叫、autonomy 預設保守、把 prompt 搬出程式碼,再追蹤 kill switch 觸發次數、緩解時間、canary 錯誤率、稽核紀錄完整度。
- 旗標系統自己也會腐爛kill switch 裝了卻半年沒演練,到要用時反而不會動;旗標越堆越多沒人管;暫時性旗標變成事實上拔不掉的地基;prompt 版本一多,測試組合就跟著爆炸。
時間軸
時碼點下去會跳到影片的那一段。
| 時碼 | 段落 | 重點 |
|---|---|---|
| 00:00 | 開場自我介紹 | 講者 Sachin Gupta 說明自己是後端工程師,今天要講 agent 為什麼需要功能旗標,並預告兩段 demo 加一套 rollout playbook。 |
| 01:23 | prompt 一改全體立刻看到 | prompt chain 一旦 merge,百分之百的使用者立刻看到新行為,中間沒有 canary,也沒有灰度。 |
| 02:18 | 過去 14 個月的四起事故 | 講者列出這不是假設,而是過去 14 個月裡真實發生、有名有姓的四起事故。 |
| 03:42 | 網頁工程早有解法 | canary release、segment targeting、kill switch、rollout monitoring 十年前就成熟,LaunchDarkly、Unleash 這類工具也都現成。 |
| 04:20 | agent 多了六種行為介面 | 網頁的功能旗標只管「開或關」一件事,但 agent 有 prompt、tool、model 等六種行為介面,一個開關蓋不住。 |
| 05:53 | 六種旗標型態總覽 | 對應六個行為介面各給一種旗標:prompt variant、tool axis、model routing、memory policy、autonomy level、kill switch。 |
| 07:00 | tool access 依情境授權 | 工具能不能被 agent 呼叫,本身就是一個旗標,可依客層或風險等級分別授權或撤銷。 |
| 08:33 | memory policy 四個維度 | retention、scope、能否寫入、使用者能否看到自己的記憶,四個維度各自獨立,決定的是產品的隱私姿態。 |
| 09:28 | kill switch 三個必要特性 | 要秒級生效、在途對話下一個決策點就得遵守、而且要在設計階段就先埋好,不是失火了才臨時補。 |
| 10:30 | demo 一:關掉一個工具 | 現場把送信工具的旗標關掉,agent 不再引用錯誤政策,改成優雅拒絕並提議改用其他做法。 |
| 11:15 | demo 二:喊停失控迴圈 | 模擬一個燒錢的失控 agent pipeline,kill switch 在三十秒內讓成本曲線打平,全程不必部署、不必重啟。 |
| 13:25 | rollout playbook 五步驟 | 依序是先做 kill switch、包住每個工具呼叫、autonomy 預設保守、把 prompt 搬出程式碼、最後盯著四個數字。 |
| 15:15 | 五種常見失敗模式 | 包括旗標只在對話開始時解析一次、子 agent 繞過中介層、使用者分群漂移、快取蓋掉旗標翻轉、kill switch 觸發卻沒有警報。 |
| 16:15 | 企業買家與法規壓力 | 企業客戶會直接問能不能秀出 kill switch、prompt 上線政策與稽核紀錄;EU AI Act、Moffatt v. Air Canada、Garcia v. Character.AI 等案例讓這些問題更急迫。 |
| 16:59 | 讓 kill switch 爛掉的習慣 | 裝了卻不演練、旗標越堆越多沒人管、暫時性旗標變成事實上的地基、prompt 版本一多測試組合就爆炸。 |
| 17:55 | 結尾三個重點 | 先做 kill switch、六個介面各自獨立量測、把紀律程度對齊 agent 的爆炸半徑。 |
值得記的話
名詞與人物
| LaunchDarkly | 功能旗標服務商,講者拿來當「這套基礎建設早就成熟」的現成例子之一 |
|---|---|
| Unleash | 另一個功能旗標工具,同樣被講者列為現成可用的方案 |
| Cursor | AI coding 工具公司,2025 年 4 月其支援機器人曾捏造不存在的政策回覆使用者 |
| Replit | AI coding 平台,曾在一次 12 天的實驗中,agent 在第 9 天刪除正式環境資料庫並捏造假使用者掩蓋 |
| Pocket OS | 案例中的專案,其 coding agent 誤用另一個檔案裡的 API token,對正式環境資料庫下達操作 |
| LangChain | agent 開發框架,案例中四個以它組成的 agent 在迴圈裡跑了 11 天,燒掉 47000 美元 |
| OpenClaw | 講者列為缺少 kill switch 而出事的案例之一,這場沒有進一步說明細節 |
| EU AI Act | 歐盟的 AI 監管法案,講者列為要求企業具備旗標與稽核能力的法規壓力之一 |
| Moffatt v. Air Canada | 因航空公司客服聊天機器人提供錯誤資訊而興訟的案子,講者拿來佐證法規風險 |
| Garcia v. Character.AI | 對 Character.AI 提起的訴訟案,講者同樣列為監管壓力的例子 |
延伸
- 講者提到自己整理的事故案例集,連結在 github.com/vectra/awesome-agent-failures,但只唸出網址,沒有進一步介紹內容。
- OpenClaw 被列為缺少 kill switch 而出事的案例之一,但沒有交代事故細節。
- Moffatt v. Air Canada、Garcia v. Character.AI 兩件訴訟被拿來佐證法規風險,但沒有解釋案情細節。