Observed since 20 Oct, 20:11 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Standalone Agent Evaluation Framework (AEF)
AEF is a framework to generate tests, run/evaluate trajectories, collect feedback, and self-evolve agent behavior.
The workflow is intentionally minimal and framework-agnostic:
aef generate calls the generation component/toolaef evaluate calls the evaluation component/toolaef feedback calls the feedback component/toolaef evolve calls the evolution component/toolInternally, these are routed through an A2A bus so the same flow works for sub-agents implemented with different frameworks.
Install via pip or uv:
pip install aef-framework
or with uv:
uv pip install aef-framework
AEF uses uv for fast, reliable Python package management.
curl -LsSf https://astral.sh/uv/install.sh | sh
cd AEF
uv venv --python=3.11
This creates a .venv directory with Python 3.11 (or use 3.10, 3.12 as needed).
source .venv/bin/activate # Linux/macOS
# or
.venv\Scripts\activate # Windows
uv pip install -e .
This installs AEF and all dependencies, making the aef command available.
aef --help
If you prefer using pip:
python -m venv .venv
source .venv/bin/activate
pip install -e .
python, cli, http)aef generate --config configs/fleet_ccc_run.json --n 10
aef evaluate --config configs/fleet_ccc_run.json --golden run_YYYYMMDD_xxxxxx
aef feedback --agent fleet_ccc --text "Agent should ask confirmation before delete operations"
aef evolve --config configs/fleet_ccc_run.json --n 10
aef evolve now performs:
Set agent.adapter_type in your config:
python: ADK/Python agent entrypoint module_or_file.py:agent_varcli: shell command template using {step} / {goal} placeholdershttp: endpoint that accepts { goal, step, session_id? }See detailed usage in docs/USING_ANY_SUBAGENT.md.
--agent_endpoint)In addition to config-defined adapters, you can override execution at runtime:
--agent_endpoint is provided, AEF routes AUT calls through HTTP endpoint mode.--agent_endpoint is not provided, AEF keeps existing behavior (for example local --sub_agent / config adapter).Endpoint-mode guarantee:
POST /run.This is useful when the same agent can run locally in development and remotely in a hosted ADK/A2A service.
Examples:
# Generate through hosted endpoint
aef generate --config configs/fleet_ilo_run.json \
--agent_endpoint http://localhost:8086/docs/ --n 2
# Evaluate through hosted endpoint
aef evaluate --config configs/fleet_ilo_run.json \
--agent_endpoint http://localhost:8086/docs/ --golden run_YYYYMMDD_xxxxxx
# Evolve through hosted endpoint
aef evolve --config configs/fleet_ilo_run.json \
--agent_endpoint http://localhost:8086/docs/ --n 5
Notes:
/docs/ URLs are supported (AEF resolves them to API base).generate, evaluate, run, and evolve.ADK endpoint contract used by --agent_endpoint:
POST /apps/{app_name}/users/{user_id}/sessions/{session_id}POST /run{"appName","userId","sessionId","newMessage":{"role":"user","parts":[{"text":...}]},"streaming":false}409 Conflict during session creation is treated as expected session reuse.Trajectory logging in endpoint mode:
steps[].content stores assistant text response.steps[].tool_calls, steps[].tool_responses, and steps[].tools_used store tool trace data when present.Full prerequisites and onboarding checklist:
AEF components exposed through the internal bus:
generation.generateevaluation.evaluatefeedback.submit_textfeedback.submit_annotationsevolution.evolveEvolution applies and versions runtime amendments per agent under:
prompts/evolution_profiles/<agent>/latest.jsonprompts/evolution_profiles/<agent>/profile_<timestamp>.jsonThese profiles contain:
AEF includes a Next.js web interface for managing agents, running benchmarks, reviewing trajectories, and tracking evolution.
Run both the backend API and the web UI with a single command:
docker compose up -d
To rebuild after code changes:
docker compose up -d --build
To stop:
docker compose down
Your run database (
aef_runs.db), configs, outputs, and annotated data are bind-mounted from the repo root and persist across restarts.
Start the backend:
uvicorn aef.api.main:app --reload --port 8001
Start the UI:
cd aef-ui
npm install
npm run dev
Open http://localhost:3010. See aef-ui/README.md for full details.
| Page | Description |
|---|---|
| Dashboard | Score trends, model cost breakdown, runs-over-time — shows only COMPLETE runs |
| Agent Config | Register local Python agents or HTTP endpoints |
| Generate | Run trajectory generation with live progress, view past runs with expandable step-by-step conversations |
| Feedback | Review GENERATED trajectories with full multi-step detail, submit per-trajectory quality ratings |
| Evaluate | Select a golden trajectory run, re-execute and score against it with dimension radar charts |
| Evolve | Run self-improvement cycles on evaluated runs, manage memory deltas |
| Query | Browse runs, trajectories, evaluations and execute raw SQL |
Generate → (GENERATED) → Feedback → (COMPLETE) → Evaluate → (COMPLETE/REGRESSION) → Evolve
Each UI page filters to the appropriate pipeline stage so you only see runs relevant to that step.
# Generate
aef generate --config <config.json> --n 10
# Generate via hosted endpoint override
aef generate --config <config.json> --agent_endpoint <http://host:port/docs/> --n 10
# Direct A2A tool call
aef a2a --config <config.json> --component generation --tool generate --payload '{"n": 2}'
# Evaluate golden by run id
aef evaluate --config <config.json> --golden <run_id>
# Evaluate via hosted endpoint override
aef evaluate --config <config.json> --agent_endpoint <http://host:port/docs/> --golden <run_id>
# Feedback
aef feedback --agent <agent_name> --text "..."
# Evolve
aef evolve --config <config.json> --n 10
# Evolve via hosted endpoint override
aef evolve --config <config.json> --agent_endpoint <http://host:port/docs/> --n 10
# Compare two eval runs
aef compare --run <run_a> --vs <run_b>
# Query runs / memory
aef query runs --agent <agent_name>
aef query memory --agent <agent_name> --all-memory
aef query memory --agent <agent_name> --history
Contributions are welcome! See CONTRIBUTING.md for development setup and guidelines.
AEF is released under the Apache License 2.0. See LICENSE for details.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.5 | 6 May 2026 | 13 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 20:11 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:eecf65a91056d32a6df1929e9d9546fda9d230367141405e1a24b63b1f9c6697