𝗕𝗼𝘅𝗔𝗴𝗻𝘁𝘀 𝗧𝗼𝗼𝗹 𝗦𝘆𝘀𝘁𝗲𝗺: 𝗦𝗸𝗶𝗹𝗹𝘀, 𝗔𝗴𝗲𝗻𝘁𝘀, 𝗮𝗻𝗱 𝗦𝗰𝗵𝗲𝗱𝘂𝗹𝗶𝗻𝗴
完全なAIエージェントシステムには、単なる基本的なツール以上のものが必要です。具体的には、「知識の再利用」、「タスクの分解」、「自動実行」という3つの特定の能力が求められます。
BoxAgntsは、これらの問題を解決するために、「スキルテンプレート」、「エージェント・サブエージェント」、「Cronスケジューリング」という3つのメカニズムを使用しています。
𝗦𝗸𝗶𝗹𝗹 𝗧𝗲𝗺𝗽𝗹𝗮𝘁𝗲𝘀 (𝗞𝗻𝗼𝘄𝗹𝗲𝗱𝗴𝗲 𝗥𝗲𝘂𝘀𝗲)
AIに「このコードをレビューして」と依頼する場合、一貫した結果を期待するものです。AIが毎回ゼロからプロセスを決定してしまうと、品質にばらつきが生じます。
スキル(Skill)とは、Markdown形式のプロンプトテンプレートのことです。AIはスキルを呼び出し、詳細な指示セットを受け取ってから、作業を実行します。
ツール(Tool)とスキルの主な違いは、「誰が作業を行うか」です。
- システムが実行するのが「ツール」です。
- AIが実行するのが「スキル」です。
スキルは、タスクの実行方法と、出力がどのようなものであるべきかを定義します。
𝗔𝗴𝗲𝗻𝘁 𝗦𝘂𝗯-𝗔𝗴𝗲𝗻𝘁𝘀 (𝗧𝗮𝘀𝗸 𝗗𝗲𝗰𝗼𝗺𝗽𝗼𝘀𝗶𝘁𝗶𝗼𝗻)
大きなタスクには、2つの限界があります。「コンテキストウィンドウ」と「注意力の減衰(attention decay)」です。会話が長くなりすぎると、AIは初期の情報を忘れてしまいます。
エージェント・サブエージェントは、1つの大きなタスクを、より小さく独立したタスクに分割することでこの問題を解決します。各サブエージェントは、独自のコンテキストウィンドウを持っています。
以下の2つのモードを使用できます。
- 同期(Synchronous):メインエージェントがサブエージェントの完了を待ちます。
- 非同期(Asynchronous):メインエージェントが他の作業を行っている間に、サブエージェントがバックグラウンドで実行されます。
これにより「コンテキストの汚染(context pollution)」を防ぎ、並列作業が可能になります。
𝗖𝗿𝗼𝗻 𝗦𝗰𝗵𝗲𝗱𝘂𝗹𝗶𝗻𝗴 (𝗔𝘂𝘁𝗼𝗺𝗮𝘁𝗲𝗱 𝗘𝘅𝗲𝗰𝘂𝘁𝗶𝗼𝗻)
すべてのタスクがリアルタイムで行われるわけではありません。例えば、毎朝9時にコード品質レポートを作成したいといったケースがあります。
BoxAgntsのCronシステムは、スケジュールされたジョブを処理します。各ジョブには以下の機能があります。
- プロセスの暴走を防ぐための、独立したタイムアウト保護。
- 再起動後もジョブが維持されるSQLiteによる永続化。
- 履歴をクリーンに保つための、分離されたセッション。
𝗜𝗻𝗳𝗿𝗮𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲 𝗦𝘂𝗽𝗽𝗼𝗿𝘁
システムの安定性を高める、他の2つの機能を紹介します。
- AutoCompactState:会話履歴が大きくなりすぎたときに、古いツールの実行結果を圧縮します。古いデータを要約しつつ、直近のロジックを保持します。
- 権限フィルタリング(Permission Filtering): 「読み取り専用」のエージェントを作成できます。これらのエージェントはファイルを見ることはできますが、変更したりbashコマンドを実行したりすることはできません。
BoxAgntsは、単なるツール呼び出しの枠を超え、構造化された信頼性の高いエージェント・オーケストレーション・レイヤーを実現します。
BoxAGNTs Tool System Part 7: Skill Templates, Agent Proxies, and Cron Scheduling
このシリーズのこのパートでは、BoxAGNTs tool systemをよりモジュール化、スケーラブル、かつ複雑な時間ベースのタスクを処理できるようにすることに焦点を当てます。ここでは、3つの主要なコンポーネント、Skill Templates、Agent Proxies、および Cron Scheduling を紹介します。
Skill Templates
ツールシステムが成長するにつれて、すべてのエージェントに対して特定のツール設定をハードコードすることは管理が困難になります。Skill Templates は、一連のツールとそのパラメータの「ブループリント(設計図)」を定義できるようにすることで、この問題を解決します。
エージェントに対して直接ツールを定義する代わりに、テンプレートを定義します。このテンプレートは、異なる設定を持つ異なるエージェントに対してインスタンス化できます。
Skill Template の例
{
"template_name": "web_search_skill",
"tools": [
{
"name": "google_search",
"parameters": {
"query": "string",
"num_results": "integer"
}
}
]
}
テンプレートを使用することで、カスタマイズを可能にしつつ、複数のエージェント間で一貫性を確保できます。
Agent Proxies
スケールアップするにつれて、単一のエージェントを管理するだけでは不十分になります。多くの場合、異なる専門知識を持つ複数のエージェントが必要になります。Agent Proxies は、ユーザーと基盤となるエージェントの間のインテリジェントなルーティングレイヤーとして機能します。
ユーザーがリクエストを送信すると、Agent Proxy はリクエストの意図と利用可能なエージェントの能力に基づいて、どのエージェントがそれを処理するのに最適かを判断します。
Agent Proxies の利点
- Routing(ルーティング): リクエストを適切なエージェントに自動的に転送します。
- Load Balancing(負荷分散): 同じエージェントの複数のインスタンスにリクエストを分散させます。
- Abstraction(抽象化): ユーザーは複数の個別のエージェントを管理するのではなく、単一のプロキシとやり取りします。
Cron Scheduling
多くの現実世界のタスクは、単に反応的なものではなく、先行的かつ時間に依存するものです。Cron Scheduling を使用すると、BoxAGNTs tool system は標準的な cron 構文を使用して、定義された間隔でツールまたはエージェントのワークフロー全体を実行できます。
Cron 式の例
0 0 * * * (毎日深夜 0:00 に実行)
これにより、日次レポートの自動作成、定期的なデータスクレイピング、またはスケジュールされたシステムメンテナンスが可能になります。
結論
Skill Templates、Agent Proxies、および Cron Scheduling を実装することで、BoxAGNTs tool system は、洗練された、自動化された、スケーラブルな AI ワークフローを処理できる強力なプラットフォームになります。