先说一个被叫停的项目。某制造企业的售后工单场景,演示时字段抽取准确率 92%,业务负责人当场同意试点。上线第 11 天,项目被要求暂停——原因不是答错问题,而是智能体在整理客户档案时,判断某批客户「近半年无成交」,把 37 个客户的等级从 A 直接写成了 C。名单里包括三个正在谈年度框架的客户。
这件事的根因不在模型能力。第一,它拿到了写权限,而写操作根本没有灰度;第二,字段口径没有对齐——系统里的「成交」只统计已开票订单,框架合同不算;第三,误写之后没有人能在十分钟内把数据改回去。
所以「AI 智能体怎么接进业务系统」这个问题,真正的难点不在会不会调接口,而在能不能说清楚:哪些动作只能读、哪些可以写、写错了怎么退。我们把这件事拆成三个集成点。
| 集成点 | 典型动作 | 出错代价 | 上线前必须完成 |
|---|---|---|---|
| 读接口 | 查客户、查订单、查库存 | 越权查看、口径误读 | 行级权限下沉 + 字段白名单 |
| 写接口 | 改等级、建工单、发通知 | 数据污染、客户流失 | 幂等键 + 差异回显 + 字段限制 |
| 事件回流 | 状态回写、失败重试 | 闭环断裂、用户不信任 | 死信队列 + 超时降级人工 |
集成点一:读接口,难点不在连通,在行级权限
只读集成通常一周就能跑通,因为它最容易验证:问一个问题,看返回对不对。但真正决定它能不能上生产的,是三个容易被跳过的细节。
权限必须在服务端执行。很多团队在提示词里写「你只能查询本部门的数据」,这不叫权限控制,叫请求。模型可以被诱导、可以被绕过,正确的做法是把权限收敛成一组「查询模板」:智能体只能选择模板并填入参数,无法自行拼接查询语句。模板背后绑定的是当前登录人的身份,权限判断在数据侧完成。
字段口径必须先对齐。同一个「活跃客户」,销售系统按最近一次跟进算,财务系统按最近一次开票算,客服系统按最近一次工单算。三个口径在报表里并存多年没人较真,一旦交给智能体做判断,它会把三套口径混着用,输出一个任何部门都不认的结论。集成前必须指定唯一口径,并在接口文档里写清楚。
返回字段要做白名单裁剪。业务表往往字段很宽,包含手机号、身份证、银行账号。这些字段默认不应该进入模型上下文,既为合规,也为成本——一次返回二十个无关字段,输入 token 会翻倍。
集成点二:写接口,四个约束一个都不能少
写操作是智能体从「工具」变成「同事」的分界线,也是风险集中的地方。我们的做法是给所有写能力套四个约束。
- 幂等键:每次写入携带「业务单号 + 动作类型」作为幂等键,重复调用只生效一次。重试机制在没有幂等保护的情况下,是数据重复的最大来源。
- 差异回显:执行前把字段修改前后值以表格形式呈现给操作人,确认后才落库。这一步无法被提示词替代。
- 字段限制:金额、客户等级、合同状态、库存数量这类强影响字段不开放直写,智能体只能生成待办,由具备权限的人点击确认。
- 可逆设计:所有写入走软删除与版本号,任何一次变更都能定位到操作人与时间点,并支持一键回滚到上一个版本。
集成点三:事件回流,没有闭环就不算上线
很多项目在「智能体成功调用了接口」这一步就宣布完成。但用户关心的是另一件事:我让它办的事,到底办成了没有。
事件回流包含三层。第一层是状态回写:工单是否创建成功、是否已分派、预计处理时长,要能主动告诉用户,而不是让用户自己去系统里翻。第二层是失败重试:网络抖动、下游限流、字段校验失败要分类处理,可重试的进重试队列,不可重试的直接暴露给人工。第三层是死信与降级:超过设定时限仍未完成的请求进入死信队列,同时按 SLA 触发人工介入,比如五分钟未完成就自动转人工并通知责任人。
这一层最容易被省略,也最影响信任。智能体说「已经帮您提交了」,用户第二天发现单子根本没进系统,之后无论准确率多高,他都不会再用第二次。
回滚清单:出事时能退回去,比不出事更重要
上线评审时我们只问一个问题:如果明天上午这个智能体开始犯错,你多久能把它关掉、多久能把数据改回来?答案不清楚的项目,一律不给写权限。
- 场景开关:按租户、部门、场景三级独立开关,关闭后写能力立即失效,读能力可保留。要求实测关闭耗时,通常应在三十秒内。
- 灰度比例:新写能力按 5%、20%、50% 三档放出,每档观察不少于三个工作日,重点是看误写率而非采纳率。
- 数据快照:每次写入前后归档差异快照,保留期不短于一个季度,用于复盘、审计与责任界定。
- 回滚脚本:针对高频写操作预先准备回滚脚本并演练过一次,而不是出事后现场写。
- 降级通道:智能体不可用时,原有的人工流程能在一分钟内接管,不能因为上了 AI 就把旧流程拆掉。
- 复盘模板:统一记录触发条件、影响范围、发现方式、止损耗时与根因,作为下一轮评测集的输入。
一张可直接用于上线评审的检查表
| 检查项 | 通过标准 |
|---|---|
| 权限归属 | 行级权限在数据侧执行,智能体无自主拼接查询能力 |
| 口径唯一 | 关键字段在接口层有唯一定义,且已获得业务方书面确认 |
| 字段白名单 | PII 字段默认不出库,敏感字段不进入模型上下文 |
| 写操作约束 | 幂等键、差异回显、强影响字段转待办、软删除四条齐备 |
| 事件闭环 | 状态可回写,失败可重试,超时可降级并通知责任人 |
| 关闭能力 | 三级开关实测关闭耗时小于三十秒 |
| 回滚能力 | 回滚脚本已演练,最近一次演练记录可查 |
| 灰度记录 | 三档灰度均有观察期数据,误写率有明确阈值 |
常见问题
问:智能体对接一套 ERP 或 CRM 大概要多久?
决定工期的不是接口数量,而是权限梳理与字段口径对齐。按我们的交付经验,单系统只读集成通常两到四周;涉及写操作要额外两到三周做幂等设计、差异回显与灰度验证;再加事件回流与状态回写,整体再两周左右。纯接口联通往往只占总工作量三成,剩下的都在治理存量数据与权限。
问:为什么演示时准确率很高,上线后业务方却不愿意用?
演示用的是准备好的样本,输入干净、边界清晰;真实工单里字段缺失、表述矛盾、附件不全。更关键的是演示通常只读不写,而业务方真正关心的是「这件事能不能被系统办完」。只读智能体在业务眼里等同于一个搜索框,替代不了任何岗位的工作量,这也是很多项目验收通过却没人使用的真实原因。
问:智能体误改了业务数据,怎么止损?
止损必须内置在设计里,而不是出事后临时想办法。三件事缺一不可:能在三十秒内关闭写能力的场景开关;保证每次写入可定位可复原的软删除与版本号;写入前后的差异快照归档。金额、等级、状态这类字段建议永远不开放直写,只生成待办由人确认——少一个自动动作,换来的是数据出事之后还有退路。
最后一句经验:把「写操作可逆率」写进上线评审的必过项。只读集成的项目可以靠准确率证明自己,一旦有了写权限,能不能退回去才是业务方敢不敢用的真正前提。
本文案例来自天辰平台集成交付项目,已做脱敏与归一化处理。