跳到主要内容
AI教程

使用法律智能体工作坊构建并验证法律 AI 智能体

本教程将介绍法律智能体工作坊的两个课程:使用 OpenAI Python SDK 构建通用法律智能体,将其应用于具体案件,检查其遗漏之处,并在发布证据和律师签字确认前,加入外部清单与备忘录验证。

使用法律智能体工作坊构建并验证法律 AI 智能体

法律智能体工作坊的作用

法律智能体工作坊是一个包含两个阶段的实践项目,用于构建和评估法律 AI 智能体。参与者首先实现一个智能体调查循环,并生成未经验证的法律备忘录。随后,他们添加一个在智能体控制范围之外运行的验证层。

该代码仓库提供了一个基于纯 OpenAI Python SDK 代码构建的预配置工具包。工具包为每个工具提供单独的文件,支持通过 Files API 读取文档,并包含一个用于跟踪经过引文核验事实的案件管理系统。内置案件为 northbridge-v-caldera,但智能体本身保持通用,不包含该案件。

重要的工作区规则:只能从 agent/ 目录启动 Muse Code。cases/、world/、ground_truth/、solutions/ 和 ui/ 目录必须位于 Muse Code 工作区之外。

主要功能

  • 通用法律智能体:智能体起草检查清单、创建计划、调查文档并生成备忘录。
  • 基于 OpenAI Python SDK 的实现:智能体循环使用直接的 SDK 代码,而不是额外的智能体框架。
  • 文档分析:工具包使用 Files API 读取案件文档。
  • 引文核验事实:案件管理系统记录带有支持性引文的事实。
  • 外部验证:检查清单和备忘录检查在智能体控制范围之外运行。
  • 真实情况对比:检查清单验证器会将智能体的工作与特定案件的真实情况检查清单进行比较,而智能体无法查看该清单。
  • 可恢复的工作流:可以从 Session 1 的运行结果创建分支,并在启用验证的情况下继续运行。
  • 实时智能体控制台:预构建界面显示回合、检查清单项目、支持性证据、证据释放和律师签字确认。

了解代码仓库结构

  • HANDBOOK.md 包含设置说明、两个工作坊阶段,以及第 1.7 节中的 Muse Code 基本规则提示词。
  • agent/ 包含起始代码,也是唯一应作为 Muse Code 工作区公开的目录。
  • cases/northbridge-v-caldera/ 包含案件目标和提供给智能体的文档。
  • ground_truth/ 包含外部验证使用的私有检查清单。该目录绝不能包含在案件中,也不能展示给智能体。
  • world/ 代表模拟的外部世界,包括暂不提供的后续文档和证据释放脚本。
  • solutions/ 包含 Session 1 和 Session 2 的快照。
  • ui/ 包含预构建的智能体控制台,并保持在 Muse Code 工作区之外。

安装和配置工作坊

1. 克隆代码仓库

克隆项目,然后在设置或启动 Muse Code 之前进入 agent/ 目录。

git clone https://github.com/meta-models/legal-agent-workshop.git
cd legal-agent-workshop/agent

2. 创建环境文件

将示例配置复制为 .env。

cp .env.example .env

编辑 .env 并添加你的 MODEL_API_KEY。确认 CASE_DIR 指向内置案件:

../cases/northbridge-v-caldera

3. 运行设置助手

./helper setup

设置命令会创建一个包含 OpenAI Python SDK 的 .venv 环境,将案件文档复制到预期位置,并检查已配置的 API 密钥。

4. 启动 Muse Code

仍在 agent/ 目录中时,启动 Muse Code:

muse

你的第一条消息必须是 HANDBOOK.md 第 1.7 节中的基本规则提示词。每次重启或开启新的 Muse Code 会话后,都要再次提交该提示词。

Session 1:构建并运行法律智能体

Session 1 侧重于使用提供的工具包实现通用智能体循环。按照 HANDBOOK.md 中的分步说明操作,并确保所有工作都在 agent/ 内完成。

