Install
openclaw skills install @chenqg618/freight-loss-claim-check-free货运破损理赔与承运商扣款明细表逐项核对(理赔金额复算、扣款不得超过理赔金额、重复运单与赔付比例超上限、关键字段缺失或负数),每条结论引用原文行号与运单号。本免费版执行引擎声明的 5 项免费检查。触发词包括 货运破损理赔、承运商扣款核对、破损理赔对账、理赔扣款明细表。
openclaw skills install @chenqg618/freight-loss-claim-check-free完全本地运行:引擎已经打包在本技能里(
engine/目录)。 核对过程不需要联网、不需要 API Key、没有调用次数上限。
谁会在什么时候用:发货方(货主)的财务 / 物流成本岗 / 应付会计, 在每月与承运商对账、承运商从应付运费里直接扣掉破损理赔款之后, 把这张《货运破损理赔与承运商扣款明细表》核一遍才能确认本期运费结算。 理赔金额算错一档、扣款多扣一笔、同一票重复录两行,正是每月都要和承运商吵的几件事。
这张表会逐项核对什么:
每条结论都带原文行号与运单号 / 理赔单号,可被第三方用同一口径复算; 材料不齐时不给结论,会明确列出还缺什么。
(检查项由引擎的 CHECKS_GIVEN 导出,跑 --sample 会打印实际执行了哪些;
本版本不执行的 5 项列在 CHECKS_WITHHELD 里,不做也不假装做。)
数字会做归一化:12,000.00、千分位、带货币符号的写法、(12000)(会计负数)、60% 都被认成同一个口径
(60% 折成 0.60;比例列写 0.6 或 60% 都行,写 60 表示 6000%,本工具不会替你猜)。
表头里的空格与括号会被忽略,所以「货值(元)」和「货值」都认。
node scripts/run.mjs --sample # 先看样例
node scripts/run.mjs --input 你的材料.json # 跑自己的材料
node scripts/run.mjs --input 你的材料.json --json
入参就是含表头的一张表({"text": "理赔期间\t承运商编码\t运单号\t…"}):
从 Excel 或 TMS 导出的对账表里直接复制成文本(Tab 分隔最稳)贴进去即可。
表头缺列会明确告诉你缺了哪一列;缺一列就不给结论,不会拿 0 替你假设"这一票不赔"。
非破损理赔的承运商 / 期间请把「货值 / 理赔金额 / 扣款金额 / 免赔额」都填 0:
填 0 表示"确实没有",留空表示"不知道",这两者不能混。
| 码 | 含义 |
|---|---|
| 0 | 已执行检查 |
| 1 | 没给入参 |
| 3 | 材料不齐 —— 此时不给结论(既不说"对",也不说"错") |
| 4 | 入参文件读不到或无法解析 |
| 9 | 未预期错误 |
run.mjs --json(以及引擎 run() 返回值里的 result)的形状:
{
"status": "success",
"service_type": "FREIGHT_LOSS_CLAIM_CHECK",
"scope": {
"checks": [...], // 本次实际执行的检查项
"checks_not_run": [...], // 本版本未执行的检查项(= CHECKS_WITHHELD)
"rows": 6, "carriers": 2, "periods": 2,
"totals_row": true, "totals_rows": 1,
"goods_value_total": 65000, "claim_amount_total": 36300,
"deduct_amount_total": 32300, "damaged_qty_total": 17,
"paid_in_total": 32300, "outstanding_total": 4000,
"statement_claim_total": 36300,
"tolerance": 0.01, "executed_locally": true, "network_used": false
},
"findings": [
{ "level": "P0", "category": "理赔金额复算不符", "line": 2, "amount": 1200,
"message": "承运商「SH-A 华东承运商」运单 YD2026050002 / 理赔单 LP2026050002 的理赔金额是 7000.00,按 货值 12000.00 × 赔付比例 50% − 免赔额 200.00 = 5800.00,相差 1200.00。",
"advice": "…" }
],
"summary": { "rows": 6, "carriers": 2, "periods": 2, "total": 0, "p0": 0, "p1": 0, "p2": 0,
"verdict": "NO_ISSUE_FOUND", "omitted": 0 },
"checks_executed": [...], "checks_withheld": [...],
"checks_given": [...], "checks_out_of_scope": [...],
"note": "…", "disclaimer": "…"
}
findings[].line 是原文行号(含表头,从 1 起),level 是 P0(金额算错 / 缺关键格)或 P1(口径可疑);amount 是这条结论涉及的金额(元),0 表示这条不是金额差;paid_in_total 是本期承运商已从运费里扣走的赔款合计,outstanding_total 是核定赔款中还没扣回来的部分;{"status": "insufficient_input", "missing": [...], "advice": "…"},
没有 result,因此不会有任何"未发现问题"的结论。0.6 或 60% 都认;写成 60 意思是 6000%,
赔款会被算成货值的 60 倍,整行当场离谱。本工具不会替你猜你的意思。货值 × 赔付比例 − 免赔额 ≠ 理赔金额)。以下检查项不在本版本范围内,调用时也不会执行(列在引擎的 CHECKS_WITHHELD 里):
同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准); 两档的差别就是上面这些,没有别的。
本免费版是完整可用的核心产出,本版本不包含下面这些项:
同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准);两档的差别就是上面这些,没有别的。
本工具不做引擎 CHECKS_OUT_OF_SCOPE 里列的那些判断:货值该按销售价还是成本价、赔付比例与免赔额
是否符合运输合同、破损是否真实发生、承运商扣款是否真的已经从运费里扣到、往来对账与税额怎么处理
(那些以运输合同、现场凭证、运费结算单与银行流水为准)。