AIエージェントのスコープとツールのライフサイクル
AIエージェントの構築が困難なのは、簡単に制御できないからです。コストを制限する必要があります。暴走するループを停止させる必要があります。実行が失敗した際に何が起きたのかを正確に把握する必要があります。
これに対処するための新しい手法を構築しました。これはAgentScopeのrunAgentというエージェント・プリミティブを使用しており、予算管理、再現可能なイベント、および構造化されたキャンセル機能が含まれています。
仕組みは以下の通りです:
- ツール関数は単純なasync関数です。複雑なスキーマは必要ありません。
- ツールが値を返す前に予算がチェックされます。制限に達した場合、システムは実行全体をキャンセルします。
- リトライとタイムアウトはツールレベルで行われます。
- キャンセルは伝播します。ユーザーがエージェントを停止すると、システムは実行中のfetchやデータベースクエリを即座に中断します。
- 再現可能なログが得られます。すべてのイベントは型定義され、順序付けられています。
3種類の制限を設定できます:
- CostBudget: 合計のUSD支出を制限します。
- OpenAITokens: 使用される合計トークン数を制限します。
- AgentToolCalls: 暴走するループを止めるために、ツール呼び出しの総回数を制限します。
このアプローチは他のフレームワークとは異なります。ほとんどのフレームワークは、重いJSONスキーマや緩い型付けを使用しています。また、ファーストクラスの予算プリミティブが欠けていることが多く、すべてを一度にキャンセルする統一された方法も備えていません。
このシステムでは、エージェントはアプリケーションと同じライフサイクルを共有します。親プロセスが停止すれば、エージェントも停止します。管理すべき別のランタイムは存在しません。
イベントログを使用して、以下のことが可能です:
- 失敗のヒートマップを表示するダッシュボードの構築。
- テスト環境での実行の再現。
- ツールの成功イベントを確認して、正確な料金を監査。
- 2つの異なる実行を比較して、どこで分岐したかを確認。
これにより、AIエージェントは予測可能になり、プロダクション環境でも安全に使用できるようになります。
ソース: https://github.com/WorkRuntime/workit
オプションの学習コミュニティ: https://t.me/GyaanSetuAi