Skip to content

如何设计一个生产级的 Agent 系统架构?需要考虑哪些关键模块? ​

  • 标签:AI、大模型、Agent

🏛 业务架构师 ​

生产级 Agent 系统的关键模块,我按"一个平台六大模块"讲:

  1. Agent 运行时:推理循环引擎、工具调用执行、上下文装配——参考 LangGraph/OpenClaw 的 Runner 设计,支持配置化定义 Agent;
  2. 上下文与记忆管理:窗口裁剪、摘要压缩、Compaction、长期记忆存取(向量库+结构化档案)——成本与效果的核心调节器;
  3. 工具层(MCP 体系):工具注册中心、Schema 规范、权限管道、幂等执行、结果限幅——Agent 的"手"要统一治理;
  4. 模型网关:多 Provider 路由(按任务/成本/密级分流)、降级切换、限流配额、token 计量——不被单厂商绑定;
  5. 治理与安全:鉴权(用户/Agent/工具三级)、审计日志全链路、护栏(输入输出内容安全)、敏感数据脱敏、预算管控;
  6. 可观测与评估:全链路 trace(每步输入输出延迟成本)、评测集回归、线上指标看板(完成率/熔断率/单任务成本/人工接管率)。

再加两块组织能力:知识运营(知识库/Skills 的更新机制)和值班响应(Agent 事故的 oncall 流程)。

建设顺序建议:运行时+模型网关先跑通业务闭环 → 治理与可观测随第一个生产客户同步建 → 记忆和工具生态按场景迭代。最大的反面教材是六个月建平台不接业务——生产级能力是在真实流量里长出来的,不是画架构图画出来的。

🏗 系统架构师 ​

生产级 Agent 系统架构我按**"核心层 + 横切层 + 治理层"**讲,这是我搭 Agent 平台的骨架:

核心链路(东西向):

  • 接入层:多渠道适配(API/IM/Webhook)→ 统一消息协议 + 网关(鉴权、限流、幂等去重、路由到 Agent);
  • 编排层:Agent Runner(执行循环)+ 规划器(任务分解);复杂任务走图编排(LangGraph 类),支持子 Agent 委派(上下文/权限隔离);
  • 能力层:工具注册与执行(MCP 接入、沙箱运行、权限管道)、RAG 检索服务、代码执行环境(独立沙箱池);
  • 模型层:多模型路由(按任务复杂度分级:小模型分类/大模型推理)、推理服务(vLLM 自托管 or API)、降级链(主模型故障切备用)。

横切支撑(南北向):

  • 上下文引擎:窗口预算、Compaction、记忆检索(长期记忆库:向量 + 结构化);
  • 状态持久化:会话/任务/checkpoint 存储(Postgres + Redis),断点恢复;
  • 可观测:全链路 trace(每步 LLM 调用、工具调用)、成本计量(token/任务维度)、审计日志。

治理层(生产分水岭):

  • 安全:护栏(输入输出过滤)、工具权限分级、高危人工审批、Prompt 注入防御、沙箱隔离;
  • 稳定性:熔断(步数/token/成本三重保险)、降级(Agent 挂了回退规则/人工)、多租户配额;
  • 质量迭代:评估流水线(金标集 + LLM Judge)、badcase 回流、灰度发布。

容量要点:GPU 推理集群按 QPS × 平均 token 规划 + PD 分离;工具沙箱按并发任务数弹性扩缩。一句话总结:模型是发动机,这套架构是整车——发动机决定上限,整车决定能不能上路。

💻 全栈开发专家 ​

生产级 Agent 系统我按七模块设计(自上而下):

  1. 接入层(Gateway):多渠道适配、鉴权、限流、幂等去重、路由(消息→Agent);
  2. 编排层(Agent Runner):执行循环、任务状态机(持久化,可断点恢复)、子 Agent 派生与取消传播;
  3. 上下文引擎:窗口/摘要/记忆检索的装配策略(可插拔),token 预算管理——成本与质量的最大杠杆;
  4. 工具层:工具注册(schema 规范化)、JSON Schema 参数校验、执行沙箱(超时/资源限制)、幂等键、MCP 集成;
  5. 权限与安全层:分级策略管道(allow/deny/confirm)、提示注入检测、输出脱敏、高危操作人工审批;
  6. 记忆与存储层:会话存储(DB)、长期记忆(向量+KV)、任务产物(对象存储);
  7. 可观测与评估层:全链路 trace(每步输入输出)、token 计费看板、badcase 回放、离线评测集回归、灰度 AB。

横切关键设计:

  • 预算刹车无处不在:步数、token、金额、时间,超限优雅收尾;
  • 一切可重放:任务状态外置(进程崩了能恢复),trace 落库(出问题能回放定位);
  • 降级路径:模型故障切备用、工具失败错误回喂自纠、全链失败转人工——SLA 靠降级而不是靠模型不犯错。

部署形态:无状态 Runner 多实例 + 消息队列削峰 + 模型网关(多 provider 路由/重试)。经验总结:demo 看 1、2 模块,生产赢在 5、7 模块——权限和可观测做得好,Agent 才被允许进生产。