6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/omni_agent/eval/runner.rb', line 6
def self.run(eval_case, agent_class)
agent = agent_class.new
cache_key = Cache.key_for(
agent_class: agent_class,
run_alias: eval_case.configured_run_alias,
input: eval_case.configured_input,
context: eval_case.configured_context
)
cached = Cache.fetch(cache_key) { invoke_agent(agent, eval_case) }
run = Run.new(output: cached["output"], tool_calls: normalize_tool_calls(cached["tool_calls"]), agent: agent)
outcomes = eval_case.configured_assertions.map { |assertion| assertion.call(run) }
CaseResult.new(case_name: eval_case.name, outcomes: outcomes)
end
|