主要包含七个模块:Goal(目标)、State(状态)、Model(模型)、Tools(工具)、Memory(记忆)、Planner/Policy(决策逻辑)、Evaluator/Guardrails(评估与约束)。
Goal:目标(初始化)
- 解决什么样的问题
- 有什么样的输出
- 任务什么时候完成
系统到底在完成什么
State:状态(判断下一步)
- 当前任务输入
- 已完成的步骤
- 已获取的信息
- 中间分析结果
- 下一步待办
- 是否满足结束条件
系统当前处于哪一个状态
Model:模型(生成动作参数)
- 理解任务
- 解释上下文
- 决定下一步动作
- 生成结构化结果
- 生成最终输出
负责理解、推理和生成
Tools:工具(执行外部动作)
解决模型本身做不到的事情
- 搜索
- 数据库查询
- API请求
- 文件读写
- 代码执行
- 外部系统操作
让 Agent 获得外部能力
Memory:记忆
- 会话内记忆——当前任务过程中状态的延续
- 跨会话记忆——用于长期偏好、历史记录或用户画像
让系统不总是失忆(避免系统在任务间丢失上下文)
Planner/Policy:决策逻辑
- 下一步是否需要工具
- 需要哪个工具
- 是否继续收集信息
- 任务何时停止
决定接下来做什么
Evaluator/Guardrails:评估与约束(检查)
Evaluator:事后质量评估与反馈机制(判断做的好与不好)
Guardrails:实时运行时的安全拦截与约束机制(确保"不闯祸")
- 检查输出格式是否正确
- 检查证据是否充足
- 检查结果是否越权
- 控制低成本、延迟和工具调用
- 在必要时触发人工接管
防止系统看起来在工作,实际上在失控
做一个Agent之前应该搞清楚
- 目标是什么
- 状态里放什么
- 哪些能力必须通过工具获得
- 哪些决策交给模型,哪些决策交给程序
- 什么时候结束,什么时候失败,什么时候人工介入
Agent 不是一个“会自己动起来的模型”,而是一套模块协作的系统。