ループ工学の芸術
信頼性の高いAIエージェントを構築するには、単に優れたモデルを使うだけでなく、ループを慎重に設計することが重要です。この記事では、エージェントループ、検証ループ、イベント駆動ループ、山登りループという4つのネストされたループを紹介し、LangChainプリミティブを使って各レベルを実装する方法を示します。エージェントをエコシステムに組み込み、継続的に改善することで、模倣困難な競争優位を構築できます。
エージェントは実世界でアクションを起こすことで作業を自動化するため有用ですが、信頼性高く価値ある作業をさせるには、優れたモデルだけでなく、タスクセットに適合した注意深く設計された「ハーネス」が必要です。
コアのエージェントアルゴリズムはシンプルです。LLMにコンテキストを与え、完了するまでツールを呼び出すループを実行します。これが最も基本的なループですが、エージェントを動かすループはこれだけではありません。Swyx氏は最近「ループクラフト:ループを積み重ねる技術」という素晴らしい記事を書き、ループを積み重ね拡張することでより効果的なエージェントを構築できるというアイデアを提唱しました。
以下は、その積み重ねに対する当社の考え方と、各レベルをLangChainプリミティブで計装する方法です。
ループ1:エージェントループ
コアにおいて、エージェントとはタスクが完了するまでモデルがループ内でツールを呼び出すことに他なりません。LangChainのcreate_agentが提供するのはこれです。任意のモデルを選び、ツールを接続すれば、動作するエージェントループが得られます。ツールはエージェントに実世界で行動する力を与えます。
例として、当社の内部ドキュメントエージェント(このブログの動機付けの例として使用)を考えます。最初のループレベルでは、ドキュメント改善のリクエストを受け取り、モデルが計画と草稿を作成し、ツールを使ってリポジトリのクローン、ファイルの読み取り、ドキュメントの書き込み、プルリクエストの作成などを行います。
ループ2:検証ループ エージェントループは作業を完了しますが、最初のパスで常に正しいまたは一貫した結果を生成するとは限りません。一貫性が重要な場合、出力をチェックし、基準を満たさない場合にフィードバック付きでモデルに結果を戻す検証ループでラップすることが有用です。
検証ループは評定者を追加します。評定者はエージェントの出力をルーブリックと照合し、不合格の場合はフィードバックとともに結果を送り返します。評定者は決定論的にもエージェンティック(LLMを審査員とする古典的な例)にもできます。RubricMiddlewareがこのパターンを処理します。また、create_agentのafter_agentフックで配線することもできます。
ドキュメント作成の例では、評定者は各試行後にテストを実行し、すべてのリンクが解決されること、すべてのCIチェックがパスすること、差分が実際に要求された範囲に限定されていることを確認します。これらの種類のエラーをキャッチするのに手動レビューは不要です。
トレードオフ:検証を追加すると、実行あたりの遅延とコストが増加します。品質が速度よりも重要な場合(ほとんどのプロダクションユースケース)に価値があります。
ループ3:イベント駆動ループ エージェント開発で最も重要な部分の1つは統合層です。エージェントをエコシステムに接続し、バックグラウンドで実行できるようにします。
イベント駆動ループはエージェントをエコシステムに接続します。イベントが発生(新しいドキュメントが配置される、スケジュールがトリガーされる、webhookが到着する)すると、エージェントが実行されます。エージェントは手動で呼び出すものではなく、大規模システム内で継続的に実行されるコンポーネントです。
LangSmith Deploymentは、cronスケジュールとwebhookをサポートするトリガーインフラを提供します。cronの一般的な例はOpenClawの「ハートビート」で、エージェントを常時稼働のプロアクティブなアシスタントに変えます。
当社のドキュメントエージェントは、ノーコードエージェントビルダーのFleetによって動作しています。Fleetのチャンネルとスケジュールがイベント駆動型とcron式トリガーを処理します。当社は、#docs-plz Slackチャンネルでメッセージが送信されるたびにドキュメントエージェントを起動するチャンネルを使用しています。
ループ4:山登りループ 最初の3つのループは作業を自動化します。4つ目の(そしておそらく最も重要な)ループは改善を自動化します!
エージェントの実行は毎回トレースを生成します。トレースは、モデルが何をしたか、呼び出したツール、評定者フィードバックなどを記録します。これらのトレースには、何が機能し何が機能しないかに関する高価値のシグナルが含まれています。山登りループはこれらのトレース上で分析エージェントを実行し、その発見を使用して改善された設定でハーネスを書き換えます。それにはプロンプト/ツールの調整や評定者の調整が含まれます。
LangSmithでは、Engine(トレース分析エージェント)を使用してこの4番目のループを計装できます。
ドキュメントエージェントの例をまとめると、ドキュメントエージェントのトレース上でEngineを実行して問題を検出します。複数のトレースが潜在的な問題を示す場合、問題のあるプロンプトまたはツールの変更を要求するIssueが提出されます。
重要な動きは、戻り矢印が単にトップにループバックするだけでなく、内部に到達してエージェントループを直接更新することです。外側のループの各サイクルにより、内側のループがより効果的になります。
今後の展望:プロンプトとツールの設定は改善するのに最も簡単なものですが、唯一の選択肢ではありません。オープンウェイトモデルを実行しているチームの場合、山登りループはRLファインチューニングにフィードし、トレースや評価結果をトレーニングシグナルとして使用してモデル自体を改善できます。メモリや検索スキルなどの補助コンテキストも同じ方法で改善できます。ループがパターンであり、最適化する内容はあなた次第です。
人間の監督と専門知識 自動化は人間をループから排除することを意味しません。すべてのレベルに、人間の監督が価値を付加する自然なポイントがあります。自動評定者はリンクが解決するかチェックできますが、フレーミングが視聴者にとって間違っていることに気づくには人間が必要です。その種の判断は、コンテキスト、経験、センスから得られるものであり、まさに人間によるレビューがその価値を発揮する場です。
ある種の専門知識はプロンプト/ツール自体にコード化されるべきですが、センシティブなアクション(金融取引、データベース操作など)には、リアルタイムの人間によるレビューが不可欠です。LangChainは、各ループにこれらのタッチポイントを計装することを容易にします。エージェントループではセンシティブなアクション/ツール呼び出しの前に人間の入力を要求、検証ループでは人間がセンシティブなワークフローの評定者として機能、アプリケーションループでは出力がエンドユーザーに返される前に人間が承認、山登りループではハーネスの改善がデプロイ前に人間のレビューを経由できます。LangChainのすべてのオープンソースフレームワークは「Human-in-the-loop」を第一級のプリミティブとしています。
まとめ 以下の表は、4つのループがどのように積み重なるかを示しています。
| ループ | 機能 | 影響 | LangChainプリミティブ | |--------|------|------|----------------------| | 1. エージェントループ | モデルがタスク完了までツールを繰り返し呼び出す | 作業の自動化 | create_agent、任意のLangChain対応モデル | | 2. 検証ループ | エージェント実行、出力をルーブリックで採点、不合格時はフィードバック付きで再試行 | 作業品質と正確性の保証 | RubricMiddleware | | 3. イベント駆動ループ | イベントがエージェント実行をトリガーし、実際のシステムを更新 | 大規模な作業の自動化 | LangSmith Deploymentのcronトリガー/webhook、またはFleetチャンネル | | 4. 山登りループ | 本番トレースが分析エージェントにフィードされ、ハーネス設定を改善 | ハーネスの改善 | LangSmith Engine |
これがループ工学(Swyxの言うループクラフト)が実際にどのように見えるかです。Steipete、Boris、AndrejといったAIリーダーは皆、同じ結論に達しています。エージェントの可能性は、その周りに構築するループにあります。
当社はループ1と2についてしばらく考えてきました。しかし、焦点はループ3と4に移るべきです。そこでは、エージェントをエコシステムに埋め込み、あなたの基準に応答して継続的に改善することで価値が複合的に増大します。
Satyaは組織的なステークスを次のように述べています。学習ループを早期に構築し、人間の判断とトークン資本が共に複合する企業は、再現困難な優位性を築くでしょう。
謝辞:Vivek、Mason、Harrison、Hunterの思慮深いレビューに感謝します。
参考:deepagents quickstart、create_agentドキュメント、RubricMiddleware、cronジョブ/webhook、LangSmith Engine、Fleetチャンネル。