智能体
AI 智能体是能够自主推理、做出决策、与环境交互并执行行动以实现特定目标的自治系统。在 Koog 中,AI 智能体不仅仅是围绕 LLM 的简单封装;它是一个为 JVM 生态系统设计的结构化、类型安全的状态机。
Koog 智能体围绕以下核心概念构建:
- 提示执行器 负责管理和执行提示,使智能体能够与 LLM 交互以进行推理和决策。
- 策略 定义了智能体的工作流程。它可以是有向图、函数或规划器的形式。详见智能体类型。
- 智能体可以使用工具与外部数据源和服务进行交互。
- 您可以使用功能特性来扩展和增强 AI 智能体的功能。
Tip
有关创建和运行一个最小化智能体的信息,请参阅快速入门。
智能体类型
根据您需要执行的任务,Koog 提供了多种智能体类型:
- 基础智能体 适用于不需要任何自定义逻辑的简单任务。这些智能体实现了适用于大多数常见用例的预定义策略。
- 基于图的智能体 提供了对智能体工作流程、状态管理和可视化的完全控制和灵活性。
- 函数式智能体 使您能够快速将自定义逻辑原型化为一个函数,并访问智能体的上下文。
- 规划器智能体 能够通过迭代循环自主规划和执行多步骤任务,直到达到期望的最终状态。
智能体配置
智能体配置定义了智能体的执行参数,包括初始提示、语言模型和迭代限制。
Tip
有关创建和运行一个最小化智能体的信息,请参阅快速入门。
对于简单的智能体,除了必需的提示执行器和语言模型外,您可以直接在智能体构造函数中指定初始系统提示和其他一些参数:
或者,您可以创建一个 AIAgentConfig 实例来更精细地定义智能体的行为和参数,然后将其传递给智能体构造函数。这使您能够定义包含多条消息、对话历史、LLM 参数和附加执行参数的复杂提示。
=== "Kotlin"
val agentConfig = AIAgentConfig(
prompt = prompt(
id = "assistant",
params = LLMParams(
temperature = 0.7
)
) {
system("You are a helpful assistant.")
},
model = OpenAIModels.Chat.GPT4o,
maxAgentIterations = 10
)
val agent = AIAgent(
promptExecutor = simpleOpenAIExecutor(System.getenv("OPENAI_API_KEY")),
agentConfig = agentConfig
)
Prompt prompt = Prompt.builder("assistant")
.system("You are a helpful assistant.")
.build()
.withParams(new LLMParams(
0.7, // temperature
null, // maxTokens
1, // numberOfChoices
null, // speculation
null, // schema
LLMParams.ToolChoice.Auto.INSTANCE, // toolChoice
null, // user
null // additionalProperties
));
AIAgentConfig agentConfig = AIAgentConfig.builder(OpenAIModels.Chat.GPT4o)
.prompt(prompt)
.maxAgentIterations(10)
.build();
AIAgent<String, String> agent = AIAgent.builder()
.promptExecutor(simpleOpenAIExecutor(System.getenv("OPENAI_API_KEY")))
.agentConfig(agentConfig)
.build();
以下是 AIAgentConfig 的参数说明: