法规检索 Skill
一、核心能力
- 意图解析:识别用户检索意图(精准条款查询、法规查找、时效核实、法规对比)
- 查询结构化:将自然语言提取为法规名称、条款号、效力级别、时效状态等检索要素
- 语义检索:支持通过
--semantic传入法律场景、自然语言问题或材料摘要,与关键词检索二选一 - 检索策略路由:L1精准定位 → L2结构化筛选 → L3语义泛搜
- 结果后处理:时效性标注、智能摘要、关键词高亮、关联法规推荐
- 多形态输出:支持条款详情、法规列表、法规对比、时效核实四种标准输出
二、强制执行约束
- 必须调用脚本检索:只使用
scripts/search_laws.py发起检索,不得自行编写python -c、urllib、requests、curl或其他 HTTP 请求直接访问 API。 - 不得读取脚本后绕过脚本:脚本已经处理鉴权、请求头、分页和完整正文输出;即使需要确认字段,也不得改用内联代码请求 API。
- 单次检索只传一个查询语义:
keyword与--semantic二选一;不得把多个法规、案由、社保、工伤、仲裁等词堆在同一个参数里。 - 默认小结果集:首次检索使用
--size 3,必要时最多使用--size 5;只有用户明确要求批量结果时才提高条数,脚本会把--size限制在 10 以内。 - 默认返回完整原文:脚本优先输出接口
content字段的完整文本,不做字符数截断;不得添加抑制正文输出的参数。
三、触发条件
主动触发
- 法条查询:
"查一下《劳动合同法》第46条" - 法规查找:
"找关于经济补偿的现行有效法规" - 时效核实:
"这个法规还有效吗" - 法规对比:
"对比民法典和合同法关于违约责任的区别" - 概念定位:
"竞业限制的法规依据"
不触发场景
- 纯理论法学问题(如"什么是法律行为")
- 法律意见书、合同审查等深度分析任务
- 寒暄或无关内容
四、API 配置
本技能通过得理(法律)开放平台 API 进行法规检索。
API 端点:https://platform.delilegal.com/api/v1/generice/law/list
鉴权方式:Authorization: Bearer YOUR_API_KEY
响应结构:{success, code, msg, body: {data:[...], totalCount, totalPage, queryId}}
配置步骤
- 前往 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 文件中。"
五、工作流程
Step 1:意图识别与要素抽取
| 意图类型 | 判定标准 | 需抽取要素 | |---------|---------|-----------| | 精准定位 | 法规名+条款号明确 | 法规全称/简称、条款号、款号 | | 结构化筛选 | 部分要素(关键词+效力级别) | 关键词、效力级别、发文机关、时间范围 | | 语义泛搜 | 自然语言描述法律场景 | 核心法律概念、主体关系、行为类型 | | 时效核实 | 询问法规是否有效 | 法规名称、版本年份 | | 法规对比 | 对比两个法规/条款 | 法规A+条款、法规B+条款、对比维度 |
处理规则:
- 法规简称自动映射标准全称(如"劳动法"→"中华人民共和国劳动法",全部映射名称请参考/references/regulation-mapping.md)
- 条款号统一转换为阿拉伯数字(如"第四十六条"→"46")
- 未指定时效状态时,优先检索现行有效法规(在关键词中加"现行有效"或明确说明)
- 多个法规或多个问题必须拆成多次检索;不要将多个独立关键词拼接成一条长 query
- 信息不足时进入澄清模式
Step 2:选择关键词检索或语义检索
精准条款、明确法规名称、时效核实、法规对比时使用 keyword。用户用完整自然语言描述法律场景、合规问题、争议事实或不知道应检索哪部法规时,使用 --semantic,不要拆成多条关键词组合反复检索。
| 场景 | 推荐调用 | 避免调用 |
|------|-----------|-----------|
| 精准条款 | python scripts/search_laws.py "劳动合同法 第46条" --size 3 | python scripts/search_laws.py --semantic "劳动合同法 第46条" |
| 法规主题 | python scripts/search_laws.py "竞业限制 现行有效" --size 3 | python scripts/search_laws.py "竞业限制 保密协议 离职 补偿 劳动仲裁 公司法 刑法" |
| 时效核实 | python scripts/search_laws.py "中华人民共和国合同法 时效" --size 3 | python scripts/search_laws.py "合同法 民法典 担保法 物权法 是否有效" |
| 最新法规 | python scripts/search_laws.py "数据安全" --size 3 --sort-field time | python scripts/search_laws.py "数据安全 个人信息 网络安全 人工智能 互联网" |
| 法规对比 | 分别检索 民法典 违约金 和 合同法 违约金 | 一次传入 民法典 合同法 违约金 赔偿金 30% |
| 语义泛搜 | python scripts/search_laws.py --semantic "公司要求员工离职后两年内不得去同行业公司工作,但没有约定补偿金,想查询竞业限制相关法规" --size 3 | 拆成 竞业限制 司法解释、竞业限制 补偿金 违约金 等多次关键词检索 |
如果首次无结果,按“更标准的法规名称 → 更通用的法律概念 → 拆分为多次检索”的顺序重试。
Step 3:调用 API 检索
使用技能目录下的检索脚本调用得理法律开放平台 API:
cd <skill_dir>
python scripts/search_laws.py "<检索关键词>" --size 3
# 或
python scripts/search_laws.py --semantic "<法律场景或自然语言问题>" --size 3
如果当前运行环境使用 python3,可将命令中的 python 替换为 python3。不得使用内联 Python 代码直接请求接口。
命令示例:
python scripts/search_laws.py "劳动合同法 第46条" --size 3
python scripts/search_laws.py "竞业限制 现行有效" --size 3
python scripts/search_laws.py "中华人民共和国合同法 时效" --size 3
python scripts/search_laws.py "数据安全" --size 3 --sort-field time --sort-order desc
python scripts/search_laws.py --semantic "公司不给加班费,想查询工资支付和劳动监察相关法规" --size 3
可选参数:
| 参数 | 默认值 | 说明 |
|------|--------|------|
| keyword | 不使用 | 检索关键词(自然语言),与 --semantic 二选一 |
| --semantic | 不使用 | 语义检索文本,用于法律场景、自然语言问题或材料摘要 |
| --page | 1 | 页码,翻页时传入 |
| --size | 3 | 每页返回条数,首次检索建议 3,最多 10 |
| --sort-field | correlation | 排序字段:correlation(相关性)/ time(发布时间)/ activeDate(生效日期) |
| --sort-order | desc | 排序方向:desc(降序)/ asc(升序) |
API 请求结构(扁平结构,无 condition 嵌套):
{
"pageNo": 1,
"pageSize": 5,
"sortField": "correlation",
"sortOrder": "desc",
"query": "劳动合同法经济补偿金计算"
}
长文本语义检索请求结构:
{
"pageNo": 1,
"pageSize": 5,
"sortField": "correlation",
"sortOrder": "desc",
"query": "公司要求员工离职后两年内不得去同行业公司工作,但没有约定补偿金,想查询竞业限制相关法规",
"semantic": true
}
语义检索模式:当用户描述具体业务场景、合规问题、争议事实或“不知道查哪条法”时,使用 --semantic 传入保留语义关系的自然语言文本。脚本会将该文本放入 API 的 query 字段,并同时设置 semantic: true。建议 100-800 字,包含主体、行为、约束、争议点或查询目标;不要先拆成多个关键词组合。
降级规则:首次检索结果不足时,优先保留用户语义并改写 --semantic;仍不足时再换用更标准的法规名称或更通用的法律概念。
Step 4:结果校验与后处理
- 时效性校验:核对法规当前状态(现行有效/已废止/已被修订/部分失效/尚未生效)
- 内容完整性校验:核实条款号、款号是否存在
- 版本校验:确保返回用户指定版本或最新现行有效版本
Step 5:结果后处理
| 处理项 | 处理规则 | |-------|---------| | 智能摘要 | 不超过50字,含适用主体、核心行为、法律后果 | | 关键词高亮 | 原文片段中加粗标记检索关键词 | | 关联推荐 | 基于上下位法关系、引用关系,推荐2-3条相关法规 | | 时效标注 | ✅现行有效 / 🔴已废止 / 🟡已被修订 / 🟠部分失效 / 🔵尚未生效 |
Step 6:格式化输出
脚本已内置格式化输出。根据检索场景,可参考/references/search-examples.md 中的模板做进一步加工呈现。
完整原文输出:默认直接复用脚本输出,不要展开 API 原始 JSON。若结果仍过长,优先降低 --size 或请用户缩小检索范围;不要再使用字符数截断参数处理正文。
翻页:用户说"下一页"/"再看一些"时,将 --page 递增并重新执行脚本。
注意:如果脚本执行报错提示 apikey 未配置,则直接告知用户:"config.json 中的 apikey 尚未配置。请前往 https://open.delilegal.com/personal/keys 创建 API Key,并填入技能目录下的 config.json 文件中。",不再执行后续检索任务。
六、输出模板
模板A:单一条款详情(L1精准定位)
📋 **{法规全称(YYYY修正)}** ✅现行有效
**第{条款号}条** 【{条款标题}】
> {条款原文内容,其中用户检索关键词以**加粗**标记}
💡 **核心要点**:{智能摘要文本}
🔗 **关联法规**:
- 《{关联法规1全称}》第{条款号}条({关联理由})
- 《{关联法规2全称}》第{条款号}条({关联理由})
模板B:法规列表(L2结构化筛选)
共检索到 {结果数量} 条现行有效法规:
| 序号 | 法规名称 | 效力级别 | 发布日期 | 时效状态 | 相关条款原文 |
|:---:|:---|:---|:---|:---:|:---|
| 1 | {名称} | {级别} | {日期} | ✅现行有效 | {接口返回的完整 content 文本} |
| 2 | {名称} | {级别} | {日期} | 🟡已被修订 | {接口返回的完整 content 文本} |
💡 **提示**:第2条法规已被修订,建议查阅《{现行版本名称}》。
模板C:法规对比(Compare)
**对比主题**:{对比维度}
| 对比项 | 《{法规A}》第{X}条 | 《{法规B}》第{Y}条 |
|:---|:---|:---|
| **原文** | {原文A} | {原文B} |
| **核心差异** | {差异点1} | {差异点2} |
📌 **对比结论**:{简要结论}
模板D:时效核实(Verify)
**核实结果**:{法规全称}
- **当前状态**:🔴 已废止(于{废止日期}由《{废止决定}》废止)
- **现行有效替代文件**:《{替代法规全称}》
- **历史沿革**:{简要沿革说明}
---
⚠️ 检索结果基于当前数据库版本,法规时效性可能因最新立法动态而变化,重要决策前请核实最新官方文本。
模板E:无结果(No Result)
未找到符合"{用户原始Query}"的法规结果。
建议您尝试以下方式:
1. 🔍 检查法规名称是否准确(如"劳动法"应为"中华人民共和国劳动法")
2. 📅 放宽时间范围
3. 📝 使用更通用的关键词
七、注意事项
时效性红线
- 绝对禁止将已废止法规作为现行有效依据引用
- 对于"已被修订"的法规,必须告知现行有效版本名称及生效日期
条款引用边界
- 引用条款原文时必须保持文本完整性,不得断章取义
- 涉及多款多条时须准确标注款号
检索范围限制
- 本 Skill 仅提供检索与呈现服务,不提供法律解释、适用意见、个案分析
- 对于涉及国家秘密、内部文件、未公开草案的检索请求,明确告知不在范围内
数据更新声明
- 所有结果须附带提示语:"检索结果基于当前数据库版本,法规时效性可能因最新立法动态而变化,重要决策前请核实最新官方文本。"
歧义处理
- 同一简称对应多部法规时,列出候选列表请用户确认
- 条款号存在版本差异时,提示用户确认所需版本
微信扫一扫