イベントハンドラー
イベントハンドラーを使用すると、ログ記録、テスト、デバッグ、およびエージェントの動作拡張のために、エージェントのワークフロー中に特定のイベントを監視し、対応できます。
機能概要
EventHandler機能を使用すると、様々なエージェントイベントにフックできます。これは以下のイベント委譲メカニズムとして機能します。
- AIエージェント操作のライフサイクルを管理する。
- ワークフローの様々な段階を監視し、対応するためのフックを提供する。
- エラー処理と回復を可能にする。
- ツールの呼び出し追跡と結果処理を容易にする。
インストールと設定
EventHandler機能は、EventHandler クラスを介してエージェントのワークフローと統合されます。このクラスは、様々なエージェントイベントのコールバックを登録する方法を提供し、エージェント設定の機能としてインストールできます。詳細については、APIリファレンスを参照してください。
この機能をインストールし、エージェントのイベントハンドラーを設定するには、以下の手順を実行します。
kotlin
handleEvents {
// ツール呼び出しを処理
onToolCallStarting { eventContext ->
println("Tool called: ${eventContext.tool.name} with args ${eventContext.toolArgs}")
}
// エージェントが実行を完了したときにトリガーされるイベントを処理
onAgentCompleted { eventContext ->
println("Agent finished with result: ${eventContext.result}")
}
// その他のイベントハンドラー
}イベントハンドラーの設定に関する詳細については、APIリファレンスを参照してください。
エージェント作成時に handleEvents 拡張関数を使用してイベントハンドラーを設定することもできます。この関数は、イベントハンドラー機能をインストールし、エージェントのイベントハンドラーを設定します。以下に例を示します。
kotlin
val agent = AIAgent(
promptExecutor = simpleOllamaAIExecutor(),
llmModel = OllamaModels.Meta.LLAMA_3_2,
){
handleEvents {
// ツール呼び出しを処理
onToolCallStarting { eventContext ->
println("Tool called: ${eventContext.tool.name} with args ${eventContext.toolArgs}")
}
// エージェントが実行を完了したときにトリガーされるイベントを処理
onAgentCompleted { eventContext ->
println("Agent finished with result: ${eventContext.result}")
}
// その他のイベントハンドラー
}
}