Skip to main content
Use cognite agents eval to run YAML-defined test cases against a deployed Atlas AI agent. Cases live in eval/eval.yaml inside an agent project created with cognite agents create. This is the CLI / file-based evaluation path. Cognite Data Fusion (CDF) also offers Running agent evaluations in Atlas AI. Use the CLI when you want cases in Git, CI-friendly exit codes, and coding agents that can author YAML against a published schema.

Run evaluations

Eval reads eval/eval.yaml (and optional include fragments). By default it uses externalId from local <name>.agent.yaml. You can instead pass --external-id <id> or --system-agent to evaluate a deployed agent without reading local <name>.agent.yaml. Full flags: command reference: agents eval.

Example suite

eval/eval.yaml

Schema

Root file (eval/eval.yaml)

Case

Turn

Session context

Optional fields that scope agent chat. They may appear at root, included file, or case level. Most-specific wins (field replace, not deep merge). After resolution, dataModels and instanceSpaces must both be present or both absent for a case. appContext may be set alone.

Multi-file suites

eval/eval.yaml
Included files must contain a non-empty cases array. They may declare file-level tags that are unioned into each case, and file-level tools / session context that override the root for every case in that file.

Scorers

Tool scorers

toolSelection and toolInvocation judge agent tool use against a declared tool list. Both share the same inheritance, skip behavior, and optional per-scorer tools override. Eval tools vs <name>.agent.yaml tools: These are different. <name>.agent.yaml declares tools for the agent runtime (config-time names like query). Eval tools declare what the judge should expect the agent to call at runtime (names like find_assets, execute). Put parameter details in each tool’s description so toolInvocation can check arguments. When to declare eval tools:
  • Custom tools (config name = runtime name): tool scorers can use <name>.agent.yaml tools when no eval tools are set.
  • Platform tools (query, ask_document, and similar): the runtime often exposes sub-tools (find_assets, list_views, …). Declare those runtime names in eval tools, or score outcomes with correctness / faithfulness instead.
  • System tools (sandbox execute, and similar): not in <name>.agent.yaml — declare them in eval tools.
  • --external-id / --system-agent: local <name>.agent.yaml is not loaded — supply eval tools if you use tool scorers.
Discover runtime names by running once with --verbose or --report-dir and inspecting toolsCalled:. Empty tool list: If no tools resolve after the cascade, the tool scorer is skipped with a stderr warning; other scorers on the turn still run. A case whose only scorers were skipped tool scorers fails the verdict.

Tools for tool scorers

Optional tools field for toolSelection and toolInvocation. Each entry needs non-empty name and description. Empty tools: [] is rejected. Inheritance matches session context: most-specific-wins, whole-array replace (not merge-by-name):
  1. Root eval/eval.yaml
  2. Included file
  3. Individual case
  4. Scorer on a turn (overrides everything above for that scorer only)
If no eval level declares tools, eval falls back to tools[] in local <name>.agent.yaml when that file is loaded.
eval/eval.yaml

Machine-readable schema

Coding agents and editors can validate suites against the published JSON Schema: Keep local cases compatible with this schema when you edit eval/eval.yaml. Loader rules that are harder to express in JSON Schema (unique ids across includes, scored-turn requirements, dataModels/instanceSpaces pairing) are still enforced by cognite agents eval at runtime.
Last modified on August 21, 2026