职位价值评估 PaySkill
基于《企业薪酬公平性管理与职位评估方法》的 AI 按量付费职位评估技能。
付费前置检查
调用本 Skill 前,必须检查当前 Agent 是否已安装支付插件:
- 检查可用工具列表中是否存在名称包含
weixinpay_的工具(如mcp__weixinpay__weixinpay_register,工具名带前缀也算;存在任意一个即视为支持微信支付)。 - 或检查是否存在名称包含
aipay/alipay的工具(支持支付宝 AI 付)。
> 判定规则:按子串匹配 + 存在任意一个即可。不同智能体暴露的支付工具集合与命名前缀不同,若检查某个特定的完整工具名会在部分智能体上把"支持"误判为"不支持"。
>
> 只以工具列表为证据,本文档中提到的工具名不算;无法确认时按「不支持」处理。
- 支持:静默继续本 Skill 的后续流程,不向用户提及本检查。
- 不支持:终止流程且不要发起下单。只向用户说明结论与解决办法(无需解释如何检查、不要出现具体工具名),按智能体类型提示:
- WorkBuddy / 合作智能体:请升级到最新版本后重试,或确认已安装支付插件。
工作流程
本 Skill 基于 X402 / A2M 按量付费协议运行,完整调用链路如下:
第一步:请求资源(首次调用)
向评估服务发送 POST 请求,携带职位说明书文本:
curl -X POST https://your-domain.com/api/eval \
-H "Content-Type: application/json" \
-d '{"text": "职位名称:人力资源经理\n下属:6人\n负责招聘培训绩效薪酬规划..."}'
预期响应:HTTP 402 Payment Required
响应 Header 中包含两个关键值:
- Payment-Needed:Base64URL 编码的 RSA2 签名账单(含金额、订单号、过期时间、商家签名)
- X-Out-Trade-No:商户订单号(用于后续验支付和重试)
响应 Body 示例:
{
"code": "PAYMENT_REQUIRED",
"message": "本次职位价值评估需要付费",
"payment": {
"amount": "10",
"currency": "CNY",
"out_trade_no": "PAY1700000000000XXXXXXXXXXXX",
"instruction": "检测到 HTTP 402 Payment Required。请提取 Header 中的 Payment-Needed 和 X-Out-Trade-No,调用支付插件完成付款后,携带相同的请求体和 X-Out-Trade-No Header 重试此接口获取评估结果。"
}
}
第二步:处理 402 响应,发起支付
从 402 响应中提取:
1. Payment-Needed Header 的值 → 作为 paymentCode 传给支付插件
2. X-Out-Trade-No Header 的值 → 记住,重试时必须带回
调用支付插件发起付款:
- 微信支付:将 Payment-Needed 值作为 paymentCode 调用 weixinpay_pay
- 支付宝:将 Payment-Needed 值传给支付宝 AI 付收银台
用户在对话内确认支付授权后,支付插件返回 Payment-Proof(支付凭证)。
第三步:⚠️ 携带支付凭证重试(必须执行)
使用与第一步完全相同的请求体(text 字段内容不变),并在 Header 中携带支付凭证:
# 方式 A:携带 Payment-Proof 完整凭证
curl -X POST https://your-domain.com/api/eval \
-H "Content-Type: application/json" \
-H "Payment-Proof: <支付插件返回的 Payment-Proof 值>" \
-d '{"text": "职位名称:人力资源经理\n下属:6人\n负责招聘培训绩效薪酬规划..."}'
# 方式 B:携带 X-Out-Trade-No(简化版)
curl -X POST https://your-domain.com/api/eval \
-H "Content-Type: application/json" \
-H "X-Out-Trade-No: <第二步记录的订单号>" \
-d '{"text": "职位名称:人力资源经理\n下属:6人\n负责招聘培训绩效薪酬规划..."}'
> ⚠️ 重要:重试时的请求体(body)必须与第一次完全一致。Agent 不得修改、添加或删除任何参数(包括不"好心"补时间戳)。支付信息仅通过 Header 传递,不在 body 中。
预期响应:HTTP 200 OK,Body 包含评估结果和履约确认信息:
{
"code": "SUCCESS",
"fulfillment_confirmed": true,
"content": {
"jobName": "人力资源经理",
"groups": [
{ "name": "工作责任", "subtotal": 140, "maxTotal": 350 },
{ "name": "知识技能", "subtotal": 105, "maxTotal": 270 },
{ "name": "工作能力", "subtotal": 90, "maxTotal": 310 },
{ "name": "工作强度", "subtotal": 105, "maxTotal": 250 }
],
"total": 440,
"summary": "该职位属于中等管理岗位..."
},
"payment_validation": {
"mode": "production",
"out_trade_no": "PAY1700000000000XXXXXXXXXXXX",
"trade_no": "2026010800001234567890",
"verified_at": "2026-01-08T12:00:00.000Z",
"confirmed_at": "2026-01-08T12:00:01.500Z"
}
}
支付协议实现细节
本 Skill 的后端服务(server/ 目录)实现了完整的 X402/A2M 按量付费协议,涵盖以下 6 项核心能力:
| # | 能力 | 实现位置 | 说明 |
|---|---|---|---|
| 1 | 402 账单下发 | server/a2m.js → generatePaymentNeeded() |
首次请求返回 HTTP 402 + Payment-Needed Header(RSA2 签名账单,含 amount/currency/out_trade_no/resource_id/seller_signature) |
| 2 | 携带凭证重试 | server/a2m.js → extractPaymentCredential() |
解析 Payment-Proof 或 X-Out-Trade-No Header,提取订单号和交易号 |
| 3 | 验支付用 | server/a2m.js → verifyPayment() |
生产模式调支付宝 alipay.aipay.agent.payment.verify 验证支付真实性;演示模式本地信任。含量对码校验:验证返回金额与订单金额一致 |
| 4 | 履约确认 | server/a2m.js → confirmFulfillment() |
评估成功后调支付宝 alipay.aipay.agent.fulfillment.confirm 通知平台交付完成 |
| 5 | 量对码 | server/a2m.js → verifyPayment() 内部 |
验付时校验 amount / out_trade_no / resource_id 三者与订单一致,防止金额篡改 |
| 6 | 订单持久化与幂等 | server/store.js |
文件持久化订单(生产可换 DB)。状态机 INIT→PAID→FULFILLED,FULFILLED 状态重复请求直接返回缓存结果(already_fulfilled: true),绝不重复扣费/重复执行 |
幂等保证
- 同一
out_trade_no只履约一次 - 重复请求返回
already_fulfilled: true+ 缓存结果 - 履约参数使用首请求存下的原始 body(不依赖重试请求的 body,防止 Agent 修改)
- 履约异常自动退款(
REFUNDED),并告知用户"已自动退款"
评估标准
基于《企业薪酬公平性管理与职位评估方法》,评定四大项共 20 因素:
| 大项 | 满分 | 因素数 | 说明 |
|---|---|---|---|
| 工作责任 | 350 | 6 | 影响范围、责任大小、决策权限等 |
| 知识技能 | 270 | 5 | 学历、经验、专业知识、证书等 |
| 工作能力 | 310 | 5 | 规划能力、解决问题、沟通协调等 |
| 工作强度 | 250 | 4 | 工作环境、体力要求、时间特征等 |
| 总计 | 1180 | 20 | 总分即为职位价值点数 |
详细等级锚定与分值标准见 references/evaluation-standard.md。
输出格式
默认输出结构一(精简版):四大项分值小计 + 总分表。
完整输出模板见 references/output-template.md,样例见 references/example-output.md(人力资源经理,总分 440)。
关于付费
- 本 Skill 的评估执行逻辑不涉及任何支付操作。支付链路(402 账单下发 → 用户付款 → 验证 → 履约确认)由后端服务的 A2M 模块独立处理,评估引擎 (
server/evaluator.js) 仅负责评分。 - 定价:¥0.10 / 次(可在
.env中调整PAYMENT_PRICE_FEN)。 - 未配置支付密钥时,服务自动进入演示模式:402 账单用本地临时密钥自签,Payment-Proof 本地信任,不花真钱。
- 配置真实支付宝/微信支付密钥后,自动切换为生产模式:走真实支付链路。
文档索引
| 文件 | 用途 |
|---|---|
SKILL.md |
技能定义、支付协议、工作流程(本文件) |
server/index.js |
Express 服务入口(X402 主流程三分支) |
server/a2m.js |
A2M 协议实现(402/签名/验付/履约/量对码) |
server/evaluator.js |
评估引擎(LLM 精确评分 / 启发式估算降级) |
server/store.js |
订单持久化与幂等(文件存储,可换 DB) |
server/config.js |
配置管理(环境变量 / 密钥解析 / file:// 引用) |
references/evaluation-standard.md |
20 因素评估标准(评分宪法) |
references/output-template.md |
输出格式模板 |
references/example-output.md |
评估结果样例 |
scripts/parse_position_doc.py |
职位说明书文档解析器 |
README.md |
部署与上架指南 |
.env.example |
环境变量模板(含安全说明) |