预期工作流如下:

  1. 起草检查清单:确定调查应涵盖的问题和证据。
  2. 规划调查:决定如何使用可用工具和案件文档。
  3. 开展调查:通过提供的文档工作流读取文档,并在案件管理系统中记录经过引文核验的事实。
  4. 准备结果:以一份基于调查结果的未经验证备忘录结束本次运行。

在此阶段,备忘录有意保持未经验证状态。Session 2 将展示,看似完整的智能体输出仍可能遗漏必需的检查清单项目,或违反备忘录规则。

在智能体控制台中查看运行过程

从代码仓库根目录启动预构建界面:

python3 ui/ui.py

在浏览器中打开 http://127.0.0.1:8765。控制台可以实时显示运行过程,包括智能体的每个回合、检查清单,以及检查清单项目如何得到证明。它还支持工作坊中的证据释放和律师签字确认阶段。

Session 2:测试智能体遗漏的内容

Session 2 引入两项独立的验证检查。一项根据案件隐藏的真实情况评估检查清单,另一项根据备忘录必须遵守的规则评估备忘录。

验证备忘录

在 agent/ 目录中,将 RUN_ID 替换为第 1 场会话运行的标识符:

./helper verify RUN_ID --memo

此命令会显示第 1 场会话备忘录检查所检测到的问题。

验证清单

./helper verify RUN_ID --checklist

此命令会将代理的清单与案件专属的真实清单进行比较。真实清单始终位于案件和代理工作区之外。

构建验证检查

按照 HANDBOOK.md 中的第 2 场会话说明,构建清单检查和备忘录检查。请保持信任边界:这些检查必须在代理控制范围之外运行,不能依赖代理批准自己的工作。

启用验证后继续运行

从现有清单分支出原始的第 1 场会话运行:

./helper branch RUN_ID

继续的工作流会测试具备验证意识的行为,包括拒绝、升级、发布新证据、恢复运行以及律师签字。分支操作会保留清单作为起点,而不是开始一项无关的调查。

发布暂缓证据

当运行状态变为 needs_input 时,使用模拟的外部世界发布后续材料。请从仓库根目录运行以下命令:

python3 world/release.py

证据发布后,继续研讨流程,并在 Agent Console 中观察恢复运行的状态。

高级提示

保护工作区边界

始终从 agent/ 启动 Muse Code,而不是从仓库根目录启动。这样可以防止 Muse Code 看到案件源文件、隐藏的真实信息、模拟世界、解决方案快照或 UI 代码。这种隔离是研讨会验证模型的核心。

绝不向代理公开真实信息

文件 ground_truth/northbridge-v-caldera.json 用于外部清单检查。不要将其复制到案件目录中,不要将其放入 Muse Code 工作区,也不要将其提供给代理。

重启后重新应用基本规则

重启或新建 Muse Code 会话并不会取消提供基本规则提示的要求。每次都应从 HANDBOOK.md 的第 1.7 节复制该提示。

按照既定布局添加其他案件

新案件应由一个包含 objective.md 文件和 documents/ 目录的文件夹表示。将案件置于 agent/ 之外,并将 CASE_DIR 指向该目录。README 未规定其他案件编写或真实信息生成步骤,因此在扩展验证设置前,请遵循手册中的说明。

谨慎使用解决方案快照

solutions/01_session1/ 和 solutions/02_session2/ 目录提供两场会话的快照。由于它们位于 Muse Code 工作区之外,因此可以作为研讨会参考,而不会成为代理工作上下文的一部分。

命令参考

git clone https://github.com/meta-models/legal-agent-workshop.git
cd legal-agent-workshop/agent
cp .env.example .env
./helper setup
muse

# 从仓库根目录
python3 ui/ui.py
python3 world/release.py

# 从 agent/ 目录
./helper verify RUN_ID --memo
./helper verify RUN_ID --checklist
./helper branch RUN_ID

结语

法律代理研讨会展示了法律代理开发的两个方面:构建能够规划、调查和起草的代理,以及创建外部控制措施来测试其工作是否完整且合规。通过将案件、真实信息、验证资源和模拟证据置于 Muse Code 工作区之外,该项目使信任边界变得明确且可测试。