defineConfig 从根目录的 niceeval.config.ts 默认导出,只放项目级默认值。agent、model、flags、attempts 和实验预算写在 experiments/ 下的 defineExperiment 文件里。
report 收 defineReport 的产物本身(import 自己的报告文件),不是路径字符串。niceeval show 与 niceeval view 不带 --report 时装载它,没写就装载内置的默认报告。--report 按次覆盖,--report standard 回到内置报告。写法与整套报告能力见编写自定义报告。
Config 字段
report
theme
name
niceeval view 顶部 hero(<h1>),省略则回退到通用标题。
可传字符串,或按 locale 提供多语言(如 { en: "...", "zh-CN": "..." }),随 view 语言切换。
workspace
judge
reporters
maxConcurrency
maxBuildConcurrency
timeoutMs
telemetry
port 钉住接收端口(固定端口模式:长驻服务把 OTEL_EXPORTER_OTLP_ENDPOINT 一次性指到
http://localhost:<port>/v1/traces,跑多少次评估用例都不用改)。省略 = 每次运行动态分配
临时端口(经 ctx.telemetry 交给 adapter)。代价:固定端口下同机同时只能跑一个 niceeval 进程,
且该端口被别的进程占用时会报错——换一个空闲端口写回这里即可。
host 是报给 adapter 的接收端 hostname(而非监听地址,监听地址恒为 0.0.0.0):默认
“127.0.0.1”。只有作者已经提供受控 tunnel / 可达路由时才在这里覆盖;Docker Sandbox
默认把 receiver 放在 Sandbox 内,不依赖隐式宿主 gateway。
pricing
o11y/prices.json)之上的用户覆盖 / 补充,按 model 查(见 Observability
· 用量与成本)。key 支持精确 model 名或 provider/* 通配(自托管/网关折扣按 provider 批量覆盖);
精确 key 优先于通配。pricing 只驱动 estimatedCostUSD 的估算(estimateCost),与
usage.costUSD(网关实测)无关——两者独立并存,互不兜底。它是 runtime/config 价目表,
不是 Report 的成本投影:Report 不消费该字段(Report 侧使用自己的 PricingProfile)。
成本边界:这里的NiceEval 把环境准备放在普通代码里:评估用例自己需要的文件写在pricing只提供 Runner 的 Config/runtime price table 输入,Runner 会独立产生estimatedCostUSD,不论是否已有Usage.costUSD。maxCost只使用该 estimate。Report 不读取此配置;它必须在 Report module 以definePricingProfile()显式声明自己的 USD Profile,并只对 sealed Usage 做 Analysis 投影。
test(t),agent 自己的准备写在 adapter 的 setup。Config 刻意没有 sandbox 字段,也不自动探测 provider。请在 Eval 或 Experiment 上声明 template-bearing SandboxLayer,让 link planning 在创建任何资源前确定它的 owner 与配对结果。