이벤트 핸들러
·3분 읽기
원문: Koog Documentation — agent-event-handlers 이 글은 Koog 공식 문서의 agent-event-handlers 페이지를 한국어로 옮긴 번역본입니다. 문서 구조와 링크 의미를 유지하되, MkDocs 전용 UI 문법은 블로그에서 읽기 좋도록 정리했습니다.
이벤트 핸들러
에이전트 동작 로깅, 테스트, 디버깅 및 확장을 위한 이벤트 핸들러를 사용하여 에이전트 워크플로 중에 특정 이벤트를 모니터링하고 응답할 수 있습니다.
기능 개요
EventHandler 기능을 사용하면 다양한 에이전트 이벤트에 연결할 수 있습니다. 이는 다음과 같은 이벤트 위임 메커니즘 역할을 합니다.
- AI 에이전트 작업의 수명주기를 관리합니다.
- 워크플로우의 다양한 단계를 모니터링하고 응답하기 위한 후크를 제공합니다.
- 오류 처리 및 복구를 활성화합니다.
- 도구 호출 추적 및 결과 처리를 용이하게 합니다.
설치 및 구성
EventHandler 기능은 EventHandler 클래스를 통해 에이전트 워크플로와 통합됩니다.
이는 다양한 에이전트 이벤트에 대한 콜백을 등록하는 방법을 제공하며 에이전트 구성의 기능으로 설치할 수 있습니다. 자세한 내용은 API reference을 참조하세요.
기능을 설치하고 에이전트에 대한 이벤트 핸들러를 구성하려면 다음을 수행하십시오.
코틀린
1handleEvents {2 // Handle tool calls3 onToolCallStarting { eventContext ->4 println("Tool called: ${eventContext.toolName} with args ${eventContext.toolArgs}")5 }6 // Handle event triggered when the agent completes its execution7 onAgentCompleted { eventContext ->8 println("Agent finished with result: ${eventContext.result}")9 }1011 // Other event handlers12}자바
1AIAgent<String, String> agent = AIAgent.builder()2 .promptExecutor(simpleOllamaAIExecutor("http://localhost:11434"))3 .llmModel(OllamaModels.Meta.LLAMA_3_2)4 .install(EventHandler.Feature, cfg -> {5 // Handle tool calls6 cfg.onToolCallStarting(ctx -> {7 System.out.println("Tool called: " + ctx.getToolName() + " with args " + ctx.getToolArgs());8 });9 // Handle event triggered when the agent completes its execution10 cfg.onAgentCompleted(ctx -> {11 System.out.println("Agent finished with result: " + ctx.getResult());12 });13 })14 .build();이벤트 핸들러 구성에 대한 자세한 내용은 API reference을 참조하세요.
에이전트를 생성할 때 handleEvents 확장 기능을 사용하여 이벤트 핸들러를 설정할 수도 있습니다.
또한 이 기능은 이벤트 핸들러 기능을 설치하고 에이전트에 대한 이벤트 핸들러를 구성합니다. 예는 다음과 같습니다.
코틀린
1val agent = AIAgent(2 promptExecutor = simpleOllamaAIExecutor(),3 llmModel = OllamaModels.Meta.LLAMA_3_2,4){5 handleEvents {6 // Handle tool calls7 onToolCallStarting { eventContext ->8 println("Tool called: ${eventContext.toolName} with args ${eventContext.toolArgs}")9 }10 // Handle event triggered when the agent completes its execution11 onAgentCompleted { eventContext ->12 println("Agent finished with result: ${eventContext.result}")13 }1415 // Other event handlers16 }17}자바
1AIAgent<String, String> agent = AIAgent.builder()2 .promptExecutor(simpleOllamaAIExecutor("http://localhost:11434"))3 .llmModel(OllamaModels.Meta.LLAMA_3_2)4 .install(EventHandler.Feature, cfg -> {5 // Handle tool calls6 cfg.onToolCallStarting(ctx -> {7 System.out.println("Tool called: " + ctx.getToolName() + " with args " + ctx.getToolArgs());8 });9 // Handle event triggered when the agent completes its execution10 cfg.onAgentCompleted(ctx -> {11 System.out.println("Agent finished with result: " + ctx.getResult());12 });13 })14 .build();