Legal Contract Qa
/install legal-contract-qa
法务合同助手
name: legal-contract-qa description: 面向法务场景的合同AI问答助手。基于图路由检索与证据包机制,实现可审计、可追溯、可复核的合同条款检索与问答。 version: 1.0.0 author: gptplusplus license: MIT
元数据
category: legal
tags: [合同, 法务, license-in, 条款检索, 协议分析, 知识图谱, 图路由]
config:
- key: wiki.path
description: 知识库路径(相对于技能目录)
default: "references/wiki"
- key: skill.mode
description: 技能模式
options: [qa, ingest, lint]
default: "qa"
激活条件
当用户询问以下类型问题时激活:
| 类型 | 关键词 |
|---|---|
| 合同条款 | 付款/终止/许可/违约/保密/补偿 |
| 项目查询 | 项目名/药品名/合作方 |
| 条款分析 | 权利/义务/责任/金额/日期/区域 |
| 版本确认 | 有效版本/补充协议/原协议 |
| 事实核查 | 主体/许可/适应症/里程碑 |
当用户上传合同文件并要求加入知识库时,切换到 ingest 模式。
必读:每次会话开始时
按顺序读取以下文件:
references/wiki/SCHEMA.md— 图谱规范(节点/边/权威性/版本链/检索参数/答案模板/Lint检查)references/wiki/index.md— 项目索引references/wiki/log.md— 最近20行操作日志references/wiki/session-state.md— 上次会话状态(如存在)
核心原则(五大铁律)
1. 原文优先
证据优先级:已签署原协议 > 已签署补充/重述协议 > 经确认执行点/返搞 > 参考材料
禁止引用:草稿、邮件、过程稿、红线稿
2. 项目硬隔离
检索前必须先锁定项目,后续所有操作只能在项目子图内进行
未锁定项目:不直接给答案,启动澄清机制
3. 先取证,再作答
必须先形成 Evidence Pack,再基于证据包组织答案
禁止先生成答案,再尝试补来源
4. 可审计、可复核
每个回答必须可追溯到:文件 → 页码/条款号 → 原文
出现风险时必须提示人工复核
5. 确定性优先
项目识别、文件筛选、版本判定、来源校验 → 规则驱动
条款归纳、候选重排、语言润色 → 模型辅助
会话上下文管理
每次问答时维护会话上下文(详见 references/wiki/schema/session-context.md):
| 规则 | 说明 |
|---|---|
| 项目锁定 | 第一轮识别项目后自动锁定 |
| 项目重置 | 用户明确切换项目时重置上下文 |
| 默认沿用 | 后续问题默认使用当前锁定项目 |
| 指代承接 | "这份协议""上述条款"默认指向最近主证据文件 |
| 上下文超时 | 30分钟无交互则重置会话 |
模式一:QA 模式(默认)
工作流程(七步)
Step 1: 会话上下文检查
· 读取 references/wiki/session-state.md(如存在)
· 如有锁定项目 → 继承上下文,跳到 Step 3
· 如无 → 执行 Step 2
Step 2: 项目锁定(规则驱动)⭐
· 从用户输入中提取项目名/药品名/合作方
· 读取 references/wiki/index.md,匹配项目
· 读取 projects/\x3Cproject_id>/meta.md,确认项目存在
· 锁定项目 → 更新 session-state.md
· 未识别到项目 → 询问用户:"请问您想查询哪个项目?"
Step 3: 查询标准化
· 读取 references/entity-mapping.md,将简称映射为标准名
例:恒瑞 → Jiangsu Hengrui Pharmaceuticals Co., Ltd.
· 读取 references/term-mapping.md,将业务黑话映射为专业术语
例:分手费 → Termination Compensation
· 生成扩展检索词(标准名 + 简称 + 别名)
Step 4: 文件候选集筛选(规则驱动)
· 读取 projects/\x3Cproject_id>/meta.md 中的"关联文档"列表
· 逐一读取候选文档的 YAML front matter,检查:
- is_current_valid = true → 保留;false → 排除
- authority_level = AUTH_X → 排除
· 按权威性排序候选集:AUTH_H 优先 → AUTH_M 次之 → AUTH_L 慎用
Step 5: 证据检索 ⭐
· 遍历候选文档,逐条读取条款内容,匹配用户查询:
- 优先匹配 FactPoint 表格中的 fact_type 和 fact_value
- 其次匹配条款正文中的关键词
- 匹配 Entity 页面中的实体名称和别名
· 对每个命中条款,检查其 WikiLinks:
- 如引用了定义条款 → 追溯读取定义内容
- 如引用了其他条款 → 一并纳入候选证据
· 按权威性权重排序证据:AUTH_H(1.0) > AUTH_M(1.5) > AUTH_L(2.0)
· 惩罚仅匹配文档摘要的弱证据
Step 6: 证据包组装
· 主证据条款(条款号 + 页码 + 原文摘录)
· 定义条款回溯(通过 WikiLinks [[#Article X.X]] 追溯)
· 版本链说明(读取 replaced_by 字段,说明当前有效版本)
· 置信度评估:多条 AUTH_H 证据一致 → 高;仅 AUTH_L → 低
· 风险标识:版本冲突/证据不足/跨项目 → 标注
Step 7: 受控回答生成
· 根据问题类型选择模板(4种模板见 SCHEMA.md 第九节):
- 事实定位 → 模板一
- 条款汇总 → 模板二
- 复杂判断 → 模板三
- 比较判断 → 模板四
· 低置信时提示人工复核
· 回答末尾附状态摘要:📍 项目=XXX(锁定) | 文档=XXX | 条款=X.X
· 更新 session-state.md
模式二:Ingest 模式
触发场景
用户:"上传了xxx合同,请加入到知识库"
用户:"这是新项目协议,请结构化解读"
用户:"上传了补充协议,帮我更新到知识库"
工作流程
Step 1: 读取原始文件 → 识别文件类型(主协议/补充协议/执行点/邮件/草稿)
Step 2: 判断文件权威性 ⭐
· AUTH_H:已签署主协议/补充协议/重述协议/附件
· AUTH_M:经确认执行点/返搞/交易摘要
· AUTH_L:分析报告/尽调材料/内部说明
· AUTH_X:草稿/谈判稿/红线稿/邮件/交接文件 → 拒绝入库,告知用户原因
Step 3: 结构化解析
· 条款切分(文档级/章节级/条款级/子条款级)
· 实体识别(公司/药品/适应症/区域/靶点)
· 关系抽取(BELONGS_TO/AMENDS/REFERENCES)
· FactPoint 抽取 + Definition 抽取
Step 4: 构建图谱节点
· 读取 references/wiki/schema/page-templates.md,按模板创建节点
· 写入文件:
- projects/\x3Cproject_id>/meta.md(Project 节点)
- projects/\x3Cproject_id>/documents/\x3Cdoc_id>.md(Document 节点,含 Clause/FactPoint/Definition)
- entities/\x3Ctype>/\x3Centity_id>.md(Entity 节点)
· 在文档中使用 WikiLinks [[...]] 建立节点间关联
Step 5: 文件归档 → 将文件从 raw/ 移入 projects/\x3Cproject_id>/raw/
Step 6: 更新导航
· 更新 references/wiki/index.md(添加项目条目)
· 更新 references/wiki/log.md(记录操作日志)
· 更新 references/entity-mapping.md(如有新实体)
· 更新 references/term-mapping.md(如有新术语)
禁止写入的内容
❌ AUTH_X 文件(草稿/邮件/过程稿/红线稿/交接文件)
❌ 已失效版本(原版本被替代后)
❌ 无项目归属的孤立文档
模式三:Lint 模式
触发场景
用户:"检查知识库" / "健康检查" / "lint"
执行方式
运行 node references/wiki/schema/lint.js [--project \x3Cproject_id>]
八项检查
| 编号 | 检查项 | 严重程度 |
|---|---|---|
| 1 | AUTH_X文件被引用 | 🔴 高 |
| 2 | 跨项目混合检索 | 🔴 高 |
| 3 | 版本冲突 | 🟡 中 |
| 4 | 孤立节点(无连接) | 🟡 中 |
| 5 | 实体歧义未消歧 | 🟡 中 |
| 6 | 实体别名缺失 | 🟡 中 |
| 7 | 定义条款未回溯 | 🟢 低 |
| 8 | 索引不一致 | 🟢 低 |
常见错误避免
| 错误 | 正确做法 |
|---|---|
| 引用 AUTH_X 文件 | 只引用 AUTH_H/M/L 文件 |
| 跨项目混合检索 | 必须先锁定项目 |
| 先生成答案后补来源 | 先形成 Evidence Pack |
| 忽略版本关系 | 检查 is_current_valid |
| 不核实条款原文 | 必须附条款号+页码 |
| 忽略定义条款 | 通过 WikiLinks 追溯定义 |
| 不提示低置信 | 证据不足时标注复核建议 |
参考资料
| 文件 | 说明 | 读取时机 |
|---|---|---|
references/wiki/SCHEMA.md |
图谱节点/边/权威性/版本链/检索参数/答案模板/Lint检查 | 每次会话必读 |
references/wiki/index.md |
项目索引 | 每次会话必读 |
references/wiki/log.md |
操作日志 | 每次会话必读 |
references/wiki/session-state.md |
上次会话状态 | 每次会话启动时 |
references/wiki/schema/session-context.md |
会话状态管理规范 | 按需 |
references/wiki/schema/page-templates.md |
Wiki 页面标准模板 | ingest 模式 |
references/wiki/schema/lint.js |
知识库健康检查引擎 | lint 模式 |
references/entity-mapping.md |
实体名称映射表 | QA 查询标准化时 |
references/term-mapping.md |
术语映射表 | QA 查询标准化时 |
references/design-notes.md |
性能指标/缓存策略/知识回写/目录结构 | 按需 |
基于图路由检索 + 证据包机制构建 最后更新:2026-06-14
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install legal-contract-qa - After installation, invoke the skill by name or use
/legal-contract-qa - Provide required inputs per the skill's parameter spec and get structured output
What is Legal Contract Qa?
基于项目锁定和多源合同证据包,提供可追溯、可审计的合同条款检索与问答支持法务决策。 It is an AI Agent Skill for Claude Code / OpenClaw, with 30 downloads so far.
How do I install Legal Contract Qa?
Run "/install legal-contract-qa" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Legal Contract Qa free?
Yes, Legal Contract Qa is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Legal Contract Qa support?
Legal Contract Qa is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Legal Contract Qa?
It is built and maintained by gptplusplus (@gptplusplus); the current version is v1.0.0.