CMDCEval.Context (cmdc_eval v0.2.0)

Copy Markdown View Source

单个 eval case 的断言上下文。

CMDCEval.Runner 会把 Agent 回复、工具输出、Plugin 事件与 metadata 组装成 该 struct,传给 Suite 可选的 assert/3。旧 Suite 继续实现 assert/2 即可。

Summary

Functions

计算事件摘要,便于把 JSONL 结果与事件回放材料关联。

从 Runner 收集到的事件构造断言上下文。

返回可安全放进 CMDCEval.Run.metadata 的压缩上下文。

Types

plugin_event()

@type plugin_event() :: %{name: atom() | String.t(), payload: term()}

t()

@type t() :: %CMDCEval.Context{
  eval_case: CMDCEval.Case.t() | nil,
  events: [term()],
  metadata: map(),
  plugin_events: [plugin_event()],
  reply: String.t(),
  tool_outputs: [tool_output()]
}

tool_output()

@type tool_output() :: %{
  optional(:name) => String.t() | atom() | nil,
  optional(:call_id) => String.t() | nil,
  optional(:status) => atom(),
  optional(:content) => String.t() | nil,
  optional(:parsed) => term()
}

Functions

events_digest(events)

@spec events_digest([term()]) :: String.t() | nil

计算事件摘要,便于把 JSONL 结果与事件回放材料关联。

from_events(eval_case, reply, events, metadata \\ %{})

@spec from_events(CMDCEval.Case.t(), String.t(), [term()], map()) :: t()

从 Runner 收集到的事件构造断言上下文。

to_metadata(context)

@spec to_metadata(t()) :: map()

返回可安全放进 CMDCEval.Run.metadata 的压缩上下文。