evalkit
Health Pass
- License — License: AGPL-3.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 12 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Self-hosted system for improving AI agents, by InferEdge
evalkit
By InferEdge.
Make your AI agent better, end to end.
evalkit is a self-hosted system for improving AI agents. Real traffic goes
in; a better agent comes out, with evals your domain experts signed off on.
TL;DR Mine failures from your agent's real runs and turn them into
eval cases. Your domain experts review the cases in plain language, so
"right" means what the business means. Run them, read every trajectory,
and get file-cited fixes for your prompts, tools and skills. Apply,
re-run, repeat until green. Your coding agent drives the loop with
evalkit's skills; evalkit keeps the cases, reviews, runs and history.
flowchart LR
T["Your agent's<br/>real runs"] -->|mine| C["New cases"]
C -->|review| R["Approved cases"]
R -->|run| S["Scores +<br/>trajectories"]
S -->|diagnose| F["File-cited fixes"]
F -->|apply| A["Better agent"]
A -->|re-run| S
A -.->|new runs| T
How evalkit improves your agent
- Find what goes wrong. Pull a batch of your agent's app runs from
production, staging or manual testing. Your coding agent analyzes each
one, groups the failure patterns and drafts eval cases. - Agree on what right looks like. Domain experts read each case as a
question and the facts a right answer must contain, then approve it,
comment, or send it back with changes. Approved cases are promoted to
your production suite. - Measure it. evalkit runs the cases against your agent, keeps the full
trajectory of every run (messages, reasoning, tool calls, tokens, cost,
timing) and scores it with LLM-judged rubrics, built-in tool-call checks
and your own evaluators. - Fix it. Your coding agent pulls the failed runs, diagnoses each one,
and proposes fixes that name the prompt, tool description, skill or data
source to change. - Prove it. Apply the fixes, re-run, and compare the two experiments
case by case: what got fixed, what broke. The cases stay as regression
guards for every change after.
Steps 1, 4 and 5 run as agent skills (evalkit skills install) in Claude
Code or another coding agent. Alongside them are skills for writing cases
with a domain expert and connecting your traces.
Developers and domain experts, one loop
An agent is only as good as the definition of "right" it is tested
against. Developers know the prompts, tools and harness; domain experts
know what a correct answer is. evalkit gives each side its own view of the
same cases.
- Cases in plain language. A case is a question plus rubrics, one
sentence each: "States 17,133 company-operated stores at FY2021
year-end." An expert can read and judge it without reading code. The
case-authoring skill interviews the expert in their own terms and writes
the YAML. - Review in the web UI. Unreviewed → Review requested → Approved, or
Changes requested with a comment. Threaded comments sit on the case, and
each case keeps a changelog of every sync and decision. Review never
filters a run: every case runs, and approval decides which version is
promoted. - Workspaces. Each developer has a personal workspace to iterate in
without touching anyone's results. Shared workspaces such asdevandprodhold the team's datasets, agents and experiments, withwriter
andreviewermembers. - Promotion. Link
devtoprod, and approving a case indevcopies
that exact version intoprod. Your prod suite only ever holds reviewed
cases.
It's that simple
# eval/cases/smoke/cases.yaml
cases:
- id: store-count
input:
question: "How many company-operated stores did Starbucks have at FY2021 year-end?"
evaluators:
output:
answer_rubrics:
rubrics:
- rubric: "States 17,133 company-operated stores at FY2021 year-end."
type: factual_retrieval
# eval/run.py
from evalkit.sdk import run_experiment, tracing
from myagent import ask
tracing.register(agent="myagent") # your agent's spans become its trajectory
def task(input: dict) -> str:
return ask(input["question"])
result = run_experiment(dataset="smoke", agent="myagent", task=task)
print(result.url) # the scorecard in the web UI
Why evalkit
- Failures you can read. Open a low score and see exactly what the agent
did, step by step. - Plug in your traces. Already emitting OpenTelemetry spans with
OpenInference or GenAI conventions? evalkit maps them into trajectories.
Any harness, any model. - See your app runs too. Browse your agent's real runs with their
latency, tokens, cost and tool calls, not just eval runs. - Graders you choose. Any OpenAI-compatible model as the judge, and your
own evaluators in Python or over HTTP. - Cases are code. They live in your repository and sync from CI, like
the rest of your code.
Run your own evalkit
- Try it locally.
pip install "evalkit-py[server]", thenevalkit init-serveragainst a local Postgres, or use Docker.
Try locally starts the server on your machine,
judges with your LLM, and runs a sample agent through an SDK run with
traces. - Deploy it for your team. The
evalkit-deployment skill covers the
server image, Postgres, blob storage, the judge, migrations, users and
workspaces. Config and deploy
has the config reference and the compose setup. - Connect your agent.
- SDK runs with Tracing
and Mappings: the default path. - Harness API: when the server should drive
your agent.
- SDK runs with Tracing
Use a team's evalkit
If your team already runs a server, open its /docs page: the same pages,
with your server's URL filled in. Start with the
Quickstart.
On GitHub, {{origin}} in the docs stands for your server's URL.
Reference
The docs and the Python SDK reference are published at
inferedge-ai.github.io/evalkit.
- Concepts: the terms
- Install, Login,
Config, Workspaces skills/: agent skills for authoring cases, eval-driven development,
connecting traces and day-to-day use.evalkit skills installcopies them
into your repository.
Feedback
- Bugs, feature requests and feedback: open an
issue. - Questions: ask in
Discussions. - Security vulnerabilities, or anything else: email
[email protected]. Don't post
vulnerabilities in a public issue.
evalkit doesn't take pull requests, but issues are very welcome: a clear
bug report or idea helps just as much.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found