Skip to content

イベントハンドラー

イベントハンドラーを使用すると、エージェントのワークフロー中の特定のイベントを監視し、それに応答することができます。これはロギング、テスト、デバッグ、およびエージェントの動作拡張に役立ちます。

機能の概要

EventHandler機能を使用すると、さまざまなエージェントイベントにフックできます。これは、以下のような役割を果たすイベントデリゲーションメカニズムとして機能します。

  • AIエージェント操作のライフサイクルを管理する。
  • ワークフローのさまざまなステージを監視し、応答するためのフックを提供する。
  • エラーハンドリングとリカバリを可能にする。
  • ツールの呼び出し追跡と結果処理を容易にする。

インストールと設定

EventHandler機能は、EventHandler クラスを通じてエージェントのワークフローと統合されます。このクラスは、さまざまなエージェントイベントのコールバックを登録する方法を提供し、エージェント設定に機能(feature)としてインストールできます。詳細については、APIリファレンスを参照してください。

機能をインストールし、エージェントのイベントハンドラーを設定するには、次のように行います。

kotlin
handleEvents {
    // ツール呼び出しを処理する
    onToolCallStarting { eventContext ->
        println("Tool called: ${eventContext.toolName} 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.toolName} with args ${eventContext.toolArgs}")
        }
        // エージェントの実行が完了したときにトリガーされるイベントを処理する
        onAgentCompleted { eventContext ->
            println("Agent finished with result: ${eventContext.result}")
        }

        // その他のイベントハンドラー
    }
}