摘要:拆解工程化Agent三层核心架构(规划、记忆、执行),讲解分层记忆、Token压缩、DAG任务调度、异常管控等落地要点,适合快速搭建可稳定跑长任务的生产级Agent。
很多Agent项目停留在Demo阶段:简单prompt+单次LLM调用,一旦任务复杂、会话变长就容易失效。生产Agent的核心比拼点是长任务稳定性、记忆可控、Token成本、异常容错。本文聚焦工程落地,不讲虚理论。
一、Agent三层核心架构
工程化Agent由规划层Planner、记忆层Memory、执行层Executor组成闭环:用户输入 → 任务拆解 → 子任务执行 → 结果回传 → 更新记忆 → 继续规划/结束。
1. Planner 规划层(大脑)
负责目标校验、任务拆分、状态追踪、失败重规划。
-
校验需求,信息缺失时主动追问补参数
-
将复杂目标拆成串行/并行子任务,生成DAG任务清单
-
跟踪子任务状态:待执行/运行中/成功/失败
-
任务失败自动重规划,设置最大重试阈值防死循环
原则:规划只负责思考,工具调用、数据查询交给执行层,职责解耦。
2. Memory 记忆层(记忆仓库)
区分三类记忆,解决上下文窗口有限、长任务失忆问题:
- 短时记忆:当前对话上下文,受Token上限约束
- 工作记忆:本次任务临时变量、中间结果,任务结束可清理
- 长效记忆:跨会话持久信息,存入向量库,相似度检索召回,不占用上下文Token 核心目标:保留关键信息、过滤冗余,控制上下文长度。
3. Executor 执行层(手脚)
接收子任务,调用各类工具:RAG检索、DB查询、API、代码执行、文件读写。 必须内置:参数校验、超时捕获、异常处理、结果标准化,执行完成回传结构化结果给规划器。
二、Token压缩方案(解决上下文溢出)
单纯放大窗口会拉高延迟与成本,组合策略压缩:
-
摘要压缩:历史对话生成结构化摘要,丢弃冗余话术
-
信息抽取:提取实体、结论、动作,输出JSON,可省50%-70%Token
-
RAG召回过滤:只召回和当前任务相关记忆,无关内容直接过滤
-
滑动窗口:旧对话摘要归档到长记忆,而不是直接删除
避坑:不要过度压缩,必须保留数字、ID、状态标记;用低成本小模型做摘要。
三、长效记忆实现
结构化记忆单元存入Milvus/PGVector/Chroma向量库,核心字段: memory_id、content、embedding、memory_type、时间戳、相关性分数、过期时间、关联任务ID
- 写入:任务结束后提取关键信息,摘要+向量化入库
- 召回:根据当前query检索Top-N相关记忆
- 衰减机制:长期未访问记忆自动降低权重,减少召回优先级
- 幻觉规避:记忆添加来源标记,检索结果交由LLM二次校验
四、任务拆解 & 调度实战
任务拆解Prompt要点
强制输出JSON,拒绝自由文本,支持识别依赖关系:
- 信息不足返回
need_info,列出待补字段 - 子任务包含:task_id、名称、描述、依赖ID、工具名
- 并行任务依赖ID置为null,自动构建DAG图
状态机调度
子任务状态流转:pending → running → success / failed
- 无依赖任务并行执行,依赖任务等待前置成功
- 失败分支:重试、终止、触发重规划三选一
五、生产落地必看管控手段
- 超时熔断:LLM、工具独立超时,单任务设置Token上限,防止级联阻塞
- 可观测性:全局trace_id,埋点统计耗时、Token消耗、召回指标、错误分类
- 安全隔离:工具权限管控,用户记忆数据隔离,拦截高危操作
- 灰度上线:先验证规划模块,从轻量任务逐步放量,持续沉淀失败案例
六、小结
Demo Agent靠Prompt;企业级Agent是一套稳定系统。 核心要点:三层架构解耦、分层记忆+向量检索控Token、DAG状态机调度、配套超时熔断与监控。 这套架构可直接用于知识库智能体、自动化运维、业务流程助手等场景。后续会放出完整工程代码。