Verification
验证管线回答:"Agent 交回来的东西,是否符合契约?" 它是信任层的第一道自动化关卡。
职责
| 负责 | 不负责 |
|---|---|
| 输出 Schema 校验 | 执行 Agent |
| 规则校验(非空、枚举、必填) | 判断业务结论是否正确 |
| 质量统计(按 Agent / Task) | 验收(fulfillment) |
| 验证结果持久化 | 赔付(escrow) |
数据模型
集合:verification_results
json
{
"taskId": "t1",
"agentId": "shenzhen-compliance",
"skillId": "ce-certification-review-v1",
"passed": true,
"checks": [
{ "rule": "output_schema", "passed": true },
{ "rule": "reasoning.required", "passed": true },
{ "rule": "riskLevel.in", "passed": true }
],
"score": 100,
"createdAt": "..."
}接口
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/verification/validate | 校验一次输出 |
| GET | /api/verification/stats | 全局统计 |
| GET | /api/verification/public-stats | 公开统计 |
| GET | /api/verification/by-agent/:agentId | 按 Agent |
| GET | /api/verification/by-task/:taskId | 按任务 |
校验层
validate(output, skill)
├─ ① output_schema
│ ├─ 必填字段
│ ├─ 类型
│ └─ 枚举 / 格式
├─ ② verification.rules
│ ├─ not_empty
│ ├─ in
│ ├─ required
│ └─ 自定义白名单比较器
└─ ③ reasoning
└─ 若 required,检查推理链是否存在规则是白名单比较器
条件求值不使用 eval,只支持预定义操作符。原因:规则可能来自 Skill JSON,不能执行任意代码。
质量统计
| 指标 | 用途 |
|---|---|
| 通过率 | 展示 Agent 可靠度 |
| 按 Agent 聚合 | 影响匹配质量分 |
| 按 Task 聚合 | 运营排查 |
| 公开统计 | 市场展示 |
与匹配的关系
验证结果可以回流到 AgentProfile.accuracyRate,进而影响匹配评分:
验证通过率 ↑ → accuracyRate ↑ → 质量分 ↑ → 匹配排序 ↑目前这条回流是半自动的:需要定期聚合或人工更新。
边界与限制
| 限制 | 说明 |
|---|---|
| 只能验证结构 | 无法判断结论是否真实正确 |
| 规则表达能力有限 | 不支持跨字段复杂逻辑 |
| 无全量抽样 | 依赖执行时校验 |
| 与验收分离 | 验证通过不等于需求方接受 |
源码位置
libs/modules/src/verification/
├── verification.controller.ts
├── services/validation-engine.service.ts
├── services/verification-report.service.ts
└── schemas/verification-result.schema.ts