Install
openclaw skills install @xltxai/mcp-law-searchopenclaw skills install @xltxai/mcp-law-search| 用户问题 | 检索策略 | 返回法律依据 |
|---|---|---|
| "美国加州 CCPA 对中国出海 App 适用吗?" | scope: international | CCPA 适用范围与豁免条款 |
| "德国解雇员工需要走什么法律程序?" | scope: international | 德国解雇保护法(KSchG)解雇程序与保护条款 |
| "在越南设厂,哪些行业属于投资负面清单?" | international + domestic 各检索一次 | 越南投资法负面清单 + 境外投资管理规定 |
| "试用期最长不超过多久?" | scope: domestic, top_k: 3 | 《劳动合同法》第十九条 + 相关司法解释 |
| "签了购房合同想退房怎么办" | 多轮:民法典 → 商品房买卖司法解释 | 民法典第563条 + 商品房买卖合同司法解释 |
本 skill 适用于任何涉及法律内容的场景(跨境合规优先):
以下场景不适合用本 skill,应改用其他方式:
| 不适用场景 | 原因 | 替代方案 |
|---|---|---|
| 实时法律新闻/舆情 | 知识库不收录实时新闻 | 用 web_search 搜索最新资讯 |
| 具体案件的诉讼策略 | 需结合证据、当事人、管辖法院等具体事实 | 建议咨询执业律师 |
| 已失效/未生效的法律草案 | 知识库收录的是现行有效文本 | 查人大常委会官网立法规划 |
| 非法律类的事实查询(如"公司注册流程是什么") | 属于行政流程而非法律条文 | 用 web_search 查政务指南 |
| 外国法律条文的精确原文翻译 | 检索结果是中文摘要,非官方译本 | 查该国外交部/司法部官方译本 |
本 skill 依赖 MCP 工具
search_law,由 aixllaw 法律检索 MCP 服务提供。使用前必须确认 MCP 已安装配置,否则检索无法工作。
收到法律问题后,第一步先确认 search_law 工具是否在当前运行时可用:
无需注册、无需 API Key——MCP 服务内置免费检索额度,配置即可用:
~/.codebuddy/mcp.json(不存在则新建),粘贴以下内容:{
"mcpServers": {
"law-search": {
"url": "https://mcp.aixllaw.com/mcp",
"transportType": "streamable-http"
}
}
}
search_law 检索即表示成功免登录额度有一定量限制。需要更多额度或更稳定配额时,注册获取 API Key 升级为正式版(见下)。
已注册并拿到 API Key(格式 sk-xxx)的用户,在配置中添加 Authorization 头即可升级:
{
"mcpServers": {
"law-search": {
"url": "https://mcp.aixllaw.com/mcp",
"transportType": "streamable-http",
"headers": {
"Authorization": "Bearer 把你的sk-xxx粘贴到这里"
}
}
}
}
注册地址:https://portal.aixllaw.com/app/settings ,注册即送 1688 积分,免费畅用 7 周。 也可在管理后台「API 密钥」页面点「复制 MCP 配置」按钮,一键复制完整 JSON,无需手写。
search_law 工具不存在时展示)## ⚠️ 法律检索服务未配置
只需 30 秒即可启用 aixllaw MCP 服务(免登录、内置免费额度):
### 步骤
1. **免登录快速启用**
编辑 ~/.codebuddy/mcp.json,添加 law-search 服务(Streamable HTTP,无需 API Key)
详细配置参见 references/mcp-setup-guide.md
2. **完全退出并重启** CodeBuddy / WorkBuddy
3. **验证**:重启后再问一个法律问题,AI 应能调用 search_law 检索法条
> 免费额度用尽或需要更高配额?前往 https://portal.aixllaw.com/app/settings 注册
> (注册即送 1688 积分),获取 API Key 后在配置中添加 Authorization 即可升级正式版。
当用户刚完成 MCP 配置、或首次提出法律问题时,主动给出以下 3 个典型示例问题,引导其发起首次检索(优先展示跨境场景,直接体现差异化能力):
search_law 存在但调用返回 ok: false(或 ok: true 但 records 为空)时,不要立即向用户报错或凭记忆替代,先按下表自动处理:
| 失败类型 | text 关键词 | 自动动作 | 重试上限 |
|---|---|---|---|
| 网络超时 | "响应超时" / "timeout" / "connection" | 等待 2s → 4s → 8s 指数退避后重试同一 query | 3 次 |
| 服务过载 | "503" / "服务繁忙" / "过载" | 等待 1s → 3s → 5s 后重试 | 3 次 |
| 免登录额度用尽 | "免费额度" / "额度已用完" / "匿名额度" | 不重试,引导用户注册获取 API Key 升级正式版 | 0 |
| 积分临时不足 | "积分余额不足" | 不重试,直接引导用户充值 | 0 |
| 用量超限 | "用量已超限" | 不重试,引导用户查看配额 | 0 |
| Key 无效 | "API Key 无效" / "401" | 不重试,引导用户重新生成 Key | 0 |
| 空结果 | records 为空 / "暂未找到" | 进入 1.4 空结果改写流程 | — |
重试流程:
1. 首次调用 search_law(query)
2. 失败 → 判断是否可重试(网络/过载类)
├─ 可重试:sleep(2^attempt)(即 2s → 4s → 8s)后重试,最多 3 次
└─ 不可重试(Key/积分类):直接展示错误引导,停止
3. 重试 3 次仍失败 → 按「会话中断恢复」章节处理,引导用户重启 IDE 或检查网络
重试期间对用户的提示:用一句话告知「正在重试检索…(第 N 次)」,避免长时间沉默让用户以为卡死。
与「会话中断恢复」的分工:
1.3负责单次会话内对网络/过载类错误的自动重试(上限 3 次);重试 3 次仍失败则说明会话可能已失效,转交「会话中断恢复」章节处理(重启 IDE / 检查网络)。两处阈值一致,不重复执行。
当 search_law 返回 ok: true 但 records 为空数组时,按以下顺序自动降级,不要直接告诉用户「没查到」:
第 1 轮:原始 query + 默认参数
↓ 空
第 2 轮:改写 query
- 去掉口语化连接词("的"、"怎么"、"怎么办"、"能不能")
- 用「法条名称 + 核心名词」重写
- 例:"上班受伤了公司赔不赔" → "工伤认定 工伤保险条例 赔偿"
↓ 空
第 3 轮:降参数
- score_threshold: 0.5 → 0.3
- top_k: 3 → 5
↓ 空
第 4 轮:换 scope
- domestic ↔ international 双向切换重试(跨境/涉外问题可能在另一侧库有相关条文)
↓ 仍空
告知用户:可能是术语问题,给出 2-3 个改写建议供用户选择
禁止行为:
search_law(query: str, scope: str = "domestic", top_k: int | None = None, score_threshold: float | None = None) -> dict
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
query | string | 是 | — | 检索关键词或自然语言问题 |
scope | string | 否 | "domestic" | "domestic" 国内法律 / "international" 国际法律 |
top_k | int | 否 | 3 | 返回结果条数(1-5) |
score_threshold | float | 否 | 0.5 | 相似度阈值(0-1),越高越精确 |
返回结构:
{
"ok": true,
"records": [{"title": "...", "content": "...", "trie": "..."}],
"text": "所有结果拼接的纯文本摘要",
"message": ""
}
ok: true → 检索成功;ok: false → 出错,查看 text 和 messagerecords → 按相关度降序的结果列表text → 所有结果拼接的纯文本摘要| scope | 知识库 | 包含内容 |
|---|---|---|
"domestic" | 国内法律知识库 | 宪法、法律、行政法规、司法解释、部门规章、地方法规、指导性案例 |
"international" | 国际法律知识库 | 国际条约、国际公约、外国法律、跨境法律文献 |
第一步:定位主要法律
search_law({"query": "【法律名称】+【核心条款/问题】"})
例: "劳动合同法 试用期工资标准"
第二步:细化司法解释
search_law({"query": "【法律名称】司法解释 【争议焦点】"})
例: "最高法 买卖合同司法解释 违约金上限"
第三步:参考案例(可选)
search_law({"query": "【案由】+【关键问题】+案例"})
例: "商品房买卖 逾期交房 违约金 典型案例"
第四步:地方规定(按需)
search_law({"query": "【省份/城市】+【具体问题】"})
例: "广东省 产假天数 实施办法"
第五步:国际法律(跨境场景)
search_law({"query": "【条约/公约名称】", "scope": "international"})
例: "联合国国际货物销售合同公约 违约救济"
用户未指定 scope 时:
scope: "domestic"(默认)scope: "international"scope: "international"scope: "international"关键词构造、top_k/score_threshold 调优、按法律领域的 query 模板、多轮检索组合、常见反模式等实战细节,参见 references/search-patterns.md。
核心要点:
top_k: 3, score_threshold: 0.7top_k: 5, score_threshold: 0.5(默认)top_k: 5, score_threshold: 0.3| 类别 | 效力 | 可否作为法律依据 | 使用方式 |
|---|---|---|---|
| 【法律】 | 最高 | 是 | 直接引用 |
| 【司法解释】 | 高 | 是 | 直接引用 |
| 【行政法规】 | 中 | 是 | 直接引用 |
| 【地方法规】 | 中低 | 是(本地适用) | 注明地域 |
| 【部门规章】 | 低 | 是 | 注明制定部门 |
| 【地方司法文件】 | 参考级 | 仅参考 | 仅作地方实践参考 |
| 【人民法院案例】 | 参考级 | 否 | 提取其中引用的法律条文 |
| 【理论文献】 | 参考级 | 否 | 学理解释,条文可能过期 |
## 问题概述
(一句话总结)
## 法律分析
### 适用法律
根据检索结果:
- **《XXX法》第X条**(来源:【法律】|效力:现行有效)
原文:"..."
解读:...
- **《XXX司法解释》第X条**(来源:【司法解释】|效力:现行有效)
原文:"..."
解读:...
### 案情匹配
- 符合:...
- 不符合:...
- 需确认:...
## 建议方案
1. ...
2. ...
## 风险提示
- ...
- ...
## 检索来源
本次回答依据以下法律材料生成(供核验):
- 《XXX法》(现行有效)
- 《XXX司法解释》(现行有效)
> **免责声明**:以上分析仅供参考,具体情况建议咨询执业律师。
## 基准数额
根据《XXX》第X条(现行有效):基准金额 = ...
## 情节调整
- 从重情节:...(+X%)
- 从轻情节:...(-X%)
## 计算公式
最终 = 基准 × (1 ± 调整系数) + 其他费用
= ...
## 参考区间
下限 ~ 上限
search_law 检索)search_law 不可用时,用其他法律检索工具替代或凭记忆回答(必须引导用户安装 MCP)注意:可恢复错误(网络超时、服务过载、空结果)请优先按上方 1.3 自动重试 与 1.4 空结果改写 流程处理,不要按下表直接结束。 下表仅针对不可恢复错误(Key、积分、配额类)的引导。
当 search_law 返回 ok: false 时:
| 错误类型 | text 包含的关键词 | 处理方式 |
|---|---|---|
| 免登录额度用尽 | "免费额度" / "额度已用完" / "匿名额度" | 引导用户去 https://portal.aixllaw.com/app/settings 注册获取 API Key,在配置中添加 Authorization 升级正式版(注册送 1688 积分) |
| 未配置 Key(正式版) | "未检测到 API Key" / "缺少 Bearer token" | 引导用户按 1.2 免登录配置启用;需更高配额时注册获取 Key 升级 |
| Key 无效 | "API Key 无效" | 引导用户去管理后台重新生成 Key |
| 积分不足 | "积分余额不足" | 告知用户当前余额和所需积分,引导去管理后台充值 |
| 用量超限 | "用量已超限" | 引导用户去管理后台查看配额 |
| 超时 | "响应超时" | 见 1.3 自动重试 |
| 空结果 | "暂未找到相关内容" | 见 1.4 空结果改写 |
重要:遇到以上任何错误,都要将 text 中的引导信息完整呈现给用户,不要自己编造解决方案。
MCP Streamable HTTP 是有状态协议(依赖 Mcp-Session-Id),以下场景会导致会话失效,需引导用户恢复:
| 场景 | 表现 | 处理方式 |
|---|---|---|
| 长对话后突然报错 | search_law 连续返回 "Missing session ID" / "session expired" | 引导用户重启 IDE 重新建立 MCP 连接 |
| 切换网络/代理后失效 | 之前能用,突然连接超时 | 提示检查网络代理是否放行 mcp.aixllaw.com,必要时重启 IDE |
| 1.3 重试 3 次仍失败 | 网络/过载类错误重试耗尽 | 引导用户重启 IDE,若仍失败则检查网络/防火墙 |
重要:会话失效时不要凭记忆继续回答法律问题,应先引导恢复 MCP 连接。
与「1.3 自动重试」的分工:本表承接
1.3重试耗尽后的场景,属于会话级恢复(重启 IDE / 检查网络),不再做工具级重试,避免重复。
https://portal.aixllaw.com/app/settingsreferences/mcp-setup-guide.mdreferences/search-patterns.md