我把法律工作拆成 58 个 Agent Skill:一个面向中国法律场景的本地工作流项目

5 阅读9分钟

我最近开源了一个项目:legal-skills

GitHub: github.com/pa1nrui1/le…

它不是一个法律问答 bot,也不是一个 prompt collection。

我更愿意把它定义成:

面向中国律师和企业法务的本地 Agent workflow 项目。

它的目标不是让 AI 直接给出法律结论,而是把真实法律工作拆成一个个 workflow 节点,再用 Skill、模板、脚本和质量门串起来。

这篇文章从工程角度拆一下这个项目:

  • 为什么要拆成 Skill
  • 项目目录如何组织
  • 总控路由怎么设计
  • 人机权限如何分级
  • 本地工作台怎么落地
  • 正式交付为什么需要质量门
  • 如何快速安装和使用

1. 为什么法律工作适合拆成 Agent Skill

法律工作看起来像文本工作。

但真实做起来,它不只是“写一段话”。

例如用户说:

帮我看看这个合同。

这句话可能对应很多完全不同的任务:

  • 快速看明显风险
  • 完整审查合同结构
  • 按甲方 / 乙方 / 中立立场出具意见
  • 生成审查问题清单
  • 生成 Word 红线稿
  • 提取续约提醒
  • 更新合同台账
  • 生成正式交付报告

这些任务的输入、权限、输出和风险都不一样。

如果只靠一个 prompt,很容易出现两个问题:

  1. 模型直接跳到结论,跳过材料读取、来源边界和法规校验。
  2. 草稿、内部报告、客户交付、法院材料、正式 Word 被混在一起。

所以我选择把法律工作拆成 Skill。

Skill 不是“提示词更长一点”。

它更像一个局部工作流:定义触发条件、输入要求、执行顺序、需要读取的参考文件、输出边界和失败处理。

2. 项目结构

当前仓库大致结构如下:

legal-skills/
├── SKILL.md
├── README.md
├── CHANGELOG.md
├── .codex-plugin/
│   └── plugin.json
└── skills/
    └── legal/
        ├── 法律工作总控/
        ├── 法律咨询助手/
        ├── 民事一审诉讼/
        ├── 刑事辩护总调度/
        ├── 劳动争议诉讼/
        ├── 合同审查/
        ├── 合同起草/
        ├── 产品法务/
        ├── 监管合规监测/
        ├── 法规案例检索/
        ├── 诉讼文书起草/
        ├── 法律文书出稿前审查/
        └── 法律文书模板与导出/

目前有:

  • 58 个 SKILL.md
  • 267 个 references/ 文件
  • 127 个 templates/ 文件
  • 38 个 scripts/ 文件
  • 多个围绕红线稿、模板克隆、出稿前审查、Word 导出的测试

这几个目录的分工是:

SKILL.md      负责触发条件、任务边界、执行顺序
references/  负责完整流程、协议、方法论、路由表、边界规则
templates/   负责文书、报告、清单、申请书等输出结构
scripts/     负责把部分质量门落成可执行检查
assets/      负责 profile、manifest、模板注册表等配置
checklists/  负责风险清单、保密清单、阶段检查清单

这个结构的核心思路是:

入口轻,规则外置;业务拆分,门禁统一。

3. 入口 Skill:china-legal-skills

仓库根目录的 SKILL.md 是公开入口:

---
name: china-legal-skills
description: Chinese legal workflow skills for lawyers, legal counsel, litigation, criminal defense, labor disputes, bankruptcy, contract review, compliance, legal research, and legal document drafting.
---

它只做一件事:

先读取 skills/legal/法律工作总控/SKILL.md

也就是说,真正的主路由不是根目录 SKILL.md,而是 法律工作总控

这样做的好处是:

  • 对外入口保持简单。
  • 中文法律工作规则集中在 skills/legal/
  • 后续可以适配 Codex、Claude Code、Qoder、OpenCode、OpenAI Skills 等支持本地 Markdown Skill 的 Agent 工具。

4. 法律工作总控:路由和共享质量门

法律工作总控 是整个项目最关键的部分。

