Skip to content

LLM 기반 플래너

베타

이 기능은 베타 모듈(1.2.0-beta)의 일부입니다. 이후 릴리스에서 API가 변경될 수 있습니다.

자세한 내용은 모듈 버전 관리를 참고하세요.

LLM 기반 플래너는 LLM을 사용하여 계획을 생성하고 평가합니다. 이들은 문자열 기반 상태(string-based state)에서 작동하며 LLM 요청을 통해 단계를 실행합니다. 문자열 기반 상태란 에이전트 상태가 단일 문자열임을 의미합니다. 각 단계에서 에이전트는 초기 상태 문자열을 수락하고 결과로 최종 상태 문자열을 반환합니다.

사전 요구 사항

환경과 프로젝트가 다음 요구 사항을 충족하는지 확인하세요:

  • JDK 17+

  • Kotlin 2.2.0+

  • Gradle 8.0+ 또는 Maven 3.8+ Koog 패키지를 의존성으로 추가하세요:


dependencies {

    // 안정 버전

    implementation("ai.koog:koog-agents:1.2.0")

    // 베타 버전

    implementation("ai.koog:koog-agents-additions:1.2.0-beta")

}

dependencies {

    // 안정 버전

    implementation 'ai.koog:koog-agents:1.2.0'

    // 베타 버전

    implementation 'ai.koog:koog-agents-additions:1.2.0-beta'

}
xml

<dependency>

    <!-- 안정 버전 -->

    <dependency>

        <groupId>ai.koog</groupId>

        <artifactId>koog-agents-jvm</artifactId>

        <version>1.2.0</version>

    </dependency>

    <!-- 베타 버전 -->

    <dependency>

        <groupId>ai.koog</groupId>

        <artifactId>koog-agents-additions-jvm</artifactId>

        <version>1.2.0-beta</version>

    </dependency>

</dependency>

LLM 제공업체로부터 API 키를 발급받거나 Ollama를 통해 로컬 LLM을 실행하세요.

자세한 내용은 Quickstart를 참고하세요. 이 페이지의 예제들은 OPENAI_API_KEY 환경 변수가 설정되어 있다고 가정합니다.

Koog는 두 가지 간단한 플래너를 제공합니다:

  • SimpleLLMPlanner 처음에 한 번만 계획을 생성하고 완료될 때까지 그 계획을 따릅니다. 재계획(replanning)을 포함하려면 SimpleLLMPlanner를 확장하고 assessPlan 메서드를 오버라이드하여, 에이전트가 언제 재계획을 수행해야 하는지 표시하십시오.
  • SimpleLLMWithCriticPlanner LLM 요청을 통해 계획의 유효성을 확인하고 에이전트가 재계획을 해야 하는지 평가하는 LLM을 사용하는 assessPlan 메서드를 구현합니다.

다음 예제는 SimpleLLMPlanner를 사용하여 간단한 플래너 에이전트를 생성하는 방법을 보여줍니다:

kotlin
// 플래너 생성
val planner = SimpleLLMPlanner()

// 플래너 전략으로 감싸기
val strategy = AIAgentPlannerStrategy(
    name = "simple-planner",
    planner = planner
)

// 에이전트 구성
val agentConfig = AIAgentConfig(
    prompt = prompt("planner") {
        system("You are a helpful planning assistant.")
    },
    model = OpenAIModels.Chat.GPT4o,
    maxAgentIterations = 50
)

// 플래너 에이전트 생성
val agent = PlannerAIAgent(
    promptExecutor = simpleOpenAIExecutor(System.getenv("OPENAI_API_KEY")),
    strategy = strategy,
    agentConfig = agentConfig
)

suspend fun main() {
    // 작업을 사용하여 에이전트 실행
    val result = agent.run("Create a plan to organize a team meeting")
    println(result)
}
java
// LLM 기반 플래너를 사용한 플래너 전략 생성
AIAgentPlannerStrategy<String, String> strategy =
    Planners.llmBased("simple-planner")
        .build();

// OpenAI 실행기(executor) 생성
var promptExecutor = PromptExecutor.builder()
    .openAI("OPENAI_API_KEY")
    .build();

// AIAgent 빌더를 사용하여 플래너 에이전트 생성
AIAgent<String, String> agent = AIAgent.builder()
    .plannerStrategy(strategy)
    .promptExecutor(promptExecutor)
    .llmModel(OpenAIModels.Chat.GPT4o)
    .systemPrompt("You are a helpful planning assistant.")
    .maxIterations(50)
    .build();

// 작업을 사용하여 에이전트 실행
String result = agent.run("Create a plan to organize a team meeting");
System.out.println(result);

다음 단계