Technology
合同审查 Agent 的治理核心:把风险识别变成可签发的工作系统
合同审查 Agent 的价值不在“自动找风险”。真正可持续的价值,是把输入门禁、模式路由、证据链、固定交付契约和人工签发责任变成一套能运行、能拒绝、能复盘的治理系统。模型可以帮助定位条款、比较版本、整理事实和起草建议,却不能凭流畅文字把缺失事实变成事实,把猜测法源变成法律结论,更不能替代有资质人员对现行法和交易事实的判断。一个值得上线的 Agent 首先是受控流程,其次才是生成器。
为什么模糊提示词会失控
“请审查这份合同并告诉我风险”看似明确,实际没有定义委托方立场、交易阶段、业务目的、适用范围、风险分级、证据标准、输出格式或停止条件。模型会自行补齐空白:把常见市场惯例当成客户政策,把一段定义误当成全部义务,把全文摘要当成法律意见。不同会话还会采用不同的优先级,导致同一条款在不同日期得到不同结论。模糊提示词把判断权藏在模型内部,管理者无法知道一次漏检是资料缺失、路由错误、检索失败还是模型推断。治理的第一步,是把“想要一份好意见”改写成输入、状态、门禁、证据和签发条件。
Phase 0:先阻止错误输入
Phase 0 是 intake 与 precheck,不是礼貌地问几个问题。它应建立一张不可跳过的输入清单:业务场景、代表哪一方、合同状态(草拟、谈判、待签或争议)、可审查的正文或明确文件路径、目标交付物、截止时间、保密级别、适用组织政策,以及需要排除的事项。投资或资管场景还要填写业务端、产品类型、交易结构和授权范围。缺少正文、版本号、当事方或关键附件时,流程必须停在 Phase 0,输出缺口、风险和补件责任,而不是进入条款判断。确需继续,负责人以 manual_override 记录谁批准、为何缺失、补件期限和增加的审查限制;覆盖不是删除门禁,而是留下可追踪的例外。
输入预检还要检查文件可读性、OCR 质量、页码连续性、附件和定义的完整性、是否混入他案文本,以及文档版本是否与谈判记录一致。一个“能打开”的 DOCX 不等于可审查文本。系统应把不可解析的表格、扫描页和引用外部政策列为待处理项,并将影响范围传给后续交付。Phase 0 的拒绝能力是质量功能,不是用户体验缺陷。
四种 canonical mode 与 custody overlay
路由必须先于推理。四种 canonical mode 可按仓库工作流理解为:delivery_only,只把已确认的发现整理为固定交付;clause_review,围绕条款锚点逐项检查;scenario_completion,按业务场景补齐事实、风险和行动;position_scope,先确定代表立场、审查边界和优先级。delivery_only 应是默认模式:当用户只要求整理或生成红线时,不应擅自扩大为全面法律审查。模式切换要有触发条件、输入要求和产物差异,不能让模型在一段对话中无声漂移。
custody overlay 是跨模式的保管层。它记录文件来源、版本、哈希或内部编号、访问范围、处理时间、模型与知识包版本、人工接管点和导出位置。模式回答“做什么”,custody 回答“凭什么、由谁保管、哪一版”。同一合同在 position_scope 中确定立场后,进入 clause_review 仍须携带该决定和证据;没有 custody 记录的输出不能被当作正式交付。
条款锚点与固定九字段主表
每一个 finding 都要锚定到合同:章节、页码或段落标识,短摘录,必要时标明定义和交叉引用。不要用“关于赔偿的部分”这种不可复核的描述。固定九字段主表至少包括:序号;条款位置;原文摘录;风险类别与优先级;风险描述;触发后果;修改建议;可直接给对方的反馈措辞;推进前置条件或待补事实。九字段把法律判断、谈判动作和业务依赖分开,使律师、业务和运营看到同一对象。缺字段时应标为未完成,而不是用漂亮的段落掩盖空白。
风险类别可以按责任、付款、交付验收、知识产权、数据与保密、期限终止、赔偿与责任上限、争议解决、合规和运营连续性分层,但分类不是法条。法律依据不确定时,明确写“【需人工复核】”,说明需要确认的法域、事实或政策;不得编造法条编号、司法判例、监管口径,也不得暗示当前法律已经被自动核验。条款摘录要短而足够定位,敏感信息只保留审查所需范围。
四道门禁把文章变成交付物
delivery gate 检查是否交付了约定格式、版本、范围和收件人;evidence gate 检查每个重要发现是否有锚点、摘录、事实链和适用依据状态;veto gate 检查不可妥协的 P0/P1 是否已解决、升级或被具名人员接受;style gate 检查表格字段、语言、语气、目录、附件和敏感信息。P0/P1 没有证据时默认 FAIL,不能因为模型“很有把握”而通过。门禁结果应有 PASS、FAIL、BLOCKED 三态和责任人,失败项目必须回到相应 Phase。
交付契约还要声明“不做什么”:不提供未经复核的现行法结论,不把商业偏好写成法律义务,不把建议改写成已获批准的承诺,不把缺失附件当作不存在。结论、待确认问题、假设和下一步行动应有清晰边界。固定契约让审查可比较,也让拒绝变得可解释。
DOCX 的修改通道与建议通道
文档交付至少区分两条通道。实际替换、删除或新增文字必须通过 DOCX Track Changes,保留作者、时间和原文痕迹;谈判理由、可选措辞和问题放进 Comments 或配套清单。不要把建议直接写进正文,也不要同时生成多份互相矛盾的“最终稿”;默认一个修订稿,必要时附一份建议表。导出前核对修订是否真的开启、批注是否可见、页眉页脚和交叉引用是否断裂,并以原始版本和交付版本的编号形成 custody 链。
模型、知识、保密与日志
模型版本、系统提示、工具权限、温度或其他影响输出的配置都要记录。知识更新采用版本化知识包:生效日期、来源、审阅人、适用法域和废止关系清楚可查;“最新”不是可靠元数据。版本优先级应写入规则,例如客户政策和签署授权高于一般模板,明确交易指令高于默认偏好,人工决定高于模型建议。冲突不能静默解决,应停下并升级。
保密设计要从最小化开始:上传前脱敏,按案件和角色隔离,限制模型与工具的出站访问,定义保存期限、删除证明、备份范围和供应商处理边界。审计日志记录输入指纹、路由、检索文档、finding 变化、人工修改、门禁结果、导出和撤回;日志本身也可能含敏感内容,必须分级保护。任何“模型已查看全部附件”的说法都要有工具轨迹支持。
评测集不是装饰
仓库的 MIT 许可证、Python 主语言、README、SKILL.md、references/input_schema.md、references/workflow_phases.md、references/output_requirements.md、checklists 和 evals/evals.json 提供了一个可检查的工作流骨架。仓库于 2026-04-15 创建,目前没有 release 或 tag;evals.json 中有 8 个场景,但它们不是“测试全部通过”的证明,也不是生产覆盖率。采用前应固定自己的基线集:缺正文、错误版本、定义冲突、跨页表格、恶意指令、不同法域、双语文本、附件缺失、极端责任上限和需要升级的灰区。每次模型、提示、知识包或模板变更都重跑,并保存输入、期望证据、错误类型和人工裁决。
指标不要只看召回率。可以同时看 P0/P1 有证据比例、锚点准确率、字段完整率、误报导致的人工工时、升级正确率、门禁绕过次数、交付返工率、敏感信息泄漏事件和从 intake 到签发的时间。抽样复核低风险通过项,防止系统为了提高通过率而降低敏感度。评测失败应生成可执行的修复项,而不是改写分数。
组织 RACI 与人工签发
业务负责人(Responsible)提供场景和商业优先级;法律负责人(Accountable)确认风险解释、法域和最终签发;运营或知识管理员(Consulted)维护模板、政策和评测集;安全与隐私团队(Consulted)定义保密控制;记录管理员(Informed)保存案件链。RACI 必须落到姓名、角色和替代人,不接受“团队会看”。人工签发者应看到原文锚点、模型依据、未决问题、门禁状态和变更记录,并能拒绝、退回或限制交付。签发是责任承接,不是点击按钮。
九十天安全试点
第 1 至 15 天,选一个低风险、文本结构稳定且有明确律师负责人的合同族,画出现有 RACI,清点数据流,冻结九字段模板和 P0/P1 定义。第 16 至 30 天,只上线 Phase 0、delivery_only 和 custody 日志,人工完成全部审查,收集缺口和误路由。第 31 至 60 天,引入 clause_review 与 scenario_completion,建立至少几十个带人工金标准的案例,比较锚点、字段、升级和时间指标;禁止自动签发。第 61 至 75 天,做权限、脱敏、删除、灾备和恶意文档演练,验证 Track Changes 与 Comments 的分离。第 76 至 90 天,由法律负责人审阅评测趋势和例外清单,决定扩大、缩小或停止,并把 manual_override 作为正式风险指标。
成功标准应是“可控地减少重复劳动”,而不是“模型替律师”。例如,关键发现证据覆盖率达到内部阈值、P0/P1 零无证据放行、所有交付有版本链、例外均有具名接受者,同时法律团队的返工时间下降。任何指标都要附样本量、法域和合同类型,否则无法比较。
边界与官方材料
组织治理还需要把案件状态、权限和通知统一起来。案件可处于 intake、待补件、已路由、分析中、待人工、已签发、已撤回或已归档;每次变化记录时间、操作者和原因。状态机阻止分析中的文件被误发,也让运营知道积压在输入、法务还是交付环节。通知只携带必要元数据,完整合同留在受控案件空间。
输入字段应有类型和来源。业务场景要说明服务对象、数据地域、成本或收入影响、上线时间和失败后果;代表立场要明确买方、卖方、代理、被许可方或融资方;联合谈判和背靠背义务要列出。未知值可以存在,但必须显式呈现,并在主表成为推进前置条件。
路由规则应可解释:只整理既有发现走 delivery_only;给定章节和问题走 clause_review;有场景但缺事实走 scenario_completion;未确认立场或风险预算走 position_scope。多个模式冲突时选择限制最强者并澄清,不因提示相关就扩大范围。delivery_only 默认不启用外部检索。
custody overlay 还要处理复制。原件、抽取文本、模型上下文、草稿、红线稿、签发稿和归档稿是不同对象,不能覆盖同名文件。对象记录来源、变换、创建者和期限;下载、转发、打印和外部共享遵循案件权限。删除要覆盖缓存、临时文件、索引和备份并留下验证记录。
锚点必须支持重复条款、定义回跳和表格单元格。引用责任上限要同时检查赔偿、保密、数据保护和间接损失排除;引用终止权要检查通知期、补救期、存续条款和服务连续性。另一名审阅者应能在两分钟内定位原文;无法定位的 finding 不得成为 P0 或 P1 的唯一依据。
风险级别必须连接行动。P0 是签发前必须阻止的重大暴露,P1 由法律负责人决定接受与否,P2 需要谈判或运营跟踪,P3 是记录性建议。每级写明触发条件、默认动作、升级时限和替代控制。业务约束不能未经具名批准把 P0 改为 P2。
交付包应另有范围声明和未决事项页,列出检查过的文件、未检查附件、法域假设、知识版本、问题、影响、负责人、截止日和默认处理。短邮件只是摘要,内部仍保留完整九字段主表和证据链,避免空白被误读为没有风险。
人工复核应按优先级展示证据、冲突和未知项,允许低风险批量确认、高风险逐项处理,并对建议接受、修改、拒绝或转交。接受动作选择依据类型并补充说明;未点击不等于同意,超时不应自动签发。
知识更新要有影子评测、灰度和回滚。新增政策或模板先并行计算,不影响交付;通过样本、法域和敏感场景门槛后逐步启用。错误版本撤回时定位受影响案件并通知可能需重审的收件人,法律内容不能由模型团队单独生效。
威胁包括指令注入、伪造附件和诱导外传。文档里的“忽略之前规则”只是待审文本;外链、宏、嵌入对象和评论要隔离。红队覆盖隐藏文本、Unicode 混淆、同名附件、超长表格和冲突版本,结果进入 evals。
评测还要衡量拒绝是否正确。缺正文并返回补件清单是通过;完整证据却误判缺失是错误;不确定依据标【需人工复核】是正确,硬给确定结论是高风险错误。每例保存金标准锚点、允许表达、禁用编造、适当模式和门禁。
RACI 需要值班和冲突路径。法务负责人休假有替代人,业务拒绝补件有升级路径,安全团队发现泄漏有撤回和通知模板。供应商、外部律师和运营的下载、修改政策、批准 manual_override 权限写入服务说明。季度复盘异常和近失事件,把学习转成门禁。
试点应设暂停条件:证据覆盖率、锚点准确率或返工没有改善就不扩大;一次未经授权外发或无证据 P0 放行即暂停并做根因分析。时间节省必须与质量、责任、法域和样本量一起看。九十天结束输出继续、禁止、仍需人工的场景及退出条件。
审查前应建立案件目录和数据字典,统一当事方、产品、法域、货币、日期、义务主体和附件编号。字段字典的目的不是增加表单,而是让不同团队对同一个事实使用相同名称,避免模型把简称、旧名称和新名称当成三个主体。数据字典变更应有版本和兼容说明。
谈判反馈要区分法律底线、商业偏好和可交换条件。建议措辞可以提供强硬、平衡、折中三种方案,但每种方案都标明对责任、价格、时间和运营的影响。Agent 不应替客户选择让步,也不应把对方可能接受写成事实;接受哪一个方案由谈判负责人决定并记录。
跨语言审查不能把翻译当作证据替代。应保留原文锚点、工作语言译文、关键术语表和译者或复核者身份。若不同语言版本优先级不同,先确认控制语言和冲突条款,再分别检查定义、数字、否定词和责任范围。翻译差异本身可以是 finding,但不能凭机器译文作最终法律判断。
附件和外部政策需要有清单。服务级别、隐私附录、安全措施、订单、报价单和数据处理协议可能改变主协议风险;缺一个附件就要说明会影响哪些结论。外部网页若没有批准快照和访问时间,只能列为待核验来源,不能当作稳定证据。
审计日志要支持重演但不必复制全部秘密。可保存哈希、字段级摘要、来源编号和加密指针,敏感原文按权限取回。日志查询应记录查询人和目的,管理员也不能无痕浏览案件。发生错误时先冻结相关版本,再做根因、影响范围、补救、通知和预防动作。
提示词和模板也属于受控配置。变更说明要写清增加了什么规则、改变了哪个模式、影响哪些评测、由谁批准、何时生效。不要在生产会话里临时添加“只对本案有效”的隐含指令;临时约束应进入案件上下文并显示给签发者。
模型不确定性应以操作语言表达。与其说“我可能错”,不如写出缺少的事实、可能的分支、需要询问的人和在不同答案下的动作。低置信度不是唯一升级条件,证据冲突、来源过期、锚点缺失和越权请求同样应触发人工门禁。
采购和供应商评估要问清数据是否用于训练、跨境位置、分包商、故障通知、删除证明、检索来源、服务中断和出口能力。合同审查 Agent 自己也是供应商风险的一部分。没有这些答案时,保密级别和允许处理的合同族应收紧。
业务上线要配合培训和反向演练。让新人用一份故意缺附件的合同走完拒绝流程,让律师处理一条有锚点但法源不确定的 P1,让运营撤回一份错误版本。演练比口头宣讲更能暴露角色不清、通知遗漏和权限过宽。
把“自动化率”改成“受控完成率”。统计完成且通过门禁的案件、被正确阻止的案件、经人工补件后完成的案件、错误放行和不必要升级。每个数字都带合同族、语言、法域、模型版本和观察窗口,避免用单一百分比掩盖治理债务。
上线后仍要保留人工抽样。抽样不只看失败件,还看系统标为低风险、没有修改和 delivery_only 的案件;这些地方最容易藏着过度自信。抽样结果按错误模式归档,连续出现同类问题时暂停相关模式,而不是只调低阈值。
最终签发页应有清楚的责任声明、审查范围、未决问题、版本、时间和签名角色。收件人能看出哪些内容来自原文、哪些是模型建议、哪些由律师改变、哪些仍待业务确认。清晰的界面让责任可见,也减少把草稿转发成定稿的机会。
合同审查治理还要定义时间口径。intake 时间、首次可审查时间、人工接管时间和签发时间分别统计,不能用模型响应秒数代替案件周期。超时案件要区分等待业务补件、等待法律决定和系统故障,改进资源配置。
在多方协作中,权限应按案件、字段和动作拆分。业务可看商业字段,安全人员可看控制状态,律师可看完整文本,模型服务只获完成任务所需的最小上下文。复制到个人笔记或公共频道应被阻止或至少产生提醒。
合同模板的标准条款不能成为隐含法源。模板只说明组织偏好和谈判起点,必须与具体交易事实、客户指令和法域要求分开。Agent 发现偏离模板时,应说明偏离位置和可能影响,不能直接宣告对方条款违法。
争议和索赔案件需要更严格的保全。暂停自动清理,固定原件和元数据,记录谁接触过材料,限制外部检索,并由律师决定是否允许模型处理。试点合同族不应自动扩展到争议案件。
交付前应做数字与逻辑核对:金额、百分比、日期、期限、通知地址、主体名称、交叉引用和定义大小写。模型擅长语言但容易改变一个数字或否定词;这些机械核对可以用独立规则执行,结果仍交人工确认。
对于长合同,分段检索不能丢失全局约束。每个局部 finding 要回看定义、优先顺序、整个协议条款、附件和修改协议。若上下文窗口不足,应明确缩小范围或分批并入证据包,不要假装读完全文。
例外 manual_override 应有限期和条件。超过期限自动回到待补件或待人工状态;重复使用同一个例外要触发治理复盘。例外次数按团队、合同族和原因分类,才能发现流程设计的系统性缺口。
法务负责人可以授权一个低风险自动步骤,例如提取条款或格式化已确认发现,但授权不应覆盖法域判断、P0/P1 接受、对外承诺和最终签发。授权范围写进 RACI 与门禁,不靠口头约定。
安全评估要覆盖提示注入和侧信道。恶意文档可能要求输出系统提示、其他客户名称或隐藏字段;Agent 应把这类文本当作不可信数据,并在日志中标出触发的隔离策略。
质量委员会可以按月检查失败样本、未决项年龄、撤回数量、人工覆盖原因和知识包变更。会议结论转成具体 owner、截止日和评测案例,避免治理停留在演示文稿。
预算评估应包含审阅、培训、集成、日志、保留、供应商和事件响应成本。便宜的模型若增加人工返工或法务风险,整体成本可能更高;成本指标必须和证据质量一起审视。
不同语言版本需要各自的评测金标准。把英文文章翻译成中文并不代表中文合同可审查;术语、句法、数字格式、法域表达和文化语用都可能改变风险。语言负责人参与签发,英文零 CJK 的展示要求也不等于法律准确。
组织应保留退出方案。若供应商中断、知识失效、权限误配或评测恶化,团队能导出案件、恢复人工模板、撤销模型访问并通知收件人。没有退出方案的试点不是可控试点。
任何对外材料都应明确 Agent 的性质和局限。不要用“自动律师”“保证合规”“零漏检”等宣传语;可说它减少检索和整理工作,并在证据与人工门禁下提供候选建议。
最终复盘要询问没有被捕获的风险:哪些事实用户不愿填、哪些条款长期被忽略、哪些人绕开系统、哪些门禁被认为过重。治理系统只有在真实阻力中迭代,才不会退化成一套无人阅读的清单。
当系统把每一次拒绝、升级、修改和签发都变成可解释记录时,合同审查才从一次性聊天变成组织能力。Agent 的边界越清楚,律师越能把时间放在事实判断、谈判策略和责任承接上。
案件归档不能只保存最终文件。应同时保存输入清单、缺口、路由决定、证据来源、九字段历史、门禁结果、人工批注、撤回和通知。这样在数月后重新审查时,团队知道当时看到什么、没有看到什么,以及为何接受一个风险。
审查团队还要定义术语表和禁用表达。风险描述写事实、条件和后果,避免“显然”“肯定”“无风险”等不可证实词。建议措辞应区分必须、应当、可以和可选,避免把内部意见误发为对方的合同义务。
当业务催促签发时,系统应展示尚未解决的 P0/P1、缺失附件、过期知识和未确认法域,并要求具名负责人选择继续、暂停或限制范围。速度压力可以改变优先级,不能抹掉证据要求。
对于已经签署的合同,Agent 可帮助建立义务日历、通知提醒和变更追踪,但这属于运营模式,不应与草拟审查混在一起。签署状态、变更权限和通知责任必须重新经过 Phase 0,避免把历史文本当成待谈判草稿。
法律团队应把经验反馈为结构化标签:漏检、误报、错误锚点、错误路由、证据不足、措辞不当、权限问题和业务事实缺失。标签比一句“模型不好”更能指导提示、检索、模板或培训修复。
最终目标是让任何接手案件的合格人员都能重建判断路径,并在必要时推翻模型。可重建、可拒绝、可撤回、可解释,构成合同审查 Agent 的最低治理基线。
治理规则还应写入培训材料和案件模板,让新成员在第一次使用时就看到停止条件、证据标准和签发责任。系统提示、界面标签、导出模板和内部政策使用同一术语,减少不同团队各自解释。每次培训用真实但已脱敏的案例演练,确认人员能找到锚点、识别缺口并正确升级。
当评测显示某个模式在特定法域、语言或合同族持续失败时,应暂停该组合,而不是用免责声明掩盖。暂停期间可以保留抽取和格式化等低风险步骤,但所有实质判断回到人工流程。恢复需要新的样本、具名批准和清楚的变更记录。
这样的系统把模型能力放在它擅长的整理和比较,把事实、法源、例外和责任留给有权限的人。结果不是更长的风险清单,而是每一项结论都能被定位、质疑、修改和签发的工作产品。
该项目是开源工作流与模板参考,不构成法律意见、律师服务或现行法自动核验。最终法律结论必须由有资质人员结合完整事实和现行法复核。实施前应直接阅读官方仓库、README、SKILL.md、输入规范、工作阶段、输出要求、检查清单和评测场景,以当前仓库内容为准。