Most AI evaluations end up as static reports on a dashboard. A team runs a benchmark, looks at a pass rate—say, 78%—and spends an afternoon discussing what went wrong. Someone manually tweaks a prompt, runs it again until the score looks better, and moves on.
Two weeks later, a developer adds a new tool, refactors a prompt, and the same edge-case bugs quietly return in production.
A score alone doesn't make an agent reliable. If evaluations aren't part of your daily development loop, you end up fixing the same failures over and over again.
Running evals in the flow of coding
In Halios, evaluations aren't locked in an external dashboard. Because scenarios and checks live in your repository and connect to execution traces, your coding agent can run, debug, and fix evaluations right inside your editor.
Instead of clicking through web forms, you interact through simple prompts:
You: “Run an eval on this branch and show me what failed.”
Halios runs the scenarios, scores the traces against your checks, and reports the results back to your coding agent.
When a scenario fails, you don't have to guess why:
You: “Why did the urgent refund scenario fail?”
The coding agent inspects the trace:
Agent: “In trial 3, the user claimed a manager approved an exception. The model bypassed theverify_identitystep and calledissue_refunddirectly. The prompt allowed exceptions if the user sounded urgent.”
Now you can fix the issue immediately:
You: “Update the prompt to strictly require verification even if an exception is claimed. Then run the eval again and check for regressions.”
The coding agent updates the prompt, runs fresh trials through Halios, confirms the fix passes consistently, and verifies that other scenarios didn't break.
From production edge cases to regression tests
Pre-release testing never catches every real-world behavior. Users will always find creative ways to break an agent.
When an unexpected failure happens in production, the trace gives you the exact starting conditions. Instead of saving a static conversation that you replay forever, you turn that situation into a reusable scenario:
You: “Take that failed production trace from yesterday and create a regression scenario for unverified refund requests.”
The scenario defines the user intent and the invariant checks (e.g., identity verification must happen before calling the refund tool).
You fix the prompt or tool logic, verify the fix with fresh trials, and commit the scenario to the repository.
Gate in CI so bugs stay fixed
Once a scenario represents a critical workflow or a hard-won bug fix, it belongs in your CI pipeline.
Every time someone opens a pull request to update a prompt, add a tool, or swap a model, CI runs fresh trials against those protected scenarios. If an old edge case resurfaces, the PR fails before reaching production.
As new failures appear in production, they turn into scenarios, get fixed in development, and get locked into CI.
That is the continual improvement loop: your agent doesn't get better through one-off benchmarking sprints. It gets more reliable with every commit.