06 · 如何验证和持续改进 Agent Platform? - Testing & Optimization
所属知识库:Agent 全栈技术地图
所属领域:04 · Agent Platform
所属章节:04 · 如何开发、部署和维护 Agent Platform? - Engineering & Practice
文档类型:专题研究 / 工程验证 / Agent 评估与持续优化参考设计
版本:v1.3
更新日期:2026 年 11 月 1 日
核心问题:如何系统验证 Agent Platform 的工程正确性、Agent 行为可靠性与业务成果质量,并通过可复现的实验、生产反馈和受控发布持续改进?
专题导读
本篇属 Engineering & Practice。本篇承接 04/04/01 - 05,从平台工程建设进入验证与改进。测试对象不仅是 API、数据库和 Worker,也包括非确定性 Agent 行为、长任务状态恢复、人工审批、跨 Agent 协作、产物质量、模型成本与运营风险。本文聚焦验证方法与质量闭环:F3 是用户侧开发测试体验,F8 是运行监控产品,P12 是平台治理机制,上一专题 05 关注部署与运维;本篇研究怎样设计可重复、可解释、可执行的测试体系并驱动优化。
证据标记:[官方/规范] 为可由标准或官方技术文档支持的机制;[工程建议] 为面向 Agent Platform 的参考设计;[待验证] 为需结合 Studio 代码、真实样本或环境实测的结论。文中测试用例、性能阈值、示例数据和架构均属设计建议,没有实际运行 Studio 的测试。
研究结论
- 将质量划分为工程正确性、Agent 行为可靠性、业务结果质量、安全合规与运营效率,分别设定指标、数据集和责任人;不能用“模型回答看起来不错”替代工程验收。[工程建议]
- 确定性组件以自动化断言为主,非确定性 Agent 以分层评估、重复采样、人工复核与统计不确定性为主;单次成功不足以支持可靠性结论。[工程建议]
- 构建可复现的评估基线:冻结测试任务、输入资料、评分规则、Agent/模型/工具版本及运行配置;记录无法冻结的外部依赖。[工程建议]
- 工作流恢复、审批返工、幂等副作用、租户隔离与产物版本一致性应是发布阻断项,不是上线后再补的观察指标。[工程建议]
- 优化以约束条件下的业务价值为目标,同时比较合格成果率、成本、延迟、人工工作量与风险;不以 Token 减少或模型分数提升单独判断成功。[工程建议]
- 离线评估、预发布影子测试、灰度发布、生产观测与事故复盘构成闭环;生产日志本身可能含选择偏差和隐私风险。[工程建议]
- 评估器本身也需要评估:LLM-as-judge 应检验一致性、位置偏差、长度偏差、参考答案泄漏与人工标注一致性。[工程建议]
01 · 验证对象、质量模型与责任边界
1.1 五层质量模型
| 层次 | 关注问题 | 典型指标 | 验证主体 |
|---|---|---|---|
| 工程正确性 | API、状态机、持久化、恢复是否正确 | 合约通过率、重复副作用数、恢复成功率 | 工程团队 |
| Agent 行为 | 工具选择、任务规划、协作与终止是否可靠 | 任务达成率、工具错误率、循环率 | Agent 开发者 |
| 业务成果 | 报告是否真实、完整、可用 | 引用核验率、审核通过率、关键事实错误率 | 领域审核者 |
| 安全与治理 | 是否越权、泄露、误用工具 | 越权成功次数、敏感信息泄漏率 | 安全与治理负责人 |
| 运营效率 | 能否按成本与时效提供价值 | 单份合格成果成本、P95 周期、人工返工时间 | 产品负责人 |
五层指标应同时展示;“执行成功”仅证明某类工程终态,不自动证明业务质量。[工程建议]
1.2 质量门槛与证据
将测试分为阻断项(越权、丢失状态、重复不可逆副作用)、质量门槛(合格报告率、关键引用错误)、观察项(非关键延迟、体验偏好)。门槛需明确版本、样本数、置信度或误差范围、适用人群及复核人。避免在没有历史基线时凭空规定“99.9% 合格率”。
1.3 可测试性设计
运行对象保留 run_id、workflow_version_id、agent_version_id、dataset_case_id、trace_id;外部工具使用可替换适配器;时钟、随机种子、超时和网络错误可注入;所有状态变更留有审计事件。随机种子并不能保证托管模型输出完全可复现。[工程建议]
02 · 测试金字塔与质量门禁
2.1 分层测试矩阵
| 测试层 | 主要内容 | 速度/成本 | 典型失败 |
|---|---|---|---|
| 静态检查 | 类型、依赖、密钥扫描、Schema 校验 | 快/低 | 接口破坏、硬编码凭证 |
| 单元测试 | 状态转移、权限判定、价格计算、解析器 | 快/低 | 非法状态、边界错误 |
| 组件/契约 | API、Worker、模型网关、事件 Schema | 中/低中 | 字段不兼容、重试协议错误 |
| 集成测试 | DB、Queue、Object Storage、审批恢复 | 中/中 | 事务边界与并发错误 |
| 端到端 | 用户提交→执行→审核→交付 | 慢/中高 | 链路断裂 |
| Agent 离线评估 | 任务集、工具轨迹、输出评分 | 可变/中高 | 幻觉、工具误用 |
| 混沌与负载 | 断网、崩溃、限流、容量边界 | 慢/中高 | 恢复失败、性能退化 |
| 生产验证 | 灰度、SLI、人工抽检 | 持续/真实成本 | 数据分布漂移 |
2.2 测试执行策略
Pull Request 执行静态、单元、组件及小样本 smoke eval;合并到主干执行集成与中等规模评估;候选发布执行 E2E、安全、恢复和固定基准集;生产发布先灰度再扩量。实际频率按资源和风险调整。[工程建议]
2.3 门禁原则
每项门禁记录:测试 ID、目标版本、运行环境、样本规模、阈值、结果、失败证据、责任人和豁免审批。失败后不得仅通过重跑一次挑选成功结果;需区分环境波动、模型方差和真实回归。
03 · 工程单元测试、契约测试与集成测试
3.1 状态机
验证合法转移(queued→running→succeeded)、非法转移拒绝、终态不可逆、取消竞态、超时、重复完成事件和人工审批等待态。必须测试跨事务与跨进程边界的行为。
3.2 API 与事件契约
覆盖 OpenAPI 请求/响应、错误码、幂等键、分页、鉴权、SSE 断线重连、Webhook 签名与重放、事件顺序和向后兼容。契约测试不应把 SDK 内部对象与服务端对象视为天然一致。
3.3 数据一致性
验证事务 Outbox 与业务提交原子性、重复消费幂等、对象存储写入失败后的补偿、审核版本固定、租户删除保留策略。对于分布式跨存储操作应明确最终一致性窗口与修复机制。
3.4 并发与竞争
模拟同一 Run 被两个 Worker 领取、审批和取消同时到达、Agent 版本切换与运行启动并发、两位审核员同时提交意见。采用故障注入和多轮竞争测试,单次 happy path 不足以覆盖。
04 · 工作流、Agent 协作与恢复测试
4.1 关键工作流
flowchart LR
U[创建研究任务] --> T[选题 Agent]
T --> R[选题审核 Agent]
R -->|返工| T
R -->|通过| H[人工确认]
H --> D[深度调研]
D --> A[分析 Agent]
A --> Q[质量审核]
Q -->|返工| D
Q -->|通过| O[报告产物与交付]4.2 关键故障点
| 注入点 | 操作 | 必须检查的事实 |
|---|---|---|
| Worker 获取租约后 | 强制结束进程 | 租约到期后能恢复,不能双重提交 |
| 工具调用已成功但确认丢失 | 丢弃 ACK | 外部副作用不重复或可识别需人工处置 |
| 审批等待中 | 重启服务/发布新版本 | 审批请求与恢复点持久保留 |
| 审核不通过 | 触发返工 | 只重跑规定步骤,保留历史产物 |
| 模型限流 | 返回 429 与 Retry-After | 退避、有界重试、预算可控 |
| 工具长期无响应 | 超时与取消 | 可见错误,不无限占用 Worker |
| Agent 协作循环 | 超过步数/时间/费用 | 触发硬限制并记录终止原因 |
4.3 恢复语义
区分 at-least-once 任务投递 与 业务侧幂等效果。不应宣称外部世界具备端到端 exactly-once;对于付款、发信、文件删除等不可逆动作,要求业务幂等键、预检查、确认或补偿机制。[工程建议]
05 · Agent 评估对象与实验设计
5.1 四类评估对象
- 最终答案:任务满足度、事实性、结构、可读性、引用完整性。
- 过程轨迹:工具选择、参数、无效循环、无关调用、越权行为。
- 工作流协作:角色分工、审核有效性、返工收敛、上下文传递。
- 整体业务结果:是否在时限、成本和风险约束内产生合格交付。
5.2 测试样本设计
固定样本集应覆盖常规、边界、困难、对抗和不可回答任务。每条记录输入、允许工具、预期行为、禁止行为、参考证据、评分 Rubric、数据来源与许可。将开发集、验证集、保留测试集分开,避免针对测试集过拟合。
5.3 非确定性与重复采样
同一任务在不同时间、模型版本或工具返回下可能有不同结果。关键任务建议重复运行并报告分布、样本量、置信区间或 bootstrap 区间;对稀有高风险失败采用专门压力样本,不能仅用平均分掩盖尾部风险。
5.4 防止数据污染
记录数据集创建时间、内容哈希、访问权限和是否进入 Prompt/检索库。评估时禁止让 Agent 读取隐藏参考答案;对于已公开题目,注明训练数据污染风险。
06 · 业务成果质量、引用核验与人工评审
6.1 Studio 报告质量维度
| 维度 | 可操作定义 | 推荐验证 |
|---|---|---|
| 事实准确 | 可核实陈述与原始资料一致 | 事实抽样与逐项来源核对 |
| 引用有效 | 链接/文献可定位到相应依据 | 来源可访问性与证据匹配复核 |
| 完整性 | 覆盖任务要求的关键问题 | 需求清单映射 |
| 逻辑性 | 论证、证据与结论一致 | 专家 Rubric |
| 可追溯 | 能关联输入、Agent 版本与审核历史 | 产物元数据检查 |
| 实用性 | 可用于下一步决策或工作 | 真实用户任务验证 |
6.2 引用分级
将引用核验拆分为:存在性(资料存在)、可访问性(可打开)、相关性(讨论对应主题)、支持性(确实支持该具体陈述)、时效性(版本与日期适用)。存在一个链接不代表事实得到支持。对于高风险结论,要求人工复核关键证据。[工程建议]
6.3 审核盲法与一致性
对候选方案做匿名/盲序比较,随机交换 A/B 展示顺序;至少抽样检查评审者一致性与争议原因。评审者看到的来源必须与 Agent 的可见材料边界明确区分。
6.4 结果标签
将“执行成功”“评估合格”“人工批准”“已交付”“接收方接受”作为独立字段。若评估器无法确定,应允许 unknown / needs_review,不能默认合格。
07 · 自动评估器与 LLM-as-judge
7.1 评估器分层
优先使用确定性检查(Schema、必填字段、链接格式、数字一致性、权限轨迹);再用检索证据对照与规则检查;主观质量使用人类专家或经过校准的模型评审。评估器结果本身是证据的一部分,不是客观真理。
7.2 评估器校准
建立人工金标准子集,计算一致率、混淆矩阵、漏报/误报和分组差异。比较不同 Judge Prompt、模型版本和评分顺序;对于安全关键任务更关注漏报。二分类可报告 precision/recall,连续评分可报告相关性和一致性,但不能互相替代。
7.3 常见偏差
- 位置偏差:偏好先出现的候选。
- 冗长偏差:偏好长而不准确的回答。
- 自我偏好:对相似模型生成风格评分偏高。
- 提示词敏感:轻微措辞变化改变分数。
- 参考污染:评估器不当读取隐藏答案。
7.4 处理策略
固定 Rubric;盲化候选来源;随机交换位置;保留证据片段;按失败类型复核;记录 Judge 版本与 Prompt 哈希;定期用人工样本再校准。[工程建议]
08 · 安全、权限与对抗性测试
8.1 测试面
身份认证、租户隔离、API 越权、工具权限、Prompt Injection、敏感信息泄露、恶意文件、Webhook 伪造、模型输出诱导、供应链依赖和日志可见性。安全测试需授权且仅在隔离环境执行。[工程建议]
8.2 Agent 专项场景
恶意网页要求忽略系统指令;检索文档试图调用未授权工具;模型输出包含伪造审批标记;跨租户 artifact_id 被猜测;工具响应包含诱导导出密钥的文本。期望系统将外部内容视为不可信数据,所有高风险操作由服务端权限策略决定,而非模型口头承诺。
8.3 隐私与保留
测试日志/Trace 的字段脱敏、最小权限、删除请求、保留期限、数据驻留、评估数据集的授权范围。不能为了提高可观测性而默认永久保存全部 Prompt 与文件正文。
09 · 性能、容量、可靠性与成本测试
9.1 负载模型
区分 API QPS、活跃 Run 数、并发模型请求、工具调用并发、审批等待量、文件导出吞吐、数据库连接数和对象存储流量。一个“并发用户”数字不足以描述 Agent 平台负载。
9.2 关键分位数
分别报告排队等待 P50/P95/P99、首事件延迟、模型调用延迟、完整任务时长、人工审批等待时长。对长尾任务标注超时/取消的删失数据,避免只统计成功任务导致偏差。
9.3 容量实验
逐步增加并发并记录吞吐、错误率、队列积压、恢复时间与成本。负载测试必须有预算上限、供应商限流保护和独立测试环境。模型供应商外部抖动应与本地系统瓶颈分别分析。
9.4 成本指标
单份合格报告总成本 = (模型 + 搜索/工具 + 计算/存储 + 人工审核成本) / 合格报告份数。分母为零时标记不可计算;估算费用与供应商账单分开;缓存命中、重试与审核返工均计入成本。
10 · 评估指标的定义与统计解释
10.1 指标字典
| 指标 | 参考定义 | 注意事项 |
|---|---|---|
| Run 终态成功率 | succeeded / 所有到达终态 Run | 不含尚未结束 Run;需注明取消策略 |
| 合格成果率 | 满足预定 Rubric 的成果 / 被评估成果 | 报告评估覆盖率 |
| 引用支持率 | 核验通过的具体陈述-引用对 / 已核验对 | 不能当作全部事实准确率 |
| 审核返工率 | 触发至少一次返工的 Run / 有审核的 Run | 返工未必代表失败 |
| 恢复成功率 | 成功恢复且无非法副作用的故障注入 Run / 注入 Run | 需明确故障种类 |
| 工具错误率 | 错误工具调用 / 总工具调用 | 区分供应商、权限与参数错误 |
| 单份合格成果成本 | 总可归因成本 / 合格成果数 | 人工成本单独列示 |
| 安全违规率 | 违规案例 / 执行的安全测试案例 | 与真实生产事件不可直接换算 |
10.2 对照实验
采用相同任务分层、相近环境、相同评估规则;必要时使用配对比较、置信区间和分组分析。显著性并不等于实际收益,须同时报告成本、失败模式与对业务的影响。多轮试验需防止反复挑选最优结果。[工程建议]
10.3 质量门禁示例
阻断条件可设为“任何跨租户读取”“不可逆操作重复执行”“审核未通过却交付”。对于合格率、P95、成本等数值门槛,应根据真实基线、样本规模与业务目标确定,本文不虚构统一阈值。
11 · 实验数据、版本与可复现性
11.1 最小实验记录
{
"experiment_id": "exp_research_20261101_01",
"dataset_version": "research_eval_v3",
"dataset_sha256": "<sha256>",
"workflow_version_id": "wf_v12",
"agent_version_ids": ["topic_v4", "review_v3"],
"model_id": "<provider/model/version>",
"judge_version": "rubric_v5",
"tool_snapshot_id": "search_fixture_v2",
"run_count": 30,
"environment": "staging",
"result_artifact_uri": "<restricted-uri>",
"limitations": ["external search results are not frozen"]
}以上字段与值是示例契约,不代表 Studio 现有 API。
11.2 版本固定边界
记录代码 commit、容器镜像 digest、配置快照、Prompt 版本、模型标识、工具/检索索引版本和评估器版本。供应商模型标识不一定对应不可变权重;记录时间与请求 ID,注明不可复现因素。[工程建议]
11.3 数据治理
测试集按项目/租户隔离,脱敏后才能复用;保留原始输入和预期结果的访问日志;评估结果与产物版本绑定;对含个人或商业资料的样本设置访问期限。
12 · 持续改进闭环与实验优先级
12.1 反馈闭环
flowchart TD
A[生产事件与用户反馈] --> B[问题归类与复现]
B --> C[创建失败样本/回归用例]
C --> D[提出改进假设]
D --> E[离线实验与对照]
E --> F{满足发布门禁?}
F -->|否| D
F -->|是| G[灰度/影子验证]
G --> H{质量与成本达标?}
H -->|否| I[回滚与复盘]
I --> B
H -->|是| J[扩大发布并更新基线]
J --> A12.2 优化优先级
按风险严重度、发生频率、用户影响、可复现程度和修复成本排序。优先修复越权、丢数据、重复副作用与引用错误;再优化延迟和费用。对无法复现的生产事故先加强证据采集,而不是盲目更换模型。
12.3 改进类型
- Prompt 与输出约束:降低格式错误、明确拒答条件。
- 工具与检索:改善来源质量、参数验证、超时控制。
- 工作流:缩减无效循环、增加质量门禁、优化审批位置。
- 模型路由:在质量约束下分配任务与预算。
- 平台工程:队列、缓存、连接池、状态恢复与部署策略。
每项优化应明确主要指标、保护指标和失败回滚条件。
13 · 测试基础设施与参考系统架构
13.1 逻辑组件
flowchart TB
CI[CI/CD] --> Runner[测试与评估调度器]
Dataset[(版本化数据集)] --> Runner
Runner --> Fixture[工具模拟与故障注入]
Runner --> Platform[Staging Platform API]
Platform --> WF[Workflow Engine / Worker]
WF --> Model[模型与工具适配器]
Platform --> DB[(PostgreSQL)]
Platform --> Store[(对象存储)]
Runner --> Eval[规则/人工/模型评估器]
Eval --> Results[(实验与证据仓库)]
Runner --> Results
Results --> Gate[发布质量门禁]13.2 建议实现
- 测试运行器:支持任务集选择、并发限制、预算上限、重试与取消。
- 工具 Fixture:固定搜索结果、模拟限流、延迟、无效响应和权限错误。
- 实验仓库:存储数据集版本、运行配置、分数、Trace 引用与失败样本。
- 人工评审台:支持盲评、分歧仲裁、评分理由与复核记录。
- 质量门禁服务:对阻断项和数值门槛分别判断。
不建议在初期为了评估单独搭建复杂微服务;可由脚本、数据库表与对象存储实现最小闭环。[工程建议]
14 · 参考 API 与数据库模型
14.1 参考 API
POST /api/v1/evaluation-runs
GET /api/v1/evaluation-runs/{evaluation_run_id}
GET /api/v1/evaluation-runs/{evaluation_run_id}/cases
POST /api/v1/evaluation-runs/{evaluation_run_id}/reviews
POST /api/v1/release-gates/check
GET /api/v1/experiments/{experiment_id}/comparison请求需绑定项目/租户与评估数据集版本;评估执行使用异步 Job;复核权限与评估器配置权限分离;所有写入记录操作者与时间。[工程建议]
14.2 最小表结构示例
CREATE TABLE evaluation_datasets (
id UUID PRIMARY KEY,
tenant_id UUID NOT NULL,
name TEXT NOT NULL,
version TEXT NOT NULL,
content_sha256 TEXT NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
UNIQUE (tenant_id, name, version)
);
CREATE TABLE evaluation_runs (
id UUID PRIMARY KEY,
tenant_id UUID NOT NULL,
dataset_id UUID NOT NULL REFERENCES evaluation_datasets(id),
workflow_version_id TEXT NOT NULL,
configuration JSONB NOT NULL,
status TEXT NOT NULL CHECK (status IN ('queued','running','succeeded','failed','cancelled')),
started_at TIMESTAMPTZ,
finished_at TIMESTAMPTZ
);
CREATE TABLE evaluation_case_results (
id UUID PRIMARY KEY,
evaluation_run_id UUID NOT NULL REFERENCES evaluation_runs(id),
case_key TEXT NOT NULL,
attempt_no INTEGER NOT NULL CHECK (attempt_no > 0),
run_id UUID,
scores JSONB NOT NULL DEFAULT '{}'::jsonb,
verdict TEXT CHECK (verdict IN ('pass','fail','needs_review','unknown')),
evidence_uri TEXT,
UNIQUE (evaluation_run_id, case_key, attempt_no)
);
CREATE INDEX idx_eval_runs_tenant_status ON evaluation_runs(tenant_id, status);该 SQL 仅示意逻辑对象;真实实现需补齐复合租户外键、RLS、索引、对象存储 ACL、事件日志、迁移及数据保留机制。JSONB 分数必须有版本化 Schema,避免跨评估器版本直接比较。
15 · Studio 多 Agent 研究工作流的评估方案
15.1 业务目标
Studio 的目标不是“Agent 说完话”,而是以可接受成本交付证据可核验、结构完整、经过审核的研究报告。建议把验收任务设计为覆盖选题、资料检索、分析、审核返工、人工确认、产物导出全链路。[工程建议]
15.2 四组实验
| 实验 | 核心问题 | 主要证据 |
|---|---|---|
| A · 单 Run | Agent 是否能可靠执行并保存产物 | 状态事件、产物哈希、重试日志 |
| B · 审核返工 | 不合格草稿能否被定位并修订 | 返工次数、审核意见与版本差异 |
| C · 故障恢复 | Worker/模型/工具故障能否安全恢复 | 故障时间线、重复副作用检查 |
| D · 业务质量 | 报告事实、引用、完整性是否达标 | 人工 Rubric、来源核验、成本记录 |
15.3 示例案例
任务:“研究某地区文创产业近三年政策变化”。预置官方文件与干扰资料,要求 Agent 形成政策时间线、主要变化、影响与参考文献。人工核对每条关键结论是否被所引资料支持;故意插入一条与政策原文冲突的摘要,验证审核 Agent 是否能识别并要求返工。这个案例是建议实验,不是已完成研究。
15.4 评估仪表盘
同屏展示:Run 终态、各阶段耗时、模型/工具成本、审核返工次数、引用支持率、人工复核覆盖率、产物版本与失败原因。对缺失指标显示 not measured,不得默认零失败。[工程建议]
16 · 发布前质量门禁与上线判定
16.1 阻断性门禁
- 跨租户读取、越权工具执行或敏感数据泄露。
- Worker 崩溃导致已确认业务状态丢失。
- 重试造成不可逆外部操作重复执行。
- 未通过指定 Artifact Version 审核却标记正式交付。
- 人工审批恢复后执行错误分支。
- 数据库迁移或回滚导致历史 Run 无法解释或恢复。
16.2 条件性门禁
任务达成率、引用支持率、P95、成本与人工审核时间应与基线和风险等级比较。若无可靠样本或评估覆盖不足,发布结论应为“证据不足”,而非“通过”。[工程建议]
16.3 发布证据包
包括代码/镜像版本、迁移版本、测试报告、评估集与评估器版本、已知问题、豁免记录、回滚步骤、责任人及发布后观察计划。
17 · 故障归因、诊断与复盘
17.1 故障分类
| 类别 | 示例 | 典型证据 | 优先修复层 |
|---|---|---|---|
| 产品定义 | 任务要求含糊 | 用户反馈、需求缺口 | Product |
| Prompt/Agent | 规划错误、反复调用 | Trace、提示词版本 | Agent Runtime |
| 检索/工具 | 过期资料、超时 | 工具响应与来源快照 | Integration |
| 工作流 | 审核回路错误 | 状态转移与事件 | Orchestration |
| 平台工程 | 队列重复消费 | Outbox、租约、日志 | Platform |
| 评估器 | 错误判定合格 | 人工复核差异 | Evaluation |
| 外部依赖 | 模型限流或停机 | 供应商错误码 | Provider |
17.2 复盘要求
记录时间线、影响范围、触发条件、检测延迟、缓解措施、根因假设及其证据、后续测试用例与负责人。区分“直接触发因素”与“系统性设计缺陷”;避免把所有失败归因于模型不稳定。[工程建议]
18 · 开发阶段与资源规划
| 阶段 | 核心验证能力 | 交付证据 |
|---|---|---|
| T0 · 测试基线 | 类型/单测/契约/固定 Fixture | CI 报告、失败分类 |
| T1 · Run 可靠性 | 真实执行、状态、幂等与恢复 | 集成测试与故障注入报告 |
| T2 · Workflow 质量 | 审核返工、审批、协作终止 | 端到端用例与 Trace |
| T3 · 业务评估 | 版本化任务集、Rubric、人工核验 | 基线评分与争议样本 |
| T4 · 生产闭环 | 灰度、告警、质量回归、成本优化 | 发布证据包与改进记录 |
优先投入最小自动化基线和高风险场景,再扩大评估样本。具体时间、人力和费用需根据 Studio 现有代码与实际调用成本评估。[待验证]
19 · 常见误区与纠偏
| 误区 | 后果 | 纠偏方式 |
|---|---|---|
| 只测试模型回答 | 忽略权限、队列和状态故障 | 五层质量模型 |
| 只看平均分 | 掩盖少数严重失败 | 分位数、分组、最坏案例 |
| 一次成功即通过 | 忽略模型随机性 | 重复采样与区间 |
| Judge 分数等于事实 | 自动评分偏差 | 人工校准与证据核验 |
| 把引用数量当准确率 | 虚假来源仍得高分 | 陈述-引用对支持性检查 |
| 测试集长期公开给开发者 | 过拟合评估样本 | 保留测试集、轮换样本 |
| 失败只靠重试 | 可能重复副作用 | 幂等、补偿、人工介入 |
| 只测正常流程 | 故障时系统不可恢复 | 故障注入与恢复测试 |
| 把成功 Run 当合格报告 | 业务质量失真 | 独立结果状态 |
| 不记录模型与 Prompt 版本 | 无法比较回归 | 实验版本快照 |
| 生产全量记录原始 Prompt | 隐私和泄漏风险 | 脱敏与分级留存 |
| 优化 Token 不看人工时间 | 总成本可能升高 | 单份合格成果总成本 |
20 · 与其他章节的关系及待验证问题
20.1 章节边界
| 对应章节 | 与本篇的关系 |
|---|---|
| 03 Agent System / H3 Evaluation | 系统级评估原则,本篇落地平台测试与发布门禁 |
| 04/02 P1、P2、P5 | 控制、执行、部署对象的工程测试 |
| 04/02 P12 Platform Governance | 配额、权限与策略,本篇验证其有效性 |
| 04/03 F3 Agent Development & Testing | 开发者侧测试产品体验,本篇提供工程方法 |
| 04/03 F8 Agent Monitoring | 运行监控产品,本篇将监控数据用于质量改进 |
| 04/03 F10 Artifact & Delivery Management | 成果版本、审核与交付质量验证 |
| 04/04/03 System Design | 系统设计提供测试边界与故障假设 |
| 04/04/04 Development Roadmap | 分阶段开发与验收节奏 |
| 04/04/05 Deployment & Operations | 发布、运维与事故处置,本篇提供质量门禁和反馈机制 |
20.2 需要实际确认的问题
Studio 当前是否存在真实 Worker/队列/数据库?哪些 Agent Runtime 已接入?有多少真实任务样本?研究报告的合格标准由谁审核?是否允许把用户资料用于评估?模型费用和用户等待时间的业务约束是什么?现有 CI 是否覆盖 API 与状态机?这些问题在代码审计和用户访谈前均属于 [待验证]。
20.3 后续研究与行动
建议优先完成:代码审计→固定 10 - 20 个代表性研究任务(仅作为启动样本,非统计保证)→建立业务 Rubric→执行真实单 Run→加入故障注入→补齐人工审批与返工→建立回归评估与发布门禁。对关键风险补充专门案例,而不是仅扩大随机样本。
21 · 参考验证测试清单(未执行)
基础工程与契约
| ID | 待执行用例 | 通过标准与证据 |
|---|---|---|
| V01 | 状态机允许合法转移 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V02 | 拒绝终态非法回退 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V03 | 重复创建请求遵循幂等键 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V04 | 分页边界和非法游标返回明确错误 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V05 | API Schema 不兼容变更被检测 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V06 | SSE 断线重连不丢必要状态 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V07 | Webhook 签名验证和重放保护 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V08 | 数据库迁移可恢复历史数据 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
队列与恢复
| ID | 待执行用例 | 通过标准与证据 |
|---|---|---|
| V09 | Worker 获取租约后崩溃可重新派发 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V10 | 双 Worker 竞争不会双重提交 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V11 | Outbox 重复投递不重复副作用 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V12 | 模型 429 按退避与预算重试 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V13 | 工具超时后任务进入明确状态 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V14 | 审批等待跨重启保持 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V15 | 审批与取消竞态保持一致 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V16 | 工作流返工保留历史版本 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V17 | 执行版本在 Run 启动后固定 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V18 | 不可逆工具调用确认丢失可安全处理 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
Agent 与业务质量
| ID | 待执行用例 | 通过标准与证据 |
|---|---|---|
| V19 | 任务集输入和预期输出可追溯 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V20 | Agent 在工具禁止场景不越权 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V21 | Agent 协作达到步数上限能终止 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V22 | 模型拒答在证据不足时符合 Rubric | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V23 | 引用存在性验证 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V24 | 引用与具体结论支持性验证 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V25 | 报告结构完整性验证 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V26 | 审核意见准确绑定产物版本 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V27 | 审核失败后新版本重新评估 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V28 | 人类评审分歧可记录与仲裁 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V29 | LLM Judge 与人工标注一致性校准 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V30 | 候选顺序交换偏差测试 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
安全与隔离
| ID | 待执行用例 | 通过标准与证据 |
|---|---|---|
| V31 | 跨租户 Run 查询被拒绝 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V32 | 跨租户 Artifact 下载被拒绝 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V33 | 恶意检索内容不能升级工具权限 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V34 | 敏感信息不进入未授权 Trace | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V35 | 评估数据集权限与保留策略生效 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V36 | 未经审批不可执行高风险工具 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V37 | Webhook 伪造消息无法改变审批状态 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V38 | 恶意文件输入隔离与扫描流程有效 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
性能与成本
| ID | 待执行用例 | 通过标准与证据 |
|---|---|---|
| V39 | 并发增加时记录队列积压与吞吐 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V40 | 报告 P95 完成时长及失败样本 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V41 | 模型成本估算与账单偏差可测 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V42 | 单份合格成果成本包含返工 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V43 | 缓存优化不降低业务质量 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V44 | 预算上限触发任务保护 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V45 | 供应商延迟与平台延迟可区分 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V46 | 高并发取消不会产生孤儿任务 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
发布与持续改进
| ID | 待执行用例 | 通过标准与证据 |
|---|---|---|
| V47 | 固定回归集检测质量下降 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V48 | 评估器版本变化触发可比性警告 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V49 | 阻断项失败阻止发布 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V50 | 灰度出现安全回归能回滚 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V51 | 回滚后长任务版本兼容 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V52 | 生产失败样本脱敏进入回归集 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V53 | 发布证据包包含版本与测试记录 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
| V54 | 事故复盘产生可执行回归用例 | 断言符合预先登记的预期;保留测试日志、状态/Trace 与版本信息 |
总计 54 项参考测试。 这些用例为验收设计,不是已执行的测试报告。实际执行时每项需补充环境、输入、操作步骤、断言、样本数、结果和缺陷链接。
附录 A:参考文献与原始资料
以下优先引用官方规范、研究机构和项目文档。链接为后续逐项核验入口;本文未声称在本次写作中对每个链接完成在线逐页检查。工具的版本、功能和价格须以实际采用版本为准。
- NIST, AI Risk Management Framework (AI RMF 1.0). www.nist.gov/itl/ai-risk-management-framework
- NIST, AI RMF Generative AI Profile. www.nist.gov/itl/ai-risk-management-framework/ai-rmf-generative-ai-profile
- NIST, AI 600-1 Generative Artificial Intelligence Profile. nvlpubs.nist.gov/nistpubs/ai/NIST.AI.600-1.pdf
- Google, Site Reliability Engineering. sre.google/sre-book/table-of-contents
- Google, The Site Reliability Workbook. sre.google/workbook/table-of-contents
- OpenTelemetry, Documentation. opentelemetry.io/docs
- OpenTelemetry, Generative AI Semantic Conventions. opentelemetry.io/docs/specs/semconv/gen-ai
- W3C, Trace Context. www.w3.org/TR/trace-context
- OWASP, Top 10 for LLM Applications. genai.owasp.org/llm-top-10
- OWASP, Agentic AI Security. genai.owasp.org
- OpenAI, Evals. github.com/openai/evals
- OpenAI, Agents SDK documentation. openai.github.io/openai-agents-python
- LangSmith, Evaluation Documentation. docs.smith.langchain.com/evaluation
- Langfuse, Evaluation Documentation. langfuse.com/docs/evaluation/overview
- Arize Phoenix, Documentation. arize.com/docs/phoenix
- pytest, Documentation. docs.pytest.org/en/stable
- Playwright, Documentation. playwright.dev/docs/intro
- PostgreSQL, Documentation. www.postgresql.org/docs/current
- CloudEvents, Specification. github.com/cloudevents/spec
- OpenAPI Initiative, OpenAPI Specification. spec.openapis.org/oas/latest.html
- Temporal, Testing. docs.temporal.io/develop/python/testing-suite
- Prometheus, Documentation. prometheus.io/docs/introduction/overview
- Grafana, Documentation. grafana.com/docs
- ISO/IEC 25010, Systems and software Quality Requirements and Evaluation (SQuaRE) - Product quality model(标准原文需按授权渠道获取;具体版次需核验). www.iso.org/standard/78176.html
附录 B:研究证据、验证声明与适用边界
B.1 证据等级
- [官方/规范]:标准、官方 API 或项目文档所描述的机制;实施时须确认对应版本与上下文。
- [工程建议]:结合 Agent Platform 特性提出的测试策略、产品设计和参考架构,不是普适标准。
- [待验证]:Studio 现有代码、模型供应商、真实样本、成本与质量基线尚未核验。
B.2 已验证与未验证的界限
本文未审计 Studio 源码、运行 CI、执行 Agent 评估、注入生产故障、开展渗透测试、访谈真实用户或统计生产指标。示例 SQL、JSON、API、Mermaid 和第 21 节测试清单均为参考设计;不能据此声称平台达到任何 SLO、准确率或安全认证。
B.3 适用范围与局限
适用于具有 Agent 工作流、工具调用、长任务、人工审批、成果审核及多租户管理需求的平台。纯个人本地脚本可简化治理与发布流程;高风险或受监管应用必须补充领域专家审查、法规适配、独立安全测试和可审计评估程序。模型更新、数据分布漂移与第三方工具变化会削弱历史评估结论的外推效力。
B.4 可证伪与更新条件
如果实测证明固定基准与真实用户满意度相关性弱,应修订数据集和 Rubric;如果 Judge 与人工评审分歧过大,应降低自动评分权重;如果故障注入发现不可控副作用,应重新设计幂等与审批边界;如果成本优化降低关键引用支持率,应撤销该优化。所有更新均需记录变更原因与新旧结果的可比性。
本篇为 04 · Agent Platform / 04 · Engineering & Practice 的最后一个专题。 后续可进行第四领域整体目录、交叉引用、术语与证据质量审核,再进入 05 · 常见问题 - FAQ。