禁止在 LLM 对话中暴露
api_key。 API Key 从环境变量CLAWMATE_API_KEY读取。
AI 不得读取发票文件内容(PDF/图片)。 所有文件由 Python 脚本内部处理。AI 只需:获取文件路径 → 传给脚本 → 展示结果。
本技能仅读取以下目录中的发票文件:
.clawmate/ 目录(及其子目录)禁止读取上述范围以外的文件。 如果用户未指定目录,默认仅扫描 .clawmate/ 目录。
POST https://www.clawmate.net/server/test/Api/InvoiceValidatescripts/invoice_validate_client.py参数类型必填说明fphmstring是发票号码(传统票 8 位,全电票 20 位)kprqstring是开票日期,格式 yyyyMMdd``fpdmstring否发票代码(10-12 位)。全电票无需传kjjestring否不含税金额jshjstring否价税合计jymstring否校验码(完整值或后 6 位)
参数类型必填说明validateModeint是2 =PDF, 3 =图片, 4 =ODFfilestring是发票文件绝对路径
文件方式无需传其他参数。
validateMode=3/4服务端暂不支持。
text
用户消息 → 智能提取参数 → 判断票种(全电票跳过 fpdm)→ 确认 → 调用 API
参数提取规则:
yyyyMMdd / yyyy-MM-dd / yyyy年MM月dd日 等格式,统一转为 yyyyMMdd确认格式:
text
📋 即将查验的发票信息:
- 发票号码:{fphm}
- 开票日期:{kprq}
- 发票代码:{fpdm}(全电票不显示)
确认查验?[A] 确认 [B] 修改
触发词: "批量查"、"目录"、"文件夹" + "发票/查验"
流程:
.clawmate/ 目录或用户指定目录,递归子目录)结果保存: {yyyyMMddHHmmss}-{N}张.md
bash
# 发票信息方式
python scripts/invoice_validate_client.py \
--fphm "12345678" --kprq "20260424" --fpdm "1100191320"
# PDF 文件方式
python scripts/invoice_validate_client.py --validate-mode 2 --file "/path/to/invoice.pdf"
# JSON 模式(批量查验用)
python scripts/invoice_validate_client.py --fphm "..." --kprq "..." --json
exit code状态处理0查验通过展示发票信息表格1查验不通过列出可能原因,建议核实原件2服务异常建议稍后重试3API Key 未设置引导获取 Key4余额不足提示充值5次数超限提示购买套餐6参数格式错误指出具体字段问题7网络错误检查连接或 API 地址8响应异常联系技术支持
响应解读:
resCode=200 → 读取 data.isSuccess + data.validateCoderesCode=400 + msg 含"版本过低" → 自动更新技能查验通过后,展示以下字段(有值则显示):
字段API 字段说明发票代码invoice.InvoiceCode传统票有,全电票无发票号码invoice.InvoiceNumber开票日期invoice.InvoiceDate价税合计invoice.Amount不含税金额invoice.TotalPrice税额invoice.TotalTaxPrice销方名称invoice.SellerCompany / invoice.InvoiceCompany销方税号invoice.SellerTaxCode销方开户银行invoice.SellerBankName销方银行账号invoice.SellerBankAccount / invoice.SellerBankingAccount购方名称invoice.BuyerCompany购方税号invoice.BuyerTaxCode购方开户银行invoice.BuyerBankName购方银行账号invoice.BuyerBankAccount / invoice.BuyerBankingAccount
展示格式:
text
📋 发票信息
| 字段 | 值 |
|------|-----|
| 发票号码 | 26442000004xxxxxx1 |
| 开票日期 | 2026-04-15 |
| 价税合计 | 3544.75 元 |
| 不含税金额 | 3344.10 元 |
| 税额 | 200.65 元 |
| 销方 | 广州xxx科技有限公司 / 9144xxx / 中国银行 / 709469xxx |
| 购方 | 广州yyy数据科技有限公司 / 9144xxx |
═════════════════════════════════════════════
✅ 查询状态:发票信息与税局电子信息一致
═════════════════════════════════════════════
汇总摘要:
text
📊 批量查验结果
总计:{N} 张 | ✅ 通过:{M} 张 | ❌ 失败:{K} 张
消费金额:{totalCharge} 元
结果文件: {yyyyMMddHHmmss}-{N}张.md
文件内容格式(仅展示有值字段):
markdown
# 批量查验结果
**总计**:3 张 | **通过**:2 张 | **失败**:1 张
**消费金额**:0.06 元
---
## 发票1.pdf — ✅ 通过
| 字段 | 值 |
|------|-----|
| 发票号码 | 26442000xxxxxxx61 |
| 开票日期 | 2026-04-15 |
| 价税合计 | 3544.75 元 |
| 不含税金额 | 3344.10 元 |
| 税额 | 200.65 元 |
| 销方名称 | 广州xxx科技有限公司 |
| 销方税号 | 9144************6G |
| 销方开户银行 | 中国银行广州支行 |
| 销方银行账号 | 709469xxxxxx |
| 购方名称 | 广州yyy数据科技有限公司 |
| 购方税号 | 914401xxxxxxxx |
---
## 发票2.pdf — ❌ 失败
查验未通过:查无此票
---
## 发票3.jpg — ✅ 通过
| 字段 | 值 |
|------|-----|
| 发票号码 | 11223344 |
| 开票日期 | 2026-04-16 |
| 价税合计 | 113.00 元 |
检测到版本过期时,提示用户手动更新:
text
⚠️ 技能版本过低,请运行以下命令更新:
curl -o /tmp/cm-invoice-validate.zip https://www.clawmate.net/server/test/cm-invoice-validate.zip
mkdir -p ~/.agents/skills/cm-invoice-validate
unzip -o /tmp/cm-invoice-validate.zip -d ~/.agents/skills/cm-invoice-validate/
用户确认后再执行更新命令。
情况处理用户取消终止操作,不调用 API日期格式错误提示正确格式,重新询问部分字段未填确认时展示已填字段,省略可选字段目录不存在/无发票文件提示检查路径发票超过 5 张分批执行,每批 5 张并行
Version: 1.0.2 | 更新日期: 2026-04-28