微信二次开发如何设计工具调用事务?WechatApi AI执行CRM、工单和消息动作时的补偿方案
官网友情链接 wechatapi.net
AI 微信机器人发展到Agent阶段以后,模型不再只是生成一段文字。

它可能需要调用工具:
创建CRM跟进;
创建工单;
修改客户标签;
发送文件;
查询订单;
安排任务。
问题是,一次AI动作可能包含多个步骤。
例如:
先创建工单;
再写CRM记录;
再给客户发送确认消息。
如果第一步成功、第二步成功、第三步失败,整个流程到底算成功还是失败?
这就是个人微信二次开发进入AI Agent以后必须处理的“工具事务”问题。
WechatApi 可以作为个人微信API接入层,负责客户消息和最终微信动作。本地Agent编排层则通过步骤状态、幂等、补偿和Saga模式,保证多工具操作不会半成功半失控。
一、为什么数据库事务解决不了
CRM可能是外部系统。
WechatApi发送也是外部动作。
工单可能又在另一个服务。
不可能用一个数据库事务:
BEGIN;
全部成功;
COMMIT。
跨系统只能做业务补偿。
二、一个具体例子
客户说:
“帮我提交一个售后,并把截图一起发给技术。”
Agent计划:
Step1 创建工单T100。
Step2 上传附件。
Step3 写CRM服务记录。
Step4 微信回复客户“已提交”。
Step1成功。
Step2成功。
Step3失败。
这时不能直接从头重跑。
否则会再次创建工单。
三、每个步骤必须幂等
create_ticket:
idempotency_key = conversation + issue_version。
CRM写入:
external_request_id。
消息回复:
reply_key。
这样整个Saga重试时,每一步都知道自己有没有做过。
四、WechatApi 在这里的位置
WechatApi负责:
最后的微信客户可见动作。
Agent编排层决定:
什么时候具备发送条件。
不能工单还没真正创建成功,就先告诉客户“已经提交”。
五、工具步骤状态
pending;
running;
success;
failed_retryable;
failed_final;
compensated;
skipped。
整个工作流状态由子步骤聚合。
六、哪些动作可补偿
创建内部任务:
可以取消。
标签修改:
可以撤销自己来源。
CRM写入:
可能可以回滚。
微信消息:
发送后通常不可逆。
所以客户可见消息尽量放最后。
七、不可逆动作最后执行
这是非常重要的工程原则。
先完成:
内部对象;
数据写入;
权限校验。
最后才:
发客户消息。
减少“告诉客户成功但后台其实失败”的情况。
八、补偿不是简单反向调用
创建工单后已经被技术人员处理。
再失败时不能直接删除工单。
需要判断:
是否已经产生后续业务。
所以每个补偿动作也有条件。
九、Saga记录
workflow_id;
step_id;
action;
result;
compensation;
version。
任何Agent工具调用都可以复盘。
十、AI不能自由组合所有工具
工具编排最好有允许模板。
例如:
售后流程允许:
创建工单→附件→通知→回复。
模型只选择参数和分支。
不要让模型任意决定:
先发客户承诺,再尝试创建工单。
业务安全性更高。
十一、人工确认点
退款、删除、负责人变化等工具动作,在Saga某一步暂停:
waiting_approval。
人工通过后继续。

十二、超时
CRM调用长期超时。
整个工作流可以:
waiting_external。
客户侧可以发送:
“问题已记录,正在处理中。”
但不能说:
“CRM已经更新成功”。
表述和状态一致。
十三、重启恢复
编排服务重启。
从step状态恢复。
已经成功的步骤跳过。
未完成步骤继续。
这是Saga最直接的价值。
十四、并发Agent
同一个客户同时两个Agent都要创建同类任务。
使用业务锁和幂等。
避免重复工单。
十五、数据看板
Agent工作流;
成功率;
补偿率;
最常失败工具;
平均步骤;
人工审批。
帮助找出瓶颈。
十六、异常
某工具连续失败。
编排层可以熔断。
暂时不让Agent继续调用。
转人工。
十七、日志
客户原消息;
Agent计划;
工具参数摘要;
结果;
补偿;
最终微信回复。
全链路可追踪。
十八、总结
个人微信二次开发进入AI Agent以后,真正复杂的地方已经不是“模型会不会调用工具”,而是多个工具执行到一半失败时系统怎么办。
WechatApi 可以提供微信消息、文件和客户沟通能力。
本地Agent编排层则通过Saga、步骤幂等、补偿、人工确认和不可逆动作后置,保证CRM、工单和微信动作能够安全协作。
真正成熟的AI微信机器人,不是模型说“我帮你处理好了”就算结束,而是后台每一步都有明确状态,失败能够补偿,服务重启能够继续,最终给客户的承诺和系统真实结果完全一致。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)