Harvey LAB任务完整性守护:validate-task-schema自动化校验完整指南
【免费下载链接】harvey-labsA benchmark built to evaluate and improve agent capabilities for supporting legal work.项目地址: https://gitcode.com/GitHub_Trending/ha/harvey-labs
Harvey LAB 是一个开源的法律智能体基准(Legal Agent Benchmark),收录了 1671 个覆盖 24+ 法律执业领域的真实工作任务。要让 AI 智能体稳定地做法律工作,每个任务的元数据task.json必须结构正确——这正是validate-task-schema 自动化校验流程要解决的问题。本文将带你快速看懂这套任务完整性校验机制如何运行,以及如何在本地一键验证你自己的任务。
一、Harvey LAB 是什么?
一句话概括:一个用来评测和"练"法律智能体的开源基准。它由两部分组成:
| 组成 | 说明 | 位置 |
|---|---|---|
| 任务数据集 | 1671 个任务,每个任务含智能体指令、合成文档、评分标准 | tasks/ |
| 执行框架 | 运行智能体、提供工具、调用 LLM 裁判评分 | harness/ 与 evaluation/ |
每个任务都长这样:一个目录 + 一份 task.json 元数据 + 一堆合成文档(.docx/.xlsx/.eml 等)。比如并购尽调任务:
tasks/corporate-ma/review-data-room-red-flag-review/ ├── task.json # 任务定义:标题、指令、交付物、评分标准 └── documents/ # 60 份合成案件文档🔑 核心思想:task.json就是"任务的身份证"——智能体读instructions,裁判读criteria打分。身份证一旦格式错乱,整个评测就失真。
二、为什么需要 validate-task-schema 自动化校验?
想象一下:1671 个任务、24 个执业领域、多人协作维护。如果某个任务的 JSON 少写了criteria、评分标准 ID 重复、或交付物字段类型写错,跑评测时才会爆炸——成本极高。
所以项目内置了一道"自动门禁":.github/workflows/validate-task-schema.yml 工作流,在以下场景自动触发:
- ✅每次 Pull Request—— 提交前先把关
- ✅每次推送到 main 分支—— 保证主干数据始终健康
它做的事情很简单粗暴但可靠:
uv sync --frozen # 安装与锁定文件一致的依赖 uv run pytest tests/ -v # 跑完整离线测试套件(含任务完整性测试)💡 对新手来说,这就像考试前的"自动查重":你不用盯着 CI 日志看,只要绿灯亮,说明任务数据全部合格。
三、任务完整性校验的 5 道关卡
真正干活的是 tests/test_task_integrity.py —— 它会遍历tasks/下每一个任务目录,逐项检查。用表格看清它验证了什么:
| 关卡 | 检查内容 | 不通过的典型原因 |
|---|---|---|
| 1️⃣ 任务枚举 | tasks/目录存在,且至少发现 1 个任务、1 个执业领域 | 目录结构被误改 |
| 2️⃣ JSON 合法性 | task.json必须可解析,title非空且不少于 5 个字符 | JSON 语法错误、标题偷懒 |
| 3️⃣ 内联评分标准 | 必须含criteria列表(≥1 条);标准任务的每条标准需有id、title、match_criteria,且 ID 全局唯一;禁止遗留的weight字段 | 标准 ID 重复、残留旧字段 |
| 4️⃣ 交付物引用 | 每条标准的deliverables必须是文件名字符串列表 | 写成了字符串而非数组 |
| 5️⃣ 跨任务一致性 | 全库至少覆盖 2 种工作类型(analyze/draft/review/research) | 任务单一化 |
第 5 关的 "all-pass 评分" 背景:Harvey LAB 采用"全通过才算满分"策略——任何一条标准失败,整题记 0 分。这正是校验必须严格的原因,详见 docs/eval-strategies.md。
四、本地如何执行任务校验(一键三连)
不想等 CI?CONTRIBUTING.md 提供了本地校验的"黄金流程",三步完成:
第 1 步:装好环境
git clone https://gitcode.com/GitHub_Trending/ha/harvey-labs cd harvey-labs && ./scripts/setup.shscripts/setup.sh 是幂等脚本,自动补齐 uv、依赖、pandoc、容器运行时,重复执行也安全。
第 2 步:先"看一眼"任务再校验
uv run python -m utils.describe_task corporate-ma/review-data-room-red-flag-reviewutils/describe_task.py 会打印任务标题、文档数量、完整评分标准清单——写任务时的"体检仪"。
第 3 步:跑完整性测试
uv run python -m pytest tests/test_task_integrity.py几秒钟内即可对全库任务完成 schema 校验。🚀
五、给贡献者的完整工作流
结合 docs/tutorial.md 与 CONTRIBUTING.md,推荐按这个节奏贡献任务:
- 建目录:
tasks/<执业领域>/<任务名>/,放入task.json与documents/ - 写 rubric:每条标准写清 "PASS if … / FAIL if …",不要加遗留
weight字段 - 本地体检:
describe_task+pytest tests/test_task_integrity.py - 提交 PR:validate-task-schema 工作流自动复检,绿灯即安全合并
六、写在最后
validate-task-schema 看似只是"跑个测试",实则是 Harvey LAB 能容纳上千个法律任务而不乱的基石——用自动化校验换取数据完整性,用数据完整性换取评测可信度。
下一步建议:
- 读一遍 docs/tutorial.md,跑通一次完整的"任务执行 → LLM 裁判评分"流程
- 参考 docs/architecture.md 理解任务模型与执行框架
- 挑一个任务
describe_task看看,感受 rubric 的颗粒度
⚖️ 当你理解了"任务如何被定义",你就理解了"法律智能体如何被公平地考试"。
【免费下载链接】harvey-labsA benchmark built to evaluate and improve agent capabilities for supporting legal work.项目地址: https://gitcode.com/GitHub_Trending/ha/harvey-labs
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考