ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

使用Skill构建环保执法文书助手:法条速查与AI起草实战

使用Skill构建环保执法文书助手:法条速查与AI起草实战 1. 为什么一个执法岗会想到自己动手做 Skill1.1 真实的日常工作流有三分之一时间浪费在找和抄上生态环境执法岗干了三年我每天最耗时间的不是跑现场而是回到办公室之后的案头工作。一次普通的现场检查回来要写现场检查记录发现涉嫌违法要准备调查询问笔录后续还有责令改正、处罚事先告知、处罚决定书每一份文书都得从模板里翻、从法条里找依据、从案卷里抄当事人信息。查条文、复制模板、改名称、核对金额区间一套流程下来一上午就没了。我把一个典型案件的时间拆开看过真正在现场看、问、取证的时间大概占三成剩下七成都在做把现场情况翻译成文书语言的工作。而这七成里最机械的部分——查法条、套模板、填信息——恰恰是最应该交给自动化去处理的。当时我手上有几件现成的东西一套常用的文书模板一个维护了好几年的常用条款摘录文档还有一台装了 WorkBuddy 的工作电脑。 WorkBuddy 支持自定义 Skill本质上就是给 AI 配一个带说明书的工具箱。我就在想能不能把我日常最常用的这些材料整理成一套 Skill让它帮我做法条速查 文书起草。这么做的收益非常直接以前起草一份责令改正决定书从翻法条到初稿落地快则半小时慢则一小时现在用 Skill 出草稿再经过我人工复核最快三分钟就能拿到能用的版本。注意我说的是能用的草稿不是直接签发的文书——这一步区别很关键后面会详细讲。1.2 通用 AI 助手为什么不好用我也试过直接用通用 AI 对话窗口干活效果一言难尽。不是 AI 不够聪明而是它不知道执法文书长什么样也不知道我手头有哪些可用条款。通用助手有三个很要命的问题。第一它喜欢编条款——你问它某类违法行为的处罚依据它可能一本正经地给你一个看着很权威、实际不存在的条款编号这种幻觉在法律文书里是致命的。第二它不理解文书的固定结构。现场检查记录先写什么后写什么调查询问笔录有哪些要素缺一不可这些格式规范散落在各种规程里通用 AI 没有这方面的上下文。第三它的回答不留痕——我需要的不是一段漂亮话而是这个结论来自哪个文件、哪个条款要让复核的人一眼能查到出处。这三点正好是 WorkBuddy Skill 能够解决的问题你在 Skill 里放一个自己的法条索引AI 就只能从索引里检索检索不到就让它明确说查不到而不是编一个你在 SKILL.md 里写清楚文书结构AI 就会按结构组织内容你在数据文件里标好条款出处生成的内容天然带引用来源。所以我的结论是不是 AI 不能做执法辅助而是你得先把法律知识和文书规范外置成一个可以检索、可以插件化调用的资料包。这件事恰好就是 Skill 的定位。2. 法条速查的前提先给 Skill 一套可检索的法条索引2.1 Skill 文件夹是怎么搭起来的WorkBuddy 的 Skill 机制其实不复杂把一套说明文件、参考数据和脚本放进一个文件夹再让 AI 按 SKILL.md 的说明去调用。你可以把它理解成给 AI 发一个带操作手册和工具箱的工作包。我搭的环保执法文书助手文件结构大概长这样environmental-enforcement-docs/ ├─ SKILL.md ├─ reference/ │ ├─ 法条索引.csv │ └─ 文书模板/ │ ├─ 现场检查记录.md │ ├─ 调查询问笔录.md │ ├─ 责令改正违法行为决定书.md │ └─ 行政处罚事先告知书.md └─ scripts/ └─ match_clause.pySKILL.md 是整个 Skill 的说明书AI 一旦被唤起第一件事就是读这个文件。文件开头可以带一段元信息告诉 AI 这个 Skill 叫什么、什么时候该用它--- name: 环保执法文书助手 description: 帮助生态环境执法人员进行法条速查与执法文书起草输出可供人工复核的草稿。 version: 1.0.0 --- 当用户要求查询法律条文或起草执法文书时使用本 Skill。 工作流程 1. 先在 reference/法条索引.csv 中检索相关条款不要凭记忆引用条款。 2. 检索结果必须返回法条名称、条款编号和条款原文并标注数据来源文件。 3. 起草文书时严格按照 reference/文书模板/ 下对应模板的结构生成内容。 4. 当事人信息、时间、地点、现场事实等要素必须来自用户输入禁止自行补全。 5. 输出草稿末尾附加待人工复核清单逐条列出办案人员需要核对的内容。这一套东西写下来AI 的工作边界就清楚了。它不是一个懂法律的 AI而是一个会用你的法条索引和文书模板的助手。2.2 我为什么没有把法条全文塞进提示词在动手之前我评估过两种方案一种是把常用法条全文都贴进提示词里让 AI记住另一种是建一个索引文件让 AI 按需检索。我选了后者原因有三。首先是上下文窗口的问题。一部法规全文动不动几万字十几部法规加起来远超对话窗口能承载的量你总不能让 AI 每次写文书都把整个数据库读一遍。就算窗口够大无关信息混在上下文里AI 反而更容易在回答时记住错误内容。其次是更新维护的问题。法律法规和规范性文件是会修订的如果全文写在提示词里每次修订都要重新改 Skill 的说明文件容易漏。做成索引 CSV哪天条款更新了我只需要替换对应行SKILL.md 一行都不用动。最后是准确性问题。把全文塞进去AI 在生成时仍然可能自由发挥把 A 条款的内容和 B 条款的编号拼在一起。有了索引和脚本检索结果是确定性的输入关键词脚本返回几条候选AI 只能从这几条里选。准确率一下就上来了。用一句大白话说别指望 AI 背法律条文它不适合做这种事。让 AI 当目录管理员从你给定的数据库里把正确的条款取出来才是可靠的做法。2.3 用脚本做模糊匹配的取舍法条索引 CSV 的每一行我建议至少包含这几列关键词、法条名称、条款编号、条款原文、生效状态、备注。写一个小脚本做模糊检索可以大幅减少 AI 的自由裁量。这里用 Python 的 difflib 做演示实际在 WorkBuddy 的 Skill 里脚本可以被 AI 调用也可以直接在外部对用户输入做预检索import csv import difflib def load_index(path): with open(path, encodingutf-8) as f: return list(csv.DictReader(f)) def find_clauses(keyword, rows, top3): scored [] for row in rows: score max( difflib.SequenceMatcher(None, keyword, row[关键词]).ratio(), difflib.SequenceMatcher(None, keyword, row[法条名称]).ratio() ) scored.append((score, row)) scored.sort(keylambda x: x[0], reverseTrue) return scored[:top]检索脚本的价值在于收敛用户随便怎么说脚本先把候选范围压到三条以内再让 AI 去判断哪条和当前案件最匹配。这样即使 AI 判断错了它错的范围也是可控的不会从零开始编。当然模糊匹配也有局限。比如用户输入的关键词比较偏脚本可能匹配不到。我的解决办法是在 SKILL.md 里明确写一条规则如果脚本返回结果为空AI 必须回答当前索引中未检索到相关条款请人工确认而不是自行给出推测性答复。3. 文书起草模块把能直接改的草稿当成唯一目标3.1 先拆文书结构再谈生成执法文书的格式是高度固定的每一类文书都有它必须包含的要素。我对照平时办案的实际需要把最常用的几类文书拆成了结构表文书类型必填核心字段生成重点现场检查记录当事人名称、检查时间地点、执法人员、现场情况描述、采样取证情况把零散口述整理成时间线调查询问笔录被询问人身份、询问时间地点、问答记录、被询问人签字确认还原问答逻辑不写主观结论责令改正违法行为决定书违法事实、改正内容、改正期限、法律依据引用条款必须带出条文内容行政处罚事先告知书违法事实、处罚依据、拟处罚内容、当事人陈述申辩权利处罚金额区间与实际裁量理由每一类文书我都会在对应的模板文件里写清楚哪些部分是从输入直接填充哪些部分是根据事实描述归纳哪些部分是必须引用索引里的条款原文。比如现场检查记录里执法人员到达现场时看到什么是事实AI 可以把口语化描述整理成书面表达但不能新增动作涉嫌违反的条款则必须来自法条索引不能由 AI 推断。把结构表维护好之后AI 起草文书就是在填空。它不是从零创作一份文书而是把我们办案时的真实信息按照规范格式组织起来。这个思路对任何岗位写任何公文都适用——先把格式和要素拆出来再让 AI 干排版和润色的活。3.2 提示词里的三条铁律文书模板是结构层面的事真正决定草稿质量的是提示词规则。我在 SKILL.md 里写死这三条铁律实测下来效果非常明显。第一事实不生成。AI 不能替当事人说话不能替执法人员补细节。比如用户输入现场检查时发现废水排放口有白色泡沫AI 只能写现场检查发现该单位废水排放口存在白色泡沫不能自己加一句疑似超标排放——疑似这种定性判断必须留给执法人员。如果信息不足AI 应该反问你而不是编。第二引用必溯源。所有涉及法律依据的地方都必须从法条索引里复制原文并在草稿中标注条款来源文件。AI 自己背出来的条文一律视为无效。这条规则配合检索脚本使用基本能杜绝编造条款的问题。第三草稿要留痕。每份草稿输出后末尾必须附一个待人工复核清单列清楚哪些字段来自用户输入、哪些字段来自模板默认、哪些条款是脚本检索出来的。办案人员拿过草稿一眼就能看出哪些地方需要重点核对不用从头读一遍。这三条实际上是把 AI 从创作者降级成了整理者。降级不是损失反而是法律文书场景最需要的特性——准确、可溯、无新增信息。3.3 草稿生成后的复查清单Skill 生成草稿后我一般按这个清单复查一遍。这套清单我也写进了 SKILL.md让 AI 在生成时主动提醒当事人名称、统一社会信用代码等主体信息是否与案卷一致检查时间、地点是否与现场记录吻合现场情况描述是否遗漏了采样、拍照、录像等取证动作引用的条款编号和内容是否与现行有效版本一致处罚金额或改正期限是否落在裁量区间内告知当事人权利的内容是否齐全我把这个清单叫做六查。六查做完草稿才可以进入签发流程。用 Skill 的这一个月里我最大的感受是它不会替你承担法律责任但它能把你从重复劳动里解放出来让你把精力集中在六查这些真正需要判断力的事情上。4. 实测记录三个真实场景下的效果与槽点4.1 场景一现场检查笔录从 20 分钟到 3 分钟以前写现场检查记录我面对的是当天拍的照片、记在本子上的几个关键词、还有同事在回来的车上临时补的几段回忆。要把这些碎信息写成一份像样的现场检查记录得花不少功夫理顺时间线。用 Skill 之后的流程是这样的我把本子上的关键词拍照转成文字或者直接口述给 WorkBuddy说明这是今天的检查情况帮我整理成现场检查记录草稿。Skill 会先检索当事人基本信息然后按模板生成结构化的记录包括检查时间、检查地点、执法人员、现场情况、采样取证情况等。我第一次实测时有个小意外我故意给了一段特别口语化、甚至还有点啰嗦的现场描述比如那个水池边上管子有点漏水地面上有滩水。AI 把它整理成该单位污水处理设施旁有管道渗漏地面存在积水——这个书面化方向是对的但它没有问清楚渗漏的是处理设施进水还是出水积水面积大概多大。这些细节属于证据要素我后来调整了模板在现场情况描述字段里加了提示要求 AI 在事实描述不完整时先反问三个缺口问题而不是直接出草稿。跑顺之后一份现场检查记录草稿基本三分钟内到手我再花几分钟对照照片和笔记补充几处现场细节就可以用了。4.2 场景二处罚金额裁量区间算得清清楚楚处罚金额是我最不敢掉以轻心的部分。以前要在裁量基准表里翻半天还要考虑从轻、从重情节。我把常用的裁量规则做成了一个参考表放在 reference 目录里表中每一行对应一类违法情形包含基础罚款区间、从轻情节、从重情节、示例说明。违法情形示例数据基础罚款区间从轻情节从重情节未按规定设置排污口2万-10万主动改正、配合调查造成污染物超标排放未依法开展自行监测1万-5万首次发现且及时整改伪造监测数据这块的效果比我预期的好。原因在于裁量本质上是规则匹配而规则恰好可以结构化。我给 Skill 输入某个案件的事实描述后它会先检索违法情形再在裁量表里定位对应行最后输出一个金额区间并附上该区间依据哪个文件哪条规则的说明。不过这里有个纯粹的坑裁量规则表如果维护不及时结果就是错的。我吃过一次亏——有个裁量区间文件用了旧版本AI 忠实地从旧文件里算出建议金额还好复核时发现了。所以我现在在文件头加了最近更新日期并在 SKILL.md 里要求 AI 每次输出金额建议时同时输出依据文件的更新日期。这个习惯值得任何做此类 Skill 的人参考。4.3 场景三复查后发现逾期不改两套文书一次出最典型的流程是先给当事人发出责令改正决定书到期复查发现没有改正这时候要写复查笔录还要准备后续处理文书。以前这套流程要翻两次模板、写两轮文书中间还要核对改正期限有没有算错。Skill 做这件事有天然优势。我在 SKILL.md 里加了一个小的流程判断逻辑如果用户说明已发出责令改正决定书且到期未改则先自动唤起复查笔录模板再唤起后续处理文书模板同时核对从责令改正到复查的时间间隔是否在法定期限内。实际测试下来最省时间的不是会写两套文书而是不会再忘记写第二套。以前忙起来偶尔会发完责令改正决定书就把这个案子搁到一边等想起来已经超期。现在 Skill 会在生成第一套文书时在复核清单里自动带上请确认复查时间节点相当于多了一个不会忘记的闹钟。5. AI 写法律文书最容易翻车的三个环节以及我的拦截办法5.1 法条幻觉宁可查不到也不要编一个法律 AI 最大的风险就是幻觉。普通对话场景里AI 随口编一个不存在的条款可能只是让人困惑在执法文书里这直接关系到行政行为是否合法后果完全不同。我的拦截办法有三层。第一层是前面说的检索脚本AI 只能从索引候选里选条款。第二层是在 SKILL.md 里写死如果检索结果为空必须明确说当前索引未收录禁止根据常识推测条款编号。第三层是在草稿末尾的复核清单里强制列出本次引用的全部条款及来源文件。这三层加在一起不能说百分之百杜绝幻觉但至少能把幻觉控制在一个可以被人工拦截的范围内。我给自己定了一条原则AI 给的条款永远是线索不是结论复核的时候一定要回到现行有效版本里核对一遍。5.2 上下文太长分步生成而不是一次写完有一段时间我尝试让 Skill 一次性完成读取询问记录 → 分析违法事实 → 起草处罚决定书 → 生成送达回证全流程结果质量很不稳定。后来想明白了一次性要做的判断太多中间任何一环出错后面全跟着错。我把流程拆成了两步。第一步先让 Skill 提取和归纳案件事实输出一个事实摘要第二步再把事实摘要喂给文书模板生成正式草稿。拆开之后每一步的任务都很单纯输出质量明显提升。这也算是一个经验AI 处理复杂文书不要试图一步到位先做事实整理再做文书生成中间留一个人工确认的环节最稳妥。5.3 数据安全用脱敏样例开发用真实案卷复核执法案卷里有大量当事人敏感信息我不可能拿真实案卷去反复测试 Skill。我的做法是准备了三套脱敏样例数据把真实案卷里的名称、地址、证照号全部替换成虚构信息再用这些样例去测试文书生成的格式和逻辑。真实案卷我只在最终复核阶段使用而且不会整卷丢给对话窗口。SKILL.md 里我也写了一条规则如果用户输入内容包含疑似真实个人身份信息Skill 应在草稿中提示文书包含敏感个人信息请按内部规定处理后再对外传输。这套东西本质上不是技术问题是工作习惯问题。任何时候脱敏测试和真实办案之间都要划一道线。6. 这个 Skill 能怎么复用到其他岗位6.1 把环保执法抽象成两层通用能力做完这个 Skill 之后我发现它本质上解决的是两个通用问题一是从固定知识库里快速检索标准答案二是把碎片信息按照固定格式组装成正式文档。任何有这两个需求的岗位都可以套用同一套思路。我把这个 Skill 里的内容拆成了两层。底层是法规检索 文书生成的框架包括 SKILL.md 的规则设计、检索脚本、分步生成流程、人工复核清单机制。上层才是环保执法领域的特定数据包括法条索引、文书模板、裁量规则表。换一个领域只需要替换上层数据底层框架几乎不用动。比如说同样是行政检查类的岗位检查范围换成安全生产、市容环卫文书换成检查记录、整改通知、复查意见那就只需要重新做一套领域索引和模板SKILL.md 的核心规则——事实不生成、引用必溯源、草稿要留痕——完全可以平移过去。6.2 迁移一份 Skill 的五步套路如果你也想在自己的岗位上做类似的东西我建议按这个顺序来盘点常用文书清单。不用贪多先把最高频的五类文书找出来拆出每类的必填字段和格式规范。整理领域索引。把你最常查的知识点做成结构化条目每一条至少包含关键词、标题、原文、出处。注意先做目录不要一上来就灌全文。写 SKILL.md。把 AI 的工作流程和禁区规则写清楚尤其是不能做什么比能做什么更重要。用脱敏样例测试。至少准备两套不同情形的样例分别覆盖常规情况和容易出现幻觉的边界情况。建立人工复核机制。做一张复核清单让它变成 Skill 输出的一部分而不是你自己脑补的步骤。说实话这套流程里最费时间的不是写代码也不是写提示词而是第一步的拆结构。如果你连自己的文书有哪些必备要素都说不清楚AI 再强也帮不了你。反过来一旦你把结构拆明白Skill 就真的成了一个可复用、可传给同事的工作包。我现在的做法是把这个 Skill 文件夹整个放进团队的共享位置同事需要时直接复制到自己的 WorkBuddy 里就能用。每个人用的时候会根据自己的办案习惯微调模板这是好事因为 Skill 这种东西本来就应该在真实使用中持续长出自己的形状。
返回列表