正在统计访客…
浏览全部文档
开始 · 9找到适合你的 Runifold 学习路径45 分钟掌握 Runifold理解完整的 Runifold 平台第一次可信运行选择正确的执行 API选择 Crate 与 Cargo Feature构建常见 Runifold 应用Runifold 常见问题排查 Runifold 应用故障
执行内核 · 7理解 RunContext安全协调外部副作用使用预算与取消限制工作安全地处理错误与重试事件、Journal 与执行证据设计 Capability 安全执行从 Checkpoint 安全恢复
模型与服务商 · 7在避免重复输出的前提下路由模型选择并配置模型服务商使用服务商中立的模型协议基于 Provider Runtime 契约构建使用 OpenAI 控制面与 Realtime API测试与 Benchmark Provider Adapter配置 OpenAI、Anthropic、Gemini 与 Ollama
Agent · 7构建并配置 Agent为 Agent 添加类型化工具加入会话与语义记忆安全地委派给子 Agent返回结构化 Rust 值在不丢失语义的前提下流式输出使用检索为 Agent 提供事实依据
持久工作流 · 7组合确定性工作流让工作流持久化运行持久工作流 Worker协调 Timer、Signal 与持久等待运行多租户工作流基础设施运行并行 Branch 与安全 Race对持久 Workflow 进行版本管理
集成 · 7通过 MCP 连接外部能力选择存储与持久化边界通过 MCP Tasks 暴露持久工作构建并评估检索流水线使用 MCP Resources、Prompts 与 Sampling在不跨越权限的前提下缓存 MCP 响应在 Rust Web Service 中部署 Runifold
质量与运维 · 10在没有网络的情况下测试评估质量并阻止回归观测完整运行树在浏览器与边缘环境安全运行准确理解可靠性声明在 CI 中运行可复现评测使用 SLO 运维 Runifold治理 Task 保留与删除把审计证据归档到 S3-Compatible WORM 存储管理兼容性与可信发布
文档/质量与运维
第一次使用?通过 45 分钟核心课程建立完整心智模型
质量与运维

在 CI 中运行可复现评测

执行 JSONL 数据集、隔离 Candidate、设置绝对与回归门槛、衡量方差、分片、恢复并合并。

实践指南·12 min

CLI 契约

runifold-eval 让应用级进程执行与 CI 策略不进入 Runtime Library 依赖。run 为每个 Case 执行 Candidate;compare 对已有 Report 应用门槛;experiment 衡量重复 Sample; merge 重建分片证据。

Exit Status 稳定:0 表示通过,1 表示配置或 Artifact 无效,2 表示评测完成但质量 门禁失败。

数据集与 Candidate

每行 JSONL 包含 Case ID、Input、Expected Value 与 Tag。Dataset Name 与 Version 组成 Identity。空数据集、重复 ID、无效 Tag 或混合身份会在执行前失败。

Candidate 不经 Shell 直接启动,接收 Case ID、Input 与 Tag,但永远不接收参考答案。它 必须输出一个有界 JSON Object。Timeout、非零退出、过大输出、无效 JSON、未知字段或无效 Metric 都成为隔离的 Target Failure。

质量门槛

Absolute Gate 要求每个 Scorer 与 Case 达到 Threshold。Relative Gate 与匹配 Baseline 比较 Mean Score、Pass Rate 与 Execution Success。缺少 Score 或 Target Failure 会关闭式 失败。

Report 排除原始 Prompt、Input、Reference、Candidate Output 与 stderr。JSON 是规范 Artifact;JUnit 与 Markdown 供 CI 和人工审阅使用。

实验

单次运行无法区分真实改进与采样噪声。Experiment 用稳定 Sample Index 和派生 Seed 重复 Case,再计算 Mean、Standard Deviation、95% Student's t Confidence Interval 与 Flaky-Case Rate。

Cache Identity 包括 Dataset Content、Candidate Version 与参数、Scorer、Seed、Shard、 Timeout 与 Limit。损坏或矛盾 Cache 会明确失败。稳定 Case Hash 支持独立 Shard 和保留 证据的 Merge。

CI 设计

固定 Dataset 与 Candidate Version,评测前构建 Candidate,用 Absolute Gate 保证最低质量, 再用 Baseline Gate 阻止回归;即使门禁失败也上传规范 Report。模型方差显著时,用 Experiment 支撑 Release 决策。

不要把不稳定外部 Provider 当作 Pull Request 的唯一信号。分开快速确定性契约测试、离线 质量门禁、Cassette Integration 与可选 Live Canary。

运行发布质量门

先安装 CLI、构建 Candidate,并在门禁失败时仍保留报告。-- 后的命令会被 直接执行,不经过 shell,因此每个参数都应单独传入,不要依赖通配符展开。

cargo install runifold-eval-cli --version 0.9.0 --locked
cargo build --release --bin my-eval-candidate
runifold-eval run \
  --dataset evals/support.jsonl \
  --dataset-name support \
  --dataset-version 2026-08-06 \
  --candidate-version prompt-v2 \
  --output artifacts/evaluation.json \
  --junit artifacts/evaluation.xml \
  --markdown artifacts/evaluation.md \
  -- ./target/release/my-eval-candidate

CI 中要区分退出码 12:前者表示证据本身无效,后者表示评测已完成, 但没有通过策略。两种情况都上传 JSON、JUnit 和 Markdown。修改阈值前,先用 完全相同的数据集版本与 Candidate 二进制在本地复现。