エージェント・ハーネスの解剖学
チャットボットを作りました。いくつかのツールとシンプルなループを追加しました。デモとしては機能します。しかし、いざ本番環境に移行しようとすると、すべてが崩壊します。
モデルは過去のステップを忘れます。ツール呼び出しは警告なしに失敗します。コンテキストウィンドウは無用なデータで埋め尽くされます。
問題はモデルではありません。問題はその周囲のインフラストラクチャにあります。
このインフラストラクチャは「エージェント・ハーネス(agent harness)」と呼ばれます。
エージェントは「振る舞い」であり、ハーネスは「機構」です。あなたがモデルでないなら、あなたはハーネスなのです。
生のLLMをCPUと考えてみてください。それにはRAMもディスクもI/Oもありません。ハーネスはオペレーティングシステム(OS)です。モデルを実用的にするためのメモリ、ツール、そしてロジックを提供します。
本番環境グレードのハーネスには、12のコアコンポーネントがあります。
• Orchestration Loop(オーケストレーション・ループ):これは鼓動(ハートビート)です。Thought-Action-Observation(思考・行動・観察)のサイクルを管理します。 • Tool Layer(ツール層):これらは「手」です。ハーネスはツールの登録、検証、実行を処理します。 • Memory(メモリ):これには短期的な履歴と、セッションをまたいだ長期的な永続性が含まれます。 • Context Management(コンテキスト管理):データの圧縮や要約を行うことで、コンテキストの劣化(context rot)を防ぎます。 • Prompt Assembly(プロンプト組み立て):各ステップでモデルが目にする正確な入力を構築します。 • Output Classification(出力分類):モデルが会話をしたいのか、ツールを使いたいのかを判断します。 • State Management(ステート管理):エラーや中断が発生した後でも、エージェントが作業を再開できるようにします。 • Error Handling(エラーハンドリング):失敗をキャッチし、エラーが連鎖しないようにします。 • Guardrails(ガードレール):安全でない、あるいは不正確なアクションを阻止するためのトリップワイヤーとして機能します。 • Permission Enforcement(権限強制):モデルが「やりたいこと」と「許可されていること」を分離します。 • Verification Loops(検証ループ):モデルが自身の作業をチェックして品質を向上させられるようにします。 • Agent Handoffs(エージェント・ハンドオフ):あるエージェントが別のエージェントにどのように作業を引き継ぐかを管理します。
優れたエンジニアリングの目標は、ハーネスを可能な限り軽量に保つことです。モデルが賢くなるにつれて、必要となる足場(scaffolding)は少なくなっていくはずです。
エージェントが失敗したとき、モデルを責めてはいけません。自分のハーネスを確認してください。
Source: https://dev.to/aniruddhaadak/the-anatomy-of-an-agent-harness-1n1j
Optional learning community: https://t.me/GyaanSetuAi