它不是业务 Skill。

它负责所有 legal 子 Skill 的共享规则:

  • 语义路由
  • 事项隔离
  • 文件读取复查
  • OCR 存疑处理
  • 法规 / 案例校验
  • 来源边界
  • 正式交付物分类
  • 出稿前审查调度
  • 本地工作区路径确认

一个典型流程是:

用户任务
  -> 法律工作总控
  -> 路由到具体业务 Skill
  -> 读取材料与来源记录
  -> 法规 / 案例校验
  -> 业务分析或草稿生成
  -> 出稿前审查
  -> 文书导出或交付

总控的价值在于:

子 Skill 可以负责专业流程,但不能覆盖共享底线。

比如合同审查、诉讼文书、劳动争议、产品法务都不应该各自发明一套“材料读取”和“来源边界”规则。

这些规则应该统一在总控层。

5. 语义路由:不要让模型临场猜

法律任务经常很模糊。

同一句“这个案子怎么办”,可能是:

  • 咨询回复
  • 法律分析
  • 证据缺口
  • 诉讼文书
  • 法规案例检索
  • 案件管理
  • 调解和解
  • 结案归档

所以项目里有 routing-map.md,把自然语言任务映射到具体 Skill。

例如:

合同审查、合同审核、批注、修订建议
  -> 合同审查

合同起草、生成合同、拟定协议
  -> 合同起草

产品上线、功能合规、客户 Logo、客户案例
  -> 产品法务

监管动态、新规更新、整改清单
  -> 监管合规监测

起诉状、答辩状、代理词、质证意见
  -> 诉讼文书起草

正式 Word / docx / 文书导出
  -> 法律文书出稿前审查
  -> 法律文书模板与导出

这能减少模型“看起来懂,但其实走错流程”的情况。

6. 人机权限分级:L1 到 L4

我在项目里默认用四层权限理解法律 AI:

L1:读取与整理
L2:分析与标记
L3:草稿与执行
L4:确认与正式交付

L1:读取与整理

适合 AI 多做:

  • 整理材料清单
  • 提取主体、金额、日期、案号
  • 摘要合同结构
  • 标记 OCR 存疑
  • 生成读取复查摘要

L2:分析与标记

AI 可以参与,但要标注来源和边界:

  • 合同风险标记
  • 证据缺口
  • 争议焦点
  • 法规检索方向
  • 初步请求权分析
  • 监管合规缺口

L3:草稿与执行

AI 可以生成中间成果:

  • 法律服务建议书草稿
  • 起诉状 / 答辩状 / 代理词初稿
  • 合同审查意见初稿
  • redline-plan.json
  • 语义 HTML
  • 图表预览稿

L4:确认与正式交付

必须由人接管:

  • 诉讼策略
  • 金额、期限、诉请、授权范围
  • 审查立场
  • 正式引用法规和案例
  • 是否对外发送
  • 是否作为客户 / 法院 / 团队正式材料

这套分级的意义,是让 AI 能做事,但不能越权。

7. 本地工作台:业务文件区和系统记录区

法律工作不能只靠一次性对话。

需要长期维护:

  • 材料
  • 版本
  • 台账
  • 期限
  • 来源验证
  • 缺口归档
  • 交付记录
  • 复核记录

所以 legal-skills 设计了本地工作台结构。

简化后大概是:

自定义工作目录/
├── 产品法务/
├── 监管合规/
├── 合同/
├── 劳动合规/
├── 诉讼/
│   ├── 民事/
│   └── 刑事/
└── _系统记录/
    ├── 当前事项.md
    ├── 总索引.md
    ├── 诉讼案件总览.md
    └── 案件复盘台账说明.md

业务文件区给人看:

合同/
  <客户或项目>/
    <合同编号-合同简称>/
      01-客户材料/
      02-工作版本/
      03-交付文件/
      04-最终版/

系统记录区给 Agent 和复核使用:

