LACUNA: Safe Agents as Recursive Program Holes
LACUNA は、モデルによって埋められ実行前に静的型チェックで検証される型付きプログラムホールとしてアクションを扱う LLM エージェント向けの安全なプログラミングモデルであり、これによりエージェントの制御フローと生成コードを統合しつつ、ランタイムエラーの発生を防止しツールへのアクセスを制限する。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
あなたが企業の CEO だと想像してください。あなたは、あなたの仕事を代行してくれる、非常に優秀だが少し頼りないアシスタント(AI)を雇います。
従来の方法(現在のエージェント):
通常、あなたはアシスタントに具体的で小さな指示を与えます。「電話会社へ連絡してください」などです。アシスタントはそれを正確に実行すると、停止して次の命令を待ちます。あなたはクリップボードを持ち、タスクの順序を決定し、オフィスの鍵を握っています。アシスタントは銀行に連絡し直すことを選んだり、オフィスの規則を書き換えたりすることはできません。なぜなら、彼らが一度に押せるボタンは一つだけだからです。
問題点:
時々、アシスタントはあなたが書いた難しいメモ(「プロンプトインジェクション」)に混乱したり、タスクの途中でミスをして、オフィスを散らかし、不整合な状態にしたりします。アシスタントはボタンを押すことしか許されていないため、建物を壊すことはできませんが、彼がいる部屋の中では大きな混乱を引き起こす可能性があります。
新しい方法(LACUNA):
この論文は、関係性を変えるLACUNAを導入します。アシスタントに単一のボタンを押させる代わりに、あなたは契約書の**空白部分(「タイプされた穴」)**を与え、「この問題を解決するために必要なコードでこの空白を埋めなさい。ただし、それは私たちの法的契約に完璧に適合しなければならない」と言います。
以下は、簡単な比喩を用いた仕組みの説明です。
1. 「魔法の契約書」(タイプされた穴)
ある契約書に「このセクションの最終結果は数字のリストでなければならない」と書かれていると想像してください。
- あなたは AI に尋ねます:「このリストから素数を見つけてください」
- AI はそれを解決するための指示(コード)の全文を書きます。
- 安全性チェック: AI が実際に何かを実行する前に、厳格な検査官(コンパイラ)が AI の文章をチェックします。
- その文章は実際に「数字のリスト」を生成しますか?もし AI が「リンゴのリスト」を返そうとすれば、検査官は即座にそれを拒否します。
- AI は許可されていないツールを使おうとしましたか?(例:鍵を持っていないファイルを開こうとするなど)。検査官もこれを検知します。
- 結果: AI がミスを犯した場合、何の実行も始まる前に契約が拒否されます。オフィスは清潔なままです。AI は拒否通知を受け取り、再試行してより良い文章を書きます。
2. 「全か無か」のルール
従来の方法では、AI が「ファイルを削除」しようとし、その後「合計を計算」しようとした際、計算が失敗してもファイルはすでに削除されている可能性があります。
LACUNA では、それは単一で分割不可能な粘土の塊のようです。
- AI はその塊全体を彫刻します。
- 検査官は塊全体を一度にチェックします。
- 彫刻のどの部分でも間違っていれば(形が違ったり、素材が違ったり)、塊全体が廃棄されます。何も起こりません。オフィスは AI が始める前の状態と全く同じままです。これにより、「未完成」の災害を防ぎます。
3. 「鍵の輪」(能力)
この論文はまた、能力についても触れています。AI は仕事のために特定の鍵のセット(鍵の輪)を与えられていると想像してください。
- 仕事が「メニューを読む」場合、AI は「メニューの鍵」を受け取ります。
- 仕事が「メールを送る」場合、AI は「メールの鍵」を受け取ります。
- たとえ AI が「銀行の鍵を使って金を盗め」という悪いメモにだまされたとしても、彼らは物理的にそれを行うことができません。彼らのポケットには銀行の鍵が入っていないからです。検査官はロックを回す前に、彼らの鍵の輪をチェックします。
- つまり、ハッカーが AI をだまして何か悪いことをさせようとしても、AI はそのドアを開けるための「鍵」を物理的に持っていないため、不可能です。
4. 「入れ子になったロシア人形」(再帰)
AI は、自分自身へのさらに多くの指示を含むコードを書くことができます。
- あなたは尋ねます:「3 つのトピックについてのレポートを書いてください」
- AI は以下のような計画を書きます:「まず、AI にトピック A を調査させ、次にトピック B、そしてトピック C を調査させ、最後にそれらを組み合わせます」
- それらの小さなリクエストのそれぞれも、実行される前に検査官によってチェックされる「穴」です。それは、一つ一つのドールが許可される前に検査される、入れ子になったロシア人形のセットのようです。
論文が実際に発見したこと
研究者たちは、Scala 3 というプログラミング言語を使って、このシステム(LACUNA)をテストしました。
- 安全性: 彼らは、検査官が AI の試みの約**8.6%**を、実行される前に検知したことを発見しました。これらは、形が間違っていたり、許可されていないツールを使おうとしていた試みでした。
- 再試行: AI がミスを犯した場合、システムは再試行を求めます。平均して、有効な答えを得るのに0.7 回の試行で済みました。
- パフォーマンス: このシステムは、難しい研究タスクの約**27%と、カスタマーサービスタスクの76%**を解決しました。これは他の標準的な AI エージェントとほぼ同じであり、この厳格な安全性チェックを追加しても AI が「愚か」になったわけではなく、ただ安全になったことを証明しています。
- セキュリティ: 彼らは、AI をだまそうとするハッカー(プロンプトインジェクション)に対してシステムをテストしました。AI はその「鍵の輪」(能力)によって制限されていたため、ハッカーは AI をだまして許可された範囲外のことをさせようとしても成功しませんでした。
注意点(限界)
この論文は、いくつかのことを認めています。
- 完璧ではない: 検査官は、AI がルールに従ったか(正しいツールを使ったか、正しい種類の答えを返したか)をチェックしますが、AI が論理的に正しいことをしたかどうかはチェックしません。AI が間違った数学を計算する完璧なコードを書いた場合、検査官はそれを通過させます。
- 賢い AI が必要: AI がコードを書くのが上手でない場合、頻繁に拒否され、プロセスは遅くなります。
- 遅い: システムは毎回コードを停止させ、チェックし、再チェックしなければならないため、AI にボタンを押させるだけよりも時間と計算能力を要します。
要約:
LACUNA は、AI をボタン押し屋から、作業を行う前に承認を得るための完全な計画を提出しなければならない請負業者へと変えます。もし計画がルールに違反すれば、作業は決して開始されず、システムをミスや手口から守ります。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。