ニューロシンボリック検証とは、ここで要約する解説が、言語モデルによるニューラルな推論と、モデル自身が評価しない記号的なルールとを組み合わせることに与えている名称である。その解説によれば、モデルはリクエストの理解やツールの選択といった自らに適した仕事を引き続き担い、別個の決定論的なレイヤーが、その結果としてのツール呼び出しを許可するかどうかを決定する。両者は代替物ではなく相補的なものとして示されており、どちらも他方を置き換えるものではない。

用法

このアプローチは、エージェントがツールを呼び出す時点で適用される。ルールは通常のコードとして書かれる。すなわち、コンテキスト辞書に対する名前付きの条件と、違反を説明するメッセージの組である。エージェントフレームワークに登録されたインターセプターが、ツールの実行前にそのツールに該当するルールを評価し、ルールが満たされない場合はその呼び出しをキャンセルして違反メッセージを返す。

このアプローチの動機となっている対比は、散文で表現されたルールとの対比である。システムプロンプトやツールの docstring に書かれた制約はモデルへの入力であり、モデルはそれに従うかどうかを呼び出しのたびに判断し直す。一方、インターセプター内のルールとして書かれた制約はフレームワークによって評価され、出典の言い方では、その判断はモデルが下すものではない。本ページの素材を導入した実例で使われているフレームワークは Strands Agents であり、その BeforeToolCallEvent フックと event.cancel_tool への代入を用いている。出典では、他のエージェントフレームワークにおける同等のインターセプトポイントとして、LangGraph のノードガードや AutoGen の返信関数なども挙げられている。このアプローチは ガードレール で説明されるより広いファミリーの中の、具体的かつ決定論的な一員であり、それが依存するインターセプトの仕組みは エージェントフック の主題である。

実行後ではなく実行前に検証することには、出典が強調する帰結がある。ブロックされた操作はそもそも起きていないので、ロールバックすべき状態も、書くべき補償トランザクションもない。また違反は、ツール名、パラメータ、理由を伴う明示的なイベントとして表面化し、出典はそれによって違反をログに記録し、レビューのために監査できるようになるとしている。

適用される場面

これが適用されるのは、書き下せるルールによって正しさを判定できるアクションをエージェントが実行しうる場面である。たとえば、定められた宿泊人数の上限を超えてはならない予約、検証済みの支払いの後でなければならない確認、順序が正しくなければならない日付範囲などである。前提となる条件は、保護する価値のある操作があらかじめわかっていること、そのそれぞれに対してルールが書かれていること、そして使用しているエージェントフレームワークが、ツール呼び出しを実行前に検査・キャンセルできるポイントを公開していることである。

述べられている限界は、これらの前提から導かれる。ルールは保護対象の操作ごとに明示的に定義しなければならない。ルールはブール値であるため、このアプローチはあいまいな論理や確率的な論理を扱えない。エッジケースはルールの条件の中で明示的に扱う必要があり、ビジネスロジックの変化に合わせてルールを保守しなければならない。

このアプローチの位置づけは、計測された実践ではなく、主張され実演されたパターンというものである。ここで要約している解説はベンダーが公開した単一著者による投稿であり、この用語を自らの造語としてではなく、引用する研究で使われている用語として示している。その実演も本番のワークロードではなく、この目的のために作られた 3 つのシナリオからなる例である。

関連用語

ガードレール、エージェントフック、ヒューマン・イン・ザ・ループ、Strands Agents、AI エージェントのガードレール:LLM が回避できないルール