Skip to main content

agent-eval-planner

PyPI version Python Versions License: MIT

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:

  1. Action plan — SCOPE / INJECT / ROLE / PII / TOOL / HALLUC / EXFIL vectors
  2. suite.jsonl — executable cases with forbidden_tools filled
  3. 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
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)

Source distribution for agent-eval-planner 0.1.0
File Size Uploaded
agent_eval_planner-0.1.0.tar.gz 20.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agent-eval-planner 0.1.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page