Agent 开发:从单轮问答到可执行智能体
📅 主题:Agent 架构、规划执行、记忆与评估
一、什么是 Agent
在 LLM 场景里,Agent(智能体) 通常指:
- 能理解目标(而不只是回答一个问题)
- 能调用工具(搜索、代码执行、API、数据库等)
- 能分解任务并迭代执行
- 能基于中间结果继续决策
所以 Agent 不只是“会聊天的模型”,而是一个「模型 + 工具 + 工作流 + 状态」的系统。
一句话:LLM 提供推理与生成,Agent 提供行动与闭环。
二、Agent 与传统 Prompt 应用的区别
| 维度 | 传统 Prompt 应用 | Agent 应用 |
|---|---|---|
| 任务粒度 | 单轮或少轮问答 | 多步骤目标驱动 |
| 外部能力 | 很少或固定 | 按需调用多工具 |
| 状态管理 | 基本无状态 | 维护上下文、记忆、任务进度 |
| 失败处理 | 用户重试 | 具备重试、回滚、替代策略 |
| 结果形态 | 一段文本 | 文本 + 操作结果 + 结构化输出 |
这也是为什么 Agent 开发往往更像“后端系统开发”,而不仅是 Prompt 调优。
三、典型 Agent 架构
一个常见的工程化 Agent,通常包含以下模块:
Planner(规划器)
- 把用户目标拆成子任务(例如:先检索资料 → 再分析 → 再输出报告)
Executor(执行器)
- 实际执行步骤,调用工具或子 Agent
Tool Router(工具路由)
- 决定当前步骤该用哪个工具,并做参数校验
Memory(记忆)
- 短期记忆:当前会话上下文
- 长期记忆:用户偏好、历史任务结论、知识沉淀
State / Store(状态存储)
- 记录任务状态、中间结果、重试次数、日志
Guardrail(安全护栏)
- 权限控制、敏感操作确认、输出合规检查
Evaluator(评估器)
- 检查结果是否达标,不达标则触发修正或重试
四、核心能力设计
4.1 规划与分解
Agent 要做复杂任务时,应先明确:
- 目标是什么(输出格式、成功标准)
- 子任务顺序(串行/并行)
- 每个子任务依赖什么数据
可选策略:
- 一步步规划(Plan-then-Execute):先出计划再执行,适合任务清晰、可审计场景
- 边想边做(ReAct 风格):推理与行动交替,适合动态环境和探索型任务
4.2 工具调用
工具调用是 Agent 开发的关键。实践上建议:
- 工具输入输出尽量结构化(JSON Schema)
- 调用前做参数验证(类型、范围、权限)
- 失败时提供重试策略与降级路径
- 对副作用操作(写库、发消息、执行命令)加确认机制
4.3 记忆设计
可把记忆分三层:
- 会话记忆:当前任务中的中间过程(短期)
- 用户记忆:偏好、背景、长期目标(长期)
- 知识记忆:文档、经验、SOP(通常通过 RAG/索引读取)
记忆要可追溯、可更新、可删除,避免“积累脏上下文”。
4.4 反思与纠错
成熟 Agent 不应一次失败就结束,通常要有:
- 结果自检(是否满足约束)
- 失败分类(工具错误、检索不足、推理错误)
- 自我修正(补检索、换工具、重写方案)
这类闭环可显著提升复杂任务的稳定性。
五、Agent 开发流程(实战建议)
阶段 1:先做单任务 MVP
选一个高频且明确的场景,比如:
- 文档问答 Agent
- PR 变更解读 Agent
- 日报/周报生成 Agent
先完成“从输入到可用输出”的闭环,不要一上来追求全能。
阶段 2:引入工具与数据
- 接入检索(RAG)
- 接入外部工具(API、数据库、文件系统)
- 打通基础权限与审计
阶段 3:增加规划与状态管理
- 拆分步骤
- 记录状态与中间结果
- 增加重试与超时控制
阶段 4:加评估与护栏
- 结果质量评估(准确率、引用率、任务完成率)
- 安全检查(敏感词、越权、数据泄露)
- 人在回路(高风险步骤需人工确认)
六、与 RAG、MCP、Skills 的配合
RAG:解决“Agent 知识从哪来”
- 在每个步骤前按需检索,减少幻觉
- 参考文档可要求输出引用
MCP:解决“Agent 能调用哪些能力”
- 通过标准协议接入工具与资源
- 让 Agent 能跨系统执行动作
Skills / Agent Skills:解决“Agent 应该怎么做”
- 把流程、规范、模板封装成可复用技能
- 降低行为漂移,提高一致性
可以理解为:
- RAG = 知识层
- MCP = 能力层
- Skills = 策略层
- Agent = 决策与执行层
七、常见坑与规避
提示词堆砌但无状态管理
- 规避:建立明确 state,记录每一步输入输出
工具很多但不会选
- 规避:加工具路由与工具描述规范,限制默认可用集合
上下文爆炸
- 规避:做上下文裁剪、摘要与优先级管理
无评估只看“感觉可用”
- 规避:定义可量化指标(完成率、错误率、平均耗时)
高风险操作无护栏
- 规避:权限分级 + 人工确认 + 操作日志
八、小结
- Agent 开发本质是系统工程:模型 + 工具 + 状态 + 护栏 + 评估。
- 从单任务 MVP 起步,逐步增加工具、记忆、规划和评估,比一次性做“大而全”更稳。
- 工程落地重点不是“模型有多强”,而是“流程是否可控、可观测、可迭代”。
- 与 RAG、MCP、Skills 结合后,Agent 才能形成完整生产力闭环。
当你把 Agent 当成一个可演进的产品来做,而不是一个临时 Prompt,效果通常会发生质变。