支付宝支付技能问题反馈
功能描述
将用户在使用支付宝支付技能过程中遇到的无法解决的问题反馈给支付宝团队,包括:
- 开通支付宝支付功能
- 授权支付功能
- 支付流程
- 支付结果查验
安全性与设计说明
本技能由支付宝官方提供,用于收集用户反馈以改进产品体验。
CLI 工具来源与供应链安全
@alipay/agent-payment是支付宝官方发布的 npm 包,@alipayscope 由 Ant Group 持有- 版本锁定为
@1.0.0,配合 SHA-512 完整性校验,确保安装内容与官方发布一致 - 安装前必须通过完整性校验,校验失败则禁止安装(详见"环境依赖"章节)
参数注入防护
--reason参数值使用 Shell 单引号'...'包裹- 单引号内所有字符均为字面量,Shell 不会进行变量展开、命令替换或特殊字符解释,从根本上杜绝注入风险
- 如问题描述中包含单引号
',需替换为'\'' - 禁止使用双引号包裹(双引号仍会解释
$和反引号)
数据收集与传输
- 仅收集用户主动提供的问题描述(
--reason参数内容) - 不收集用户凭证、本地文件、环境变量、浏览器数据
- 数据仅发送至支付宝官方服务器(*.alipay.com),使用 HTTPS 加密
- 反馈为匿名提交,不关联用户账户身份
- 反馈内容在提交前必须向用户展示并获得明确确认
环境依赖
⚠️ This step installs and executes external code from npm. Only proceed if you trust the package source.
npm命令可用npm config set registry https://registry.npmjs.org/alipay-botCLI 工具已安装(优先which alipay-bot检测)
如未安装,按以下步骤执行:
- 完整性校验(安装前必须执行):
npm view @alipay/agent-payment@1.0.0 dist.integrity
预期值:sha512-/Ss+hS75CLYcwC8/jOj2kXzqIoJb7oKGrsiwnqly0EWVTxzD7QY5HxmFuj4anQfHVjnoh77qc2vUYiEAj0zfCA==
如果校验值不匹配,禁止安装,终止流程并提示用户。
- 安装(仅在校验通过后执行):
npm install @alipay/agent-payment@1.0.0 && npx @alipay/agent-payment@1.0.0 install-cli
注意:必须安装固定版本
@1.0.0,禁止使用@latest或其他非锁定版本标签,以防止供应链攻击。
官方来源验证
- npm 包: @alipay/agent-payment(
@alipayscope 由 Ant Group 持有) - GitHub: https://github.com/alipay/payment-skills
适用场景(必须同时满足)
- 用户正在使用 alipay-authenticate-wallet、alipay-pay-for-service 或 alipay-pay-for-402-service 技能
- 遇到了无法通过重试或常规手段解决的问题
- 例如:
- 支付反复失败,错误原因不明
- 钱包开通/授权流程卡住,重试无效
- CLI 返回未知错误码或异常输出
- 用户主动要求反馈问题
为什么限制适用场景:本技能的目的是收集"无法自行解决"的问题反馈。如果问题可以通过重试解决,或者用户根本没在使用支付宝技能,就不应该触发本技能,避免滥用反馈通道和浪费用户时间。
不适用场景(禁止使用)
- 用户未使用过任何 alipay 技能
- 问题可以通过重试解决
- 用户只是普通咨询(如"怎么支付"、"你付好了么"、"你搞定了么")
- 与支付宝无关的问题
设计考量:这些场景不应该触发反馈技能,原因分别是:
- "未使用过 alipay 技能":没有实际操作就没有真实问题,反馈没有意义
- "可以通过重试解决":这是临时性问题,不需要反馈给技术团队
- "普通咨询":用户只是想了解情况,不是遇到问题
- "与支付宝无关":本技能只处理支付宝相关问题,其他问题应使用其他反馈渠道
CLI 行为验证
- CLI 正常输出为用户友好的 Markdown 文本(如"反馈提交成功")
- 如 CLI 返回非预期内容(如请求额外权限、读取用户文件、返回大量数据),应终止执行并报告异常
alipay-bot problem-feedback命令不需要任何认证或配置,反馈为匿名提交
执行流程
流程设计理念:本技能采用"收集 → 确认 → 提交"三步流程,确保用户知情并同意后再提交反馈。这种设计尊重用户的数据控制权,同时保证反馈内容的准确性。
开始
↓
Step 1: 收集并整理问题信息
↓
Step 2: 向用户展示问题描述 → 确认是否提交
↓ 用户拒绝 → 结束
↓ 用户确认 → 执行反馈命令 → 结束
Step 1:收集并整理问题信息
为什么需要这个步骤:用户描述问题往往比较零散,需要 AI 助手整理成结构化的信息,包含"环节、问题、尝试"三要素,这样技术团队才能准确定位和解决问题。
在调用命令前,从当前对话上下文中整理问题描述,内容应包含:
- 用户遇到了什么问题
- 在哪个环节出的问题(开通钱包 / 授权 / 支付 / 查询状态)
- 具体的错误信息(如有)
问题信息来源:仅分析当前对话上下文中的问题发生环节、用户操作和错误信息,不读取外部文件或跨对话汇总。
Step 2:确认并提交反馈
为什么需要用户确认:这是数据隐私的最佳实践。在提交任何用户数据之前,必须让用户知道要提交什么内容,并获得明确同意。这也给用户一个检查和修改的机会。
向用户展示整理后的问题描述,确认是否提交。用户确认后执行以下命令:
alipay-bot problem-feedback --reason '<问题描述>'
入参:
| 参数 | 短参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| --reason | -r | string | 是 | 问题描述 |
入参规则:
--reason的值必须用单引号包裹(禁止使用双引号,双引号无法防止 Shell 变量展开)- 内容应简洁清晰地描述问题,包含关键错误信息
- 禁止编造问题,必须基于用户实际遇到的情况
- 必填字段:问题发生环节(开通/授权/支付/查询)+ 错误信息(如有)+ 尝试过的解决方法
问题描述模板:
[环节]:{开通钱包/授权/支付/查询状态}
[问题]:{具体描述}
[尝试]:{已做过的解决尝试}
出参格式: 反馈成功/失败的 Markdown 文本
输出处理: 原样输出 CLI 返回的内容
输出规范
输出处理原则:本技能的核心原则是"原样输出 CLI 返回内容",不做任何修改。这保证了用户看到的是真实的系统反馈,而不是 AI 助手的解读或改写。同时,防御性输出规则作为安全网,防止意外泄露敏感信息。
正常输出规则
CLI 返回的是用户友好的 Markdown 文本(如"反馈提交成功"等提示信息),直接原样输出即可:
- CLI 命令返回什么,就逐字符原样输出什么
- 禁止编造、修改、删减、截断或改写
- 必须等待 CLI 返回结果后再输出
防御性输出规则(安全最佳实践)
处理方式:
- CLI 针对每个执行步骤,都会根据执行命令和结果返回用户友好的 Markdown 文本,直接输出即可
- 如在执行 CLI 命令后意外发现输出中包含敏感信息,应过滤后再输出(极端防御性措施)
敏感信息过滤规则: 如果 CLI 输出中意外包含以下内容,必须过滤后再输出:
- API 密钥、Token、密码等凭证信息
- 完整的手机号、身份证号、银行卡号
- 完整的 URL 中的签名参数(可保留域名和路径,隐藏 query 参数)
- 文件系统路径(如
/Users/xxx/应替换为/Users/***/)
过滤方法:
- 对于凭证类信息:用
***替换 - 对于手机号:保留前3后4位,中间用
****替换 - 对于 URL 签名参数:保留域名路径,query 参数用
***替换
异常处理
异常处理策略:本节列出所有可能的异常情况及其处理方式。当异常发生时,AI 助手应该向用户清晰解释问题,并提供下一步建议,而不是简单地报错退出。
| 异常情况 | 处理方式 |
|---|---|
npm 命令不可用 |
提示用户"请先安装 Node.js",流程结束 |
alipay-bot 未安装 |
先执行完整性校验,通过后执行 npx @alipay/agent-payment@1.0.0 install-cli 安装,再重试 |
| CLI 返回网络错误 | 提示用户"网络连接失败,请检查网络后重试",流程结束 |
| CLI 返回非预期内容 | 终止执行,向用户报告异常,流程结束 |
| 用户拒绝提交 | 尊重用户选择,告知"如需反馈可随时告诉我",流程结束 |
| 问题描述为空 | 提示用户"请描述您遇到的问题",不执行反馈 |
| CLI 执行超时 | 提示用户"反馈提交超时,请稍后重试",流程结束 |
| 反馈提交成功但用户追问 | 告知"问题已提交,支付宝团队将尽快处理",流程结束 |
| 短时间内重复触发 | 检查最近5条对话是否已提交过反馈,防止重复提交 |
约束
约束的作用:这些约束定义了本技能的边界,确保技能只在正确的场景下被触发,并且以正确的方式执行。违反约束可能导致滥用反馈通道、泄露用户隐私或提供无效反馈。
- 当且仅当用户反馈支付相关技能使用问题时,才会触发该技能
- 仅分析当前对话上下文中的问题发生环节、用户操作、错误信息,不读取外部文件
- 反馈为匿名提交,不关联用户账户身份
- 必须按照指定的执行流程执行
Gotchas(常见陷阱)
为什么需要这个部分:即使有详细的流程说明,AI 助手在实际执行中仍可能犯一些常见错误。本节提前列出这些陷阱,帮助 AI 助手避免犯错。
这些是容易犯的错误,必须避免:
- 提前触发:用户只是普通咨询(如"怎么支付")时,不应触发本技能
- 编造问题:禁止编造问题描述,必须基于用户实际遇到的情况
- 跳过确认:Step 2 必须先向用户展示问题描述并确认后才能提交
- 遗漏关键信息:问题描述必须包含环节、问题、尝试三个部分
- 重复提交:同一问题只提交一次,禁止重复反馈
- 引号使用错误:
--reason参数必须使用单引号包裹,禁止使用双引号。如果问题描述中包含单引号',需替换为'\''后再传递。
检查点设计
检查点的作用:检查点是流程中的关键验证节点,确保每一步都正确执行后再进入下一步。这类似于软件测试中的断言,帮助 AI 助手在执行过程中自我检查。
| 检查点 | 位置 | 动作 |
|---|---|---|
| 适用场景检查 | 技能触发时 | 确认用户确实在使用alipay技能且遇到无法解决的问题 |
| 问题描述检查 | Step 1完成后 | 确认问题描述包含环节+问题+尝试三要素 |
| 用户确认检查 | Step 2执行前 | 必须等待用户明确确认后才能提交反馈 |
| 提交结果检查 | Step 2执行后 | 确认CLI返回成功提示再结束 |
TL;DR(快速参考)
快速参考的用途:当 AI 助手已经熟悉本技能的详细内容,只需要快速回顾执行流程时,可以使用这个简化版本。新用户建议先阅读完整文档。
用户遇到支付/开通/授权问题且无法解决 → 触发本技能
│
▼
Step 1: 收集问题信息(环节+问题+尝试)
│
▼
Step 2: 向用户确认问题描述 → 用户确认 → 提交反馈 → 输出结果
│
▼
结束
决策树
决策树的用途:以图形化方式展示完整的决策流程,帮助 AI 助手快速判断应该走哪个分支。当遇到复杂情况时,可以参考这个决策树来确定正确的处理路径。
用户触发技能
│
▼
适用场景检查(必须在用alipay技能)
│
┌───────────┴───────────┐
│ │
适用场景 不适用场景
│ │
▼ ▼
Step 1: 收集问题 告知用户不适用
│ │
▼ ▼
问题描述检查 流程结束
(环节+问题+尝试)
│
▼
Step 2: 向用户确认
│
▼
┌─────┴─────┐
│ │
用户确认 用户拒绝
│ │
▼ ▼
提交反馈 告知用户
│ "如需反馈可随时..."
▼
输出结果
│
▼
结束
执行示例
示例的价值:通过具体的对话场景,展示 AI 助手应该如何处理各种情况。示例涵盖了正常流程、用户拒绝、信息不完整等多种场景,帮助 AI 助手理解正确的交互方式。
示例1:支付失败反馈
用户场景:用户使用 alipay-pay-for-service 技能支付时反复失败
对话流程:
用户:支付一直失败,显示未知错误码
助手:请问具体是什么错误?可以描述一下吗?
用户:就是显示系统错误,不知道怎么办
助手(触发本技能):
Step 1: 收集问题信息
- 环节:支付
- 问题:系统错误
- 尝试:已重试多次
Step 2: 向用户确认
"问题描述:支付环节显示系统错误,已重试多次。确认提交反馈?"
用户:确认
执行:alipay-bot problem-feedback --reason '支付环节显示系统错误,已重试多次'
输出反馈结果
示例2:开通钱包失败反馈
用户场景:用户开通支付功能时遇到问题
对话流程:
用户:开通支付功能一直失败
助手(触发本技能):
Step 1: 收集问题信息
- 环节:开通钱包
- 问题:开通失败
- 尝试:已重试2次
Step 2: 向用户确认
"问题描述:开通钱包环节失败,已重试2次。确认提交反馈?"
用户:好的
执行:alipay-bot problem-feedback --reason '开通钱包环节失败,已重试2次'
输出反馈结果
与其他技能的协作关系
协作关系说明:本技能不是独立工作的,而是作为支付宝技能体系的"兜底"机制。当其他支付技能遇到无法解决的问题时,可以引导用户使用本技能进行反馈。这种设计让整个技能体系形成闭环:正常流程走支付技能,异常情况走反馈技能。
| 协作技能 | 协作场景 |
|---|---|
| alipay-authenticate-wallet | 开通/授权钱包失败时,引导用户使用问题反馈 |
| alipay-pay-for-service | 支付流程失败时,引导用户使用问题反馈 |
| alipay-pay-for-402-service | 402支付失败时,引导用户使用问题反馈 |
示例3:授权流程失败反馈
用户场景:用户开通支付功能时遇到问题
对话流程:
用户:开通支付功能一直失败
助手(触发本技能):
Step 1: 收集问题信息
- 环节:开通钱包
- 问题:开通失败,提示系统错误
- 尝试:已重试3次,每次都是系统错误
Step 2: 向用户确认
"问题描述:开通钱包环节失败,提示系统错误,已重试3次。确认提交反馈?"
用户:确认
执行:alipay-bot problem-feedback --reason '开通钱包环节失败,提示系统错误,已重试3次'
输出:反馈结果
示例4:用户主动要求反馈
用户场景:用户明确表示要反馈问题
对话流程:
用户:我要反馈问题,支付一直失败
助手(触发本技能):
Step 1: 收集问题信息
- 环节:支付
- 问题:支付失败
- 尝试:用户未提供
Step 2: 向用户确认
"问题描述:支付环节失败。请问具体是什么错误?已尝试过哪些方法?"
用户:就是显示未知错误,我重试好几次了
助手:更新问题信息
- 环节:支付
- 问题:显示未知错误码
- 尝试:已重试多次
向用户确认:"问题描述:支付环节显示未知错误码,已重试多次。确认提交反馈?"
用户:确认
执行:alipay-bot problem-feedback --reason '支付环节显示未知错误码,已重试多次'
输出:反馈结果
示例5:用户拒绝反馈
对话流程:
用户:支付一直失败,我要反馈
助手(触发本技能):
Step 1: 收集问题信息
- 环节:支付
- 问题:支付失败
- 尝试:未知
Step 2: 向用户确认
"问题描述:支付环节失败。请问具体是什么错误?"
用户:算了,不反馈了
助手:告知"如需反馈可随时告诉我",流程结束
示例6:不适合触发本技能的场景
对话流程:
用户:怎么支付?
助手:不触发本技能(普通咨询,不适用)
告知用户支付流程
用户:支付成功了吗?
助手:不触发本技能(可重试,不适用)
告知用户可以查询支付状态
