| name | compensation-damages-calculator |
| description | 专注劳动法领域的补偿金及赔偿金智能计算技能。根据用户提供的案件信息、内置计算公式、政策数据 API/cache 及联网检索兜底,精准计算经济补偿金、赔偿金、未签书面劳动合同二倍工资及竞业限制补偿金,生成结构清晰的计算明细,并附带法条引用与实务法律建议。当用户询问经济补偿金、离职补偿金、N、N+1、2N赔偿金、未签劳动合同二倍工资、违法解除赔偿金、竞业限制补偿金等场景时触发。输出格式可根据用户需求灵活调整,不强制输出Excel。 |
| metadata | {"version":"1.0.0"} |
补偿金及赔偿金计算
触发场景
当用户描述以下场景时触发本技能:
- 经济补偿金、离职补偿金、赔偿金怎么算
- 被辞退、裁员、合同到期不续签、协商解除能拿多少钱
- N、N+1、2N赔偿金计算
- 未签劳动合同的赔偿金、二倍工资怎么算
- 没有签合同工作了多少个月赔多少
- 违法解除赔偿金标准
- 竞业限制补偿金怎么算、竞业协议补偿多少
- 经济补偿工龄计算、工龄系数N怎么算
- 月均工资S计算、社平工资三倍封顶
- 劳动合同补偿标准、劳动争议赔偿金额
- 非过失辞退、医疗期满赔偿、不胜任工作赔偿
- 被迫离职补偿(未缴社保、克扣工资、恶劣劳动环境)
- 劳动合同赔偿计算器、补偿金明细表格
技能说明
本技能专用于劳动法领域三类补偿/赔偿金的精准计算:
- 未签书面劳动合同赔偿金(二倍工资)
- 离职经济补偿及赔偿金(N、N+1、2N)
- 竞业限制经济补偿金
调用时须严格遵循以下工作流程。
数据源优先级(严格执行)
- [优先] 政策数据 API:通过
calc_engine.py 请求 COMPENSATION_DAMAGES_POLICY_API_URL 配置的补偿金及赔偿金政策数据 API。API 只返回政策数据,不计算金额。
- [按需兜底] web_search 联网检索([注意] 总轮数不超过2轮):仅当当前计算分支已经明确、且 API/cache 未返回该分支必需的政策字段时触发。
- S、未签合同二倍工资、竞业限制补偿需要最低工资时,缺
policy_data.min_wage 才检索。
- N、N+1 三倍封顶需要社平工资时,缺
policy_data.social_avg_wage 才检索。
- 计算结论需要法条依据时,优先使用
policy_data.law_basis。
- [计算说明] References:
references/formulas.md 仅用于公式、倍率规则、字段含义和边界说明,不作为政策数据主来源。
- [禁止] 严禁凭空编造数据:API、缓存和网络均无法找到时,告知用户"该地区该项标准暂缺,建议致电当地人社局12333咨询",绝不套用其他省份数据。
API 配置
配置步骤
- 前往 https://open.delilegal.com/personal/keys 注册/登录
- 创建应用并获取 API Key
- 将 API Key 填入技能目录下的
config.json 文件:
{
"apikey": "你的API Key"
}
⚠️ 未配置 API Key 时,不得执行检索,必须先提示用户:
"config.json 中的 apikey 尚未配置。请前往 https://open.delilegal.com/personal/keys 创建 API Key,并填入技能目录下的 config.json 文件中。"
社平工资三口径说明(三倍封顶用)
政策数据 API 的 social_avg_wage 支持三种口径,使用时须注意:
| 口径 | 工资水平 | 补偿金计算的实务适用 |
|---|
| 城镇非私营单位就业人员平均工资 | 最高 | 默认口径——大多数省市仲裁/法院采用此标准判断三倍封顶 |
| 全口径城镇单位就业人员平均工资 | 居中 | 部分省份(如广东、山东等地)社保缴费基数及部分地方判例以此为准 |
| 城镇私营单位就业人员平均工资 | 最低 | 极少单独使用,仅供参考 |
缺参数时的联网检索策略:
- 先请求政策数据 API/cache;如有数据直接用。
- 若 API 明确返回
needs_web_search: true,执行 web_search,关键词:"[省市]YYYY年城镇非私营单位就业人员平均工资" 或 "[省市]YYYY年社平工资"。
- 如联网也无法确认,询问用户是否知晓当地数据,或告知建议致电12333;不得代入其他省数据。
web_search 规则
- 单次任务累计不超过2轮
- 最需联网查询的数据:当地上年度城镇职工月平均工资(用于三倍封顶判断)
- 默认优先搜索"城镇非私营单位"口径;若当地实务明确适用全口径,切换后须在备注中注明
- 检索关键词示例:
"[城市/省]YYYY年城镇非私营单位就业人员平均工资" 或 "[省市]YYYY年社平工资"
- API 已返回当前计算分支所需政策数据时,不因“可能有更新”而主动联网检索。
- 联网检索只用于补齐政策数据;公式、倍率、金额计算仍交由
calc_engine.py 完成。
交互策略:漏斗式提问
- 不要一次性提问所有内容
- 先根据已知信息给出初步判断,再按需补充采集缺失字段
- 如信息不足,先给出同类案件的计算示例,再索要关键信息
必采信息矩阵
通用必采(所有案件):
- 发生地(省 + 市)——用于查最低工资标准
- 用工起始日期(年月)
- 劳动合同解除/终止日期(年月)
- 离职前12个月应得月工资总额(含奖金、津贴、补贴;不含非货币性福利)
- 工作不满12个月时:实际工作月数及各月工资
未签合同赔偿金追加:
- 是否签订书面劳动合同(未签/补签时间)
- 用工满1个月后未签的具体月份区间
- 各赔偿月份的实际应得月工资(如差异不大可取平均值)
离职补偿/赔偿金追加:
- 离职原因(协商/辞退/裁员/合同到期/被迫离职/违法辞退等)
- 如属非过失辞退:是否提前30天书面通知(影响是否有代通知金)
- 当地上年度职工月平均工资(用于三倍封顶判断,需联网确认)
竞业限制补偿金追加:
- 竞业限制协议约定的:期限(月数)、补偿比例/金额
- 无约定比例:默认按30%计算,期限>1年时建议50%
- 当地最低工资标准(作为月补偿金下限)
核心计算模块
政策数据获取与计算说明
scripts/calc_engine.py 的计算 action 在入参包含 region、province 或 city 且缺少对应显式政策参数时,通过 scripts/policy_data.py 获取政策数据。policy_data.py 会先读取本地 .policy_cache/{normalized_region}__{date}__{social_avg_year}__{wage_caliber}.json 文件缓存;缓存不存在时再携带 config.json 中的 apikey 请求统一政策数据 API。
也可显式附带 policy_data 字段用于测试或外部编排。显式传入的 local_min_wage、social_avg_monthly 优先于 API。
references/formulas.md 仅作为计算公式、倍率规则和边界说明参考;最低工资、社平工资和法条全文不再从 references Markdown 读取。
scripts 可调用操作清单
运行原则:
scripts/policy_data.py 请求统一接口 POST /api/v1/skill/calculator,请求体由脚本自动包装为 {"resource_type":"compensation-damages-calculator","payload":<原payload>}。
scripts/calc_engine.py 的入参必须包含 action;正式案件计算优先传 region 让脚本获取政策数据,测试或外部编排可显式传 policy_data。
- 公式、上下限、折算和 Excel 样式由脚本实现;
SKILL.md 只负责选择 action、补齐输入和输出解释。
scripts/policy_data.py 支持:
| action | 用途 | 关键入参 |
|---|
api_snapshot / fetch_api_snapshot / policy_data | 获取最低工资、社平工资、法条依据和说明 | region、date、social_avg_year、wage_caliber |
scripts/calc_engine.py 支持:
| action | 用途 | 关键入参 | 是否需要 policy_data |
|---|
calc_s | 计算月均工资 S | total_income_12m 或 monthly_wages、actual_months;最低工资可由 local_min_wage 或政策数据提供 | 条件需要 |
calc_n | 计算工龄系数 N | start_year、start_month、end_year、end_month | 否 |
no_contract | 计算未签书面劳动合同二倍工资额外部分 | avg_monthly_wage、months;可选不满月字段和最低工资 | 条件需要 |
compensation_n | 计算经济补偿金 N | s、n;三倍封顶需 social_avg_monthly 或政策数据 | 条件需要 |
n_plus_1 | 计算 N+1 | s、n、last_month_wage;三倍封顶需 social_avg_monthly 或政策数据 | 条件需要 |
illegal_2n | 计算违法解除/终止赔偿金 2N | s、n | 否 |
non_compete | 计算离职后竞业限制补偿 | avg_monthly_wage、non_compete_months;可选 agreed_rate 或 agreed_monthly_amount、最低工资 | 条件需要 |
min_wage_lookup | 查询最低工资 | region、date | 是 |
social_avg_wage_lookup | 查询社平工资 | region、social_avg_year 或 year、wage_caliber | 是 |
export_excel / export_to_excel | 导出计算明细 Excel | rows 或 detail_rows,可选 output_path、 |
scripts 命令生成规范
生成命令时必须使用仓库根目录相对路径,不要省略 python3,不要调用已删除的 references 动态数据文件。
python3 labor-fee-calculator/compensation-damages-calculator/scripts/policy_data.py '{"action":"api_snapshot","region":"上海市","date":"2025-01-01","social_avg_year":2023,"wage_caliber":"urban_non_private"}'
python3 labor-fee-calculator/compensation-damages-calculator/scripts/calc_engine.py '{"action":"calc_n","start_year":2020,"start_month":1,"end_year":2025,"end_month":6}'
复杂 JSON 或完整 policy_data 优先使用 @文件:
python3 labor-fee-calculator/compensation-damages-calculator/scripts/calc_engine.py @/absolute/path/to/payload.json
命令生成校验规则:
- JSON 顶层必须是对象,且必须包含
action。
- JSON 使用双引号,整段 JSON 在 shell 中用单引号包裹;布尔值使用 JSON 的
true / false。
- 需要政策数据的 action,应传
region 让脚本自动获取,或把 policy_data.py 响应中的 body 放入 calc_engine.py 入参的 policy_data 字段。
calc_engine.py 与 policy_data.py 成功时输出均应包含 "success": true 和 "body"。
- 命令生成后,应优先用
python3 -m py_compile 或实际执行命令做冒烟验证。
模块一:未签书面劳动合同赔偿金(二倍工资额外部分)
适用条件:用工满1个月次日起至满1年前1日,且不存在劳动者拒签、不可抗力、劳动者故意或重大过失等免除情形。计算使用 no_contract,由脚本处理赔偿月数、最低工资下限和不满月折算。
[注意] 视为已订立无固定期限劳动合同后,劳动者再主张二倍工资的,通常不予支持。
模块二:离职经济补偿/赔偿金
按离职原因选择 action:先用 calc_s 计算月均工资 S,用 calc_n 计算工龄系数 N,再调用 compensation_n、n_plus_1 或 illegal_2n。三倍封顶、12年上限、N+1代通知金和 2N 不适用三倍封顶等逻辑均由脚本处理,输出时说明工资口径和政策来源。
高收入案件须确认社平工资口径。默认使用城镇非私营单位就业人员月平均工资;若当地仲裁/法院明确适用全口径,切换口径并在备注中注明来源。
2N vs 继续履行的程序选择(司法解释二第16、18条):
劳动者主张违法解除时,可在以下两条路径中选择:
- 路径A(要求继续履行):用人单位支付违法解除决定作出后至劳动合同继续履行前一日的工资(按正常劳动工资标准支付);赔偿金2N不支持
- 路径B(放弃继续履行):主张违法解除赔偿金2N = S × N × 2
第16条"劳动合同已不能继续履行"的认定情形(出现以下情形,路径A通常不被支持):
- 劳动合同在仲裁/诉讼期间期满(且无法定续订情形)
- 劳动者已开始享受基本养老保险待遇
- 用人单位被宣告破产
- 用人单位解散(合并/分立除外)
- 劳动者已与其他单位建立劳动关系,严重影响本职工作且拒不改
- 其他客观不能履行的情形
[注意] 路径A(工资补发)与路径B(2N赔偿金)不可同时主张,须择一
模块三:竞业限制补偿金
使用 non_compete。需确认离职前12个月平均工资、竞业限制期限、约定比例或约定月金额、当地最低工资。期限封顶、默认比例、最低工资下限和超过1年的提示由脚本处理。
新增规则——在职竞业限制无需支付补偿(司法解释二第14条):
- 用人单位与高级管理人员/高级技术人员/其他负有保密义务人员约定在职期间竞业限制条款,无需支付经济补偿
- 若劳动者以"在职期间竞业限制+未支付补偿"为由主张条款无效,不予支持
- 离职后的竞业限制补偿规则不变
离职场景快速判断
| 离职原因 | 补偿类型 | 计算公式 | 法条 |
|---|
| 协商解除(单位主动提出) | 经济补偿N | N × S | 第36、46条 |
| 协商解除(劳动者主动提出) | 无 | 0 | — |
| 被迫离职(单位违约第38条) | 经济补偿N | N × S | 第38、46条 |
| 劳动者主动辞职(第37条) | 无 | 0 | 第37条 |
| 非过失辞退+提前30天通知 | 经济补偿N | N × S | 第40、46条 |
| 非过失辞退+未提前通知 | N+1 | N × S + 上月工资 | 第40、46条、实施条例第20条 |
| 经济性裁员 | 经济补偿N | N × S | 第41、46条 |
| 合同到期,单位不续签 | 经济补偿N | N × S | 第44、46条 |
| 合同到期,劳动者不同意续签(单位维持条件) | 无 | 0 | 第46条 |
| 过失性辞退(第39条) | 无 | 0 | 第39条 |
| 违法解除/终止(无合法理由) | 2N赔偿金 | 2 × N × S | 第87条 |
| 单位破产/吊销 | 经济补偿N | N × S | 第44、46条 |
Excel 输出(可选,简洁为原则)
用户明确要求导出 Excel 时,使用 export_excel / export_to_excel,传入 rows 或 detail_rows、output_path 和可选 case_summary。Excel 样式和列结构由脚本负责,文档输出保持简洁。
对话输出格式规范
输出格式不限制死,可根据用户问题灵活调整。核心要素必须包含以下五项,其余可按需增删:
核心要素(必须)
① 计算标准说明
- 明确本案适用的补偿/赔偿类型(如:经济补偿金N、代通知金、违法解除赔偿金2N、二倍工资等)
- 简要说明计算逻辑(S、N、三倍封顶等核心参数含义)
② 计算明细(MD表格)
- 项目 | 计算过程 | 金额(元) | 法条依据
- 过程列须清晰呈现:参数值 × 系数 = 中间结果 → 最终金额
- 末尾加一行合计
③ 法条依据
- 引用本案涉及的法条(条款编号 + 名称)
- 优先从
policy_data.law_basis 和 policy_data.law_articles_text 调取,不自编
④ 最终应赔偿/补偿金额
- 明确列出合计金额(大写 + 小写)
- 如涉及多条路径(2N vs 继续履行),分别列出
⑤ 免责声明
固定格式如下,置于文末:
[注意] 免责声明
- 本计算结果仅供参考,不构成法律意见
- 法定赔偿/补偿标准可能随法规修订或地方政策调整而更新
- 部分参考值(如社平工资、最低工资)以政策数据 API/cache 或已核验检索结果为准,如与最新公布数据不符,以当地主管部门公布为准
- 具体赔偿/补偿金额须结合证据材料、工资流水、仲裁/法院裁审口径等因素综合确定,以最终仲裁/法院判决为准
灵活要素(按需)
以下要素可根据用户需求和案件情况按需增补,不必每次都全量输出:
- 案件摘要(一句话提炼:地区/离职原因/关键时间节点/补偿类型)
- 实务建议(不超过3条,聚焦风险点、举证要点)
- 特殊注意事项(如三倍封顶触发、时效问题、路径选择等)
- 对比分析(多条路径/口径并列时)
输出示例(最小版)
**经济补偿金计算**
① **计算标准**:标准经济补偿金(N)× 月均工资
② **计算明细**:
| 项目 | 计算过程 | 金额(元) | 法条依据 |
|------|---------|----------|---------|
| 经济补偿金 | 7年 × 8,000元/月 | 56,000 | 《劳动合同法》第46、47条 |
| **合计** | | **56,000** | |
③ **法条依据**:《劳动合同法》第46、47条;《实施条例》第27条
④ **最终金额**:人民币 **56,000元**(伍万陆仟元整)
⑤ [注意] **免责声明**:[见上文固定格式]
防幻觉提示
- 用户事实数据(月工资、工龄、解除原因等)必须来自用户提供;政策数据(社平工资、最低工资)必须来自政策数据 API/cache 或已核验 web_search 结果,不得凭空填写
- 社平工资必须说明口径和来源(如
policy_data.social_avg_wage 或已核验统计局数据)
- 2N赔偿金不适用三倍封顶;计算时注意区分
- 赔偿金(2N)与经济补偿金(N)不可同时支付(已付2N则不再付N,实施条例第25条)
- 竞业限制期限超过2年的约定无效,计算时截至2年