Files
zk-data-agent/docs/experiments.zh-CN.md
T
2026-07-26 21:32:12 +08:00

120 lines
4.9 KiB
Markdown

# Agent 实验体系
中文 · [English](experiments.md)
## 目标
这个项目的目标,是让 Agent 循环的迭代成本更低、过程可观察、结果可回滚。一次实验应当只改变一个行为假设,同时保持鉴权、工作区隔离和交付基础设施不变。
公开门户 <https://agent.k1412.top/doc/#experiments> 中包含一个整理过的实验看板。这份 Markdown 文档定义长期有效的流程,门户目录只是展示层。
## 实验单元
每个实验都应定义:
1. **问题**——希望改善的行为。
2. **假设**——具体的循环改动和预期方向。
3. **变体标识**——记录在 `run.created` 中的稳定字符串。
4. **任务集**——固定提示词、初始工作区夹具和模型档位。
5. **指标**——成功率、质量、延迟、模型/工具使用量和回归。
6. **安全约束**——绝不能变差的行为。
7. **决策规则**——推广、继续迭代或拒绝。
8. **产物**——代码提交、配置、原始事件导出和报告。
不要比较使用不同任务输入的变体,也不要在没有记录的情况下更换模型、提示词、上下文预算或工作区夹具。
## 推荐指标
主要指标:
- 通过明确证据检查的任务成功率;
- 已验证交付物比例;
- 未解决工具失败率;
- 人工或量表质量评分。
效率指标:
- 端到端延迟;
- 模型调用与迭代次数;
- 可用时记录提示和补全 token 数;
- 工具调用次数;
- 重复或被策略拦截的调用;
- 子 Agent 数量与并发度;
- 估算的模型提供方费用与电费。
可靠性与安全指标:
- 是否正确拒绝了不完整的完成检查点;
- 假成功率;
- 工作区逃逸或跨用户访问失败;
- 是否错误地把非零命令退出码记录为成功;
- 身份/鉴权失败;
- Runtime 或工作区重启后的恢复能力。
## 评测层次
### 单元与策略测试
快速、确定性的测试覆盖解析、工具规范化、证据门禁、鉴权、上下文选择、事件持久化和提供方响应规范化。
### 真实 Docker 集成
集成测试创建两个一次性用户,并验证:
- 容器、网络和数据卷彼此独立;
- 工作区路径受到约束;
- 文件浏览、下载和归档行为;
- 根文件系统只读且 capabilities 已移除;
- Python 虚拟环境可以持久保存;
- 前台和后台命令都能通过 `pipefail` 返回真实退出码。
### 一次性全栈 E2E
E2E 环境使用确定性的伪模型提供方,覆盖:
- 注册与管理员审批;
- 精确的四模型公开目录;
- 自定义 Agent 循环;
- 有证据支持的文件生成;
- 文件交付;
- 每用户隔离。
### 真实模型评测
`scripts/eval-live-work.py` 会让真实模型在一个唯一的一次性工作区中运行,并记录延迟、token 使用、事件、工具数量和输出文件。真实模型评测用于补充确定性测试,不能替代它们。
### 生产冒烟测试
每次部署后,使用低影响的已鉴权任务,确认公网 Web、Runtime、Gateway、远程工作区主机和文件获取都正常。验证后只删除这次冒烟测试产生的临时文件。
## 当前基线
| ID | 领域 | 状态 | 结果 |
| --- | --- | --- | --- |
| `loop-v3-evidence` | 完成策略 | 生产基线 | 产物必须先发生写操作,再经过验证;报告和基准测试要求更强证据。 |
| `safe-parallel-v1` | 调度器 | 生产基线 | 连续只读调用和只读委派可以并发,写操作保持串行。 |
| `recent-visible-v1` | 上下文 | 生产基线 | 在每模型字符预算内保留最近可见消息,并附加最多八条记忆。 |
| `workspace-python-v1` | 执行 | 已验证 | 持久 `.venv`、持久用户缓存、900 秒工具上限,以及真实的管道退出码。 |
| `fresh-gateway-identity-v1` | 鉴权 | 已验证 | Runtime 为每次工具请求重新签发已验证身份,使长任务不受原始令牌过期影响。 |
## 初始待办
1. 具有冲突和过期策略的语义或混合记忆检索。
2. 结构化旧上下文总结,并通过回放比较效果。
3. 基于依赖的工具 DAG 调度,而不只是连续安全组。
4. 子 Agent 结果契约与预算分配。
5. 按运行记录实验分组,并提供聚合比较 API。
6. 统一核算本地电费与付费提供方 token 成本。
7. 工作区配额、出站策略、滥用监控和备份演练。
## 添加实验
1. 把假设和指标加入本文,或新增专门的 `docs/experiments/<id>.md`
2. 将实验加入 `docs/site/experiments.json`,用于公开看板。
3.`run.created` 中新增或更新相关策略、调度器或上下文标识。
4. 在真实模型运行前先添加确定性测试。
5. 执行标准验证并保存报告。
6. 使用不可变镜像标签推广,并保留上一个标签用于回滚。
实验产物中绝不能放入提供方密钥、私有事件载荷、用户标识、真实用户提示词或内部凭据。