1. 先泼一盆冷水:Agent 不是来“取代”法务的
我先说结论:在合同审核这个场景里,当前的 Agent 远没有到“全自动无人审核”的程度,但它确实正在把法务从“人肉复制粘贴”和“逐条比对条款”的泥潭里捞出来。我接触过不少企业的法务团队,最初对 Agent 的期待是“我把合同丢进去,它直接给我审完盖章”,用了之后才发现,真实情况是“它帮我先把 80% 的机械工作干完,剩下 20% 的决策和谈判策略,还是得靠人”。
这个认知差异,恰恰是很多项目失败的根本原因。合同审核的核心不是“读字”,而是“判断”——判断这个条款是否偏离公司底线,判断对方修改意图是什么,判断哪些地方可以让步、哪些地方一步都不能退。Agent 擅长的是前者:快速读字、找差异、贴标签、报风险。后者需要商业直觉、谈判经验和公司政治,这不是当前技术能解决的事。
所以,如果你正准备在法务合规场景引入 Agent,第一个要建立的心理预期是:它是一件“增强工具”,不是“替换工具”。这个定位想清楚了,后面所有方案设计才有讨论基础。
2. 合同审核的痛点,恰恰是 Agent 的主场
要理解 Agent 在合同审核场景的价值,得先看清楚人工审核到底痛在哪。我梳理一下真实业务里最常见的四个痛点,你会发现它们都具备一个共同特征:高技术重复度、低创造性、强规则性。
第一,条款比对全靠肉眼。一份合同从对方发来到最终签署,通常要往返好几版。每一版改了哪些地方,法务需要手工对比,稍不注意就漏掉隐藏在十几页里的一个数字变化。这种工作不是“难”,而是“烦”,而且越烦越容易出错。
第二,风险条款的识别依赖个人经验。同一个“违约责任”条款,新手法务和老手律师看出来的东西完全不一样。新手法务看到的是“违约金写了”,老手看到的是“违约金比例超过公司红线,且没有设置上限,和商务给的保底承诺存在冲突”。这种经验差异导致审核质量参差不齐。
第三,历史合同资产被浪费。每一家稍微有点规模的公司,法务部都存着成千上万份历史合同。这些合同里有大量已经谈判好的条款、已经踩过的坑、已经确认过的风险偏好。但人工审核时,很少有人会去翻历史合同做参照,因为根本不现实。这些资产就那样躺在文件服务器里“吃灰”。
第四,跨部门协作链条长且慢。一份合同往往涉及业务、财务、法务、采购等多方意见,每次修改都要走一遍“意见收集—修改—再确认”的循环。人工跟进经常出现信息不同步、版本混乱、等到最后一刻才发现某个部门还没反馈。
这四个痛点,恰好对应了 Agent 最擅长的事:文本比对、模式识别、知识检索、信息流转。它不考验创造力,考验的是在既定规则下稳定输出——这正是 Agent 的舒适区。
3. 拆解 Agent 在合同审核里的真实能力边界
3.1 它能做的三件事:比对、识别、辅助决策
我把 Agent 在合同审核场景里的能力分成三层,越往下越成熟。
第一层:文本级能力,这一层最靠谱。包括版本的逐条差异比对、条款编号错乱检测、已有合同与历史模板的一致性核查。比如某公司模板里规定“争议解决地为公司所在地法院”,新收到的合同被对方改成了“对方所在地”,Agent 能直接标出来,并给出“与公司模板不一致”的提示。这类能力本质上是工程实现,准确率已经可以做到很高,基本属于拿来即用的成熟度。
第二层:语义级能力,这一层现阶段最值得关注。包括风险条款识别、责任条款缺失检测、赔偿上限与期限合理性初判。比如一份采购合同里没有“保密义务”条款,或者“付款周期写成货到后 180 天”明显超过公司 60 天的红线,Agent 可以基于预设的规则库识别出来。这里的核心不是 AI 有多聪明,而是你喂给它的“判断标准”有多完整。它做的是把你口头说的“我觉得这里不行”变成可执行的规则。
第三层:决策级能力,这一层慎用。包括给出“这个条款是否可接受”“建议谈判策略是什么”等。我见过有些团队试图让 Agent 直接给出签署/不签署的结论,效果往往不太好。原因是这类结论高度依赖商业语境,同一个条款在甲项目是红线,在乙项目可能就是可谈判项。Agent 可以给你列出“历史上类似条款的接受比例”或“本条款的风险点清单”,但最终拍板必须留给人。
3.2 它做不好的事:商业判断与情绪博弈
有一点我得反复强调:Agent 不懂“人情世故”。合同审核不只是法务判断,还是商务关系的延伸。对方销售跟你称兄道弟,希望你在验收条款上别卡太死,这种“软性因素” Agent 完全感知不到。它只会冷冰冰地告诉你“此条款缺少验收合格后付款的约束条件,风险等级高”。
同样的,它也不知道公司当前有多需要这个订单。一个条款在平时绝对是红线,但在这个项目上,老板已经拍板必须拿下,那法务可能就得在别的条款上找补。这种动态权衡,Agent 做不到,或者说,现阶段没有任何技术能做到。
所以,我给出的能力边界判断是:Agent 是“风险放大器”,不是“决策替代机”。它把风险点和差异项一个个摆到桌面上,让法务在信息更完整的条件下做判断,但“怎么做这个判断”依然是人来负责。
4. 落地一架合同审核 Agent:从架构到细节
4.1 整体架构:不是“一个模型”,而是“一套流程”
很多人以为部署合同审核 Agent 就是接入一个大模型然后问它问题,这是一个误区。真实的落地架构至少要包含五个模块:文档解析层、规则引擎层、模型推理层、审核工作流层、知识沉淀层。
文档解析层解决的是“纸面信息变成结构数据”的问题。合同是 PDF、Word、扫描件,格式各不相同,首先要做版面识别和内容抽取,把合同里的当事人、金额、期限、条款编号、签署信息等结构化。这一步不做好,后面的分析全是空中楼阁。
规则引擎层是“公司经验”的数字化。每一家公司的风险偏好不一样,你需要把法务总监脑子里的规则一条条写出来,比如“未经采购确认的滞纳金条款不得出现”“合同总金额超过 500 万必须附带董事会决议”。这些规则是 Agent 审合同的基础。
模型推理层才是大家熟悉的“AI 部分”。它负责理解条款语义、判断条款归属类别、识别句式变体背后的真实意图。例如即使对方把“逾期每日支付合同总金额的千分之三作为违约金”换种写法改成“按日计算逾期赔偿,标准为合同总额的 0.03%”,模型也要能识别出这是同一个风险点。
审核工作流层管的是“和谁配合”。合同进来之后先经规则引擎筛查,再送给模型分析,产生的风险提示推送给法务,法务确认之后反馈给业务线。这个过程涉及系统间的衔接,也是项目落地中最容易被低估的环节。
知识沉淀层负责把每一次人工修正的结果回传,变成下一次审核的经验。法务删掉了一个无关紧要的风险提示,Agent 下次就不再报;法务手动新增了一条“未包含知识产权归属条款”的提示,Agent 下次看到类似合同就会自动补充。没有这个闭环,Agent 就永远是静态的。
4.2 关键步骤:先跑通单条链路,再谈全面覆盖
以我实际参与过的项目为例,落地节奏建议分四步走。
第一步,先拿 200 份历史合同做标注样本。这 200 份合同覆盖面要足够广,既要有最终签署版,也要有中间修改版。由资深法务逐条标注真正的风险点,形成评估基线。这步最辛苦,但决定项目上限。省掉这一步,后面所有效果评估都无从谈起。
第二步,把标注结果结构化提炼成规则。法务标注时脑子里想的可能是“这个条款有问题”,但你要追问“是什么问题”“触发条件是什么”“严重等级怎么判”。比如“问题:违约金过高;触发条件:违约金比例超过合同总额的 10%;等级:高风险”。这样一个模糊的判断就变成了可执行的规则。
第三步,搭建最小可用闭环。不追求全类型合同都覆盖,先聚焦一个类型,比如“采购合同”或“销售合同”。把上一步的规则装进规则引擎,同时配置模型提示词,让模型按“条款归属—风险判断—风险解释”三步来输出,最后把结果推给法务做人工复核。
第四步,用线上反馈持续校准。上线之后要记录每一次法务的修改动作,定期做回归分析:哪些风险提示经常被忽略,哪些重要风险点 Agent 漏报了。按周或按月迭代规则库,模型提示词也随之微调。
4.3 提示词设计:让 Agent 按照法务的思维方式工作
在模型推理层的实现上,提示词设计是效果好坏的分水岭。我见过很多项目的失败,不是模型不行,而是提示词写得太“AI”,完全没有法务味。所谓法务味,就是按照条文顺序逐条判断,而不是顺着用户的问题去发散。
举例来说,一个不太好的提示词是:“请判断这份合同是否合规。”这种问法太宽泛,模型不知道你要它聚焦什么,它的回答要么泛泛而谈,要么输出一堆风险却分不出主次。
我更建议把提示词拆成三部分:角色注入、审查步骤、输出格式。
角色注入指的是告诉模型“你是一名合同审核助理,你的任务不是签署意见,而是风险提示”。这部分是为了限定模型的行为边界,防止它越权给出签署结论。
审查步骤要写清楚顺序,比如“第一步,逐条提取合同中的核心条款;第二步,将每个条款与提供的风险规则清单逐一比对;第三步,判断条款是否偏离行业惯例;第四步,对识别出的风险点排序等级并给出解释。”
输出格式也要固定,比如统一输出为“风险条款原文、风险类型、风险等级、解释说明、修改建议”五列。固定格式的好处是后续能直接接入审核工单,方便法务快速处理。
这里再补充一个细节:提示词里要把公司的规则库内容放进去。比如“第 3.2 条明确约定,违约金比例不得超过合同总额的 5%”。这样模型在判断时就有据可依,而不是凭它在公开语料里学到的模糊印象。
5. 实操中的关键细节与避坑经验
5.1 “召回率优先”还是“精确率优先”?先想清楚
这是我在项目评审时最常问的问题:你希望 Agent 宁可误报也不漏报,还是宁缺毋滥?在合同审核场景,我的建议是前期一定要“召回率优先”。宁可多报一些法务一眼就能否掉的低风险提示,也不要漏掉一个真正的高风险红线条款。原因很简单:漏报的代价是法务根本不知道风险存在,误报的代价只是一次点击忽略。这两者的影响完全不对等。
实际操作中,你可以通过调节风险阈值来控制这个平衡。规则引擎里把每个风险点设置一个基础权重,比如“缺少保密条款”权重 5 分,“违约金比例超过 20%”权重 15 分。累计超过 8 分就触发复核提醒。初期把阈值调低,让提醒更敏感,等运行稳定后再逐步调高。
5.2 格式解析比想象中更磨人
很多项目把精力花在模型选型上,结果卡在文档解析这一关。合同是 PDF 扫描件,还是 Word 表格,还是网页版条款,解析难度完全不在一个量级。扫描件要先做 OCR,表格还要做单元格关系还原。尤其是一堆扫描件里混着印章、手写批注,Agent 很容易把“不同意第五条”这种手写意见当成正文的一部分。
我的建议是:先不要把目标定成“全格式自动解析”,分优先级解决问题。最常见且量最大的格式优先接入,比如供应商合同大多是扫描件、销售合同大多是 Word,其他低频格式先走人工上传加预提交流程。
5.3 版本对比要基于“语义”而不是“字符串”
一个容易踩的坑是,把版本对比做成简单的文本 diff。对方从“交货期为 30 天”改成“交货期为 25 个工作日”,字符串上看只是一处修改,但语义上两周变成五周,影响巨大。更麻烦的是,对方可能把一条条款从第 7 条挪到第 12 条,同时措辞微调,字符串 diff 会显示为“删除一条 + 新增一条”,但实际上它是同一逻辑条款的修改。
处理这个问题,我的经验是引入“条款指纹”。把合同的每一条按语义内容拆分成条款级段落,然后计算每个段落的向量化表示。对比版本时,先用向量相似度判断哪些段落是同一个逻辑条款,再对该条款内部做差异分析。这一步能大幅减少无效报警,但实现上需要额外投入,值得列为二期重点。
5.4 一次审核的质量评估闭环:法务人力不可省
上线之后最重要的事,除了看 Agent 效果,还要建立一套人工抽检机制。我建议每周抽 10% 已经审核通过的合同,由没有参与该项目的其他法务重新过一遍,重点就是看 Agent 有没有漏报。这相当于给系统做“质检”,看起来费人力,但省下的风险损失远比这个投入大。
同时,把每一次人工否定 Agent 提示的操作记录下来,形成“误报样本池”;把每一次人工手动新增的风险提示记录下来,形成“漏报样本池”。这两个样本池就是迭代模型的养料。没有这个闭环,Agent 上线的第一天就是它能力的天花板。
6. 常见问题排查速查表
我把实际落地中遇到的高频问题和对应的处理思路整理成了一张表,供参考。
| 问题现象 | 可能原因 | 处理思路 |
|---|---|---|
| Agent 对扫描件识别偏差大 | OCR 阈值设置不恰当,或图片质量差 | 先检查原图清晰度,调高 OCR 置信度阈值;对盖章区域的文字做特殊忽略处理 |
| 同一份合同,风险提示结果不稳定 | 提示词中未固定审查顺序,模型随机抽取语义 | 在提示词中强制加入审查步骤编号,并在输出前增加“检查和提示词要求一致”的校验环节 |
| 大量误报集中在某类条款 | 规则库中该类条款阈值设置过低 | 调出该类别的历史标注数据,重新统计误报真因,设定更合理的权重 |
| Agent 漏掉某些风险条款 | 规则库未覆盖,或样本中该场景太少 | 补充样本标注,将新场景拆解为可执行规则录入规则库 |
| 模型把商业建议当成了判断结论 | 提示词缺少行为边界约束 | 在角色注入中明确“只做风险提示,不做最终签署建议”,并增加输出格式限制 |
| 审核结果推动不到业务侧 | 工作流只做了提示,没生成工单 | 在审核工作流层增加机器人推送,把结果直接转成待办任务分发给对应责任人 |
这张表不一定能覆盖所有情况,但你可以把它当成排查的第一版索引。实际项目中,90% 的异常问题都能归到“规则库不完整、提示词不明确、工程链路断了”这三类原因里,逐个排查就能收敛。
7. 给法务和技术的协作建议
最后一个部分,我想专门聊聊法务和技术怎么配合。合同审核 Agent 的项目,成败往往不取决于技术多强,而取决于两个团队能不能互相理解。
法务团队要放下“AI 审合同不靠谱”的成见,但也别把 Agent 想象成全知全能。最务实的做法是挑一个最简单、标准化的合同类型先试点,比如非核心品类的采购订单。这类合同条款固定、风险点明确,非常适合做“人机配合”的练兵场。等流程跑顺了,再逐步扩展范围。
技术团队要意识到,你面对的不是“需求”,而是“经验”。法务说“这个条款不行”的时候,你要追问“怎么判断它不行,依据是什么,有没有触发条件”。把隐性经验打成显性规则,才是项目价值的核心。如果只停留在“我帮你调个模型”的层面,项目始终飘在表面。
我见过做得最顺的团队,法务每周固定抽出半天时间和技术人员并肩坐在一起,逐条看上周的误报和漏报案例。那种状态下,规则库的迭代速度会非常快,因为每一次修改都能当场敲定,不用等邮件来回。
8. 我实际运行中的一点个人体会
项目跑到现在,我最深的感受是:Agent 的产出质量,其实取决于你喂给它的“法务判断力”有多完整。一开始我以为核心工作量在模型调优上,后来发现大头全在把经验结构化。模型本身就像一个刚从法学院毕业的学生,能看懂字面意思,但不知道什么情况是公司真的不能接受的。你需要花大量时间给它作案例、讲规则、定边界,它才慢慢“懂事”。
另外一个小技巧,是我在反复踩坑之后总结出来的:给你的规则库留一个“可解释字段”。每条规则后面都注明“这条规则为什么存在,对应什么历史案例”,这看起来不产生直接效益,但当你需要向老板解释“为什么 Agent 拦截了这份合同”的时候,这个字段能帮你省掉大量口舌。同时,它也让后续接手的人能快速理解每条规则的来龙去脉,不至于动都不敢动。
合同审核这个场景,注定是 AI 应用里“见效慢、但预期清晰”的赛道。别指望一次上线就完美,把每周的误报漏报分析当成常态,跑上几个月,你会看到规则库越来越厚、人工复核的压力越来越小。到那个时候,你才会真正理解 Agent 在法务合规里的价值:它不是一个省掉法务的工具,而是一个让法务从重复劳动中脱身、去做更高维度判断的杠杆。