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.

[Unreleased]

[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(首发版本)