Observed since 20 Oct, 22:01 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Agent Flow Test (AgentFT) - A simple evaluation harness for AI agents.
Agent Flow Test - Pytest for AI agents
AgentFT (Agent Flow Test) is a pytest-style evaluation framework for AI agents. It provides composable primitives for tasks, scenarios, agents, and judges, with production-ready infrastructure for concurrency, retries, observability, and regression control.
--config-json --strict-configaft orchestrate for sharded multi-process runs + mergeaft rank (Elo)aft migrateInstall from PyPI:
pip install agentft
Run an example:
git clone https://github.com/Geddydukes/agentflowtest
cd agentflowtest
aft run --config examples/config_example.py
Or use in code:
from agentft import RunConfig, run
from agentft.presets import build_math_basic_scenario, ExactMatchJudge
class MyAgent:
name = "my_agent"
version = "0.1.0"
provider_key = None
async def setup(self):
pass
async def reset(self):
pass
async def teardown(self):
pass
async def run_task(self, task, context=None):
return {"response": "42"}
config = RunConfig(
name="quick_test",
agents=[MyAgent()],
scenarios=[build_math_basic_scenario()],
judges=[ExactMatchJudge()],
)
results = run(config)
print(f"Passed: {sum(r.passed for r in results)}/{len(results)}")
aft runaft run --config path/to/config.py
Strict non-executable mode:
aft run --config-json path/to/config.json --strict-config
Useful overrides:
aft run --config examples/config_example.py \
--max-tasks-parallel 8 \
--max-agents-parallel 2 \
--max-judges-parallel 4 \
--artifact-backend sqlite \
--shard-count 4 --shard-index 1
aft summaryaft summary --run-dir runs/my_run/
Task-level rollup mode:
aft summary --run-dir runs/my_run/ --aggregation-level task --task-pass-rule majority
aft compareaft compare --run-a runs/base/ --run-b runs/candidate/
aft gateaft gate --run-a runs/base/ --run-b runs/candidate/ --max-regressions 0
aft analyzeaft analyze --run-dir runs/my_run/ --output-json runs/my_run/analytics.json
aft rejudgeaft rejudge --run-dir runs/my_run/ --config examples/config_example.py
aft mergeaft merge --run-dirs runs/shard0/ runs/shard1/ --output-dir runs/merged/
aft orchestrateaft orchestrate --config examples/config_example.py --shards 4 --output-dir runs/merged_orchestrated/
aft rankaft rank --run-dir runs/my_run/
aft migrateaft migrate --run-dir runs/legacy_run/ --target-schema 1.1.0
Each run creates runs/<run_id>/ containing:
results.jsonl or artifacts.dbtraces.jsonlrun_metadata.jsonrun_checkpoint.jsonagent_outputs.jsonl (JSONL backend cache, optional)cached_outputs table in artifacts.db (SQLite backend cache, optional)report.htmlRecent 5-run local validation matrix:
| Run | Mode | Path | Result | Notes |
|---|---|---|---|---|
| R1 | Baseline | runs/smoke_r1_baseline-5a5f7d3c | 4/4 (100%) | Control run |
| R2 | Parallel + Shuffle | runs/smoke_r2_parallel-0e22f470 | 4/4 (100%) | max_agents_parallel=2, max_tasks_parallel=4, seed=123 |
| R3 | SQLite + Cache | runs/smoke_r3_sqlite_cache-5890a078 | 4/4 (100%) | SQLite artifacts and cached outputs |
| R4 | Resume/Checkpoint | runs/smoke_r4_resume-e3bb2645 | 1/1 -> 4/4 (100%) | Early stop then resumed to completion |
| R5 | Orchestrated Shards | runs/smoke_r5_orchestrated | 4/4 (100%) | 2 shards + merged output |
Validation checks:
summary on R1: pass rate 100%compare R1 vs R2: delta 0.00%, regressions 0gate R1 vs R2: passedanalyze on R3: pass rate 100%, macro scenario rate 100%rejudge on cached outputs: 4/4 passedPass-rate bars:
██████████ 100%██████████ 100%██████████ 100%██████████ 100% (after resume)██████████ 100%A comprehensive guide for all updated functionality is available at:
docs/UPDATED_FUNCTIONALITY.mdAgentFT includes 90+ automated tests across runner behavior, storage backends, reporting, CLI, presets, plugins, and resilience checks.
pip install -e ".[dev]"
PYTHONPATH=src pytest -q
Optional columnar export dependency:
pip install -e ".[columnar]"
AgentFT is in active development.
Current version: 0.1.0
docs/API_STABILITY.mddocs/GOVERNANCE.mddocs/DOCS_UNIFICATION.mdDownload counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.2.0 | 12 Feb 2026 | 6 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 22:01 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:ff19ac54734af79267a067d300624066df2e04c1e0fcd0b847f9e65a7cc8ecef