ホームへ戻る

AI 代理與安全

Goose 1.49、エージェントのツール呼び出しフックに障害時ブロックモードを追加し、ライフサイクル全体の監査IDを整備

AAIF傘下のオープンソースAIエージェント「Goose 1.49」では、`PreToolUse`ポリシーの実行に異常が発生した場合、ツール呼び出しを拒否できるようになり、セキュリティチェックの失敗後も操作が続行される事態を防げる。新バージョンでは安定した`tool_call_id`と結果イベントも追加されたが、デフォルトは引き続きfail-openであり、管理者が設定を明示的に変更する必要がある。

Image taken by Alan D. Wilson, and modified by Diliff (cropped and noise reduction applied). · CC BY-SA 2.5 · Image source
zh-Hant

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によってルールがスキップされる可能性もあるため、完全なsandboxと見なすことはできない。

もう一つの重要な変更は、`PreToolUseResult`イベントの追加と、呼び出し前、結果、成功、失敗の各段階を通じて変化しない`tool_call_id`の導入だ。ログシステムは、ポリシーによる明示的な拒否とhook自体の障害を区別できるようになり、内容が同一のツール呼び出しが繰り返された場合でも正しく関連付けられる。1.49ではこのほか、モデルの各ターンにおけるツールallowlist、権限拒否の優先、MCPツールの可視性チェック、機密性の高いテレメトリの抑制、複数のパス制限も追加された。ただし、リリースノートでは、これらの修正とCVEまたは具体的な攻撃事例との対応関係は示されていない。エンジニアリングチームは次のステップとして、hookのタイムアウト、不正な文字コードの出力、プロセスのクラッシュといったネガティブパスをテストし、監査バックエンドが新しいイベントフィールドを確実に保存していることを確認すべきだ。

出典

  1. Goose v1.49.0 release notes
  2. Goose Hooks documentation