本地Skill改造为Pay Skill 工具包
1. 付费模式声明(重要)
> 付费模式(重要):本技能为按次付费服务(¥0.99 元/次,单价以 SkillHub 同类为锚、可由创建者确认调整),采用"后端资产下发"模式——5 份生产级专有参考资产(支付契约模板 / skillpay.py 编排客户端模板 / 402 后端网关最小实现 / 发布前检查清单 / 63 坑实战录)全部存放在付费后端,本技能包内不包含这些资产。支付验付通过后后端下发完整工具包(含可直接改 CONFIG 即用的模板与网关代码);你据此在本地完成改造。同一订单在 30 分钟内重复调用幂等复用,不重复扣费。
免费环节(无需付费即可获得)
- 全流程脉络 + 前期筹备清单(开局播报)
- 类型(甲/乙)与版式(个人/企业)选择引导
- SkillHub 同类 Skill 定价参考(WebSearch/WebFetch 实时检索)
- 每次调用对照官网保鲜(SkillHub 规则页 + 支付宝 AI 付文档增量核对)
- 本技能包自带的
scripts/skillpay.py编排客户端(通用,改 CONFIG 即用)
付费环节(验付后下发)
- 5 份完整参考资产(模板 / 代码 / 清单 / 63 坑录),省去从零编写 2–3 天
2. 规程:付费会话操作流程(agent 必须遵守,对应 4 项需求)
0. 开局前置播报【需求1:全流程脉络 + 前期筹备第一时间说】
进入付费会话第一句话必须向创建者输出两块内容,不得直接进入操作:
- 全流程脉络:用一句话总览 7 阶段(资产盘点→后端建设→签约入驻→沙箱联调→包制作→打包发布→发布后验证),让创建者知道从改造到上架的完整路径。
- 前期筹备清单(硬性前置,第一时间说):
1. 支付宝开放平台实名账号
2. 签约「AI 按量付费」
3. 注册 AI 付服务,拿到 API_ 开头的 service_id
4. (自备模式)腾讯 CloudBase 云托管账号
5. (自备模式)RSA2 密钥对(应用公钥上传、私钥仅留服务端)
- 明确告知:上述筹备中,只有「支付宝钱包登录/授权」这一步必须由创建者本人完成(必备登录),其余全部由本 Skill 在对话内驱动。
0.5 目标 Skill 预检门【需求7:判断客户是否已有本地 Skill + 该 Skill 能否正常运行】
在进入「类型/定价共创」之前,Agent 必须先对目标 Skill 做存在性与可运行性预检,未通过不得往下走,避免对着不存在的或已坏的 Skill 空谈改造:
预检第一步——目标 Skill 是否真实存在:
1. 向创建者确认目标 Skill 的本地路径(或"我要改造的 skill 叫什么名字")。
2. 定位并读取其 SKILL.md 与目录结构,核对:
- SKILL.md 是否存在(不存在 = 还不是一个合法 Skill);
- frontmatter 是否含 name / description(缺则提示补齐);
- 目录里是否真有"干活资产"(脚本 / 模板 / 参考文档),用于后续判定模式甲/乙。
3. 输出存在性结论:✅ 已找到 / ⚠️ 找不到——找不到时给出两种兜底:① 请创建者确认正确路径;② 若创建者其实还没有本地 Skill,先引导其"从零新建一个 Skill"再回来改造。
预检第二步——目标 Skill 当前能否正常运行:
1. 对可执行的资产(脚本等)做冒烟运行(如 python scripts/xxx.py --help 或按 SKILL.md 声明的用法跑最小用例),确认无语法错误、缺依赖、路径写死等硬伤。
2. 检查 SKILL.md 声明的 allowed-tools 与实际用到工具是否一致、引用文件路径是否存在。
3. 输出可运行性结论:✅ 可运行 / ⚠️ 有故障——有故障时先列出具体问题与修复建议,由创建者决定"先修好再改造"还是"边改造边修"。
预检未通过时的行为: 明确告知创建者"当前无法继续,需先解决以下问题",并停在预检门,不进入付费改造动作。
1. 类型与定价共创【需求2:选类型 + 参考 SkillHub 同类协助定价】
- 引导创建者确定两项:① 改造模式甲/乙(按"值钱的东西是模板/渲染引擎还是规则/结论"判断);② 版式个人版/企业版。
- 定价必须参考 SkillHub 同类标准:每次会话先用
WebSearch/WebFetch检索 SkillHub 上同类 Skill(同类目、同类交付形态)的真实价格区间,给出建议单价(不得套用其他项目/其他 Skill 的价格,必须按 SkillHub 同类目实价独立测算),由创建者最终确认后再写入 CONFIG 与发布表单。
2. 对话内全流程驱动【需求3:除必备登录外全对话内完成 + 指令性交办】
- 除「必备登录」(支付宝钱包登录/扫码授权)外,probe / pay / complete、资产盘点、包制作、zip 打包等全部由本 Skill 在对话内自动执行。
- 当流程推进到必须由创建者本人完成的登录/授权节点时,以指令性话术明确交办,例如:「⚠️ 现在请打开支付宝 App 完成钱包登录/扫码授权,完成后回复我,我继续下一步」——不代替、不假装、不跳过。
2.1 单步推进【规则:一件事做完再做另一件事】
硬规则(最高优先级,不可违反):一次只让创建者做「一件」必须本人完成的事,做完并核验通过后,才推进下一件。
- 进度清单:每次交办前,先给一张带 ✅/⏳/⬜ 状态的进度清单,让创建者一眼看清"当前在哪一步、哪一步在等谁"。
- 按真实流程判断优先级:交办顺序必须服从真实依赖关系(签约 → 拿 service_id → 配密钥 → 部署 → 填 CONFIG → probe → 发布),不并行催、不跳步、不倒序。上一件未完成,绝不提前下发下一件。
- 一次一件:当前要客户做的那一件,只给一个明确动作 + 链接/页面;其余步骤只显示"待办/排队"状态,不展开、不解释、不催促。
- 做完才推进:等创建者明确回复"已完成/已拿到 XXX",Agent 核验通过后再交办下一件。若创建者未完成,只重复当前这一件,不叠加新任务。
- 禁止一次性抛多件事:哪怕后续步骤已明确,也一律压在进度清单里排队,逐件释放。
2.2 动前告知【规则:执行命令/删除/安装/写文件前必须解释,禁止先斩后奏】
任何会改变环境或文件的动作,动手前必须先说明"要做什么、影响什么",得到创建者确认后再执行。
- 触发范围:运行命令(尤其
npx/pip install/rm/del/git等会下载、安装、删除、写入的操作)、修改文件、部署、改配置。 - 必须先讲清楚:① 我准备执行什么命令/动作;② 会不会下载东西、写文件、删文件、改环境变量;③ 影响范围(哪个目录/哪些文件)。
- 等确认:说明后等创建者同意再执行;被拒绝就换更轻的方式(如改用手动输入、给步骤让创建者自己做),不重试被拒的命令、不换等价命令绕开。
- 绝不"上来就删":任何删除类操作必须单独、明确地解释"删什么、为什么、能否恢复",绝不静默删除或混在其他动作里顺带删。
2.3 命令行降级【规则:命令被环境自动改写/不可用时,降级到网页/图形界面路径】
当一条命令在创建者环境里被自动改写(如 @alipay/xxx 被转义成 @//alipay、路径斜杠被翻倍)或反复失败时,立即停止重发命令,降级到网页/图形界面路径,不跟创建者死磕命令行。
- 识别改写信号:同样的命令每次贴出都被加上
//、\、多余空格等;attached_files里出现反斜杠路径形式。 - 降级动作:改用官方网页入口(如
aipay.alipay.com的页面引导)、图形化配置界面,或给"分段手动敲"方案。 - 不重复同一命令:同一命令被改写/失败,最多重发 2 次,仍不行就换网页路径,绝不无限重试。
2.4 签约复用预检【规则:由 Agent 主动核验客户是否已接入 AI 付,不把验证甩给客户】
不能只靠"问客户"判断是否已接入——客户往往不知道"接入 AI 付"指什么、也不会自己验证。Agent 必须主动核验并给出可执行的判断路径。
- 主动核验(Agent 做):① 搜客户本地 skill/项目里是否有支付宝 AI 付痕迹(service_id、alipay 配置、后端域名);② 若搜不到,直接给客户一条 30 秒可验证的明确动作(如"登录 aipay.alipay.com → 看服务管理里有没有已注册的服务"),而不是抽象地问"你接入过没有"。
- 给出判断标准:明确告诉客户"有 = 能看到一个
API_开头的 service_id;没有 = 列表为空"。让客户照着看,一眼能判断。 - 已接入 → 复用签约资质:签约资质(账号/主体)可复用,不用重新签约、不用装官方 skill;只需新建一个属于当前 Skill 的 service。
- 未接入 → 才走签约:引导「页面引导接入」优先,命令行仅作可选且预判改写风险。
- 关键区分:签约资质 vs service_id 是两回事——签约资质复用,service_id 每个服务单独注册(绑定具体服务地址+单价,不能跨服务共用)。
- 服务名称规则:支付宝 AI 付「服务名称」最多 15 字(中英文混排易超)。给客户起服务名必须默认 ≤15 字,如「Skill改造变现」;对外 displayName 可以长,但注册服务填的名称必须精简。不要起超长名让客户报错。
2.5 流程优先级规则【规则:单一判定,绝不跳步、绝不中途分叉】
Agent 必须遵守一条单一、无歧义的优先级判定规则,一次只推进一个当前步骤,做完(且核验通过)才进入下一步,绝不在中途插入无关话题或跳步。
优先级判定(自上而下,命中即停,只做当前命中的那一步):
- 未签约(无任何 service_id) → 当前唯一任务 = 引导完成签约入驻(页面引导优先)。
- 已签约但当前 Skill 无自己的 service_id → 当前唯一任务 = 新建当前 Skill 的 service(此时若 service 需要填"服务地址",先完成 service 注册这件事本身,地址可后补或按页面要求处理,不岔开去讲部署)。
- 已有当前 Skill 的 service_id → 当前唯一任务 = 进入下一步(配密钥)。
- 之后每一步严格线性:配密钥 → 部署后端 → 填 CONFIG → probe → 打包发布。
铁律: 当前步骤没完成,绝不谈下一步;每步只交付"这一件"的说明;若发现上一步没做干净,先回头收尾上一步,不带着尾巴往前跑。
2.6 控制台路径与地址校验【规则:给客户的网页/后台路径与 URL,必须先核验真实入口,绝不凭想象写死、绝不编造地址】
各类后台(支付宝 AI 付、腾讯云 CloudBase、SkillHub/SkillPay 等)的菜单/入口常因版本、账号权限、地域而不同。Agent 绝不能凭记忆写死"点新建服务/进服务管理"这类路径,也绝不能凭空编造、推测任何网址/URL/控制台地址。
- 【红线·禁止编地址】任何 URL、域名、控制台地址,只有两种合法来源:① 客户从浏览器地址栏/页面原样复制提供;② Agent 联网搜索到的官方链接并明确标注"已联网核验"。禁止凭印象拼
https://xxx.workbuddy.cn这类地址——拼错即视为编造,必须当场认错并撤回,改为向客户索取真实地址或联网核实。 - 给地址三要素缺一不可:给客户任何「上传地址/入口」时,必须同时给出 ① 完整可复制的绝对路径或 URL;② 该地址的来源(客户提供 / 联网核验);③ 若不确定则明说"待核实",不得留白冒充已知。文件名必须用英文/无空格,杜绝中文文件名导致的构建失败。
- 先问后指,不臆断:让客户操作前,先让客户截图或描述当前页面,Agent 根据真实页面判断入口在哪,而不是直接丢一串想当然的路径。
- 入口名称以客户所见为准:不同账号看到的按钮名可能不同(如"新建服务"vs"管理服务"vs"新建 Git 平台部署"),以客户截图里的实际文字为准,发现与 Agent 给的路径不符时,立即认错并按真实入口重指。
- 区分"上传代码包"与"Git 平台部署":云托管部署有"上传代码包/本地代码"和"Git 平台/代码库"两种来源,本地 zip 部署必须选"上传代码包",不要误进"Git 平台部署"页面(那里只支持 Git 仓库,不支持本地 zip 上传)。
- 记录客户实际路径:一旦确认某后台在客户账号下的真实入口,记入会话/项目笔记,后续同一客户复用该路径,不再重复踩坑。
2.7 真值只来自平台,不来自模板或对话【规则:1.20.0 沉淀,铁律 20】
域名后缀、serviceId、PID、商品名这类值,模板/文档里的示例值必错,用户在对话里手打的字符串也可能只是打字习惯。
- 取值顺序固定:部署后从控制台抄真值 → 回填文档与客户端脚本 → 用脚本自检证明包真的连上了。
- 客户端包里写错域名后缀 = 买家装完连不上后端,而本地自检发现不了(自检走环境变量覆盖)。
- 出包前扫一遍占位符:
<你的域名>、TODO、XXXX、待填——命中即不得出包。 - 三个 ID 分属两个控制台,逐项核形态:APPID
2021开头 / 卖家 PID2088开头 16 位 / serviceIdAPI_开头。PID 必须与 APPID 同属一个支付宝账号,否则签名验得过、钱收不到。
2.8 改配置前先分清「代码默认值」与「环境变量生效值」【规则:1.20.0 沉淀,铁律 21】
环境变量优先级更高。改了代码默认值但环境变量没同步 = 线上仍是旧值。
- 生效顺序不可颠倒:先把代码与环境变量文件同时定稿,再让用户上传。
- 已经发生就只改环境变量修,不用重打包。
- 云托管的环境变量随版本走:服务详情页那个视图是只读的(没有编辑按钮),改配置 = 新建版本,且每次都要全量重填(漏带 = 该变量消失)。
2.9 对外常量一律环境变量可覆盖【规则:1.20.0 沉淀,铁律 22】
商品名、单价这类"要在 5 个地方保持一致"的值,必须写成 os.environ.get("X", 默认)。
- 商品名链路:注册表单服务名 → 后端
GOODS_NAME→ 账单goods_name→ 客户端展示 → 平台侧服务名。写死在代码里,对不上就要重新打包 + 重新部署,一轮十分钟。 - 长值(私钥 1588 字符)优先用平台「JSON 输入」整段粘贴,禁止逐条手打;粘完比对首尾 12 字符,硬证据是验签是否成立。
2.10 判定文件损坏必须用哈希与内部断言,不凭打印输出【规则:1.20.0 沉淀,铁律 23】
输出层可能对长串做脱敏替换,据此误判"代码被篡改"会拿坏副本重打包(真上去会崩在收款环节)。
- 判据两条都要做:同一文件连续读 3 次比对 md5(稳定即没坏,脱敏每次都不同);用 Python 内部断言
substring in content判断,不靠打印出来的字。 - 推论:禁止基于"打印出来看着不对"去重命名 / 标记 / 覆盖用户文件——误标一次,信任成本极高。
3. 内容保鲜【需求4:对照官方每次调用更新】
- 每次会话开局,对照官方网站做增量核对:SkillHub 规则/审核页 + 支付宝 AI 付接入文档(opendocs.alipay.com)。如发现流程、字段、审核规则有更新,先同步给创建者再继续。
- 后端资产包(5 份参考)由作者侧周期性对齐官方,确保下发版本为最新;如创建者要求,可现场据官网差异补丁说明。
4. 环境核验与幂等【需求5:第二次使用不重复工作】
每次会话开局先做环境核验,输出"已就绪 / 待补齐"清单,已完成项直接跳过:
- 官方支付 CLI:运行 check-wallet 确认 alipay-bot 可用、钱包已开通;
- 配置填充:读取本包 scripts/skillpay.py 的 CONFIG——若 service_id/resource_url 仍为占位符(含 TODO/API_TODO),说明后端接入未配置;
- 后端可达性:请求后端 /healthz,确认已部署且返回 version;
- 版本差异:比对后端 /healthz 返回的 version / assets_count 与本技能当前 version,不一致先同步差异再继续;
- 历史订单:查看本地 .skillpay/orders/,存在未过期且未交付订单时幂等复用,不重复下单、不重复扣费;
- 输出格式:逐项给 ✅已就绪 / ⚠️待补齐,只引导"待补齐"项,已就绪项一律不重做。
5. 二次配置影响前置告知【需求6:已配置项影响二次配置要先说 + 如何配置】
对已配置内容,若二次配置会产生影响,动手前必须先告知影响 + 给出配置方法:
| 已配置项 | 二次配置的影响 | 如何配置 |
|---|---|---|
| CloudBase 环境变量 | --env-params 为全量覆盖,重部署漏带某键=删除该配置(如私钥丢失→服务起不来) |
重部署必须一次带齐全部键(照 backend/README部署.md 清单) |
| RSA2 密钥对 | 重新生成并上传新公钥=旧密钥立即失效,在用后端验签全挂 | 仅确需轮换才重新生成;先备好新私钥再传新公钥,后端环境变量同步更新 |
| SkillHub slug | 沿用旧 slug=覆盖升级(历史用户收更新);新 slug=并行新版本 | 想灰度/并存用新 slug;想全量升级沿用旧 slug |
| 单价 | 改动=改真实扣款;展示价/402 账单/订单落库三处必须一致 | 三处同步改,且服务端 verify 用同一 expected_amount |
6. 前置操作手册(逐步骤·含真实链接/页面/动作)
> 用途:当流程推进到必须由创建者本人操作的节点时,Agent 逐条下发对应步骤,引导推进。唯一步骤 S2/S4 中的「支付宝扫码/钱包登录授权」属必备登录,其余全可由 Agent 驱动或引导。官方链接如失效,先按 §2 规程第 3 条对照官网核对。
S1 实名 + 创建应用(支付宝开放平台)
- 打开 https://open.alipay.com → 右上角登录(支付宝扫码)
- 完成主体实名认证(个人 / 企业)
- 控制台 → 创建应用 → 记录 appId
- 官方指引:https://opendocs.alipay.com/open/0ix1mc
S2 签约「AI 按量付费」(两种方式,可切换)
- 【推荐 · 通过 Agent 接入】(契合"对话内驱动"):
1. 本机安装官方 AI 付 Skill:npx -y @alipay/alipay-aipay@latest install
2. 加载后由 Agent 引导"补充业务上下文 → 生成集成代码 → 沙箱测试 → 签约上线";
3. 仅此处需你本人:在支付宝 App 扫码完成实名/确认(必备登录)。 - 【页面引导接入】:打开 https://aipay.alipay.com/products/machine-pay → 选「按量付费」→ 接入 → 按页面分步完成 技术集成/产品开通/服务注册/密钥配置/线上验证。
- 官方商户指南:https://a2a.alipay.com/merchant-guide
S3 注册服务,拿 API_ service_id
- 在 AI 付服务市场/控制台注册一个服务;
- 记录
API_开头的 service_id(写入后端ALIPAY_SERVICE_ID与skillpay.py的CONFIG.service_id)。
- 说明与获取方式:https://opendocs.alipay.com/open/0ix1mc(见常见问题)
S4 生成 RSA2 密钥对并上传公钥
- 登录开放平台控制台 → 选应用 → 详情 → 开发设置 > 开发信息 > 接口加签方式(密钥/证书) > 设置
- 选择「密钥」→ 下一步;
- 下载安装「支付宝开放平台密钥工具」→ 生成密钥:加签方式=密钥、算法=RSA2;
- ⚠️ RSA2 默认 PKCS8(Java 适用);本后端为 Python(非 Java),需用工具的「格式转换」转 PKCS1; - 复制应用公钥 → 回控制台粘贴上传(需短信验证码或支付密码安全验证);
- 下载保存支付宝公钥(验平台通知用)。
- 官方配置入口:https://opendocs.alipay.com/open/02nlga ;密钥工具:https://docs.open.alipay.com/291/105971
- 🔒 应用私钥只进服务端环境变量,禁止写进代码/仓库/日志。
S5(自备模式)CloudBase 云托管部署
- 打开 https://console.cloud.tencent.com/tcb → 创建/选择环境 → 云托管;
- 本机
tcb login(浏览器授权); cloudrun deploy(照backend/README部署.md:--env-params全量带齐含私钥;--min-num 1 --max-num 1);- 部署后验证三连:
/healthz200 / 无凭证 402 字段正确 / 金额与登记价一致。
> 必备登录(唯一必须本人完成的动作):支付宝 App 扫码 / 钱包登录授权(出现在 S2 签约确认、S4 安全验证、支付收银环节)。其余步骤 Agent 在对话内驱动或引导。
7. 能力边界
本技能是效率工具,不替代你对目标 Skill 的知识产权判断;不适用于你未拥有知识产权或授权的 Skill 的改造(版权红线,须先获授权);不适用于非 SkillHub 分发场景。
8. 支付调用流程(必须先于业务执行)
步骤 1 probe:请求付费资源 → 未付款返回 HTTP 402 + Payment-Needed 账单;保存账单与订单号;幂等复用未过期订单
步骤 2 pay:向用户明示金额并取得同意后,由官方买家能力收银(alipay-bot 402-buyer-pay)→ 用户扫码/免密付款
步骤 3 complete:查询支付结果 → 携 Payment-Proof 重试原请求 → 服务端验付并下发工具包 + 履约确认(ack)
Agent 注意事项:
- 三步复用同一个原始请求(URL、参数、请求头保持一致),付款后不重新下单
- 需要支付时以退出码 2 退出,并在 stdout 输出账单 JSON(含 bill、next_action)
- 支付状态不明时先查单(402-query-payment-status),不重复付款、不追加独立回执
- 验付失败(凭证无效/过期)时服务端不交付资源,本 Skill 自动降级为免费基础能力(仅方法论概述),不让用户走死路
9. 环境依赖与前置检查
- Python 3.8+(编排脚本纯标准库)
- 支付宝官方支付 CLI:
npx -y @alipay/agent-payment@latest install,确认alipay-bot可用、钱包已开通(check-wallet返回已开启) - 发起支付前必做:检查环境中是否存在支付宝支付能力工具;不存在→终止并提示(合作智能体升级最新版 / 开放智能体安装官方「支付宝 AI 付」Skill 后重试)
10. 演示/受限环境降级(必须遵守)
无法真实支付时(演示沙箱、无 CLI、无钱包、接口不可达):如实说明,绝不伪装成功;可继续提供免费环节(全流程脉络 + 类型/定价引导 + 官网保鲜);禁止虚构"已下发"、编造交付物、假装支付已通过;案例演示场景不发起 probe。
11. 数据与隐私披露
- 经官方支付 CLI 外送的字段仅限:402 账单文件、商品名、订单金额、会话 ID;用途仅限创建交易与核验支付结果
- 本服务无需你上传目标 Skill 的任何内容——仅需提供技能名 / slug / 单价 / 模式等轻量元数据;请勿在元数据中填写客户个人隐私信息或商业机密
- 历史记录与订单状态仅保存在本地
.skillpay/目录,可随时删除 - 全程不向用户暴露支付链接原文、二维码原文、交易号等中间过程
12. 安全红线
应用私钥只存服务端(环境变量/KMS 注入),禁止写入包内、日志或公开仓库;非 Java 用 PKCS#1;生产必须校验本地订单、金额与资源关系;service_id 用 API_ 开头真实值。
13. 计费口径(什么算"一次")
| 场景 | 计费 |
|---|---|
| 一次完整工具包下发流程 | 1 次(单价 0.99 元,以 SkillHub 同类为锚,独立测算,由创建者确认) |
| 同订单 30 分钟内重复取包 | 幂等复用,不另计 |
| 用户变更元数据后重新发起 | 新流程,另计 |
14. 免责声明
效率工具定位 + 不替代专业/法律判断(含版权合规)+ 隐私最小化 + 闸门/校验拦截范围如实声明(不宣称"任何 Skill 都能过审")。
附:7 阶段改造方法论概述(免费)
- Phase 1 资产盘点与模式判定:盘点目标 Skill 全部文件,回答"值钱的东西是什么",判定模式甲(后端完整生成)/ 乙(后端结论/资产下发)。
- Phase 2 后端建设:402/A2M 计费壳 + 核心能力上云(本服务的付费后端即此形态)。
- Phase 3 签约与入驻:支付宝开放平台实名 → 签约「AI 按量付费」→ 拿
API_serviceId。 - Phase 4 沙箱联调:官方端到端脚本跑通 probe→收银→Proof→complete→履约确认。
- Phase 5 技能包制作:SKILL.md 支付契约 + skillpay.py(本包已含骨架,付费后端下发完整模板)。
- Phase 6 打包与发布:zip 只含 SKILL.md + scripts/skillpay.py,dashboard 发布。
- Phase 7 发布后验证:非本人账号实测一单,服务端订单库核对。
> 详细模板、网关代码、清单与 63 坑实战录在付费后端下发,见上文"付费环节"。