Koog 문서 번역 06: Agents

·5분 읽기

원문: Koog Documentation — Agents 이 글은 Koog 공식 문서의 Agents 페이지를 한국어로 옮긴 번역본입니다. 문서 구조와 링크 의미를 유지하되, MkDocs 전용 UI 문법은 블로그에서 읽기 좋도록 정리했습니다.

에이전트

AI 에이전트는 추론하고, 결정을 내리고, 환경과 상호 작용하고 특정 목표를 달성하기 위해 조치를 취합니다. Koog에서 AI 에이전트는 LLM을 둘러싼 래퍼 그 이상입니다. 이는 JVM 생태계를 위해 설계된 구조화되고 유형이 안전한 상태 머신입니다.

Koog 에이전트는 다음 핵심 개념을 기반으로 구축되었습니다.

  • prompt executor는 프롬프트를 관리하고 실행합니다. 에이전트가 추론 및 의사 결정을 위해 LLM과 상호 작용할 수 있도록 합니다.
  • strategy은 에이전트의 워크플로를 정의합니다. 유향 그래프, 함수 또는 플래너의 형태일 수 있습니다. 에이전트 유형을 참조하세요.
  • 에이전트는 tools을 사용하여 외부 데이터 소스 및 서비스와 상호 작용할 수 있습니다.
  • features을 사용하여 AI 에이전트의 기능을 확장하고 향상할 수 있습니다.

참고

최소 에이전트 생성 및 실행에 대한 자세한 내용은 Quickstart을 참조하세요.

에이전트 유형

수행해야 하는 작업에 따라 Koog는 다음과 같은 여러 에이전트 유형을 제공합니다.

  • 기본 에이전트은 사용자 지정 논리가 필요하지 않은 간단한 작업에 이상적입니다. 이러한 에이전트는 가장 일반적인 사용 사례에 적합한 사전 정의된 전략을 구현합니다.
  • 그래프 기반 에이전트은 에이전트의 워크플로, 상태 관리 및 시각화에 대한 완전한 제어와 유연성을 제공합니다.
  • 함수형 에이전트을 사용하면 에이전트의 컨텍스트에 액세스할 수 있는 기능으로 사용자 지정 논리의 프로토타입을 빠르게 만들 수 있습니다.
  • 플래너 에이전트은 원하는 최종 상태에 도달할 때까지 반복 주기를 통해 다단계 작업을 자율적으로 계획하고 실행할 수 있습니다.

에이전트 구성

에이전트 구성은 에이전트의 실행 매개변수를 정의합니다. 초기 프롬프트, 언어 모델 및 반복 제한을 포함합니다.

참고

최소 에이전트 생성 및 실행에 대한 자세한 내용은 Quickstart을 참조하세요.

단순 에이전트의 경우 필수 프롬프트 실행자와 언어 모델 외에도 에이전트 생성자에서 초기 시스템 프롬프트와 일부 기타 매개변수를 직접 지정할 수 있습니다.

Kotlin

1val agent = AIAgent(2    promptExecutor = simpleOpenAIExecutor(System.getenv("YOUR_API_KEY")),3    llmModel = OpenAIModels.Chat.GPT4o,4    systemPrompt = "You are a helpful assistant.",5    temperature = 0.7,6    maxIterations = 107)

Java

1AIAgent<String, String> agent = AIAgent.builder()2    .promptExecutor(simpleOpenAIExecutor(System.getenv("YOUR_API_KEY")))3    .llmModel(OpenAIModels.Chat.GPT4o)4    .systemPrompt("You are a helpful assistant.")5    .temperature(0.7)6    .maxIterations(10)7    .build();

또는 AIAgentConfig 인스턴스를 생성할 수 있습니다. 에이전트의 동작과 매개변수를 더 세부적으로 정의하려면 이를 에이전트 생성자에 전달하세요. 이를 통해 여러 메시지가 포함된 복잡한 프롬프트를 정의할 수 있습니다. 대화 기록, LLM 매개변수 및 추가 실행 매개변수.

Kotlin

1val agentConfig = AIAgentConfig(2    prompt = prompt(3        id = "assistant",4        params = LLMParams(5            temperature = 0.76        )7    ) {8        system("You are a helpful assistant.")9    },10    model = OpenAIModels.Chat.GPT4o,11    maxAgentIterations = 1012)1314val agent = AIAgent(15    promptExecutor = simpleOpenAIExecutor(System.getenv("OPENAI_API_KEY")),16    agentConfig = agentConfig17)

Java

1Prompt prompt = Prompt.builder("assistant")2    .system("You are a helpful assistant.")3    .build()4    .withParams(new LLMParams(5        0.7,         // temperature6        null,        // maxTokens7        1,           // numberOfChoices8        null,        // speculation9        null,        // schema10        LLMParams.ToolChoice.Auto.INSTANCE, // toolChoice11        null,        // user12        null         // additionalProperties13    ));1415AIAgentConfig agentConfig = AIAgentConfig.builder(OpenAIModels.Chat.GPT4o)16    .prompt(prompt)17    .maxAgentIterations(10)18    .build();1920AIAgent<String, String> agent = AIAgent.builder()21    .promptExecutor(simpleOpenAIExecutor(System.getenv("OPENAI_API_KEY")))22    .agentConfig(agentConfig)23    .build();

AIAgentConfig의 매개변수는 다음과 같습니다.

  • prompt는 초기 promptLLM parameters을 정의합니다.

  • model은 에이전트가 상호 작용하는 언어 모델을 지정합니다. 사전 정의된 모델 중 하나 또는 create a custom model configuration을 사용할 수 있습니다.

  • maxAgentIterations은 에이전트가 종료되기 전에 수행할 수 있는 최대 단계 수를 제한합니다. 각 단계는 상담원 워크플로의 node입니다.

  • missingToolsConversionStrategy은 에이전트 실행 중 누락된 도구를 처리하기 위한 전략을 정의합니다.

  • responseProcessor을 사용하여 사용자 정의 응답 프로세서를 정의할 수 있습니다. 예를 들어 응답 내용을 조정 및 검증하거나, 응답 형식을 변경하거나, 응답을 기록할 수 있습니다.