下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-khy0jxtz--juhe-vehicle-dd-pro-wechat-a2a.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-khy0jxtz/juhe-vehicle-dd-pro-wechat-a2a。- 车辆尽调报告 Pro(标准版):一次付费通过车架号(VIN)查询车辆配置档案、登记五项与过户流转,输出带摘要灯的购前快检报告
- 付费前须确认车辆类型与是否事故(hasSg)。 基于微信支付 Agent Pay(X402 / HTTP 402)协议。买家通过本 Skill 向卖家服务端发起请求,完成支付后获取相关结果。 调用过程上传 VIN、车辆类型、是否涉及伤亡事故/非法改装处罚(是=1/否=0),无需提供手机号、身份证、姓名等其他个人隐私
- 返回中的车牌号须脱敏展示。 适用于二手车购前快检、核实车型配置与过户次数、金融机构/保险核对车辆基础与流转信息等场景。 注意:纯查车型配置(排量/轴距/公告号等)且无尽调/过户意图时,应使用 vin-query-a2a
- 纯查过户历史应使用 juhe-vehicle-owner-a2a,不要触发本技能。
阅读全文 (展开查看完整说明)
概述
技能概述
本 Skill 提供 车辆尽调报告 Pro(标准版) 服务。当用户需要对某辆车做购前快检、尽调,或同时关心「什么配置 + 登记信息 + 过户几次」时,使用此技能。
该服务是基于微信支付 Agent Pay(X402 / HTTP 402)协议的付费资源。买家(消费者 Agent)通过本 Skill 向卖家服务端发起资源请求,服务端将返回 402 响应(含 WeixinPay-Required、X-Out-Trade-No),买家需通过 weixinpay 插件完成付款后重新请求获取资源。
标准版涵盖内容(一次付费套餐返回):
- 车辆配置档案(品牌/车系/销售车型、动力、尺寸、排放、变速器、公告号、指导价等)
- 登记五项(发动机号、初次登记日期、登记口径品牌型号等;车牌脱敏展示)
- 过户流转(过户次数、过户前后城市、过户年月)
- 一页摘要与过户红黄绿灯(规则见
OUT_FORMAT.md/PRODUCT.md) - 车检估算参考(依赖用户提交的车型
type与hasSg;登记日取自登记五项)
付费前必填入参: vin + type(由用户中文车型映射)+ hasSg(由「有/没有」映射)。对用户用中文引导,见 4.1 第二步。
不涵盖: 车辆估值、事故全量清单、盗抢/抵押、真实违章清单、保险报价、人车关系核验。
适用场景:
- 用户要求对某 VIN 做车辆尽调、二手车快检、购前核查
- 用户同时关心车型配置与过户次数/流转城市
- 用户明确要「车辆尽调报告」「快检报告」而非仅配置或仅过户
收单资源已定稿: 请求体中的
resourceId固定为862_pro,禁止篡改。返回结构见同目录README.md;输出渲染见OUT_FORMAT.md。
付费前置检查
调用本 Skill 前,检查当前 Agent 是否已安装 weixinpay 插件:
- 已安装:可继续提供付费服务
- 未安装:提示"当前 Agent 暂不支持微信支付付费能力",终止流程
一、依赖安全管控
- 第三方接口依赖:聚合数据车辆尽调套餐接口,仅允许文档指定域名
apis.juhe.cn,禁止转发请求至其他第三方域名。 - 禁止在客户端串行多次 402 拆分查询;必须使用下文规定的单一套餐 resourceId 一次请求。
二、用户意图安全触发规则
2.1 正向触发双条件(必须同时满足)
条件 1:意图关键词命中(任意一条)
车辆尽调/快检类:车辆尽调、尽调报告、二手车快检、购前核查、车辆风险快检、查这车怎么样、配置加过户、登记信息、过户次数、过户历史、车架号尽调、VIN 尽调。
条件 2:具备有效查询参数
用户输入包含有效 VIN 码,且最终能收齐车型 type 与 hasSg(0/1)(可分步补充);未通过 VIN 前置校验或车型/hasSg 未齐前,不得进入付费请求。
2.2 强制拦截黑名单(命中任意一条,直接阻断技能触发,拒绝调用付费接口)
- 纯科普无查询诉求:VIN 结构科普、过户制度说明类问答
- 模糊无参数提问:只要尽调/快检但不提供具体 VIN
- 仅配置档案、无尽调/过户意图:只查排量、轴距、公告号、销售车型等 → 引导使用
vin-query-a2a - 仅过户、无尽调套餐意图:明确只要过户记录 → 引导使用
juhe-vehicle-owner-a2a - 跨品类诉求:违章记录、保险报价、车辆估值、人车是否一致等
- 纯闲聊无查询
- 未通过 VIN 前置校验的输入
2.3 触发示例区分
✅ 合法触发(允许进入付费流程)
- 帮我对 LBV21AF05MSZ88595 做个二手车尽调
- 车架号 LSGVU69Z19Y056936 出一份车辆尽调报告,看看配置和过户
- 查一下这个 VIN 的购前快检:WBA3A51060F123456
❌ 拦截不触发(直接终止、改走单查 Skill,或先补 VIN)
- VIN 码是什么
- 帮我尽调一下(无 VIN)
- 查一下排量和轴距(纯配置 →
vin-query-a2a) - 只查过户信息(→
juhe-vehicle-owner-a2a) - 这个车值多少钱 / 有没有违章
- 擅自修改 resourceId 或拆成多次付费请求
三、用户数据安全规范
3.1 采集数据清单(仅采集以下字段,禁止额外抓取用户信息)
仅临时内存读取用户输入的业务参数:
vin:车辆 VIN 码(车架号,17 位)type(车型):车辆类型枚举数字1~7hasSg:是否发生过致人伤亡事故或存在非法改装被依法处罚的交通违法,1=是 /0=否
本技能全程不采集、不读取、不存储任何用户敏感个人信息:手机号、身份证号、姓名、住址、银行卡、人脸、设备标识、地理位置等。
接口若返回车牌号,仅脱敏后展示,禁止明文输出完整车牌。
3.2 数据传输安全规则
- 传输协议:仅 HTTPS TLS1.3 加密请求聚合接口,禁止 HTTP 明文传输
- 数据最小化:仅把
vin、type、hasSg三个业务参数上传至聚合服务端,不附加用户会话、设备、身份附加字段 - 单次临时传输:参数仅本次接口请求使用,请求结束后内存立即销毁,无本地磁盘持久化存储、无日志落地完整 VIN、无缓存留存
- 禁止数据共享:查询参数不得转发至 weixinpay 插件以外任何第三方服务
3.3 数据生命周期管控
- 采集阶段:仅用户确认付费后读取输入参数,未确认前不解析、不缓存任何用户输入(前置校验与友好引导收集所需的临时规范化除外,校验失败立即清空)
- 使用阶段:仅用于车辆尽调套餐接口入参,不可用于统计、营销、用户画像等其他用途
- 销毁阶段:接口请求完成/支付失败/用户取消三种场景下,立即清空内存参数,无延时留存
- 留存禁止:不写入本地文件、数据库、日志完整 VIN / 车型 / hasSg 查询内容;日志仅记录匿名请求计数,不含用户原始查询文本
3.4 隐私告知强制规范
付费确认弹窗必须完整公示隐私条款,缺失则不允许收集参数发起请求:
🚗 本服务为车辆尽调报告 Pro(标准版)技能,由聚合数据提供技术支持。
- 费用:XX 元/次(以实际支付为准,禁止预估费用)
- 支付方式:微信支付(通过 weixinpay 插件完成)
- 隐私说明:仅将你本次查询的 VIN 码、车辆类型、是否涉及伤亡事故/非法改装处罚(是/否)临时加密发送至聚合数据服务端用于车辆尽调查询,请求结束后数据立即销毁,无长期存储;本技能全程不会采集、存储你的身份证、手机号、姓名、住址、银行卡等任何个人隐私信息;若结果含车牌号,将脱敏展示
- 结果说明:报告基于第三方公开/接口数据整理,非事故全量、非盗抢抵押查询、非估值报告,年检时间为估算仅供参考
如您同意以上条款,请回复「确认」等肯定词,并按提示补充 VIN、车辆类型与事故情况。
如您不需要付费服务,请回复「取消」,本次查询立即终止,不记录任何查询信息。
四、付费与微信 Agent Pay X402 收单安全流程
4.1 标准化七步安全工作流(不可调整步骤顺序)
第一步:付费告知与确认(必须执行)
在收集任何参数之前,必须先向用户明确以下信息:
🚗 本服务为付费车辆尽调报告 Pro(标准版),由聚合数据提供技术支持。
- 费用:XX元/次(以实际支付为准,禁止预估价格;含车辆配置档案 + 登记五项 + 过户流转;车型与事故情况用于年检估算参考)
- 支付方式:微信支付(通过 weixinpay 插件完成)
- 您本次查询的 VIN 码、车辆类型、是否涉及伤亡事故/非法改装处罚(是/否)将被发送至聚合数据服务端用于车辆尽调查询,请求结束后数据立即销毁,无长期存储;本技能全程不会采集、存储你的身份证、手机号、姓名、住址、银行卡等任何个人隐私信息;若结果含车牌号,将脱敏展示
- 结果说明:报告基于第三方公开/接口数据整理,非事故全量、非盗抢抵押查询、非估值报告,年检时间为估算仅供参考
如您同意以上条款,请回复 “确认” 或继续按提示补充 VIN、车辆类型与事故情况。
如您不需要付费服务,请回复 “取消”,我将停止本次操作。
只有用户明确表示同意(如回复“确认”“好的”“可以”“同意”“继续”“下一步”等肯定词)后,才能进入第二步收集参数。 未获取用户明确同意前,禁止解析、提取、缓存任何业务参数;用户回复「取消」直接销毁所有临时输入缓存,结束流程。
第二步:收集用户参数
须在付费前收齐以下三项,缺一禁止 curl / 402:
| 参数 | 必填 | 名称 | 说明 | 示例 |
|---|---|---|---|---|
| vin | 是 | 车架号 / VIN | 17 位,见下方 VIN 前置校验 | LBV21AF05MSZ88595 |
| type | 是 | 车型(车辆类型) | 枚举数字 1~7,由用户中文车型映射;禁止猜测默认;对用户只用中文选项 | 3(家用车) |
| hasSg | 是 | 是否事故/非法改装处罚 | 是=1,否=0;禁止缺省、禁止省略 | 0 |
- 用户未提供完整 VIN 码:引导补充必填的
vin(17 位);缺失不发起网络请求 - VIN 前置校验——见下方专节
- 车型
type、事故hasSg友好引导收集——见下方专节;未齐则只引导补参,不发起请求 - 套餐校验:
resourceId必须为862_pro,禁止替换或拆成多次付费 - 安全清洗:过滤特殊注入字符(SQL 注入、XSS、HTML 脚本标签),清洗非法字符后再组装接口请求体
- 参数格式:
vin以 string 传递,如"LSVAA4BR5FN082364" - 校验通过后才允许构造请求体发起 402 请求
VIN 前置校验
本接口按精确车架号计费查询。格式错误的 VIN 常查无或查错,须在发起任何网络请求前做低成本初筛。
A. 规范化(先做)
- 去除首尾空白、空格、连字符
-、下划线等分隔符 - 转为大写英文字母与数字
- 规范化后的字符串记为待校验 VIN
B. 放行条件(须全部满足)
- 长度:恰好 17 位
- 字符集:仅大写字母 A–Z 与数字 0–9
- 禁止字母:不得包含 I、O、Q(易与 1、0 混淆,VIN 标准禁用)
- 非占位串:不得为全 0、全相同字符、明显测试串(如
XXXXXXXXXXXXXXXXX、00000000000000000)
C. 明显无效——直接阻断(禁止付费)
命中任一即 STOP,不发起 curl / 402:
- 长度 ≠ 17(含过短、过长、少一位多一位)
- 含 I / O / Q,或其他非字母数字字符(规范化后仍残留)
- 问句/说明掺入抽不出独立 17 位 VIN
- 用户提供的是车牌号而非 VIN(如「京A12345」形态)——须提示改用 17 位车架号
- 占位/测试串
D. VIN 无效时对用户话术
当前输入不是有效的 17 位车架号(VIN)。请提供完整 VIN:一般为 17 位字母数字组合,不含字母 I、O、Q。补充前不会发起付费查询。
E. Agent 约束
- 校验失败:禁止猜测补全或改写 VIN 后付费
- 校验失败:禁止用搜索引擎「帮用户找 VIN」后静默付费
- 校验通过后仍可能查无档案——属接口结果,按查无/空结果渲染,不回溯为校验错误
车型 type 与 hasSg 友好引导(强制)
对用户只用中文选项收集,禁止让用户回复 0/1/3 等纯数字(易与「营运=1」「事故=1」等冲突)。Agent 在提交请求前,将中文映射为 type / hasSg;不要对用户说出英文字段名或枚举数字。
完整引导话术(推荐,可原样使用):
为生成尽调报告(含下次年检时间估算),还需要确认两件事,用中文回复即可~
① 这是什么车? 请直接回复下面任一说法(私家轿车 / SUV 一般回「家用车」):
- 家用车 — 私家轿车、SUV 等(9 座及以下、非营运;不含面包车)
- 大型轿车 — 非营运大型轿车
- 面包车
- 营运车 — 出租、网约车等
- 货车 或 大中型客车
- 摩托车
- 其他 — 以上都不符合时
② 有没有下面这种情况?(致人伤亡事故,或因非法改装被依法处罚)
- 没有 → 回复 「没有」 / 「否」
- 有过 → 回复 「有」 / 「是」
可以一起回,例如:
确认,家用车,没有
缺参时的短引导(只缺一项时用):
- 缺车型:
还差一项:这辆车属于哪种?请用中文回复,例如 家用车、面包车、营运车、货车、大型轿车、摩托车 或 其他。(私家轿车/SUV 回「家用车」即可)
- 缺事故项:
还差一项:是否发生过致人伤亡事故,或因非法改装被依法处罚?
请直接回 「没有」 或 「有」(不要只回数字)。
中文 → type 映射(仅 Agent 内部,勿向用户展示数字):
| 用户中文(含近义) | 提交 type |
|---|---|
| 家用车、私家车、家用小客车、轿车、SUV、非营运小客车 | 3 |
| 大型轿车、非营运大型轿车 | 7 |
| 面包车 | 6 |
| 营运车、营运、出租、网约车 | 1 |
| 货车、大中型客车、客车 | 2 |
| 摩托车、摩托 | 4 |
| 其他、其他机动车 | 5 |
无法归入上表 → 再问一句,禁止擅自默认成家用车/3。
中文 → hasSg 映射(仅 Agent 内部):
| 用户表述 | 提交 hasSg |
|---|---|
| 有、是、有过、发生过、存在、肯定 | 1 |
| 没有、否、未发生、无、不曾、否定 | 0 |
含糊(「不清楚」「可能」「大概没有」)→ 再确认,禁止默认后请求。若用户仍回复纯数字 0/1/3 等:先用一句话确认含义(「您是指车辆类型,还是事故情况?」),确认后再映射;不要直接把孤立数字当成最终答案。
第三步:请求约束(⚠️ 必须严格执行执行)
- 请求方法:POST
- 请求头HEADER:Content-Type: application/json
- 请求体Body:json字符串,请严格按照以下格式填写:'{"resourceId":"862_pro","data":{"vin":"<规范化后的17位VIN>","type":<车型数字>,"hasSg":<0或1>}}'
- 套餐 resourceId(固定,不可修改;仅用于收单请求,勿向用户展示或解释):
862_pro type:车型枚举数字(对用户称「车辆类型 / 车型」)hasSg:事故/非法改装处罚,是=1,否=0(禁止缺省)- 注意请求参数中如果出现引号,需要进行转义,自动将英文引号替换为中文引号,避免json字符串异常
- 禁止追加用户会话 ID、设备信息至请求 data 内部
- 禁止客户端拆成多次付费请求
第四步:请求资源
向用户展示待查询摘要(VIN、车辆类型中文、事故是/否),严格遵守请求约束,向以下 URL 发起请求:
curl -X POST https://apis.juhe.cn/a2a/wechat
-d '{"resourceId":"862_pro","data":{"vin":"<规范化后的17位VIN>","type":<车型数字>,"hasSg":<0或1>}}'
-H "Content-Type: application/json"第五步:处理 402 响应
服务端会返回 HTTP 402,响应中同时包含支付码和订单号,必须两者都保存,同时agent必须向用户展示下面的订单信息:
- 支付码:从
Header.WeixinPay-Required或Body.WeixinPay.WeixinPay-Required中提取 - 订单号:从
Header.X-Out-Trade-No或Body.out_trade_no中提取 - 订单信息:从 Body中提取
description(商品详情)、amount(订单金额)、out_trade_no(订单号),展示给用户 - 必须展示:agent 必须向用户展示订单信息
预期响应示例:
{
"code": "PAYMENT_REQUIRED",
"message": "需要支付后才能获取内容",
"WeixinPay": {
"WeixinPay-Required": "d5c0bb6f-e040-4e53-9e68-9b235c565563",
"prompt": "本次使用微信支付,请将 WeixinPay-Required 的值作为 paymentCode 交给 weixinpay_pay,以向用户申请支付授权。"
},
"out_trade_no": "WX402_1753891234_a1b2c3d4e5f6",
"description": "订单商品详情",
"amount": "1.00",
"currency": "CNY"
}第六步:发起支付
将 WeixinPay-Required 值作为 paymentCode,调用 weixinpay_pay,引导用户完成微信支付。
第七步:支付成功后获取资源(⚠️ 必须执行)
支付成功后,必须重新发起请求获取付费内容,并且严格遵循下要求:
- 1.请求地址:与首次请求相同(
https://apis.juhe.cn/a2a/wechat) - 2.JSON body 不变:与首次请求完全一致,禁止更改
- 3.通过 Header 携带支付信息:将 402 响应中保存的
WeixinPay-Required与X-Out-Trade-No原样带上 - 4.禁止篡改请求参数:严格禁止Agent以任何形式修改用户提交的原始请求参数(即JSON字符串),必须原样透传至下游技能。
curl -X POST https://apis.juhe.cn/a2a/wechat
-H "Content-Type: application/json"
-H "WeixinPay-Required: <402响应中保存的支付码>"
-H "X-Out-Trade-No: <402响应中保存的订单号>"
-d '{"resourceId":"862_pro","data":{"vin":"<规范化后的17位VIN>","type":<车型数字>,"hasSg":<0或1>}}'注意:body 与首次请求完全一致,不要修改任何字段。支付信息通过 Header 传递。
第八步:格式化数据输出
- 读取同目录下的
OUT_FORMAT.md - 按模板填充接口返回内容(字段路径以
README.md为准) - 车牌脱敏:凡展示
plate/ 车牌号,必须按OUT_FORMAT.md脱敏规则处理,禁止明文完整车牌 - 若返回含
data.chejian,按OUT_FORMAT.md「车检估算」专章渲染(展示时用中文「车辆类型 / 事故情况」,勿写英文字段名) - 以清晰、美观的 Markdown 呈现给用户
- 同一次付费结果内的追问:直接使用本次已返回的数据补渲,禁止再次请求本套餐或再次走 402
4.2 异常情况处理
- 尊重用户选择,告知用户该内容为付费资源,如需获取请完成支付。
- 如返回 200,直接展示内容;如返回 4xx/5xx 错误,告知用户服务暂时不可用,建议稍后重试。
- 配置档案查无(如
vinInfo缺失,或error_code为查无业务码如286204):按OUT_FORMAT.md查无模板,不编造车辆信息。 - 其余异常情况按微信支付流程处理(支付失败/取消/退款等)。
五、Agent 运行强制约束
- 参数缺失阻断:
vin/type(车型)/hasSg任一为空或非法,禁止发起任何网络接口请求 - VIN 前置校验阻断:未通过校验的 VIN,禁止发起任何网络接口请求或 402;禁止擅自改写 VIN 后付费
- 车型与 hasSg 阻断:须由用户中文明确车型与事故情况后再映射;
type∈1~7,hasSg∈{0,1};禁止根据座位数/SUV 猜测;禁止把含糊回答或孤立数字直接当最终答案;引导话术禁止要求用户回复 0/1/3 等纯数字 - resourceId 约束:仅允许使用请求模板中的固定套餐值,禁止替换或拆成多次付费
- 支付凭证不可篡改:完整保存并原样回传
WeixinPay-Required与X-Out-Trade-No,禁止修改订单、价格、资源标识等核心收单字段 - 数据来源真实性约束:所有报告内容仅使用聚合套餐接口返回数据,禁止本地虚构、编造车辆或过户信息
- 车牌脱敏约束:输出中的车牌必须脱敏;禁止在报告、日志、追问回复中回显完整车牌明文
- 输出格式约束:统一使用 Markdown 结构化输出,禁止原始 JSON、HTML 直接返回用户;面向用户禁止出现底层接口编号、resourceId、英文字段名及车型枚举数字(对用户说「家用车」「没有」等中文)
- 脚本过滤约束:接口返回富文本自动清除 script、iframe、a 跳转标签,仅保留纯文本段落
- 参数用途约束:采集的 vin / type / hasSg 仅用于本次接口查询,禁止用于统计、推送、缓存复用
- 无跨次缓存约束:不实现本地、磁盘多级缓存跨会话复用;新的 VIN 查询须重新发起接口请求。但同一次付费成功后的会话内追问必须复用本次已拿到的返回结果,禁止为追问再次请求查询接口或再次 402
- 结论约束:禁止输出「建议购买」「不建议购买」「车况良好」等确定性判断;仅可做过户灯与事实摘要;禁止将指导价写成估值
- 接口编号禁述:技能对用户输出及引导话术中,禁止提及任何上游数据接口编号;收单 resourceId 仅用于请求体,勿向用户展示
六、日志安全审计规范
- 禁止日志落地用户原始查询文本、完整 VIN、完整车牌、hasSg 明文业务细节等业务参数
- 可记录匿名审计字段(无用户关联):请求时间、请求状态码、订单创建计数、接口响应耗时、异常类型
- 日志留存周期:本地审计日志自动 7 天滚动清理,不永久留存
- 禁止日志输出完整 402 支付报文、订单明文信息,仅记录匿名订单计数
重要提示: 查询结果仅供参考,请以实际车辆登记、车管所及厂商官方信息为准。
七、合规与风险免责声明
7.1 内容合规说明
- 本技能数据来源于第三方数据服务,可能存在延迟或遗漏,不得作为唯一交易决策依据
- 本技能不生成、不传播违法违规、侵权内容
- 禁止基于接口数据输出法律判定类确定性结论;本报告非估值报告、非事故证明、非盗抢抵押查询;年检时间为估算仅供参考
7.2 隐私合规声明
- 本技能严格遵循《个人信息保护法》最小必要采集原则,仅采集 VIN、车辆类型、事故情况是否(0/1),无姓名/身份证/手机号等采集行为
- 返回车牌号一律脱敏展示,降低标识泄露风险
- 第三方聚合数据接口传输全程 TLS 加密,无明文数据泄露风险
- 无用户数据持久化存储行为,不存在用户信息泄露、倒卖、共享风险
7.3 风险免责提示
所有车辆尽调查询内容仅供参考,用户需结合实际情况理性判断,因轻信查询结果做出决策产生的一切后果由用户自行承担。