CreateAgent vs CreateReactAgent
LangGraphGo 提供了两种预构建 Agent 的方法:CreateAgent 和 CreateReactAgent。虽然它们都用于创建基于 ReAct
模式的 Agent,但在灵活性和配置选项上有所不同。
1. CreateReactAgent
功能简介
CreateReactAgent 是最基础的构建器。它旨在以最少的配置快速启动一个 ReAct Agent。
特点
- 简单易用:仅需提供 LLM 模型和工具列表。
- 零配置:不支持自定义系统提示词或状态修改逻辑。
- 快速原型:适合用于测试工具或构建简单的演示。
代码示例
// 仅需模型和工具
agent, err := prebuilt.CreateReactAgent(model, tools)
2. CreateAgent
功能简介
CreateAgent 是一个更高级、更灵活的构建器。它采用了 Go 语言常见的 Option 模式,允许用户对 Agent 的行为进行精细控制。
配置选项
WithSystemMessage(string): 设置系统提示词 (System Prompt),用于定义 Agent 的角色和行为准则。WithStateModifier(func): 允许在将消息发送给模型之前,对消息历史进行自定义修改(例如过滤掉过早的历史消息,或添加特定的上下文)。WithCheckpointer(CheckpointStore): 设置检查点保存器,启用状态持久化和记忆功能。
适用场景
- 生产环境应用。
- 需要设定特定角色(如"你是一个有用的助手...")的场景。
- 需要管理长对话历史或持久化状态的场景。
代码示例
// 使用 Option 模式进行配置
agent, err := prebuilt.CreateAgent(
model,
tools,
prebuilt.WithSystemMessage("你是一个专业的 Golang 编程助手。"),
prebuilt.WithCheckpointer(checkpointer),
)
3. 对比总结
| 特性 | CreateReactAgent | CreateAgent |
|---|---|---|
| 配置灵活性 | 低 | 高 |
| 系统提示词 | 不支持 | 支持 (WithSystemMessage) |
| 状态持久化 | 不支持 (默认) | 支持 (WithCheckpointer) |
| 推荐用途 | 简单测试、原型 | 生产环境、复杂应用 |