Skip to main content

AgentCICD

AgentCICD is an open-source engine for evaluating agent behavior before release. Define an evaluation as a folder containing declarative SQL, optional Python fixtures, inputs, and secret references. Run it locally, inspect the materialized stages and report artifacts, and keep the evaluation alongside the agent it protects.

The engine is designed for repeatable agent evaluation workflows: prepare cases, invoke agents or fixtures, score results, publish metrics or issues, and inspect the evidence behind a release decision.

What It Provides

  • Declarative evaluation stages written in AgentCICD SQL on top of Spark SQL.
  • Named batch and streaming tables that make preparation, generation, scoring, and reporting inspectable.
  • Python fixtures for reusable evaluators, tools, simulators, parsers, and target adapters.
  • A local sandbox manager that routes fixture calls while fixtures run independently.
  • Typed YAML inputs and local secret references, with scalar .properties compatibility.
  • Local run artifacts, reports, traces, tables, and an inspection UI.

Install

Install the engine with the Spark execution backend:

python -m pip install "agentcicd[spark]"

For local development:

git clone https://github.com/agentcicd/agentcicd.git
cd agentcicd
python -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[test,spark]'

Quick Start

Validate the included example without starting Spark:

agentcicd validate examples/quickstart

Run it with Spark and open the local inspector:

agentcicd run examples/quickstart --backend spark --open

agentcicd run prints a loopback URL. The inspector remains available while the command is running; stop it with Ctrl-C when you are finished reviewing the run.

Project Layout

An AgentCICD project is a directory.

support-eval/
  recipe.sql
  fixture_target.py
  fixture_judge.py
  inputs.yaml
  secrets.yaml
  agentcicd.toml
  • recipe.sql: Evaluation stages, fixture calls, scoring, and published outputs.
  • fixture_*.py: Optional Python functions available to the recipe as local.<function_name>.
  • inputs.yaml: Values for SQL DECLARE INPUT declarations. YAML supports scalars, lists, and objects when the declared type accepts them.
  • secrets.yaml: Local secret records. Reference a secret from inputs.yaml as secret.<KEY>; do not embed credentials in SQL or commit the file.
  • agentcicd.toml: Optional run configuration, including backend and parallel-stage settings.

The legacy input.properties and secret.properties formats remain supported for scalar values.

Minimal Recipe

CREATE BATCH TABLE cases
SELECT * FROM VALUES
  ('case-001', 'How do I reset my password?'),
  ('case-002', 'Where is my order?')
AS cases(case_id, message);

CREATE BATCH TABLE metric_rows
SELECT
  'case_count' AS metric,
  COUNT(*) AS value
FROM cases;

PUBLISH metric_rows TO REPORTS WITH (COMPONENT = METRIC);

Named tables are evaluation evidence. Use separate tables for preparation, target calls, parsing, scoring, and aggregates so a report change can be traced back to the relevant examples.

Python Fixtures

Fixtures hold reusable Python logic while recipes retain the evaluation dataflow:

from agentcicd import Str, function


@function
def normalize_answer(value: Str) -> Str:
    return value.strip().lower()

Save this as fixture_normalize.py, then call it from a recipe:

CREATE BATCH TABLE normalized
SELECT local.normalize_answer(value = message) AS message
FROM cases;

Fixture calls are routed through the sandbox manager. This preserves isolation and gives the run a single control point for fixture lifecycle, rate limits, and teardown.

Inputs And Secrets

Declare dependencies in SQL:

DECLARE INPUT target_url STRING;
DECLARE INPUT provider_key SECRET;
DECLARE INPUT threshold FLOAT DEFAULT 0.8;

Supply them locally:

# inputs.yaml
target_url: https://agent.example.test
provider_key: secret.OPENAI_API_KEY
threshold: 0.85
# secrets.yaml
OPENAI_API_KEY:
  type: api_key
  value: replace-with-local-value

Keep secrets.yaml out of version control. AgentCICD redacts secret values from local inspection artifacts, but you should still treat local secret files as credentials.

Commands

agentcicd validate path/to/project
agentcicd run path/to/project --backend spark
agentcicd ui serve path/to/project

Use --ui off for CI or non-interactive runs.

Development

Run the standalone engine test suite:

python -m pytest

The default suite validates the folder runner without requiring Spark. Spark and end-to-end tests are marked separately.

To change the local inspector UI:

cd ui
npm ci
npm run build

This rebuilds the static assets packaged with the Python distribution.

Documentation

License

No license has been selected yet. Add an OSI-approved license before inviting external contributors or distributing the repository as open source.

Metadata

Release files for agentcicd 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 agentcicd 0.1.0
File Size Uploaded Provenance
agentcicd-0.1.0.tar.gz 556.0 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for agentcicd 0.1.0
File Interpreter ABI Platform
agentcicd-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / agentcicd-0.1.0.tar.gz

Download URL agentcicd-0.1.0.tar.gz
Size 556.0 kB
Tags Source
SHA-256 checksum
How to use checksums
b5c99261b252bfcd09c7da4d680e9f2e694370f29dce318dd477a81a5fda922b
BLAKE2b-256 checksum
How to use checksums
9f3368cffb61a796f7828b5f12a08a6361bc350557b9f3b4ac6b045aa68a0fe3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.

Transparency log

Release files / agentcicd-0.1.0-py3-none-any.whl

Download URL agentcicd-0.1.0-py3-none-any.whl
Size 649.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ea8d6daf55cda1f07c261743eaf503b1c65c2c6c95b0e08e10b1df91123ffeca
BLAKE2b-256 checksum
How to use checksums
61448020ee707034e1a18643b923a4ae6d36f97b181929b9d3c07deb0bd96ee6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.

Transparency log

Security for agentcicd 0.1.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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for agentcicd-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.

Transparency log

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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full 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