aionclaw调用api失败重试时,若无幂等控制将导致重复订单、重复扣款;首要确认接口是否支持idempotency_key,否则需在技能中手动添加x-idempotency-key头并禁用自动重试,再配置条件重试分支与本地缓存拦截。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当AionClaw调用外部API失败需重试时,若未做幂等控制,同一请求可能被重复提交,导致订单重复创建、资金重复扣减等严重后果。
确认接口是否具备幂等性
第一步:检查目标接口文档中是否明确支持幂等请求。常见标识包括参数名含 【idempotency_key】、【X-Idempotency-Key】 或说明“相同key多次请求仅执行一次”。若无此机制,必须由AionClaw侧自行实现。
第二步:打开AionClaw技能编辑器→选择对应HTTP调用节点→在“请求头”区域手动添加键值对:X-Idempotency-Key → 值设为 {{uuid()}}(系统内置UUID生成函数)。该操作确保每次重试携带唯一标识,服务端可据此判重。
在重试逻辑中禁用自动重发
进入技能流程图→右键点击HTTP调用节点→选择“编辑配置”→关闭“启用自动重试”开关。这一步必须做,否则即使加了幂等头,AionClaw底层仍会按默认策略发起无状态重试,覆盖你设置的幂等标识。
手动补全重试分支:拖入一个“条件判断”节点接在HTTP节点后→设置判断条件为 response.status >= 500 || response.status === 0 →真分支连接“延迟等待”节点(建议设3秒)→再连回原HTTP节点;假分支走正常后续流程。
使用本地缓存拦截重复请求
方法一:在HTTP节点前插入“读取本地缓存”节点,Key设为 api_request_hash_{{md5(request.url + JSON.stringify(request.body))}},若命中则直接返回缓存结果,跳过真实调用。
方法二:在HTTP请求成功后立即插入“写入本地缓存”节点,Key同上,Value设为完整response,TTL建议设为60秒——这能拦截因网络抖动导致的瞬时重复触发,但不适用于需强实时的场景。
验证幂等生效
① 在AionClaw日志面板开启“详细网络日志”;② 手动触发一次失败请求(如断开目标服务网络);③ 观察重试时发出的每个请求头中 【X-Idempotency-Key】 值是否全部一致;④ 检查目标服务端日志,确认仅收到1次实际处理,其余均为幂等响应(HTTP 200 with header X-Request-ID: xxx 相同)。











