ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

把法条速查和文书起草封装成WorkBuddy Skill:执法岗AI工作流实测

把法条速查和文书起草封装成WorkBuddy Skill:执法岗AI工作流实测 先交代一下背景。我在生态环境执法岗干了六年每天最磨人的不是跑现场而是回办公室之后的案头活翻法条、写文书、理证据清单。这类工作不复杂但极度吃时间而且容错率低——一个条款序号引错整本案卷就可能被退回重来。所以当我看到 WorkBuddy 里流行把工作流封装成 Skill也就是给 AI 设定一套固定的岗位职责和操作手册的玩法时第一反应就是把我手里这套「法条速查 文书起草」的流程也做成一个可复用的 Skill。这篇文章就是完整的实测记录包括拆解思路、实现细节、踩过的坑以及最终沉淀下来的可复制方法给同岗位的朋友和有类似办公场景的读者做参考。1. 为什么我要把执法岗的案头活变成Skill1.1 一个普通案件从现场到归档时间到底花在哪我先拿自己过去三个月经手的案卷做了个粗略统计。一个常规案件从现场检查结束回到办公室到完成立案审批、责令改正、事先告知、处罚决定、送达归档这一整套流程光文书环节就要五到六个小时。这还是在材料齐全、一次通过的情况下。如果办理过程中被打回一次或者发现引用错了一个条款序号实际耗时直接翻倍。这些时间主要消耗在三个地方。第一是法条检索一个案件往往横跨好几部规章有时还要同时参照通用程序和专门领域的细则翻文件本身不难难的是在几十份材料里快速定位到准确的条款项。第二是文书起草现场笔录、立案审批表、事先告知书、决定书每一类都有固定格式但内容必须与案件事实严丝合缝尤其是当事人信息、时间地点、违法行为描述、处罚依据这几项错一个字都会成为日后复核的隐患。第三是格式核对字号、文号、签章位置、附注内容这些机械性的检查非常消耗耐心。这让我意识到真正值得优化的不是查法条写得准不准而是查法条和写文书之前的那些重复动作。如果能把根据案件类型自动检索相关条款和根据笔录要素生成文书初稿这两步交给一个稳定工具来完成剩下的就是人工审定整体效率会有一个明显的提升。1.2 法条速查的难点不是查不到而是怕引错你可能会说现在用普通AI对话工具也能查法条。我试过确实能查到但很难放心用。问题在于通用对话工具没有知识边界的概念它倾向于把问题回答得完整顺畅而这种倾向放到法条引用场景里就是灾难。典型的翻车方式有三种条款序号对不上、把参考条款当成直接处罚依据、查不到时自行补一段看起来合理的内容。举一个真实遇到的情况。某领域法规修订过一次个别条文序号顺延了AI检索出来的还是修订前的旧序号条文内容却对应着修订后的新位置。如果直接把这个引用写进文书整份案卷的法律依据部分就是错的。这种错误不是有没有查到的问题而是引用版本是否可靠的问题恰恰是普通AI对话工具最不擅长把守的一关。所以我的需求很明确这个技能必须基于我提供的有明确版本标记的离线法规素材库进行检索而不是让模型凭记忆回答。同时输出必须严格区分直接依据和相关线索查不到时宁可明确说查不到也不能自行补全。1.3 为什么选WorkBuddy Skill而不是Excel模板或快捷键宏很多人问你直接做一个Excel模板或者搞一套自动化宏不就行了我觉得这两种方案都不够通用。Excel模板能解决格式统一的问题但解决不了内容生成的问题填表之前你还是要自己去翻法条、理表述。自动化宏能提高输入效率但它完全不具备语义理解能力碰上表述相近但案情不同的案件几乎派不上用场。WorkBuddy Skill 的特点是它把 AI 的语义理解能力和一套固定的工作流程绑在一起。你可以为这个技能设定角色给它指定知识素材规定输入输出的字段甚至告诉它输出前必须完成哪些自检动作。这相当于给 AI 定了一个岗位它在每次调用时都以同样的标准干活不会因为换了案件、换了同事就出现明显偏差。我在社区里看到不少人分享自建 Skill 的经验有人做备课技能有人做写作技能还有人把绘图提示词封装成技能。思路完全相同只是领域不同。我这套的定位是政务办公场景里的文书生成加法规检索属于对准确性和严肃性要求比较高的类型所以实现思路会侧重约束和校验而不是开放式生成。2. 先从拆工作流入手执法文书劳动到底由哪些动作构成2.1 按动作而非按岗位切分技能一开始我的想法是把执法办案助手做成一个大而全的 Skill所有案头工作都往里面塞。结果试了一天就发现不行——指令一多AI 就会顾此失彼它自己都不知道优先执行哪一段逻辑。后来我换了个思路按动作拆不按岗位拆。执法案头工作砍成几个核心动作检索查法条、判定判断违法事实对应的条款关系、起草生成各类文书初稿、复核检查格式与信息一致性。每个动作对应一个独立的 Skill彼此之间通过固定的输入输出衔接。比如法条速查Skill 输出一组带版本标记的条款引用这份输出直接作为文书起草Skill 的输入参数文书起草Skill 生成初稿后再交给材料复核Skill 做格式和字段一致性检查。这样拆的好处有两个。第一每个技能的任务边界清楚AI 在单一技能里的表现明显更稳定。第二便于单独调优和复用。某个环节出了问题只需要修对应的那个技能不用动整条链路。比如后来我发现法条速查在引用新旧版本上有漏洞就只改了那一个技能的素材库和约束规则其他技能完全不受影响。2.2 一个Skill的三件套角色说明、知识素材、输出规范我在 WorkBuddy 里搭 Skill 时习惯把它分成三块来写角色说明、知识素材、输出规范。这三块缺一不可。角色说明解决的是你是谁、你在干什么的问题。比如法条速查技能的角色设定是你是生态环境执法岗的法规检索助理你的职责是根据案件类型和行为描述检索离线法规素材库给出标准引用不回答与检索无关的问题。 角色定位清楚了AI 就不容易跑偏去写长篇大论或者给出无根据的建议。知识素材解决的是你凭什么这样回答的问题。这个必须是我上传和整理好的离线文本而不是让 AI 自己去网上拼凑。素材要按照法规名称、版本年份、章节条号打标签方便在提示词里精准指定检索范围。输出规范解决的是你交出来的东西长什么样的问题。我给它规定了一套固定格式包括完整的条款引用格式、直接依据与相关线索的分类、以及未检索到的兜底说明。下面是一个简化版的 Skill 结构示例skill_name: 法条速查_通用版 role: 你是生态环境执法岗的法规检索助理。 inputs: - 案件类型 - 违法行为描述 - 法条版本年份 process: 1. 拆解违法行为关键词 2. 检索离线法规素材库 3. 核对版本年份与条款序号 4. 输出标准化引用 output: - 直接依据条款含法规名称、条、款、项 - 相关线索条款标注“非直接依据” - 未检索到说明必须明确写出不得编造写的时候不需要特别复杂的脚本关键是让模型清楚每一步的输出边界。这里我也建议如果是刚开始接触 Skill 的读者不要急着写很长的流程先把一小段工作流跑通再逐步扩展。2.3 命名、编号与目录规范让小技能干活更稳定Skill 建多了之后命名和编号就变得非常重要。我给它们起了非常直白的名字比如法条速查_通用版、笔录起草_餐饮油烟类、决定书起草_通用版。这样在调用的时候一眼就能知道该用哪个不会出现在一堆相似命名的技能里反复试错的情况。同时我习惯给每个 Skill 加一个版本编号和生效日期类似v1.0_2025-04。这个习惯一开始是为了方便自己管理后来发现特别关键——因为法规素材和文书模板都是会更新的没有版本号过两个月你自己都分不清这个技能里的素材是旧法还是新法。我在配套的说明文件里写清楚本技能基于XX年X月现行法规库旧案请参照案发当时版本避免跨时间使用出错。目录规范上我会把知识素材单独放在一个子目录里提示词模板放在另一个子目录两者不混在一起。这样后续更新素材时不用动提示词文件维护成本低很多。3. 法条速查Skill把怕引错法条这个压力点按下去3.1 素材整理离线法规库是地基这一步是整个技能里最费时间、但也是最重要的部分。法规素材整理得好不好直接决定后续引用质量高不高。我从工作常用的几十份法规文件入手把 PDF 全部转成纯文本然后做三件事。第一是清洗去掉页眉页脚、空白行、无关的附注说明只保留正文。第二是分片把每一部法规按照章节—条款的结构切成小段每一段前面保留完整的第X条标记方便模型定位。第三是打版本标签在每份文件开头加一行元信息写清楚法规名称、发布日期、修订日期、现行版本年份。我这里没有用复杂的向量数据库接口直接采用的是最朴素的方式把处理好的文本按目录结构放进 Skill 的素材区让模型在检索时直接读取指定文件范围。效果比我预想的要好原因在于我的检索范围本身是封闭的就几十份文件模型不需要在浩如烟海的网络信息里瞎找它只需要在确定范围内做匹配准确性自然高不少。另外提醒一句素材整理时不要偷懒裁剪条款。有些法规条文之间互相引用你只保留看似有用的几条检索时模型就缺少上下文很容易给出残缺的引用。我一开始剪掉过一个法规里看起来无关的程序性条款结果导致生成告知书时遗漏了救济途径的写法这个教训挺深刻的。3.2 三条硬约束在提示词里给AI焊上护栏模型在法条引用上最喜欢犯的毛病是补全和模糊化。为了压住这两个毛病我在提示词里写死了三条硬约束执行效果立竿见影。第一条引用格式完整。所有条款引用必须是《法规名称》第X条第X款第X项的完整格式缺任何一部分都不算完成。这条约束的目的很简单就是逼着模型把引用落实到最具体的条款层次而不是用根据相关法规这种模糊表述蒙混过关。第二条查不到必须明说。当素材库中没有检索到对应条款时模型必须输出未检索到直接依据这句话同时可以列出最接近的三条作为相关线索但必须在每一条前面标注非直接依据仅供参考。这一条把编造这条路彻底堵死了也保留了人工继续研判的线索。第三条禁止自行解释条款内容。模型只能引用条款原文不能用自己的话转述条款含义。原因在于转述必然带来信息损失哪怕损失很小在法律引用场景里也不可接受。我在实测中发现加了这条约束之后输出明显更克制了不会再出现那种用自己的理解去扩展法条含义的情况。3.3 实测翻车现场条款序号变更与参考条款冒充依据就算有护栏实测中还是翻过车。最典型的出现在新旧法规衔接的案件上。有个案子涉及的违法行为在旧法规里对应第 32 条但该法规在 2024 年修订后这条违法行为对应的条款序号变成了第 38 条。我最初制作素材库时装的是修订后的版本检索时模型按照违法行为关键词匹配到了新版的第 38 条但在输出引用格式时却沿用了旧版文件里的表述习惯写成第 32 条。整段引用堪称混血状态条款序号是旧的条文内容是新版的位置。如果不逐字核对根本发现不了。另外一次翻车是参考条款冒充依据。当时我同时检索到一条直接规定违法行为的条款和一条程序性条款模型把程序性条款也塞进了直接依据里。文书起草时它自动引用了这条程序性条款作为处罚理由虽然证据链条无害但严格来说引用层次不对。后来我单独给输出加了分类要求明确规定只有直接设定法律责任和罚则的条款才能进入直接依据其余一律归入相关线索。针对这两个场景我在技能里增加了一个强制校验步骤模型在输出引用前必须自行核对一遍条款内容是否与素材原文完全一致并标注本次引用对应的素材文件编号。这个步骤听上去很简单但能把绝大多数混搭引用问题拦在输出之前。我把校准前后的差异整理成了一个小表错误现象根因校准动作条款序号与条文内容来自不同修订版本素材库版本信息未被利用素材文件按年份重命名引用时强制标注版本年份参考条款被当成直接处罚依据检索结果未区分引用层级强制输出“直接依据 / 相关线索”分类未检索到时自行编造条款模型倾向于补全答案硬性输出“未检索到”并列出相近条款作为备查线索4. 文书起草Skill从现场笔录到决定书的流水线怎么搭4.1 四类高频文书拆成一条生产链文书起草是整个流程里产出最多、也最容易出问题的环节。我把日常最常用的四类文书抽出来做成一条连续的生产链现场笔录、立案审批表、事先告知书、处罚决定书。每一类对应独立的模板和输入要求但前后衔接非常紧密。其中现场笔录是源头数据后面所有文书的核心信息都从它里面来。立案审批表需要从笔录里抽取出违法行为摘要和初步判定意见。事先告知书要基于立案审批确认的事实给出拟处理意见和救济途径的提示。处罚决定书则要在告知书基础上结合当事人的陈述申辩意见形成最终的正式文本。为了让读者看清楚这套流水线怎么运转我整理了一张分工表阶段常用文书Skill输入关键输出现场取证现场检查勘察笔录、询问笔录现场记录原文、照片/采样记录描述结构化事实要素立案环节立案审批表案件摘要、初步判定意见案件名称、违法事实摘要、建议立案依据告知阶段责令改正通知书、行政处罚事先告知书违法事实、法律依据、处罚建议拟处理意见、救济途径名称决定阶段行政处罚决定书告知书内容、陈述申辩/听证意见正式决定文本、缴款信息、履行期限这一套链条跑下来每个文书之间不是孤立的而是前一环的输出直接成为后一环的输入最大程度避免了信息在重复录入中走样。4.2 先抽取字段再套模板保证决定书和笔录对得上在起草技能里我设计了一个非常重要的中间步骤字段抽取。也就是让 AI 先把案件材料中的关键信息整理成结构化数据然后再用这些数据去填充文书模板。字段抽取的目标信息包括当事人信息、案发时间、案发地点、违法行为描述、证据清单、涉及法规。格式上让它输出成 JSON方便后续直接套用。{ 当事人: , 案发时间: , 案发地点: , 违法行为: , 证据清单: [], 涉及法规: [], 版本年份: }为什么要多此一举因为在实测中我发现如果让 AI 直接从原始笔录起草决定书它会不自觉地把陈述变得更顺结果就是决定书里的表述与笔录原文出现细微出入比如地址漏了个门牌号时间从15时30分被改写成下午三点半。这类改动放到文书中就是大问题。但如果先抽取成结构化字段再让模板逐项填充事实要素就能保持最大程度的一致。数据抽取之后我还会让 AI 做一次字段比对把抽取结果和原始笔录原文逐项核对一遍。这一步在提示词里占用不了多少空间但能有效减少落项或者错位的情况。实测下来决定书的当事人信息和笔录完全一致的概率从大概一半提升到了九成以上。4.3 AI翻车重灾区与人工复核红线即便做了这些准备AI 生成文书初稿后我也不会直接拿来用。因为这类文书最终的认定权和签章责任必须由人来承担工具再强也只能做辅助这个边界我从一开始就想得很清楚。AI在起草时最容易翻车的三个位置我做成了人工复核红线表红线项为什么不能动我如何检查文号、日期、签章只能由经办人填写AI不得生成生成后检查是否存在虚构编号或日期处罚金额必须从输入参数读取与告知书、决定书逐字比对完全一致语气表述执法文书必须客观强硬禁用弱化词全文检索“建议”“可能”“酌情”等词当事人信息必须与笔录绝对一致逐字段核对不放过一个标点差异引用条款必须来自法条速查Skill的素材库输出查版本号与条款序号是否与素材一致我做了个小总结AI 作为文书起草辅助工具最大价值是把初稿做到七八十分但最后那二十分必须靠人的眼睛和判断力兜底。这也是我在这套 Skill 里最坚持的一个原则。5. 我踩过的坑和校准方法附一份评分卡5.1 第一次生成决定书格式像模像样细节不敢用第一次用这套 Skill 生成处罚决定书的时候我的观感非常复杂。版式工整章节顺序也对违法事实、法律依据、处罚内容几个大项都有读上去还真像那么回事。但越往下读越发现不对劲当事人地址和笔录差了一个字处罚幅度也从应填的数值变成了一个看起来合理但实际不对的数。原因出在我输入参数时不严谨。处罚金额这一项我在录入时漏填了而 Skill 里设置的默认补全逻辑让 AI 在参数缺失时自动按一个默认值补了进去。这个默认值恰好和真实应罚数额不同但格式上完全合法。这个经历让我意识到参数完整性和输入校验可能比提示词本身还要重要。从那以后我给自己定了个要求每次调用文书起草技能前必须逐项核对输入参数是否齐备尤其是处罚金额、违法事实描述、当事人信息这三项。宁可花两分钟人工确认也不要让 AI 在关键参数上做默认推断。5.2 把自检评分卡写进Skill输出流程后来我把那次翻车的教训固化进了技能本身的流程里。具体做法是在文书起草技能的输出规范中加一段自检清单要求 AI 在交付之前先逐项自查并输出每个检查项的通过情况。这个评分卡基本长这样当事人信息一致性、引用条款版本正确性、处罚金额参数匹配、语气是否出现弱化词、是否存在虚构文号或日期。AI 生成完毕后要输出一个类似检查结果的文本自检结果 1. 当事人信息一致性通过 2. 引用条款版本正确性通过 3. 处罚金额参数匹配通过 4. 语气弱化词检查通过 5. 文号日期真实性检查通过我实际用下来的体会是这个自检步骤并不能百分之百替代人的复核但它确实把一些低级错误拦截在了交付之前。特别是语气弱化词检查这一项几乎是每版初稿必抓出问题的环节。有一次它把责令立即停止违法行为写成了建议尽快整改评分卡直接把它拦下来了。5.3 版本管理让新法旧案各归其位执法工作有一个无法回避的时间维度——案件行为发生时适用的法规和当前生效的法规很可能不是同一版。为了让技能在跨时间场景下不乱套我给它加了版本管理机制。具体做法有三步。第一所有素材文件以法规名称_版本年份的方式命名例如XX污染防治条例_2024版.md让模型从文件名就能感知版本信息。第二Skill 的输入参数里增加一个法规版本参考年份用户填案件发生时间模型据此锁定检索范围避免把新法套用在旧案上。第三在输出文书中强制标注本引用基于XX年XX月现行版本的注释这样即使后续法规更新也能追溯当时引用所依据的版本。实测中这个机制解决了一个实际问题一个去年发生的案子立案时使用的还是修订前的条款序号但由于所有素材库现在都是修订后的新版本如果不指定版本年份模型会自然使用新法规。加了版本管理后旧案引用旧条款、新案引用新条款整个链条就顺了。关于这一步我想多说一句。有人建议我干脆做一个自动识别新旧法的功能让 AI 自己判断案件时间适用哪一版。我试过结论是不建议因为新旧法规衔接的过渡规则往往非常细致AI 的判断在这种场景下还是不够可靠不如老老实实让用户指定版本年份把判断交给人。6. 这套Skill怎么复制给同事以及换个岗位怎么改造6.1 打包分发一个目录加一份说明做完之后我做的第一件事就是把这套 Skill 打包分享给同科室的同事。打包结构很简单一个主目录里包含三块技能配置与提示词文件、法规素材子目录、文书模板子目录外加一份使用说明。使用说明里我会写清楚几件容易忽略的事Skill 部署到工作台之后第一次使用前要检查素材目录路径是否正确调用文书起草技能前必须先把输入参数填完整特别是版本年份和处罚金额每次法规库更新后要及时替换素材文件并更新技能版本号。这里有一个经验想分享打包分发时不要在技能配置里写死绝对路径改用相对路径不然同事把技能拷到自己电脑上之后经常因为路径对不上而加载失败。我第一次给同事拷的时候就是路径没处理对方反复加载不成功差点以为是技能文件有问题。改成相对路径之后一切正常。另外社区里很多人提到 WorkBuddy 的 Skill 玩法时也经常讨论如何让技能更通用我的回答是先专后通。你先把一个岗位场景下的技能做到顺手再逐步做抽象和泛化这是最稳的路径。直接做一个什么都能干的通用技能往往什么都干不好。6.2 跨岗位改造的五步方法论这套方法同样可以复制到其他岗位。我梳理了一个五步流程适用于大部分案头工作繁重、输出物固定的业务场景。第一步记录一周工作日志列出所有高频案头动作比如查资料、填表格、写报告、发通知。第二步选定两三个最高频的动作逐一明确输入和输出。输入是你要喂给 Skill 的原始材料输出是它应该交出的成品形态。第三步准备素材库把工作中实际用到的制度文件、模板、规范说明整理成离线文本这决定了 Skill 的专业下限。第四步用三到五个真实案例做校准根据生成结果修正提示词约束和输出格式。第五步找一位完全没参与开发的同事做一次盲测看他能否不借助你的口头说明就正确调用这个技能这一步能暴露你的说明文档和命名规范里隐藏的坑。这套流程我没有贴在某篇教程里完全是实测走出来的经验。尤其是最后一步盲测的价值远比你想象的大。我第一次做盲测时同事拿到技能文件后完全不知道要先填版本年份参数直接导致后续引用全部用了最新法规等于白跑一轮。后来我把参数说明加大字号写进使用说明第一页问题才算解决。6.3 一段不算总结的收尾现在这套「法条速查 文书起草」的 WorkBuddy Skill 已经陪着我把最近两个月的案件卷宗完整跑了一遍。要说最大的感受是它并没有真的替我做决定但它把我从为翻法条翻到烦躁、为文书格式反复核对到麻木的状态里解放了出来让我能把注意力重新放到案件本身和最终的文字把关上去。如果你也想做一套类似的技能我想给出的最后一条建议是不要一上来就追求完美提示词先把你手头最头疼的那个动作做成一个最简单的 Skill哪怕它的输出还很粗糙跑通之后再一点点加约束、加素材、加校验。这套东西最有意思的地方在于你越熟悉自己的工作流沉淀出来的技能就越贴合自己所谓可复用本质上就是把你长期积累的岗位经验固化成了一个随时能调出来的数字助手。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进