Observed since 20 Oct, 22:12 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Test and benchmark LLM-powered AI agents before deployment
Test and benchmark your AI agents before they go live.
AgenticAssure is an open-source SDK for testing, benchmarking, and validating LLM-powered AI agents. Define test scenarios in YAML, run them against your agent via a simple adapter, and get structured reports on quality and performance.
pip install agenticassure
For optional extras:
pip install agenticassure[similarity] # cosine similarity scorer
pip install agenticassure[openai] # OpenAI adapter
pip install agenticassure[langchain] # LangChain adapter
pip install agenticassure[all] # everything
# scenarios/support_agent.yaml
suite:
name: support-agent-tests
description: Validate our customer support agent
config:
default_timeout: 30
retries: 1
scenarios:
- name: greeting
input: "Hello, who are you?"
expected_output: "hello"
scorers:
- passfail
- name: order_lookup
input: "Look up order ORD-123"
expected_tools:
- get_order
expected_tool_args:
get_order:
order_id: "ORD-123"
scorers:
- passfail
- name: email_in_response
input: "What is your contact email?"
scorers:
- regex
metadata:
regex_pattern: "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}"
from agenticassure import AgentResult
class MyAgent:
"""Wrap your agent so AgenticAssure can call it."""
def run(self, input: str, context=None) -> AgentResult:
response = your_agent.invoke(input) # call your agent here
return AgentResult(
output=response.text,
tool_calls=[],
latency_ms=response.latency,
)
from agenticassure.loader import load_scenarios
from agenticassure.runner import Runner
from agenticassure.reports.cli_report import CLIReporter
suite = load_scenarios("scenarios/support_agent.yaml")
runner = Runner(adapter=MyAgent())
result = runner.run_suite(suite)
CLIReporter().report(result)
print(f"Pass rate: {result.pass_rate:.0%}")
print(f"Aggregate score: {result.aggregate_score:.2f}")
# Run scenarios with a custom adapter
agenticassure run scenarios/ --adapter mymodule.MyAgent
# Dry-run (validate without executing)
agenticassure run scenarios/ --dry-run
# Output as HTML or JSON
agenticassure run scenarios/ --adapter mymodule.MyAgent -o html
agenticassure run scenarios/ --adapter mymodule.MyAgent -o json
# Validate YAML without running
agenticassure validate scenarios/
# List all scenarios
agenticassure list scenarios/
Scenarios can use one or more scorers. A scenario passes only if all scorers pass.
| Scorer | Key | What It Checks |
|---|---|---|
| Pass/Fail | passfail | Output exists, expected tools called, tool args match, expected output found |
| Exact Match | exact | Exact string match against expected_output |
| Regex | regex | Pattern from metadata.regex_pattern matches output |
| Similarity | similarity | Cosine similarity via sentence-transformers (requires [similarity] extra) |
agenticassure/
core/ # Open-source agenticassure package (MIT)
pro/ # Commercial agenticassure-pro package
examples/ # Example scenarios and adapters
# Clone the repo
git clone https://github.com/agenticassure/agenticassure.git
cd agenticassure
# Install core in dev mode
pip install -e "core[dev]"
# Run tests
pytest core/tests/
# Lint and format
ruff check .
black --check .
Full documentation is available at docs.agenticassure.com.
Contributions are welcome! Please open an issue or submit a pull request on GitHub.
The core package is released under the MIT License.
The pro package is available under a commercial license -- see pro/ for details.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.4.0 | 13 Mar 2026 | 12 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 22:12 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:e85c2a144213f69fbb01587ec4287b0ccddeccb5a10d38d0eb9fbbc27fb3160b