CMDCEval.Runner (cmdc_eval v0.1.0)

Copy Markdown View Source

Eval Runner —— 并发跑 case + 调 CMDC Agent + 收集 Run + 输出 Report。

流程

[Suite.cases/0]
   Task.async_stream/3 (并发跑 case)
         for each case:
              1. CMDC.create_agent(model, tools, provider_opts)
              2. CMDC.prompt(session, case.input)
              3. CMDC.collect_reply(session, timeout)
              4. Suite.assert(case, reply)  boolean
              5. CMDC.stop(session)
              6. 收集 latency + token usage + cost  Run.success/failure
   Report.build/5 聚合 + 可选 JSONL 写文件

错误处理

单 case crash / timeout 被捕获 → Run.failure(reason),不影响其他 case。 整个 Runner 不会因为单 case 失败而中断。

Mock Provider

provider_optsprovider_fn: fn ... end 时直接走该函数(用 cmdc_test 子库的 CMDCTest.MockProvider),避免真 LLM 调用。

Summary

Functions

跑 Suite,返回 {:ok, %Report{}}{:error, reason}

Functions

run(opts)

@spec run(keyword()) :: {:ok, CMDCEval.Report.t()} | {:error, term()}

跑 Suite,返回 {:ok, %Report{}}{:error, reason}

CMDCEval.run/1 的选项说明。