All notable changes to cmdc_eval will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.3.0] - 2026-06-01

Phase 19E — 增加 WorkflowEval 最小接缝,服务 cmdc_orchestrator 0.6.x 企业 workflow runtime、AgentSpec / Workflow 发布门禁和离线 ledger eval。

Added

  • CMDCEval.Workflow — 从 cmdc_orchestrator Run / NodeRun / RunEvent ledger 或离线 fixture 计算 WorkflowEval 指标。
  • CMDCEval.Assertions.Workflow — completion rate、node failure rate、 branch coverage、tool success rate、fork/join、human_task SLA、retry、cost、 latency 和发布门禁 failures。
  • WorkflowEval 明确保持最小接缝:不引入 Phoenix schema、Trace Viewer、 Eval Dashboard 或数据飞轮实现。

[0.2.0] - 2026-05-31

Added

  • 新增 CMDCEval.Context,Runner 会把 reply / tool outputs / plugin events / metadata 传给 Suite 可选 assert/3
  • CMDCEval.Runner 自动订阅当前 eval session 的 CMDC EventBus 事件,并把压缩后的 eval_context 写入 Run.metadata
  • 新增 CMDCEval.Assertions.RAG: recall_at_k / contains_citation / grounded_answer / no_unauthorized_source / faithfulness_min / correctness_min
  • RAG assertions 支持离线 map fixture,不强依赖 Arcana。

Compatibility

  • 旧 Suite assert(case, reply) 保持兼容。
  • cmdc 依赖范围升级到 ~> 0.6

[0.1.0] - 2026-05-18

首发 —— CMDC Agent benchmark harness 子库。

Added

  • CMDCEval 主模块 —— run/1 入口 + 类型 spec
  • Suite behaviour CMDCEval.Suite —— 3 必选 callback (name/0 / cases/0 / assert/2)
    • 2 可选 (default_tools/0 / cost_estimator/1)
  • 核心 structCMDCEval.Case / CMDCEval.Run / CMDCEval.Report(全 @derive Jason.Encoder
  • CMDCEval.Runner —— 并发跑 Suite 内 case + 收集 Run + 输出 Report
    • 单 case crash / timeout 不影响其他 case
    • 支持 mock provider(provider_opts: [provider_fn: ...]
  • CMDCEval.Suites.Internal —— 5 个 cmdc kernel 自验证 case (basic_text / json_response / long_input_no_crash / punctuation / empty_friendly_reply)
  • CMDCEval.Suites.BFCL —— Berkeley Function Calling Leaderboard v3 框架 (v0.1 fixtures 占位,需手动从 upstream git clone 拉取)
  • Mix.Tasks.Cmdc.Eval —— CLI 入口(mix cmdc.eval --suite=<name> --model=<id>
    • 标准退出码 0/1/2/3
  • Mix.Tasks.Cmdc.Eval.FetchBfcl —— BFCL fixtures fetch helper(v0.1 写占位)
  • JSONL 报告 schema —— 稳定字段 suite / case_id / model / pass / latency_ms / tokens_in / tokens_out / cost_usd / events_digest / error / timestamp / metadata

v0.1 范围

  • ✅ 框架 + 1 个内置可跑 Suite(Internal)+ 1 个占位 Suite(BFCL)
  • 🔁 完整 BFCL fixtures fetch / tau2-bench / MemoryAgentBench 留 v0.2

Compatibility

  • 要求 cmdc ~> 0.5
  • 无 breaking change(首发版本)