_系统记录/
  合同/
    合同索引.md
    续约提醒总表.md
    <客户或项目>/
      <合同编号-合同简称>/
        合同概览.md
        业务摘要.md
        来源验证记录.md
        审查问题清单.md
        综合审核意见.md
        版本记录.md
        修订历史.md
        OCR校正记录.md
        OCR文本/

这个结构的目的,是让 Agent 不靠“记忆”理解当前事项。

它应该读取本地工作台里的当前事项、材料清单、来源记录和版本记录。

8. 正式交付质量门

法律工作里,“写完”不等于“完成”。

尤其是正式文书、合同红线稿、客户报告、法院材料。

legal-skills 里有两个关键交付 Skill:

法律文书出稿前审查
法律文书模板与导出

普通 Word 文书链路:

业务 Skill 生成 draft.html
  -> preflight-meta.json
  -> 法律文书出稿前审查
  -> draft_checked.html
  -> html_to_docx.py
  -> health_check.py

要素式起诉状链路:

complaint-data.json
  -> fill-plan.json
  -> DOCX 母版克隆填充
  -> 模板克隆质控报告
  -> health_check.py

合同红线稿链路:

确认审查立场
  -> 生成 redline-plan.json
  -> apply_redline_plan.py
  -> 生成真实 w:ins / w:del 修订痕迹和批注
  -> qa_redline.py
  -> 输出执行日志和 QA 报告

这里的重点不是“能导出 Word”。

重点是正式交付前必须知道:

  • 材料是否读取
  • 法规是否校验
  • 来源边界是否记录
  • 用户确认是否存在
  • 模板是否匹配
  • DOCX 结构是否健康
  • 是否只是草稿

9. 项目能覆盖哪些法律工作

当前项目覆盖的主要方向包括:

法律咨询与材料整理
民事诉讼
刑事辩护
劳动争议
破产程序
合同审查与起草
企业劳动合规
产品法务
广告合规
预包装食品标签合规
监管合规监测
法规案例检索
诉讼文书起草
诉讼可视化
正式 Word 文书导出

对律师来说,它可以减少重复的流程管理、材料整理和文书前置工作。

对企业法务来说,它可以沉淀合同、劳动、产品、监管、制度、续约和整改的长期工作台。

对团队来说,它能让复核和交接更清楚:

  • 谁读取了材料
  • 哪些事实已经确认
  • 哪些法规已经校验
  • 哪些事项还需要补充
  • 哪个版本是草稿
  • 哪个版本可以交付

10. 快速安装

方式一:通过 Skills CLI 安装

npx skills add https://github.com/pa1nrui1/legal-skills -l
npx skills add https://github.com/pa1nrui1/legal-skills --skill china-legal-skills

方式二:作为普通 skills 目录安装

git clone https://github.com/pa1nrui1/legal-skills.git
mkdir -p ~/.codex/skills
rsync -a legal-skills/skills/legal/ ~/.codex/skills/legal/

方式三:作为 Codex plugin 安装

codex plugin marketplace add pa1nrui1/legal-skills --sparse .codex-plugin --sparse skills

安装后可以这样开始:

法律工作总控 帮我判断这个任务应该走哪个法律工作流。
合同审查 审核这份合同,按风险等级输出修改建议。
产品法务 帮我检查这个产品上线材料的主要合规缺口。

真实业务使用前,建议配置自己的工作区路径、客户台账、身份占位、文书模板、法规检索、OCR 和团队审批权限。

11. 边界

legal-skills 不提供法律意见。

它提供的是 Agent workflow、Skill 规则、文书模板和本地脚本示例。

任何输出都应视为供律师、法务或合格专业人士复核的工作草稿。真实法律事项必须由专业人士基于完整事实、有效授权、现行法律、可核验来源和具体语境作出独立判断。

公开仓库也不应该包含真实客户材料、案卷、API key、商业数据库凭证、本机私有路径或未经授权公开的信息。

这个项目的核心,不是让 AI 站到律师或法务的位置上。

而是把 AI 放进一个有权限、有记录、有复核、有边界的本地工作台。


原文首发: www.panrui.xyz/writing/leg…

项目地址: github.com/pa1nrui1/le…

官网项目页: www.panrui.xyz/projects/le…