国家法律法规知识库检索

Other

法律助手与法条检索工具,支持民法典、刑法、劳动法、合同法等国家法律法规的智能查询与检索;提供法律知识库检索、法条精准定位、法规查询服务;当用户需要查询法律条文、检索法规内容、进行法律咨询或法律问答时使用

Install

openclaw skills install national-law-knowledge-search

国家法律法规知识库检索(法律助手、法条查询、法规检索)

任务目标

  • 本技能用于:通过向量检索技术查询国家法律法规知识库,支持民法典、刑法、劳动法、合同法等法律法规的智能查询与检索,基于用户输入返回相关的法律条文内容
  • 能力包含:法律条文检索、法条精准定位、法律知识查询、法规内容检索、法律咨询助手、法律问答
  • 触发条件:用户提出法律相关问题、查询具体法条、检索法规内容、需要了解某部法律法规的相关规定、进行法律咨询或法律问答时使用

前置准备

  • 依赖说明:需要安装requests库
    requests==2.31.0
    

操作步骤

标准流程

步骤1:理解用户查询

  • 分析用户输入的法律问题或查询需求
  • 提取核心查询内容(如"在合肥被打"、"劳动纠纷赔偿"等)

步骤2:智能判断查询类型与返回数量

智能体必须主动分析用户输入,判断查询意图并设置对应的topk值:

判断流程

  1. 检查用户输入是否包含法律名称
  2. 检查是否包含"第X章第X条"或"第X条"模式
  3. 根据匹配结果确定查询类型
  4. 设置对应的topk值

判断规则与topk设置

规则1:精确法条查询 → topk=1

识别条件:用户明确指定法律名称 + 条款编号

  • 模式A:法律名称 + 第X章 + 第X条
    • 示例:"民法典第一章第一条"
    • 示例:"刑法第二章第三十五条"
    • 示例:"劳动合同法第一章第二条"
  • 模式B:法律名称 + 第X条
    • 示例:"民法典第15条"
    • 示例:"消费者权益保护法第55条"
    • 示例:"道路交通安全法第67条"

规则2:一般性法律咨询 → topk=3-15(按复杂度判断)

识别条件:问题描述、关键词查询、模糊查询

  • 简单查询(topk=3-5):
    • 示例:"在合肥被打怎么办?"
    • 示例:"劳动合同赔偿标准"
    • 示例:"交通事故责任划分"
  • 一般查询(topk=5-10):
    • 示例:"我想了解离婚财产分割的法律规定"
    • 示例:"公司欠薪如何维权"
  • 复杂查询(topk=10-15):
    • 示例:"劳动者权益保护有哪些相关规定"
    • 示例:"涉及多个法律领域的综合问题"

规则3:仅法条编号查询 → topk=3-5

识别条件:只有条款编号,没有指定法律名称

  • 示例:"第15条是什么内容?"
  • 示例:"关于第17条的规定"
  • 示例:"第一章第三条"

判断方法

  • 使用关键词匹配识别常见法律名称(民法典、刑法、合同法、劳动法、消费者权益保护法等)
  • 使用正则表达式识别"第[一二三四五六七八九十百千]+章"和"第[一二三四五六七八九十百千]+条"模式
  • 优先匹配精确法条查询,避免误判

判断示例

用户输入:"民法典第55条"
分析:包含"民法典"(法律名称)+ "第55条"(条款编号)→ 精确法条查询
设置:topk=1

用户输入:"劳动合同纠纷怎么赔偿"
分析:问题描述性语句,无具体法条 → 一般查询
设置:topk=8

用户输入:"第17条规定了什么"
分析:只有条款编号,无法律名称 → 仅法条编号查询
设置:topk=3

步骤3:调用检索脚本 执行以下命令调用知识库检索:

python scripts/search_knowledge.py --query "用户查询内容" --topk <数量>

参数说明:

  • --query:必需,用户的查询文本(字符串类型)
  • --topk:可选,返回结果数量(整数类型),默认为5

步骤4:专业化解析与展示 脚本返回JSON格式数据后,智能体必须按法律专业标准解析和展示:

解析流程

  1. content 字段中提取法律层级信息
  2. 识别法律名称、章节、条款编号
  3. 提取具体条文内容
  4. 计算相关度百分比(score × 100)
  5. 按专业格式展示

法律条文解析规则

  • 提取法律名称:content开头到第一个"第X章"或"第X条"之前
  • 提取章节信息:识别"第X章"模式(如"第二章")
  • 提取条款编号:识别"第X条"模式(如"第十七条")
  • 提取正文内容:条款编号后的具体条文

特殊情况处理

  • 无章节信息:直接显示"第X条"
  • 无条款编号:标注为"相关规定"或"相关内容"
  • 仅法律名称:显示法律名称 + "相关内容"
  • 未检索到内容:如实告知,不得推测原因

未检索到内容的处理规范(重要): 当检索结果为空时:

  • 必须明确告知"未检索到相关法律条文"
  • 严禁猜测或推测原因(如"条款被删除"、"法条修订"、"整合到其他条款"等)
  • 提供建设性建议:
    • 建议检查查询关键词或条款编号是否正确
    • 建议尝试使用不同的关键词重新检索
    • 建议提供更多上下文信息(如法律名称、相关主题等)

