High-performance multi-agent framework for stateful batched execution.
Project description
Efficient Agent Protocol (EAP)
Status: Experimental (pre-1.0). APIs and schema may change. See
STABILITY.mdandROADMAP.mdfor guarantees and planned milestones. Latest stable release:v0.1.7
Efficient Agent Protocol is a local-first framework for multi-step tool workflows.
It stores large outputs as pointer-backed state (ptr_*) and runs dependency-aware DAG steps in parallel.
Who This Is For
- Python developers building local-first agent/tool orchestration
- Teams that need pointer-backed state and execution trace visibility
Not ideal yet for:
- strict long-term API compatibility requirements before
v1.0 - non-technical users expecting zero-configuration onboarding
What You Get
- Pointer-based state to keep prompts small
- Parallel DAG execution with retries and validation
- Built-in chat UI (Streamlit) with trace + data inspection
- Conversation memory (full/window/summary)
- Pluggable pointer storage backends (SQLite, Redis, PostgreSQL)
Quickstart (GitHub-first)
Requirements:
- Python 3.9+
- Install
git clone https://github.com/GenieWeenie/efficient-agent-protocol.git
cd efficient-agent-protocol
pip install -e .
- Configure
cp .env.example .env
Minimum variables:
EAP_BASE_URL=http://localhost:1234
EAP_MODEL=nemotron-orchestrator-8b
EAP_API_KEY=not-needed
- Smoke test
python -m examples.01_minimal
- Run dashboard
pip install streamlit pandas
streamlit run app.py
- Use it
- Open
http://localhost:8501 - In Agent Chat, ask for a task
- Check Data Inspector for pointer payloads
- Check Execution Trace for step timing/retries/errors
Programmatic Example
from eap.protocol import StateManager
from eap.environment import AsyncLocalExecutor, ToolRegistry
from eap.environment.tools import read_local_file, READ_FILE_SCHEMA
from eap.agent import AgentClient
state_manager = StateManager()
registry = ToolRegistry()
registry.register("read_local_file", read_local_file, READ_FILE_SCHEMA)
executor = AsyncLocalExecutor(state_manager, registry)
architect = AgentClient(
base_url="http://localhost:1234",
model_name="nemotron-orchestrator-8b",
provider_name="local",
)
manifest = registry.get_agent_manifest()
macro = architect.generate_macro("Read README.md and summarize setup steps", manifest)
# asyncio.run(executor.execute_macro(macro))
Common Commands
python3 -m pytest -q
pre-commit run --all-files
python3 scripts/migrate_state_db.py --db-path agent_state.db --dry-run
python3 scripts/export_metrics.py --db-path agent_state.db --output metrics/latest.json
python3 -m build
Docs
STABILITY.mdROADMAP.mddocs/v1_contract.mddocs/release_notes_template.mddocs/benchmarks.mddocs/release.mddocs/v1_stabilization_checklist.mddocs/migrations.mddocs/observability.mddocs/maintainer_runbook.mdSECURITY.mdCONTRIBUTING.md- GitHub roadmap board: https://github.com/users/GenieWeenie/projects/1
docs/configuration.mddocs/architecture.mddocs/tools.mddocs/workflow_schema.mddocs/storage_lifecycle.mddocs/storage_backends.mddocs/sdk_contract.mddocs/distributed_execution.mddocs/troubleshooting.mddocs/eap_proof_sheet.md
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file efficient_agent_protocol-0.1.7.tar.gz.
File metadata
- Download URL: efficient_agent_protocol-0.1.7.tar.gz
- Upload date:
- Size: 45.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
409a9bb05317439e53cf7891905e77f05d18d74d5d1c5afede684b0a9a2e4dee
|
|
| MD5 |
98d05cd6efbd0d62847940cb9b4aa9df
|
|
| BLAKE2b-256 |
d3e728b449d1207aed29a0363210dced5c3465c4a69263573f57144f1a101978
|
Provenance
The following attestation bundles were made for efficient_agent_protocol-0.1.7.tar.gz:
Publisher:
release.yml on GenieWeenie/efficient-agent-protocol
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
efficient_agent_protocol-0.1.7.tar.gz -
Subject digest:
409a9bb05317439e53cf7891905e77f05d18d74d5d1c5afede684b0a9a2e4dee - Sigstore transparency entry: 981367161
- Sigstore integration time:
-
Permalink:
GenieWeenie/efficient-agent-protocol@aa3d8177d9e4551eb380d62f2d4450d81e920001 -
Branch / Tag:
refs/tags/v0.1.7 - Owner: https://github.com/GenieWeenie
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@aa3d8177d9e4551eb380d62f2d4450d81e920001 -
Trigger Event:
push
-
Statement type:
File details
Details for the file efficient_agent_protocol-0.1.7-py3-none-any.whl.
File metadata
- Download URL: efficient_agent_protocol-0.1.7-py3-none-any.whl
- Upload date:
- Size: 59.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
735af35bd6e10bd1b2a932f9f135a48e6882132f5e94a882560887266bb621ab
|
|
| MD5 |
04a5b079a535a2738dc685756ebd2f0d
|
|
| BLAKE2b-256 |
37e3564896a83a5a8c6d583a65a95563c41cbf8c875a23b78cc0cae8d10c9c12
|
Provenance
The following attestation bundles were made for efficient_agent_protocol-0.1.7-py3-none-any.whl:
Publisher:
release.yml on GenieWeenie/efficient-agent-protocol
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
efficient_agent_protocol-0.1.7-py3-none-any.whl -
Subject digest:
735af35bd6e10bd1b2a932f9f135a48e6882132f5e94a882560887266bb621ab - Sigstore transparency entry: 981367211
- Sigstore integration time:
-
Permalink:
GenieWeenie/efficient-agent-protocol@aa3d8177d9e4551eb380d62f2d4450d81e920001 -
Branch / Tag:
refs/tags/v0.1.7 - Owner: https://github.com/GenieWeenie
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@aa3d8177d9e4551eb380d62f2d4450d81e920001 -
Trigger Event:
push
-
Statement type: