技能概述
本 Skill 提供身份证信息查询服务。当用户需要通过身份证号码查询性别、出生日期、户口所在地(归属地)时,使用此技能。
该服务是基于 A2M(HTTP 402)收单协议的付费资源。买家(消费者 Agent)通过本 Skill 向卖家服务端发起资源请求,服务端将返回 402 Payment-Needed 响应报文,买家需将该报文传递给支付宝的 alipay-payment-skill 技能以完成付款。
涵盖内容:
- 性别(sex)
- 出生日期(birthday)
- 户口所在地 / 归属地(area)
- 身份证校验位格式提示(verify,如有)
适用场景:
- 用户提供身份证号码,查询编码自带的基础信息
- 根据身份证号前 6 位行政区划码解析归属地
- 根据身份证号编码规则解析性别与出生日期
重要说明:
本技能仅依编码及格式进行识别判断,不能识别身份证真伪,不提供公安实名核验、人脸比对等能力,查询结果不得作为身份真实性判定依据。
一、系统运行安全要求
1.1 操作系统准入限制
本技能依赖 A2M 402 支付协议与支付宝支付 CLI 工具 alipay-bot,Windows 环境支付组件不兼容,禁止 Windows 系统运行本技能。
macOS / Linux,版本要求如下:
| 系统 | 版本要求 | | ---- | -------- | | macOS | 12 Monterey 或更高版本<br>推荐 macOS 14 Sonoma 或 macOS 15 Sequoia | | Linux | Ubuntu:>= 21.04<br>Debian:>= 12<br>CentOS:>= 9 |
1.2 运行环境安全基线
禁止低于基线版本环境启动技能,启动前自动校验环境版本,不满足直接抛出阻断异常。
| 环境 | 版本要求 | | ---- | -------- | | Node.js | > 22 | | npm | > 10 |
1.3 依赖安全管控
- 前置强制依赖(必须在 ClawHub 完成安装并启用,缺失则技能禁用)
alipay-authenticate-wallet:支付宝钱包身份鉴权技能alipay-payment-skill:A2M 402 支付收单核心技能
- 依赖校验规则:技能启动时自动检测上述两个技能安装状态、开关状态;未安装/未开启支付功能时,主动提示用户完成前置部署,拒绝处理任何用户查询请求。
- 第三方接口依赖:聚合数据身份证信息查询接口,仅允许文档指定域名
apis.juhe.cn,禁止转发请求至其他第三方域名。
二、用户意图安全触发规则
2.1 正向触发双条件(必须同时满足)
条件 1:意图关键词命中(任意一条)
身份证信息类:身份证信息查询、身份证号查询、身份证解析、身份证归属地、户口所在地查询、性别查询、出生日期查询、身份证号码解析、查身份证编码信息。
条件 2:具备有效查询参数
用户输入包含有效居民身份证号码,支持 15 位或 18 位格式,无模糊无目标提问。
2.2 强制拦截黑名单(命中任意一条,直接阻断技能触发,拒绝调用付费接口)
- 真伪核验诉求:公安实名核验、身份证真伪鉴定、人证比对、实人认证类需求
- 纯科普无查询诉求:身份证编码规则科普、校验位算法说明类问答
- 模糊无参数提问:只问身份证信息但不提供具体号码
- 跨品类身份诉求:银行卡查询、手机号归属、征信查询、户籍档案调取等非本技能业务范围
- 纯闲聊无查询:身份证趣味闲聊,无信息查询需求
- 无效号码格式:明显不符合 15/18 位身份证规范的输入
- 疑似非法用途:冒用他人身份证、批量爬取身份信息等违法违规诉求
2.3 触发示例区分
✅ 合法触发(允许进入付费流程)
- 帮我查一下 320505199001011234 的身份证信息
- 这个身份证号对应的性别和出生日期是什么
- 查询身份证 11010119900307551X 的户口所在地
- 解析一下这个 18 位身份证号码的归属地
❌ 拦截不触发(直接终止流程)
- 身份证校验位怎么算
- 帮我查一下身份证信息(无号码)
- 核验这个身份证是不是假的
- 查一下这个人的真实姓名和住址
三、用户数据安全规范
3.1 采集数据清单(仅采集以下字段,禁止额外抓取用户信息)
仅临时内存读取用户输入的一类查询参数:
- cardno:居民身份证号码(15 位或 18 位)
本技能不采集、不读取、不存储姓名、手机号、住址、银行卡、人脸、设备标识、地理位置等其他敏感个人信息。
3.2 数据传输安全规则
- 传输协议:仅 HTTPS TLS1.3 加密请求聚合接口,禁止 HTTP 明文传输
- 数据最小化:仅把
cardno一个业务参数上传至聚合服务端,不附加用户会话、设备、身份附加字段 - 单次临时传输:参数仅本次接口请求使用,请求结束后内存立即销毁,无本地磁盘持久化存储、无日志落地完整身份证号、无缓存留存
- 禁止数据共享:查询参数不得转发至支付宝支付技能以外任何第三方服务
- 展示脱敏:向用户展示结果时,身份证号码必须脱敏处理(保留前 6 位与后 4 位,中间以
*替代)
3.3 数据生命周期管控
- 采集阶段:仅用户确认付费后读取输入参数,未确认前不解析、不缓存任何用户输入
- 使用阶段:仅用于聚合身份证信息查询接口入参,不可用于统计、营销、用户画像等其他用途
- 销毁阶段:接口请求完成/支付失败/用户取消三种场景下,立即清空内存参数,无延时留存
- 留存禁止:不写入本地文件、数据库、日志完整身份证号;日志仅记录匿名请求计数,不含用户原始查询文本
3.4 隐私告知强制规范
付费确认弹窗必须完整公示隐私条款,缺失则不允许收集参数发起请求:
🪪 本服务为身份证信息查询技能,由聚合数据提供技术支持。
- 费用:0.10 元/次(以实际支付为准)
- 支付方式:支付宝(通过 alipay-payment-skill 完成)
- 隐私说明:仅将你本次查询的身份证号码临时加密发送至聚合数据服务端,用于解析性别、出生日期、户口所在地等编码信息;请求结束后数据立即销毁,无长期存储;本技能不会采集姓名、手机号、住址、银行卡等其他个人隐私
- 能力说明:本技能仅做编码规则解析,不能识别身份证真伪,不提供公安实名核验
如您同意以上条款,请回复「确认」「好的」「可以」「继续」「同意」「下一步」等肯定词或补充需要查询的身份证号码。 如您不需要付费服务,请回复「取消」,本次查询立即终止,不记录任何查询信息。
四、付费与 A2M 402 收单安全流程
4.1 标准化七步安全工作流(不可调整步骤顺序)
第一步:前置付费隐私告知(强制首步骤)
未获取用户明确同意前,禁止解析、提取、缓存任何身份证号码参数;用户回复「取消」直接销毁所有临时输入缓存,结束流程。
第二步:参数合规校验与收集
- 用户未提供身份证号码:引导补充必填号码,无号码不发起网络请求
- 参数校验规则:身份证号码清洗为大写字母数字,过滤特殊注入字符(SQL 注入、XSS、HTML 脚本标签),校验长度为 15 位或 18 位
- 号码规范化:去除空格、连字符等分隔符后校验;18 位末位
X统一为大写
第三步:接口请求体安全封装
请求仅允许 POST HTTPS 接口,固定请求约束不可篡改:
- 请求地址:
https://apis.juhe.cn/a2a/query - 请求头固定:
Content-Type: application/json,禁止自定义头附加用户信息 - 固定 resourceId 不可修改:
38 - 标准安全请求体模板(自动转义引号、特殊字符,防止 JSON 注入漏洞)
{ "resourceId": "38", "data": { "cardno": "用户输入的身份证号" }, "isCharge": true }
- 禁止追加自定义字段、用户会话 ID、设备信息至请求 data 内部
第四步:请求资源
仅允许访问聚合官方固定域名,拦截跨域未知第三方地址;接口超时设置 10s,超时直接抛出服务不可用异常,不重试循环请求。
向用户展示待查询的参数(脱敏后展示),严格遵守请求约束,向以下 URL 发起请求:
curl https://apis.juhe.cn/a2a/query \
-d '{"resourceId":"38","data":{"cardno":"<用户输入的身份证号>"}}' \
-H "Content-Type: application/json"
说明:接口路径 /a2a/query 为服务商固定后端地址,仅业务收单协议文案统一描述为 A2M,二者不冲突。
第五步:处理 402 响应
你将收到一个状态码为 402 的响应报文,其中包含 Payment-Needed 响应头。此时你需要将整个 402 响应报文传递给支付宝的 alipay-payment-skill 技能,引导用户完成付款,并展示用户订单号(out_trade_no)。
第六步:后续流程
完全转移到 alipay-payment-skill 技能的工作流,提示支付待确认的信息时,需要包含用户订单号(out_trade_no)。禁止 agent 更改用户提交的请求参数即 json 字符串。
第七步:格式化数据输出
- 读取同目录下的
OUT_FORMAT.md - 按模板填充接口返回字段
- 以清晰、美观的 Markdown 呈现给用户
- 身份证号码展示必须脱敏,禁止完整明文回显
4.2 异常情况处理
- 用户拒绝付款:尊重用户选择,告知用户该内容为付费资源,如需获取请完成支付。
- 请求返回非 402 状态码:如返回 200,直接展示内容;如返回 4xx/5xx 错误,告知用户服务暂时不可用,建议稍后重试。
- 其余异常情况将由 alipay-payment-skill 技能处理。
五、Agent 运行强制约束
- 参数缺失阻断:cardno 必填参数为空,禁止发起任何网络接口请求
- 402 报文不可篡改:完整透传原始响应,禁止修改订单、价格、资源 ID 等核心收单字段
- 数据来源真实性约束:所有查询内容仅使用聚合接口返回数据,禁止本地虚构、编造身份证信息
- 输出格式约束:统一使用 Markdown 结构化输出,禁止原始 JSON、HTML 直接返回用户
- 脚本过滤约束:接口返回富文本自动清除 script、iframe、a 跳转标签,仅保留纯文本段落
- 参数用途约束:采集的身份证号码仅用于本次接口查询,禁止用于统计、推送、缓存复用
- 无缓存约束:不实现本地、内存、磁盘多级缓存,每次用户查询必须重新发起接口请求
- 脱敏展示约束:向用户展示的身份证号码必须脱敏,日志中禁止记录完整号码
六、日志安全审计规范
- 禁止日志落地用户原始查询文本、完整身份证号码等业务参数
- 可记录匿名审计字段(无用户关联):请求时间、请求状态码、订单创建计数、接口响应耗时、异常类型
- 日志留存周期:本地审计日志自动 7 天滚动清理,不永久留存
- 禁止日志输出完整 402 支付报文、订单明文信息,仅记录匿名订单计数
重要提示: 查询结果仅供参考,本技能不能识别身份证真伪,请以公安机关等权威渠道核验为准。
七、合规与风险免责声明
7.1 内容合规说明
- 本技能身份证信息来源于编码规则解析及第三方行政区划数据,可能存在数据滞后或无法匹配的情况,不得作为唯一身份判定依据
- 本技能不生成、不传播违法违规、侵权内容
- 禁止基于接口数据输出「证件真实有效」「本人身份确认」等确定性结论
- 校验位提示仅表示格式校验结果,不代表证件已通过公安实名认证
7.2 隐私合规声明
- 本技能严格遵循《个人信息保护法》最小必要采集原则,仅采集身份证号码用于本次编码解析,不采集姓名、手机号等其他敏感信息
- 第三方聚合数据接口传输全程 TLS 加密,无明文数据泄露风险
- 无用户数据持久化存储行为,不存在用户信息泄露、倒卖、共享风险
- 禁止将本技能用于冒用他人身份、批量采集身份信息等违法违规场景
7.3 风险免责提示
所有身份证信息查询内容仅供参考,用户需结合实际情况理性判断,因轻信查询结果或非法使用本技能产生的一切后果由用户自行承担。
微信扫一扫