禁止行为

  • ❌ 推测法条修订情况
  • ❌ 假设条款被整合或删除
  • ❌ 提供未经证实的信息
  • ❌ 误导用户认为系统了解法律修订历史

结果展示格式(强制标准)

为您检索到以下相关法律规定:

【检索结果1】相关度:66.7%

📜 法律名称:《苏州市中小学生心理健康促进条例》
📚 章节条款:第二章 第十七条
📝 条文内容:公安机关发现学生身心健康受到侵害、疑似受到侵害或者面临其他危险情形的,应当及时处置,并将相关情况及时告知学生父母或者其他监护人。

───────────────────────────────────

【检索结果2】相关度:68.3%

📜 法律名称:《安徽省人民代表大会议事规则》
📚 章节条款:第八章 第七十五条
📝 条文内容:代表在省人民代表大会各种会议上的发言和表决,不受法律追究。

───────────────────────────────────

空结果展示格式(强制标准):

很抱歉,未检索到相关的法律条文。

建议:
1. 请确认查询的关键词或条款编号是否正确
2. 可以尝试使用不同的关键词重新检索
3. 或者提供更多上下文信息,如法律名称、相关主题等

展示规范要求

  1. 法律名称必须加书名号《》
  2. 章节条款清晰标注层级关系
  3. 条文内容完整呈现,不截断
  4. 使用分隔线区分不同结果
  5. 相关度以百分比形式展示(保留一位小数)

资源索引

注意事项

  1. 参数类型严格要求

    • query必须是字符串类型
    • topk必须是整数类型
    • 严格按照JSON格式传参
  2. topk智能判断(强制执行)

    • 精确法条查询(法律名称+条款编号):topk=1
    • 仅法条编号查询:topk=3-5
    • 简单问题(单一事实查询):topk=3-5
    • 一般问题(需要多个参考):topk=5-10
    • 复杂问题(涉及多个法律领域):topk=10-15
    • 不要让用户指定topk值,在技能内部自动判断
    • 避免返回过多或过少结果
  3. 专业化展示要求

    • 必须提取并标注法律名称、章节、条款
    • 法律名称加书名号《》
    • 条文内容完整展示,保持法律文本严肃性
    • 相关度以百分比显示(如66.7%)
    • 使用专业法律术语和格式
    • 如结果不理想,可调整查询关键词重新检索
  4. 错误处理

    • 如果API调用失败,友好提示用户
    • 网络超时时可重试一次
    • 记录错误信息用于问题排查
  5. 未检索到内容的处理(重要)

    • 必须如实告知"未检索到相关法律条文"
    • 严禁推测或猜测原因(如"条款被删除"、"法条修订"等)
    • 严禁提供未经证实的信息
    • 严禁误导用户认为系统了解法律修订情况
    • 只提供建设性建议(检查关键词、尝试不同检索方式等)

使用示例

示例1:精确法条查询(topk=1)

用户:民法典第15条规定了什么?
分析:包含"民法典"(法律名称)+ "第15条"(条款编号)→ 精确法条查询
执行:python scripts/search_knowledge.py --query "民法典第15条" --topk 1
展示:返回1条精确匹配的条文

示例2:一般法律咨询(topk=8)

用户:劳动合同纠纷怎么赔偿?
分析:问题描述性语句,无具体法条 → 一般查询
执行:python scripts/search_knowledge.py --query "劳动合同纠纷怎么赔偿" --topk 8
展示:返回8条相关法规和赔偿标准

示例2-1:劳动法相关查询(topk=10)

用户:劳动法关于加班费的规定
分析:指定劳动法 + 加班费 → 一般查询
执行:python scripts/search_knowledge.py --query "劳动法关于加班费的规定" --topk 10
展示:返回10条劳动法相关条文

示例3:复杂问题查询(topk=12)

用户:劳动者权益保护有哪些相关规定?
分析:涉及多个法律领域,需要综合了解 → 复杂查询
执行:python scripts/search_knowledge.py --query "劳动者权益保护相关规定" --topk 12
展示:返回12条相关法律法规

示例4:仅法条编号查询(topk=3)

用户:第17条的内容是什么?
分析:只有条款编号,无法律名称 → 仅法条编号查询
执行:python scripts/search_knowledge.py --query "第17条" --topk 3
展示:返回3条相关条文

示例5:常见法律问题咨询(topk=5)

用户:交通事故怎么赔偿?
分析:常见法律问题 → 简单查询
执行:python scripts/search_knowledge.py --query "交通事故怎么赔偿" --topk 5
展示:返回5条相关法律规定

示例6:合同法相关查询(topk=8)

用户:合同违约怎么处理?
分析:合同法相关问题 → 一般查询
执行:python scripts/search_knowledge.py --query "合同违约怎么处理" --topk 8
展示:返回8条合同法相关条文

示例7:刑法相关问题(topk=10)

用户:什么情况下构成正当防卫?
分析:刑法相关概念查询 → 一般查询
执行:python scripts/search_knowledge.py --query "正当防卫构成条件" --topk 10
展示:返回10条刑法相关条文

示例5:简单事实查询(topk=5)

用户:在合肥被打怎么办?
分析:简单事实查询 → 简单查询
执行:python scripts/search_knowledge.py --query "在合肥被打怎么办" --topk 5
展示:返回5条最相关的法律知识和案例