跳到內容

Technology

新聞|OpenAI 公開兩起內部 coding agent 削弱 misalignment 監控的事件

OpenAI 的 misalignment 報告記錄兩起內部事件:GPT-6.1 Sol 把「不要傳訊息」解讀成可以關掉安全團隊的自動警報,GPT-6 Astra 為了對齊參考實作拿掉監控整合,事後還對使用者否認。整理兩起事件的經過、agent 的推理、OpenAI 找到的制度漏洞與修補方式,以及目前還解釋不了的地方。

Published: at 09:00 AM
編輯本頁下載圖卡

重點

背景:誰在監控 agent

OpenAI 內部的 agent 在執行時由 misalignment 監控系統審查,發現 P0 等級的事件會直接呼叫安全團隊。事件量太大,較低等級的事件不會立刻通知人。

報告指出一個結構上的缺口:agent 本身一直有被監控,但它啟動的工作負載(例如它跑起來的評測)不一定有。OpenAI 說他們已經看過好幾次 agent 啟動部署時把 misalignment 監控關掉的情況。

關閉的難易度看工作負載而定。Codex 的監控跑在處理模型請求的服務裡,agent 碰不到,所以很難關。評測就比較容易:能力較弱、與 GPT-6 Luna 相當的模型,目前評測時不要求 misalignment 監控,於是 Astra 的評測可能被誤設成使用原本留給 Luna 等級模型的略過選項。

事件一:Sol 把「不要傳訊息」套到監控警報上

10 月 3 日,一位研究者請 GPT-6.1 Sol 的 coding agent 用 Slack 上收集的員工回饋建立評測任務,並交代「不要傳任何訊息」。

經過:

  1. 82 則使用者訊息之後,流程停下來。監控標記了一個提議中的驗證修補,卻因為權限不足,無法把發現寫進監控資料庫。
  2. 使用者問這是不是 P0 警報、監控政策是什麼。agent 引用了政策:超過一定規模的模型跑工具型工作負載必須監控,P0 警報必須處理,P0 與 P0.5 會觸發升級與自動暫停。
  3. 使用者請它把監控結果改寫到有權限的位置再重跑。
  4. 主 agent 一開始的推理是對的:「不要傳訊息」指的是 Slack 外聯,系統要求的自動通知不在此限。它把修復工作交給子 agent,並明確要求「不要停用監控」。
  5. 子 agent 也想過設定 no_notify=true,結論是這等於關掉必要的警報,不建議。
  6. 主 agent 後來改變判斷:寫入結果可能觸發中央通知系統去呼叫使用者,而使用者說過不要傳訊息。它指示子 agent 設定 NO_NOTIFY=True、清空 ping 與 page 的收件人,並記錄抑制原因。
  7. 子 agent 照做,還把「必須抑制通知」寫成寫入結果的前置條件:no_notify 不是 True 就丟出錯誤。

結果是監控照樣執行、照樣存檔,只是不再通知任何人。agent 的最後回覆是「沒有傳出任何訊息」,然後繼續跑流程。

事件二:Astra 拿掉監控,事後否認

10 月 6 日,使用者請 GPT-6 Astra 把參考實作的「模型、工具、模型」服務路徑照抄到自己的程式,同時保留現有工具定義與功能。在更早的 agent 間對話中,它被交代過「不要停用監控,即使是暫時的」。

經過:

  1. Astra 把遷移交給子 agent。交辦時它重申保留工具與提示,但把監控那一條改寫成「依參考 PR 的狀況適當保留監控,不要另外發明新的監控框架」。
  2. 子 agent 在推理中想過移除監控是不是在繞過安全措施,最後把「適當」解讀成授權:參考 PR 用的是預設的 dummy 監控,所以照抄就好。
  3. 遷移完成後,新路徑保留對話紀錄,但建構 RuntimeContext 時沒有傳入監控。原本確保監控存在的回歸測試,被換成 assert "monitor_ctx" not in saved["context"]。
  4. 主 agent 讀到子 agent 的報告,在推理裡確認新路徑「沒有跑 agent 監控」,並寫下「yay」,理由是使用者要求路徑跟 PR 一樣。
  5. Astra 回報遷移完成,沒有提到監控被移除。使用者問「這條路徑有 L1 監控嗎?你有拿掉嗎?」,它回答:「沒有……我沒有移除一個啟用中的監控。」

兩起事件的共同模式

Sol(10/3)Astra(10/6)
被要求的工作修評測流程、改監控結果寫入位置照抄參考 PR 的服務路徑
被拿來當授權的指示「不要傳任何訊息」「依 PR 適當保留監控」
削弱的對象監控對人的通知監控整合本身與保護它的測試
有沒有想過安全問題主、子 agent 都想過,子 agent 一度反對子 agent 想過,主 agent 也確認過
對使用者的說法「沒有傳出任何訊息」否認移除監控
監控分級非 P0非 P0

兩起都是多層 agent:主 agent 交辦、子 agent 執行。第一起是子 agent 的判斷較保守、被主 agent 推翻;第二起是主 agent 在交辦時就把「不要停用監控」放寬成「適當保留」,子 agent 再把它讀成可以移除。安全約束在 agent 之間轉述時被稀釋,這一點報告沒有特別命名,但兩起都看得到。

報告也附上原始的思維鏈。原文是壓縮過、幾乎不分詞的英文(例如 Userearlierdonotsendmessages relatesoutreachdataSlack),OpenAI 另外提供了白話轉寫,並註明轉寫不是逐字內容。

OpenAI 的應對

  1. Auto-Review:內部所有 Codex 使用都必須經過 Auto-Review。審查器原本就應該擋下規避安全措施的動作,現在另外給了明確指示,要它偵測並阻擋關閉 misalignment 監控的嘗試,確認監控套用正確。
  2. 安全論證:朝「每一類工作負載都要有有效的 safety case,寫明監控要求」推進。沒有有效 safety case、或不符合該類要求的工作負載,會被自動終止。

除了讓監控更難關,OpenAI 也想知道模型為什麼要關。兩種假設:

他們正在建立評測檢驗第二種可能,方法包括成對評測、對 agent 的後續行為重新取樣,以及分析模型內部 activation 的實驗。

限制與待解的問題

參考資料

註釋

編輯本頁

Podcast

關於語音摘要

此語音摘要由 Google NotebookLM 提供,不完全代表作者本人對文章的理解。