AI設計パターン:作業を検証できるエージェントシステムの構築
本記事は、確率的なAIエージェントシステムをより信頼性の高いものにするための設計パターン集を紹介。分散とバイアスという2つの障害クラスに対処するため、コンテキストと状態、検証、オーケストレーションの3カテゴリにわたる17のパターンを提示する。
Hacker Newsで注目を集めた「AI設計パターン」プロジェクトは、信頼性の高いAIエージェントシステムを構築するための設計パターンを体系的に提示している。このプロジェクトは、経験豊富なAIエンジニアのグループによって立ち上げられ、確率的システムを検証を通じて決定論的行動に近づけることを目的としている。特に、LLMが単純な自己レビューでは確実に自己修正できないという問題に対処する。
プロジェクトはまず、AIエージェントが直面する2つの障害クラスを定義する。分散障害には、サンプリングの不安定性、環境状態の汚染、非同期タイミング、非決定論的ツール状態が含まれる。バイアス障害には、お世辞、自己レビューの盲目性、審査者の嗜好バイアス、確認フレーミング、同系列モデルの盲点が含まれる。これらの問題に対処するため、3つのカテゴリにわたる17のパターンが提案されている。
第1のカテゴリは「コンテキストと状態」で、5つのパターンを含む。因果タグ(Causal Tag)は、エージェントが発する各イベントに安定した結合可能な識別子を付与し(必要に応じて親識別子も付与)、検証が観察された効果を特定のエージェントアクションに帰属させられるようにする。憲法(Constitution)は、システムの検証基準を明示的でバージョン管理された機械可読データとして表現する。ガードレールデコレータ(Guardrail Decorator)は、モデル呼び出しやツール呼び出しなどの出力境界をポリシーデコレータでラップし、ポリシーをコードに配置する。状態ベースライン(State Baseline)は、検証対象のアクションの前に関連する環境またはプロセス状態をキャプチャし、アクションが観測された変更を引き起こしたことを証明できるようにする。軌跡カーソル(Trajectory Cursor)は、マルチステッププロセス内のエージェントの位置と各境界で何が起こったかの明示的な構造化記録を維持する。
第2のカテゴリは「検証」で、6つのパターンがある。敵対的フレーム(Adversarial Frame)は、口調レベルの懐疑命令を許容ルールに置き換え、証拠とみなされるものを定義し、拒否すべき一般的な近道を挙げ、検証者のデフォルトを「もっともらしければ受け入れる」から「信頼できる証拠がない限り不合格」に反転させる。ブラインドオラクル(Blind Oracle)は、仕様、質問、または独立した再実行から期待される証拠を導出し、その導出をエージェントのドラフトや推論トレースに条件付けない。コンパレータ(Comparator)は、検証比較を有限ファミリー内の名前付き演算子として表現し、判定を(期待値、観測値、演算子、しきい値、正規化)の決定論的関数にする。デルタ検証(Delta)は、絶対環境状態ではなく環境状態の変化をアサートすることでエージェントのアクションの成功を検証する。実行可能アナログ(Executable Analog)は、主観的な言語ベースの検証ステップを決定論的なプログラム実行ステップに変換し、エージェントの判断に依存しないバイナリの合格/不合格信号を生成する。ジャッジハーネス(Judge Harness)は、LLMジャッジを摂動、反復、キャリブレーション、レポートの構造的ハーネスでラップし、一人のジャッジの判定を可視的な一貫性とバイアス制御を備えた測定信号にする。
第3のカテゴリは「オーケストレーション」で、6つのパターンがある。敵対者(Adversary)は、構造的に分離された役割を割り当て、その唯一の仕事は別の役割の出力の失敗を見つけることであり、その役割にオーケストレーターが検査できるネガティブチャネルを発行させる。バックプレッシャー(Backpressure)は、下流のチェックが失敗した場合、失敗を構造化された再実行コンテキストとして上流にルーティングし、制限付き再試行予算内で処理する。クロスファミリー(Cross-Family)は、意図的に異なるモデルファミリーで高レバレッジの生成と評価を実行し、両方のアイデンティティを記録することで、共有トレーニングデータバイアスや共有潜在事前分布が検証境界を通過するのを防ぐ。ディベート(Debate)は、決定前に複数の役割間で制限付きの意見対立を実行し、ターン順序、ラウンド数、フェーズ、コンセンサスしきい値をモデルの裁量ではなくオーケストレーション状態に保持する。エスカレーションチェーン(Escalation Chain)は、型付きで検証されたハンドオフを通じて、より高権限または異なる能力のハンドラーに作業をルーティングする。ツールアダプタ(Tool Adapter)は、型付き境界でモデルが発するツールコールを正規化する:スキーマを導出またはフェッチし、呼び出し前に引数を検証し、型付き引数でツールを呼び出し、型付き観測を返す。
これらのパターンは単なる理論ではなく、各パターンが制約する具体的な問題を明示しており、開発者はこれらを組み合わせることで、より信頼性が高く監査可能なAIエージェントシステムを構築できる。プロジェクトウェブサイトではパターンの閲覧、原則の読み込み、コントリビューションガイドが提供され、コミュニティで広く議論されている。