Skip to content

以 LLM 為基礎的規劃器

Beta

此功能是 beta 模組 (1.2.0-beta) 的一部分。API 可能會在未來的版本中變更。

請參閱 模組版本管理 以了解詳細資訊。

以 LLM 為基礎的規劃器使用 LLM 來產生與評估計畫。 它們在字串型狀態下運作,並透過 LLM 請求執行步驟。 字串型狀態意味著代理狀態是一個單一字串。 在每個步驟中,代理會接受一個初始狀態字串,並傳回最終狀態字串作為結果。

先決條件

確保您的環境與專案符合以下需求:

  • JDK 17+

  • Kotlin 2.2.0+

  • Gradle 8.0+ 或 Maven 3.8+ 將 Koog 軟件包 新增為相依性:


dependencies {

    // 穩定版

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

    // Beta

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

}

dependencies {

    // 穩定版

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

    // Beta

    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>

    <!-- Beta -->

    <dependency>

        <groupId>ai.koog</groupId>

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

        <version>1.2.0-beta</version>

    </dependency>

</dependency>

從 LLM 提供商獲取 API key,或透過 Ollama 執行本機 LLM。

若要了解更多資訊,請參閱 快速入門。 此頁面上的範例假設您已設定 OPENAI_API_KEY 環境變數。

Koog 提供兩種簡單的規劃器:

  • SimpleLLMPlanner 僅在最開始時產生一次計畫,然後遵循該計畫直到完成。 若要包含重新規劃,請擴充 SimpleLLMPlanner 並覆寫 assessPlan 方法, 指出代理何時應重新規劃。
  • SimpleLLMWithCriticPlanner 實作了 assessPlan 方法,該方法使用 LLM 透過 LLM 請求檢查計畫的有效性, 並評估代理是否應重新規劃。

以下範例顯示如何使用 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 執行器
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);

下一步