Skip to content

事件處理器

您可以在代理程式工作流程中,透過使用事件處理器來監控和回應特定事件,以進行記錄、測試、除錯,並擴展代理程式的行為。

功能概述

EventHandler 功能讓您能夠掛接到各種代理程式事件。它作為一種事件委派機制,能夠:

  • 管理 AI 代理程式操作的生命週期。
  • 提供掛接點,用於監控和回應工作流程的不同階段。
  • 啟用錯誤處理和復原。
  • 促進工具呼叫追蹤和結果處理。

安裝與設定

EventHandler 功能透過 EventHandler 類別整合到代理程式工作流程中,該類別提供了註冊不同代理程式事件回呼的方式,並可作為代理程式設定中的一個功能進行安裝。詳細資訊請參閱 API reference

若要安裝此功能並為代理程式設定事件處理器,請執行以下操作:

kotlin
handleEvents {
    // 處理工具呼叫
    onToolCallStarting { eventContext ->
        println("Tool called: ${eventContext.tool.name} with args ${eventContext.toolArgs}")
    }
    // 處理代理程式完成執行時觸發的事件
    onAgentCompleted { eventContext ->
        println("Agent finished with result: ${eventContext.result}")
    }

    // 其他事件處理器
}

有關事件處理器設定的更多詳細資訊,請參閱 API reference

您也可以在建立代理程式時使用 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}")
        }

        // 其他事件處理器
    }
}