AI 代理與安全
Goose 1.49 為代理工具攔截加入失敗封鎖模式,並補齊跨生命週期稽核識別碼
AAIF 旗下開源代理 Goose 1.49 允許 `PreToolUse` 政策在執行異常時拒絕工具呼叫,避免安全檢查失效後繼續操作。新版也加入穩定的 `tool_call_id` 與結果事件,但預設仍採 fail-open,管理者必須明確調整設定。

Agentic AI Foundation 於 9 月 3 日發布 Goose 1.49,更新重點不是新增模型,而是收緊代理執行工具時的控制與可觀測性。Goose 的 hook 可在模型呼叫 shell、檔案或 MCP 工具前執行外部政策程式;新版為 `PreToolUse` 動作加入 `on_failure: block`。當政策程式無法啟動、逾時、收不到輸入、輸出無法解析,或以非零狀態退出卻未給出有效決策時,代理可直接拒絕該工具呼叫。
這補上一個常見但危險的邊界:過去 hook 故障預設只被記錄,工具仍會執行。新版保留這個 `allow` 預設以避免既有工作流程突然停擺,因此升級本身不會讓部署自動變成 fail-closed;真正依賴 hook 阻擋高權限命令的團隊,仍須逐條設定。`on_failure` 也只適用於選定的 `PreToolUse` command hook,設定檔格式錯誤或無效 matcher 可能令規則被略過,不能把它視為完整沙箱。
另一項關鍵改動是 `PreToolUseResult` 事件,以及從呼叫前、結果、成功到失敗階段保持不變的 `tool_call_id`。日誌系統現在可區分明確政策拒絕與 hook 本身故障,也能正確關聯內容相同的重複工具呼叫。1.49 同時加入每輪模型工具 allowlist、權限拒絕優先、MCP 工具可見性檢查、敏感遙測抑制與多項路徑限制;不過發行說明未把這批修補對應至 CVE 或攻擊案例。工程團隊下一步應測試 hook 逾時、亂碼輸出及程序崩潰等負向路徑,並確認稽核後端確實保存新的事件欄位。