OpenAgent Eval
The open-source evaluation framework for RAG systems and AI Agents.
Local-first. Framework-agnostic. Developer-friendly.
Why OpenAgent Eval?
Evaluating RAG systems shouldn't require a PhD or a cloud account. OpenAgent Eval brings pytest-level simplicity to AI evaluation — run from your terminal, get actionable insights, and ship with confidence.
- Local-first — No cloud services, dashboards, or authentication required
- Framework-agnostic — Works with LangChain, LlamaIndex, or any custom RAG pipeline
- 18+ metrics — Retrieval, generation, faithfulness, relevancy, performance, and cost
- Plugin-based — Extend with custom metrics, providers, and report generators
- Production-ready — Corpus auditing, failure diagnosis, and synthetic test data generation
Installation
pip install openagent-eval
For development:
git clone https://github.com/OpenAgentHQ/openagent-eval.git
cd openagent-eval
uv sync
Quick Start
1. Initialize Configuration
oaeval init --interactive
2. Validate Configuration
oaeval validate config.yaml
3. Run Evaluation
oaeval run config.yaml
4. View Results
oaeval report latest
Features
| Feature | Description |
|---|---|
| CLI + SDK | Use via command line or import as a Python library |
| Beautiful Reports | Terminal, Markdown, HTML, and JSON output formats |
| Failure Analysis | Identify why evaluations fail, not just that they failed |
| Corpus Health Auditor | Detect contradictions, staleness, and duplicates before evaluation |
| LLM-as-Judge Metrics | NLI-based scoring for faithfulness and relevancy |
| Component Diagnosis | Blame attribution — retrieval vs generation vs chunking |
| Synthetic Test Data | Auto-generate test cases from your knowledge base |
Evaluation Metrics
Retrieval Metrics
- Context Precision & Recall
- Precision@K & Recall@K
- Hit Rate
- Mean Reciprocal Rank (MRR)
- Normalized Discounted Cumulative Gain (NDCG)
Generation Metrics
- Faithfulness (NLI-based)
- Answer Relevancy (NLI-based)
- Hallucination Detection
- Semantic Similarity
- Exact Match & F1 Score
- BLEU & ROUGE
- BERTScore
- LLM-as-Judge (custom criteria)
Performance & Cost
- Latency tracking (embedding, retrieval, LLM stages)
- Token counting (prompt, completion, total)
- Cost estimation per provider
Supported Providers
LLM Providers: OpenAI · Anthropic · Google Gemini · Groq · OpenRouter · Ollama
Retriever Providers: Chroma · Qdrant · Pinecone · Weaviate · FAISS · pgvector · Elasticsearch · BM25
CLI Reference
| Command | Description |
|---|---|
oaeval init |
Create configuration file (interactive wizard) |
oaeval run <config> |
Run evaluation pipeline |
oaeval report <id> |
View evaluation reports |
oaeval compare <a> <b> |
Compare two experiments |
oaeval list |
List previous evaluations |
oaeval validate <config> |
Validate configuration |
oaeval doctor |
Check environment and dependencies |
oaeval audit --corpus <path> |
Audit corpus health |
oaeval diagnose --report <id> |
Diagnose failures and attribute blame |
oaeval synth --corpus <path> |
Generate synthetic test cases |
SDK Usage
from openagent_eval.core import Engine
from openagent_eval.config import load_config
config = load_config("config.yaml")
engine = Engine(config)
report = await engine.run(dataset)
print(report.summary)
Project Structure
openagent-eval/
├── openagent_eval/
│ ├── cli/ # CLI commands (Typer)
│ ├── config/ # Configuration system (Pydantic)
│ ├── core/ # Core orchestration engine
│ ├── metrics/ # 18+ evaluation metrics
│ ├── providers/ # LLM & Retriever adapters
│ ├── corpus/ # Corpus Health Auditor
│ ├── diagnosis/ # Component Diagnosis
│ ├── synthesis/ # Synthetic Test Data
│ ├── reports/ # Report generators
│ └── plugins/ # Plugin system
├── tests/ # Test suite
├── docs/ # Documentation
└── examples/ # Tutorials and examples
Contributing
We welcome contributions of all kinds. Whether you're fixing a bug, adding a feature, or improving documentation — we'd love your help.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
See CONTRIBUTING.md for detailed guidelines.
Community
- Documentation
- GitHub Issues — Bug reports and feature requests
- GitHub Discussions — Ideas and questions
- Changelog — Release history
License
Licensed under the Apache License, Version 2.0. See LICENSE for details.
Built with care by the OpenAgent community.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file openagent_eval-0.4.8.tar.gz.
File metadata
- Download URL: openagent_eval-0.4.8.tar.gz
- Upload date:
- Size: 165.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dccb94ab83958b901018c31f4e0fe2607b2b5f91e6f7874c3c7e05b2b478039e
|
|
| MD5 |
3f5e07abe4087ba6d328ae31eb4fe7ef
|
|
| BLAKE2b-256 |
9daa1ad2710c7bb8127f46883fb91f68ce3258ee732fa582991c1f7520ca37df
|
Provenance
The following attestation bundles were made for openagent_eval-0.4.8.tar.gz:
Publisher:
release.yml on OpenAgentHQ/openagent-eval
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openagent_eval-0.4.8.tar.gz -
Subject digest:
dccb94ab83958b901018c31f4e0fe2607b2b5f91e6f7874c3c7e05b2b478039e - Sigstore transparency entry: 2227945022
- Sigstore integration time:
-
Permalink:
OpenAgentHQ/openagent-eval@e1d6122e250aee85f65aeabfeea0966b0e7eddbf -
Branch / Tag:
refs/tags/v0.4.8 - Owner: https://github.com/OpenAgentHQ
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e1d6122e250aee85f65aeabfeea0966b0e7eddbf -
Trigger Event:
push
-
Statement type:
File details
Details for the file openagent_eval-0.4.8-py3-none-any.whl.
File metadata
- Download URL: openagent_eval-0.4.8-py3-none-any.whl
- Upload date:
- Size: 255.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddc2e475d83e0c676a265a3cba50cfb4900417e86c9460807bf5b9c4b43e7a07
|
|
| MD5 |
ab4aaaca62d2f44cb2420febd4575c51
|
|
| BLAKE2b-256 |
e988195aea55a184229face887f3c34bae711dcdaa4e752c461e7a1fa4503c34
|
Provenance
The following attestation bundles were made for openagent_eval-0.4.8-py3-none-any.whl:
Publisher:
release.yml on OpenAgentHQ/openagent-eval
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openagent_eval-0.4.8-py3-none-any.whl -
Subject digest:
ddc2e475d83e0c676a265a3cba50cfb4900417e86c9460807bf5b9c4b43e7a07 - Sigstore transparency entry: 2227945386
- Sigstore integration time:
-
Permalink:
OpenAgentHQ/openagent-eval@e1d6122e250aee85f65aeabfeea0966b0e7eddbf -
Branch / Tag:
refs/tags/v0.4.8 - Owner: https://github.com/OpenAgentHQ
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e1d6122e250aee85f65aeabfeea0966b0e7eddbf -
Trigger Event:
push
-
Statement type: