LLM 기반 플래너
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);다음 단계
- GOAP 에이전트에 대해 알아보기
