概述
Agent 是 AgentScope 框架的核心抽象,代表一个具有自主决策能力的智能体。它将大语言模型(LLM)的推理能力、记忆系统、工具调用等功能有机整合在一起,使得开发者能够构建具有感知、思考、行动能力的 AI 应用。 一个完整的 Agent 由以下核心组件构成:- Model(模型):提供语言理解和生成能力,是 Agent 的”大脑”
- Memory(记忆):存储对话历史和上下文信息,使 Agent 具有”记忆”
- Toolkit(工具集):赋予 Agent 执行外部操作的能力,如 API 调用、数据库查询等
- System Prompt(系统提示词):定义 Agent 的身份、角色和行为规范
- Hook(钩子):提供事件驱动的扩展机制,用于监控和定制 Agent 行为
Agent 类型
ReActAgent(推荐)
Reasoning + Acting,结合推理与工具执行的通用 Agent。- 需要调用工具的复杂任务
- 多轮对话应用
- 需要推理能力的问题解决
UserAgent
接收外部输入的 Agent(如命令行、Web UI)。- 命令行交互应用
- Web UI 集成
- 人机协作场景
核心配置项详解
1. 基础配置
name(必需)
Agent 的唯一标识名称。- 消息的发送者标识
- 日志和调试中的 Agent 识别
- 多 Agent 协作时的区分
sysPrompt
系统提示词,定义 Agent 的身份、职责和行为规范。2. 模型配置
model(必需)
LLM 模型实例,决定 Agent 的语言理解和生成能力。3. 记忆配置
memory(推荐)
存储对话历史,使 Agent 具有上下文记忆。4. 工具配置
toolkit(可选)
提供 Agent 可调用的工具集。- 赋予 Agent 执行外部操作的能力
- 通过工具组控制权限
- 支持动态激活/停用工具
5. 执行参数
maxIters
Agent 最大迭代次数(推理+工具执行循环)。checkRunning
控制是否检查 Agent 是否正在运行中。true
行为说明:
- 当值为
true(默认)时:如果在 Agent 处理前一个请求时再次调用call()方法,会抛出IllegalStateException异常,错误信息为 “Agent is still running, please wait for it to finish” - 当值为
false时:允许并发调用call()方法,不检查运行状态
checkRunning=true(默认):适用于大多数场景,防止并发执行导致的状态混乱checkRunning=false:- 无状态的 Agent(不维护对话状态)
- 需要并发处理请求的场景
- 性能测试或压力测试
- 设置
checkRunning=false时,请确保 Agent 实现是线程安全的或无状态的 - 并发调用可能导致记忆和上下文状态不一致
- 对于真正的并发处理,建议使用独立的 Agent 实例
modelExecutionConfig
模型调用的执行配置,控制超时和重试行为。ReActAgent 的推理阶段(ReasoningPipeline),会将此配置注入到 GenerateOptions 中:
- 超时:5 分钟
- 最大尝试:3 次(初始 + 2 次重试)
- 初始退避:2 秒
- 最大退避:30 秒
- 退避倍数:2.0(指数退避)
- 重试条件:可重试错误(429、5xx、超时、网络 IO 错误)
- 调整模型 API 的超时时间
- 配置重试策略(网络不稳定场景)
- 针对特定错误进行重试
- 控制退避策略
toolExecutionConfig
工具调用的执行配置,控制工具执行的超时和重试行为。ReActAgent 的执行阶段(ActingPipeline),调用 toolkit.callTools() 时传入此配置:
- 超时:5 分钟
- 最大尝试:1 次(不重试)
- 工具调用通常不建议重试,因为可能有副作用(如写数据库、发送邮件)
- 如果需要重试,请确保工具是幂等的
- 对于长时间运行的工具,适当增加超时时间
ExecutionConfig 支持参数级别的配置合并:
6. Hook 配置
hook / hooks
事件监听器,用于监控和扩展 Agent 行为。7. 结构化输出
structuredOutputReminder
结构化输出的提醒模式。8. 工具执行上下文
toolExecutionContext
传递给工具的隐藏上下文对象。- 传递用户身份信息
- 提供数据库连接
- 注入配置对象
- 传递请求上下文
9. 计划管理 (PlanNotebook)
planNotebook
PlanNotebook 为 Agent 提供结构化的计划管理能力,适用于复杂多步骤任务。它通过提供工具函数让 Agent 创建、修改、跟踪计划,并通过 Hook 机制自动注入上下文提示。
核心功能:
- 计划管理:创建、修订、完成多子任务计划
- 自动提示注入:在每次推理前自动注入上下文提示
- 状态跟踪:跟踪子任务状态(todo/in_progress/done/abandoned)
- 历史计划:存储和恢复历史计划
10. Formatter 配置
Formatter 负责在 AgentScope 格式和模型 API 格式之间转换。11. 技能配置
skillBox(可选)
提供 Agent 可用的技能集。它通过提供工具函数让 Agent 加载技能,并通过 Hook 机制自动注入技能提示。- 赋予 Agent 使用技能的能力
- 通过技能集控制技能的加载和使用
- 支持动态加载和卸载技能
综合配置示例
以下示例展示了所有核心配置项的完整用法:具体参数的细节配置可以参考对应的文档进行了解与配置。