Action-Selector パターンは、LLM エージェントが外部アクションを実行できるようにしつつ、プロンプトインジェクション に対して免疫を持たせるための構築方法である。エージェントはツールを起動できるが、そのツールからのフィードバックがエージェントへ戻ることは一切許されない。エージェントはアクションが返すものを決して読まないため、Web ページやメールに潜む敵対的なテキストがエージェントに届くことはそもそもなく、したがってエージェントの行動をそらすこともできない。
プロンプトインジェクションから LLM エージェントを守るためのデザインパターン での要約によれば、このパターンを提案した論文は、外部アクションの実行を許しつつエージェントをプロンプトインジェクションに対して免疫にする比較的シンプルなパターンだと説明しており、それはアクションからエージェントへのフィードバックを一切断つことで実現される。論文はこのパターンを「LLM によって制御される switch 文(LLM-modulated switch statement)」と要約しており、記事はこの表現を的確だと感じると述べている。
用法
このパターンの代償は、エージェントがもはや行えなくなることにある。何かを取得することを目的とするアクション — メールを読む、Web ページを取得する — は利用できない。その価値はまさに、エージェントが見ることを禁じられている応答そのものにあるからである。残るのは、それ自体で完結するアクションであり、例として挙げられているのは、ユーザーを Web ページに誘導すること、あるいはユーザーにメッセージを表示することである。
適用される場面
このパターンが適用できるのは、有用な作業を、アクションが返すものに反応していくプロセスとしてではなく、既知のアクションの中からの選択として表現できる場面である。そうしたアクションの集合を事前に列挙でき、かつエージェントが次の行動を決めるためにその結果をフィードバックする必要のあるアクションが一つもない、ということを前提としている。ツールの出力が後続のステップに情報を与えなければならない場面ではどこであれ誤用となり、何らかの戻り値がエージェントのコンテキストに戻された瞬間にその保護は失われる。
これはまとめて提示された 6 つのパターンのうちの 1 つであり、6 つはいずれも、エージェントが信頼できない入力を一度取り込んだなら、その入力が重大な結果をもたらすアクションを引き起こせないよう制約されなければならない、という単一の前提に立っている。ここで参照できる説明は論文そのものではなくその論文のレビューであり、論文は自らのパターン群を、エージェントの有用性とセキュリティの間の価値あるトレードオフを提供するものと位置づけている。
関連用語
- Plan-Then-Execute パターン — より許容度の高い隣接パターン。ツールの出力がエージェントへ戻ることは許しつつ、アクションの選択を保護する
- デュアル LLM パターン — 6 つのうちの別の 1 つ。フィードバックを全面的に拒むのではなく、信頼できないコンテンツを 2 つ目のモデルの背後に隔離する
- プロンプトインジェクション — このパターンが構造的に不可能にすることを狙う攻撃
- プロンプトインジェクションから LLM エージェントを守るためのデザインパターン — この説明の出典