Skip to content
GitHub

参与贡献测试与实验

v0.1.0

测试、示例与评测 ​

验证应回答本次改动带来的问题。确定性测试适合检查契约与状态转换,真实模型示例适合确认服务集成,评测则需要明确题集与评价目标。它们的成功不能相互替代。

运行相关测试 ​

在仓库根目录运行相关测试:

shell
uv run pytest tests/harness/test_session_history.py

替换测试路径即可验证自己的改动。

从改动找到测试 ​

改动主要测试入口
Agent YAML / 配置tests/agents
上下文 / 压缩tests/context、tests/runtime 的 context/compaction 用例
Runner / 恢复 / SessionManager / 历史tests/harness
生命周期与存储存储契约测试、tests/store及 harness 的状态转换测试
工具 / MCP / 命令tests/tools、tests/mcp、tests/command
消息 / 模型 / 图片tests/message、tests/providers、图片处理
记忆 / 经验 / 目标 / 清单tests/memory、tests/evolution、tests/goal、tests/todo及 harness 的相关集成测试
流式 / 观测 / 语音tests/streaming、tests/observability、tests/speech

先定位现有用例和复用的 provider/store 替身,再补一个能复现新需求的测试。不要为了一个消息映射错误搭起完整 UI、远端模型或多服务集成。

代码风格和类型配置在 pyproject.toml。例如修改一个 Python 文件后,可针对它运行 uv run ruff check 路径 与 uv run mypy 路径。.pre-commit-config.yaml 定义已有提交检查,不需要为本次文档建设新增一套门禁。

可运行示例的证据范围 ​

方式能证明什么不能单独证明什么
配置解析、导入或代码块编译字段和语法可接受真实功能完成
脚本化 provider + 真实 Runner/工具接口接线、状态转换和本地副作用符合脚本模型会自主选择正确行动
真实 provider 示例某次环境中的协议、凭据和任务流程可运行全部模型、长期稳定性或普遍任务成功率
明确题集的评测所定义样本与指标上的表现超出题集范围的能力

文档里的完整例子应交代凭据、文件、可选服务和工作目录。输出不确定时描述成功条件;不要用固定模型文本作为验收断言。

Inspect AI 接入 ​

evals 提供仓库级 iris_solver(),让 Inspect 调用真实 AgentRunner、投影结果与用量并收尾资源。它不随 Iris Python 包发布,使用时在仓库根目录安装 eval 依赖组:

shell
uv sync --group eval

当前接入不附带题集、benchmark adapter 或评分器。eval 组包含 Inspect AI 和用于取消收尾的 AnyIO;普通 Iris 用户无需安装。安装后可运行接入测试:

shell
uv run --group eval pytest tests/evals/test_iris_solver.py

测试使用确定性 provider 和真实 SDK,验证默认输入、回调、状态与用量投影、取消和资源收尾,不调用真实模型,也不代表 benchmark 成绩。

增加评测时先明确想测的行为、固定输入与预算、结果记录和评分方式。报告实际运行条件,区分检索选对工具、工具执行正确与最终任务完成。

下一步:贡献流程 · 文档维护。