2026 AI Agent落地全景:从Demo到生产环境的五道坎
2026 年,一个 6 人平台团队用 Dify 拖了一个工单助手:读飞书工单,查订单,给退款建议,必要时拉群审批。演示很顺。上线两周,QA 发现三类问题:没有订单号也敢继续问用户要地址;同一个退款请求被重复提交;客服主管看不到 Agent 为什么拒绝。Demo 能跑,生产要补的是工程约束。拆法按规划、记忆、工具调用、评估、权限五道坎走,再对比 LangGraph、Dify、Coze、MCP 的选型边界。
规划:把“让模型自己拆”改成有限状态机
Demo 常见做法:一个 system prompt 写“你是退款助手,请自行规划”。模型可能先查物流、再查订单、再问用户,顺序每次不同。生产环境需要可复现、可中断、可审计。
动作:
- 列出状态:收单、字段校验、查订单、风控、审批、执行退款、回复、失败归档。
- 明确每个状态允许的下一步,禁止跳步。
- 给每个状态设超时、最大重试、人工接管条件。
- 把模型放在需要语言理解或分类的状态,不要让它控制全局转移。
如果不用 LangGraph,也可以用 Dify 工作流或自写状态机。关键是把转移条件写进代码或图,不写进提示词。
记忆:会话、任务、知识分开存
把所有历史塞进上下文,Token 会涨,且模型会拿旧地址回答新工单。生产里至少分三层:
- 会话记忆:最近几轮对话,保留原始消息,设窗口和摘要。
- 任务记忆:订单号、用户 ID、风控结果、审批状态,存数据库或 LangGraph checkpointer。
- 长期知识:退款政策、商品规则、FAQ,放向量库或检索服务,每次带引用来源。
写数据保留策略:会话 30 天、审计日志 180 天、向量索引按文档权限过滤。具体天数按公司合规要求改。
工具调用:读工具和写工具分权
工具调用翻车常见原因:契约太松。给每个工具写清楚:
- 名称、用途、参数 JSON Schema、必填项、枚举值。
- 超时、重试次数、退避策略。
- 幂等键,写操作必须带 request_id。
- 返回值裁剪,别把 10MB JSON 塞回模型。
- 错误码分类:可重试、不可重试、需要用户补充。
写工具示例:
- 查订单:只读,允许客服角色调用。
- 改地址:写,需要用户二次确认,记录前后值。
- 执行退款:写,需要审批状态为 approved,幂等键为退款单号。
- 发通知:写,限制频次,避免刷屏。
评估:离线集看正确率,在线轨迹看过程
只看最终回答对不对,会漏掉过程错误:工具调错、参数错、重复调用、越权。评估分两层:
- 离线评估:准备 50-200 条真实工单,标注期望状态转移、工具调用和最终结果。每次改 prompt、模型、工具后跑一遍。
- 在线评估:抽样生产轨迹,记录任务成功率、工具调用正确率、参数错误率、平均轮次、P95 延迟、单次成本、人工升级率。
指标不要只看“准确率”。退款 Agent 更关心:错误退款金额、越权操作次数、人工接管率、用户二次追问率。
权限:身份透传、最小权限、审批和审计
Agent 不应该拥有一个超级账号。用户是谁,Agent 就以谁的身份或受限服务身份调用。做法:
- 入口鉴权:SSO/OAuth 拿到用户身份和角色。
- 工具级 ACL:订单查询按用户 ID 过滤,客服只能看负责的租户。
- 写操作审批:退款、改地址、发券走审批状态机,人工点确认。
- 审计日志:记录谁、何时、通过哪个 Agent、调了什么工具、参数、结果、模型版本、提示词版本。
- 租户隔离:向量库、数据库、日志按 tenant_id 分区。
| 工具 | 角色 | 读/写 | 审批 | 审计 |
|---|---|---|---|---|
| 查订单 | 客服 | 读 | 否 | 是 |
| 查风控 | 客服/主管 | 读 | 否 | 是 |
| 改地址 | 客服 | 写 | 用户确认 | 是 |
| 执行退款 | 主管 | 写 | 主管审批 | 是 |
| 导出日志 | 安全 | 读 | 否 | 是 |
路线对比:LangGraph、Dify、Coze、MCP 怎么放
四者不在同一层。LangGraph 是编排库,Dify 和 Coze 是应用平台,MCP 是工具连接协议。可以组合,不必二选一。
| 路线 | 定位 | 适合阶段 | 规划控制 | 记忆 | 工具 | 评估与监控 | 权限 | 主要成本 |
|---|---|---|---|---|---|---|---|---|
| LangGraph | 代码优先的图状态机 | 复杂长流程、人审、多 Agent | 强,状态和边可代码控制 | checkpointer 支持 Postgres/SQLite 等 | 自定义工具,可接 MCP | 配 LangSmith/LangFuse | 需自己接身份和审批 | 开发人力、托管 |
| Dify | 开源 LLM 应用平台 | 快速做 RAG、工作流、内部工具 | 中,工作流可视化 | 会话变量、知识库 | 插件、自定义 API,可接 MCP | 有日志和标注,深度追踪要外接 | 工作区权限,细粒度需自建 | 自托管服务器或云版订阅 |
| Coze | 低代码 Bot/工作流平台 | 渠道分发、轻量 Bot、快速验证 | 中,工作流和 Bot 编排 | 变量、数据库、知识库 | 插件生态丰富 | 平台内日志,企业治理看版本 | 平台账号体系,内部系统要网关 | 平台订阅、配额 |
| MCP | 工具/数据连接协议 | 统一内部工具接入 | 不负责规划 | 不负责记忆 | 强,标准 JSON-RPC | 需配合追踪 | 需在 server 侧做 ACL | 开发 server、维护协议版本 |
- 两周内验证业务价值:Dify 云版或 Coze,先不接写操作。
- 流程有 5 个以上状态、需要人工审批、需要恢复现场:LangGraph,Postgres checkpointer,LangFuse。
- 公司已有多个内部系统要接给不同 Agent:先做 MCP server 规范,再选编排层。
- 数据不能出域:Dify 自托管或 LangGraph 自建,模型走私有部署或合规云。
- 渠道在抖音、飞书、微信:Coze 的发布能力省事,但写操作仍走内部网关。
成本:把账单拆成六块
生产 Agent 的成本要按六块算:
- 模型 token:输入、输出、缓存命中、推理模型单价。
- 检索与嵌入:向量库、嵌入模型、文档解析。
- 工具 API:内部系统、短信、支付、搜索。
- 沙箱与浏览器:代码执行、网页操作。
- 可观测:trace 存储、日志、告警。
- 人工:标注、审核、客服接管、运维。
- 模型路由:分类、抽取用小模型,复杂规划用大模型。
- 缓存:固定知识、FAQ、工具查询结果按权限缓存。
- 上下文裁剪:只带当前状态需要的字段,摘要旧对话。
- 预算:按租户、按 Agent、按天设 token 和工具调用上限,超限转人工。
- 评估:每次模型或 prompt 变更前后跑成本对比,避免准确率涨一点、成本翻倍。
监控:至少盯这 8 个信号
- 任务成功率
- 工具调用错误率
- 参数校验失败率
- P95 延迟
- 单次任务 token 成本
- 人工升级率
- 权限拒绝次数
- 重复写操作次数
组织落地:先选一条可人工兜底的流程
从客服退款、销售线索清洗、运维告警摘要里选一条。条件:输入输出清楚,有历史数据,错了能人工改,不直接碰大额资金。角色分工建议:
- 业务 owner:定义成功标准和例外处理。
- Agent 工程师:编排、工具、提示词、评估集。
- 平台/SRE:模型网关、密钥、追踪、预算告警。
- 安全/合规:权限矩阵、审计、数据保留。
- 审核/标注:抽样检查,维护评估集。
- 第 1 周:画状态图,列工具和权限矩阵。
- 第 2 周:做只读 Demo,接 3 个工具。
- 第 3-4 周:建 50 条离线评估,补写操作审批。
- 第 5-8 周:灰度 5%-10% 流量,人工兜底,周复盘。
- 第 9 周后:按指标扩场景,别一次接 10 个流程。
现在就能做的一件事
选一个内部流程,拉上业务和安全,填完这张表:状态列表、每个状态允许的工具、读/写、审批人、审计字段、失败兜底。填不出来的地方,就是上生产前要补的坑。填完再决定用 LangGraph、Dify、Coze 还是 MCP 组合。