agent-eval-planner
Site: saulofilho.github.io/agent-eval-planner-python
Python library that turns an agent contract (system prompt, tools, policy gates) into a guardrail evaluation pipeline:
- Action plan — SCOPE / INJECT / ROLE / PII / TOOL / HALLUC / EXFIL vectors
- suite.jsonl — executable cases with
forbidden_toolsfilled - Remediations — prompt / gate / evaluator quick wins
Sibling of security-pentest-planner, applied to LLM agents. Port of the Ruby gem agent_eval_planner.
Canonical smoke test: carrot cake (off-topic). If the agent answers with a recipe, its scope is not limited.
What it does
- Parses agent contracts (Markdown, text, JSON, YAML).
- Generates a Markdown eval plan, a JSONL suite, and remediations.
- Validates suites (hard-fail on empty
forbidden_tools/ leftover placeholders).
What it does NOT do
- Execute the evaluation against a live agent.
- Replace pentest of APIs/infra (use
security-pentest-planner).
Installation
pip install agent-eval-planner
Or using uv / poetry:
uv add agent-eval-planner
# or
poetry add agent-eval-planner
CLI usage
# Full pipeline → directory (plan + suite + remediations)
agent-eval-planner agent.md --tools funnel_analytics,open_service_center_ticket \
-t "Platform Team" -a analytics -o ./out
# Validate suite (hard-fail on empty forbidden_tools / placeholders)
agent-eval-planner validate ./out/suite.jsonl \
--known-tools funnel_analytics,open_service_center_ticket
# Plan only to stdout
agent-eval-planner agent.md --plan-only --agent analytics
Options
| Flag | Description |
|---|---|
-t, --team TEAM |
Team name in the document title |
-a, --agent NAME |
target_agent name |
--tools LIST |
Comma-separated real tool names |
--scope TEXT |
Declared scope summary |
--harness NAME |
generic or marketing-copilot |
-o, --output PATH |
Output directory or single file |
--plan-only / --suite-only / --remediations-only |
Emit a single artifact |
-v, --version |
Show version |
Programmatic usage
import agent_eval_planner
result = agent_eval_planner.generate(
input_path="agent.md",
team="Platform Team",
tools=["funnel_analytics", "open_service_center_ticket"],
)
with open("evaluation-plan.md", "w", encoding="utf-8") as f:
f.write(result.plan)
Publish to PyPI
python -m pip install build twine
python -m build
python -m twine upload dist/*
Development and testing
git clone https://github.com/saulofilho/agent-eval-planner-python.git
cd agent-eval-planner-python
python -m pip install .
python -m unittest discover -s tests -v
Recommended workflow
Agent contract → agent-eval-planner → Plan + suite.jsonl + remediations
↓
Harness / CI execution
↓
Failures + remediations
License
MIT — see LICENSE.
Metadata
Release files for agent-eval-planner 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agent_eval_planner-0.1.0.tar.gz | 20.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agent_eval_planner-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.0 kB
Release files / agent_eval_planner-0.1.0.tar.gz
| Download URL | agent_eval_planner-0.1.0.tar.gz |
|---|---|
| Size | 20.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9d92ad222b30979140fa04b3f978d76ebf29d713eb2557d1a87d03393728d1cc
|
|
BLAKE2b-256 checksum How to use checksums |
09b2a6bd36963847ac69199c28b05967810c1e03db3c853966853291709db78d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|
Release files / agent_eval_planner-0.1.0-py3-none-any.whl
| Download URL | agent_eval_planner-0.1.0-py3-none-any.whl |
|---|---|
| Size | 22.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c646a9b329ec8e2c8c6c73d114ecc8821475c8f0571c67a8216e61efcd6f9386
|
|
BLAKE2b-256 checksum How to use checksums |
5791c068a237749998325966c048b63012d7d9d21c611c8d507fdb09fd4737af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|