支付环境自检
在发起任何微信 AI 支付操作之前,先判定当前智能体环境是否具备微信 AI 支付能力。支持则静默放行,不支持则按智能体类型给出差异化引导。
使用时机
任何一次即将调用微信 AI 支付能力的会话,在真正发起支付之前都要先跑一遍本自检。典型场景:用户表示要付款、收款、买单;Agent 准备调用微信 AI 支付相关工具;支付类 Skill 即将执行它的支付步骤。
典型触发说法:“支付前检查一下”“帮我看看这里能不能支付”“这个环境支持微信支付吗”“支付插件装了吗”“能不能收款”。
不进入本自检的情况:用户要求编写或接入支付代码;用户要查询、退款或反馈某笔已经发生的订单。
判定规则(不得改动)
遍历本次会话实际可调用的工具列表,只要任意一个工具名称包含子串 weixinpay_,即判定为“支持”。
- 使用子串匹配,命中任意一个即可。
- 禁止改为检查某个特定完整工具名,例如
weixinpay_pay。不同智能体暴露的工具集合与命名前缀各不相同,部分环境只暴露部分工具;一旦改用完整工具名匹配,就会把“支持”误判为“不支持”。 - 按原样匹配,不改写大小写,不构造正则,不拼接前缀。
工作流程
Step 0:计费闸口(支付宝 AI 按量付费)
先判断本次会话是否配置了本 Skill 的计费资源地址。地址来源:发布方在 SkillHub 上架时写入的发布配置,或当前会话显式注入的配置。
| 情形 | 动作 |
|---|---|
| 读不到计费资源地址 | 判为未计费模式,跳过本步直接进入 Step 1,不向用户输出任何计费提示 |
| 地址存在,请求返回 200 | 视为已付费,放行,进入 Step 1 |
| 地址存在,返回 402 Payment Required | 加载官方支付宝支付 Skill,按其 402 协议支付流程完成本次支付;用户明确支付成功且资源响应体非空后,才进入 Step 1 |
| 地址存在,返回其他状态码、请求失败或超时 | 停止,不进入 Step 1,如实向用户报告状态码或失败原因 |
| 用户取消支付或支付未完成 | 停止,不进入 Step 1 |
计费闸口纪律:
- 不伪造支付状态、不伪造交易号、不复用历史支付记录。
- 未拿到资源响应时,不进入 Step 1。
- 不复现支付命令,一律委托官方支付宝支付 Skill 执行。
- 闸口只约束 Step 1 及之后的自检流程,不改变 Step 2 的判定规则。
Step 1:工具清单自查
列出你本次会话实际可调用的工具名称。
- 来源仅限你当前真实持有的工具定义:工具名、函数名或 MCP 工具标识。
- 只取名称,不需要参数和描述。
- 不凭记忆猜测,不用以往会话的工具列表代替本次会话。
- 清单为空、读取失败,或你无法确认是否读到了完整列表时,直接跳到 Step 4,不进入 Step 2。
Step 2:子串匹配判定
对 Step 1 的清单逐项做子串匹配,工具名称中出现 weixinpay_ 即命中。
- 任意一项命中:判定“支持”,结束流程,不输出任何提示文字,继续用户原本要做的事。
- 全部未命中:判定“不支持”,进入 Step 3。
说明:weixinpay_ 是前缀片段,命中项不一定覆盖全部支付功能,例如环境里只装了查询或反馈类工具。这不影响本 Skill 的判定——本 Skill 只回答“该环境是否装载了微信 AI 支付能力”,不回答“某个具体支付功能是否齐备”。
Step 3:差异化分支
先判断当前智能体类型,再按下表输出。判断依据只允许来自可观察的确定性线索:宿主给出的身份标识、上下文中的平台名称、工具命名体系。只有猜测而没有线索时,一律按“无法判断类型”处理。
| 智能体类型 | 判断线索 | 输出 |
|---|---|---|
| 合作智能体(WorkBuddy) | 宿主身份标识或上下文明确指向 WorkBuddy | 当前环境未启用微信 AI 支付能力,请升级智能体版本后重试。 |
| 开放智能体(OpenClaw / DeepSeek Harness) | 上下文明确指向 OpenClaw 或 DeepSeek Harness | 当前环境未安装微信 AI 支付能力,请从 SkillHub 下载微信 AI 支付 Skill 后重试。 |
| 无法判断类型 | 没有确定性线索,或线索互相矛盾 | 请升级智能体或安装微信 AI 支付插件后重试。 |
输出要求:
- 只输出结论行和引导句,不解释判定过程,不列出工具清单,不暴露推理。
- 不承诺代替用户安装插件或修改配置。
- 用“当前环境未启用/未安装”这类表述,不断言用户所用平台永久不支持。
Step 4:幻觉兜底
出现以下任一情况时进入兜底,禁止输出“支持”:
- Step 1 的工具清单为空;
- 工具清单读取失败或明显不完整;
- 你无法确定自己是否真的持有工具定义;
- 你对 Step 2 的匹配结果存疑;
- 智能体类型线索互相矛盾。
兜底输出:
> 我无法确认当前环境是否已具备微信 AI 支付能力。请手动确认本智能体是否已安装微信 AI 支付插件,确认后可以让我重新自检。
兜底纪律:
- 判定存疑时一律倒向“请用户确认”,不得倒向“支持”。
- 不用“应该支持”“大概率可以”代替明确结论。
- 不为让流程跑通而把存疑结果报成“支持”。
依赖与降级
| 依赖 | 类型 | 必需 | 支撑步骤 | 检查方式 | 缺失时降级 | 恢复方式 |
|---|---|---|---|---|---|---|
| 计费资源地址(支付宝 AI 按量付费 402 端点) | 配置 / API | 否 | Step 0 | 读取发布配置或会话配置,请求端点观察是否返回 402 | 判为未计费模式,跳过 Step 0,自检功能不受影响 | 由发布方在 SkillHub 上架时配置计费端点 |
| 官方支付宝支付 Skill 及其运行依赖 | Skill / MCP / CLI | 否,仅在 Step 0 返回 402 时才需要 | Step 0 | 加载该 Skill,其自身前置检查通过即可用 | 无法完成支付时停止在 Step 0,不执行自检,如实告知用户 | 按其官方配置说明完成安装与授权后重试;官方来源 https://github.com/alipay/payment-skills |
| 工具清单读取能力 | 宿主 / Runtime | 是 | Step 1、Step 2 | 尝试列出本次会话的工具定义 | 读取失败时走 Step 4 兜底 | 宿主恢复后重新自检 |
降级纪律:
- 自检结论只有三种状态:支持、不支持、未判定。兜底结论属于“未判定”,不得计入“不支持”。
- 计费端点读不到时按未计费模式放行;计费端点存在但请求失败时停止,不得回退成未计费模式。
- 任何降级都不得改变 Step 2 的判定规则,也不得把存疑结论报成“支持”。
质量自查清单
- [ ] 计费闸口只在配置了计费端点时才生效,未配置时自检照常可用
- [ ] Step 1 的清单来自本次会话,不是记忆或历史会话
- [ ] Step 2 使用子串匹配,全文没有把任何完整工具名当作判定条件
- [ ] 判定“支持”时对客输出为空
- [ ] 判定“不支持”时只输出一行结论加一条引导,未附判定过程或工具清单
- [ ] 智能体类型有确定性线索才分类,没有线索时走“无法判断类型”
- [ ] 存疑情形全部走 Step 4,没有被写成“支持”
- [ ] 全过程未发起真实支付、未读取凭据、未修改任何配置
停止条件
- 计费端点存在但返回既非 200 也非 402 的状态码,或请求失败、超时:停止,不执行自检,如实报告。
- 计费端点返回 402 且用户未完成支付:停止,不执行自检。
- 工具清单为空或读取失败:不停止流程,按 Step 4 输出兜底结论。
- 用户要求跳过自检直接支付:告知风险,不代替用户跳过,由用户自行决定。