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. generic and marketing-copilot keep the legacy row; --harness native emits the native envelope (target_component, turns, suite=regression, metadata.vector_id)
  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. A guardrail that forbids no tool the target can call is a hard fail. A catalog tool the target cannot call is a warning. Leftover {{...}} placeholders fail.

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

# native row (target_component, turns, suite=regression, metadata.vector_id)
agent-eval-planner agent.md --harness native -a analytics \
  --tools funnel_analytics,open_service_center_ticket -o ./out
agent-eval-planner validate ./out/suite.jsonl --schema native \
  --bound-tools funnel_analytics \
  --known-tools funnel_analytics,open_service_center_ticket \
  --target-components analytics

# 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 (legacy) or target_component (native)
--tools LIST Comma-separated real tool names. On native these are the tools bound to the target
--scope TEXT Declared scope summary
--harness NAME generic, marketing-copilot, or native
-o, --output PATH Output directory or single file
--plan-only / --suite-only / --remediations-only Emit a single artifact
-v, --version Show version

validate

Flag Description
--known-tools LIST Product catalog. With only this flag, every name is treated as bound (legacy suites)
--bound-tools LIST Tools wired to this target. Must be a subset of --known-tools
--schema NAME auto (default), legacy, or native. A file that mixes the two shapes fails
--target-components LIST Allowed target_component or legacy target_agent values
--suites LIST Allowed native suite values. Default: golden,regression,routing,calibration,production-sample
--agent-has-no-tools Agent truly has no tools. Do not combine with tool flags

suite: smoke is invalid on a native row; smoke lives in metadata.split. OK WITH WARNINGS does not mean the suite is ready to hand off. Any {{...}} left in the file fails, including runtime slots such as {{today_date}}.

Programmatic usage

import agent_eval_planner

result = agent_eval_planner.generate(
    input_path="agent.md",
    team="Platform Team",
    agent_name="analytics",
    tools=["funnel_analytics"],
    harness="native",
)

with open("evaluation-plan.md", "w", encoding="utf-8") as f:
    f.write(result.plan)

errors = agent_eval_planner.validate_suite(
    "out/suite.jsonl",
    known_tools=["funnel_analytics", "docs_search"],
    bound_tools=["funnel_analytics"],
    target_components=["analytics"],
    schema="native",
)

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.2.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.2.0
File Size Uploaded Provenance
agent_eval_planner-0.2.0.tar.gz 27.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for agent-eval-planner 0.2.0
File Interpreter ABI Platform
agent_eval_planner-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 55.1 kB

Release files / agent_eval_planner-0.2.0.tar.gz

Download URL agent_eval_planner-0.2.0.tar.gz
Size 27.4 kB
Tags Source
SHA-256 checksum
How to use checksums
7dc03a446a5b0c40dd72b782580b1f494580a21a6daa08b6e106db31ad7ed00e
BLAKE2b-256 checksum
How to use checksums
3b828893304c6de7ed85d338015e3437c0003712f00c6886e64398b6a903780d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.22

Release files / agent_eval_planner-0.2.0-py3-none-any.whl

Download URL agent_eval_planner-0.2.0-py3-none-any.whl
Size 27.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1533060e62dea34ec9b2d27da377a82bc7c0ff8368caaf8786f3ae14a6c1f8dc
BLAKE2b-256 checksum
How to use checksums
71d8e5b3cdc00ce201429a4da7f131f7f79564efee826e313b7753ca3189048a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.22

Security for agent-eval-planner 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

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