Skip to content

feat(agno): instrument agno evals - #723

Merged
Abhijeet Prasad (AbhiPrasad) merged 1 commit into
mainfrom
abhi/agno-evals
Sep 1, 2026
Merged

Abhijeet Prasad (AbhiPrasad) merged 1 commit into
mainfrom
abhi/agno-evals

Conversation

@AbhiPrasad

Copy link
Copy Markdown
Member

Every agno.eval run becomes a Braintrust eval row: input, expected, output, scores. Agno's 1-10 scales and pass/fail verdicts normalize to 0-1; the raw values are kept alongside them.

from agno.eval.accuracy import AccuracyEval
import braintrust

braintrust.auto_instrument()
braintrust.init_logger(project="agno-agents")

AccuracyEval(agent=agent, input="...", expected_output="...").run()

Experiment:

braintrust.auto_instrument()
experiment = braintrust.init(project="agno-agents", experiment="v3")

A suite run opens an experiment of its own when none is already open, and logs one row per Case:

import sys

from agno.eval import Case, cli

sys.exit(cli(CASES))
multiplies_with_tool              eval row, scores {judge, reliability}
  |- Suite Calculator Agent.arun    agent under test
  |  `- OpenAI.aresponse_stream
  |- judge                          score span
  `- reliability                    score span

What each eval type contributes:

AccuracyEval      scores.accuracy     + a score span per iteration
AgentAsJudgeEval  scores.judge        + a score span per batch case
ReliabilityEval   scores.reliability  tool-call evidence in output
PerformanceEval   metrics only        agno spans stand down while measuring
suite Case        judge / reliability / scorer

Every `agno.eval` run becomes a Braintrust eval row: input, expected, output,
scores. Agno's 1-10 scales and pass/fail verdicts normalize to 0-1; the raw
values are kept alongside them.

```py
from agno.eval.accuracy import AccuracyEval
import braintrust

braintrust.auto_instrument()
braintrust.init_logger(project="agno-agents")

AccuracyEval(agent=agent, input="...", expected_output="...").run()
```

Experiment — open one, and rows route there instead:

```py
braintrust.auto_instrument()
experiment = braintrust.init(project="agno-agents", experiment="v3")
```

A suite run opens an experiment of its own when none is already open, and
logs one row per Case:

```py
import sys

from agno.eval import Case, cli

sys.exit(cli(CASES))
```

```
multiplies_with_tool              eval row, scores {judge, reliability}
  |- Suite Calculator Agent.arun    agent under test
  |  `- OpenAI.aresponse_stream
  |- judge                          score span
  `- reliability                    score span
```

What each eval type contributes:

```
    AccuracyEval      scores.accuracy     + a score span per iteration
    AgentAsJudgeEval  scores.judge        + a score span per batch case
    ReliabilityEval   scores.reliability  tool-call evidence in output
    PerformanceEval   metrics only        agno spans stand down while measuring
    suite Case        judge / reliability / scorer
```
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@AbhiPrasad
Abhijeet Prasad (AbhiPrasad) merged commit 50f316c into main Sep 1, 2026
83 checks passed
@AbhiPrasad
Abhijeet Prasad (AbhiPrasad) deleted the abhi/agno-evals branch September 1, 2026 13:19
@AbhiPrasad

Copy link
Copy Markdown
Member Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants