Skip to main content

Agent Flow Matrix Execution Engine — production-grade execution fabric for autonomous agents

Project description

AFMX — Agent Flow Matrix Execution Engine

"Tag your agent's cognitive intent once. Get 60–90% cheaper LLM costs automatically, with a full audit trail. No rewrites. Works with LangGraph, CrewAI, OpenAI, MCP, and anything else you're already running."

CI PyPI Python License

The one-line pitch

from afmx import Node, CognitiveLayer

# Add ONE field to your existing node.
# AFMX auto-routes: cheap model for retrieval/action, premium for reasoning/planning.
node = Node(name="analyse", handler="my_agent", cognitive_layer=CognitiveLayer.REASON)
# → Claude Opus / GPT-4o selected automatically
# → cheaper layers get Haiku / gpt-4o-mini automatically
# → every node result logged to tamper-evident audit trail
# → visual heatmap shows cost + model per cell

AFMX is the production execution fabric for autonomous agents. Deterministic, fault-tolerant, built like infrastructure.

Docs


What is AFMX?

AFMX is a production-grade, deterministic execution fabric for autonomous agents. It is not an agent reasoning framework — it is the layer that controls how agents act reliably in production.

Your Agent Logic  (LangChain / LangGraph / CrewAI / OpenAI / custom Python)
        ↓
ExecutionMatrix   (DAG: nodes + edges + mode + abort policy)
        ↓
AFMXEngine
        ↓
Deterministic execution:
  retry · fallback · circuit breaker · hooks · events · audit · RBAC

Install

pip install afmx

With extras:

pip install "afmx[redis,metrics]"    # Redis store + Prometheus
pip install "afmx[full]"             # everything except framework adapters
pip install "afmx[dev]"              # development + testing toolchain

Quick Start

python3.10 -m afmx serve --reload
# API:       http://localhost:8100
# Docs:      http://localhost:8100/docs
# Dashboard: http://localhost:8100/afmx/ui
curl -s -X POST http://localhost:8100/afmx/execute \
  -H "Content-Type: application/json" \
  -d '{
    "matrix": {
      "name": "research-pipeline",
      "mode": "SEQUENTIAL",
      "nodes": [
        {"id":"analyst",  "name":"analyst",  "type":"AGENT","handler":"analyst_agent"},
        {"id":"writer",   "name":"writer",   "type":"AGENT","handler":"writer_agent"},
        {"id":"reviewer", "name":"reviewer", "type":"AGENT","handler":"reviewer_agent"}
      ],
      "edges": [
        {"from":"analyst","to":"writer"},
        {"from":"writer","to":"reviewer"}
      ]
    },
    "input": {"topic": "Production multi-agent systems in 2026"}
  }' | python3 -m json.tool

Live demo — 7 multi-agent scenarios

pip install httpx
python demo_multiagent.py --scenario all

Core Features

Layer Responsibility
ExecutionMatrix DAG of nodes and edges — the execution topology
AFMXEngine SEQUENTIAL, PARALLEL, HYBRID orchestration
NodeExecutor Per-node execution with retry, timeout, circuit breaker
RetryManager Exponential backoff + jitter + per-node circuit breaker
ToolRouter Deterministic rule-based tool selection
AgentDispatcher Routes agents by complexity, capability, or policy
HookRegistry PRE/POST node and matrix hooks
EventBus Every state transition emits an observable event
ConcurrencyManager Global semaphore with queue timeout
StateStore In-memory or Redis-backed execution persistence
MatrixStore Named, versioned matrix definitions
CheckpointStore Per-node incremental checkpoints for resumability
AuditStore Append-only audit trail (JSON/CSV/NDJSON export)
RBACMiddleware 5 roles × 16 permissions API key authentication
PluginRegistry Decorator-first handler registration

Fault Tolerance

from afmx import Node, RetryPolicy, CircuitBreakerPolicy, TimeoutPolicy

Node(
    name="external_api",
    handler="api_call",
    retry_policy=RetryPolicy(
        retries=5,
        backoff_seconds=1.0,
        backoff_multiplier=2.0,   # 1s → 2s → 4s → 8s → 16s
        jitter=True,
    ),
    circuit_breaker=CircuitBreakerPolicy(
        enabled=True,
        failure_threshold=5,
        recovery_timeout_seconds=60.0,
    ),
    fallback_node_id="api_fallback",
)

Framework Adapters

from afmx.adapters.langchain import LangChainAdapter
from langchain.tools import DuckDuckGoSearchRun

adapter = LangChainAdapter()
node = adapter.to_afmx_node(DuckDuckGoSearchRun(), node_id="search")

Built-in adapters: LangChain · LangGraph · CrewAI · OpenAI — all lazy-loaded.


Registering Handlers

from afmx.plugins import default_registry

@default_registry.agent("my_analyst")
async def analyst(node_input: dict, context, node) -> dict:
    return {"analysis": "...", "confidence": 0.87}

@default_registry.tool("web_search")
async def search(node_input: dict, context, node) -> dict:
    return {"results": await run_search(node_input["input"])}

Cognitive Execution Matrix

AFMX v1.2 introduces the Cognitive Execution Matrix — a 2D coordinate system that maps every node to a cognitive layer (what type of thinking) and an agent role (which domain role performs it).

                  ROLES (open, domain-specific)
                  OPS   ANALYST  QUANT  CLINICIAN  PARALEGAL
LAYERS  PERCEIVE   ■      □       □       □          □
(fixed) RETRIEVE   ■      □       ■       □          □
        REASON     □      ■       ■       ■          □
        PLAN       ■      □       □       ■          ■
        ACT        ■      □       ■       □          □
        EVALUATE   □      ■       □       ■          □
        REPORT     ■      □       □       □          □

Row axis = CognitiveLayer (fixed, universal, drives automatic LLM cost routing). Column axis = AgentRole (open string — any industry vocabulary).

from afmx import Node, NodeType, CognitiveLayer
from afmx.domains.finance import FinanceRole

# Finance domain node
node = Node(
    name            = "risk-scorer",
    type            = NodeType.AGENT,
    handler         = "risk_model",
    cognitive_layer = CognitiveLayer.REASON,    # → premium LLM auto-selected
    agent_role      = FinanceRole.RISK_MANAGER, # == "RISK_MANAGER"
)

# Healthcare domain node
from afmx.domains.healthcare import HealthcareRole
node = Node(
    name            = "diagnosis",
    type            = NodeType.AGENT,
    handler         = "diagnostic_model",
    cognitive_layer = "REASON",
    agent_role      = HealthcareRole.CLINICIAN,
)

# Custom domain — any UPPER_SNAKE_CASE string is valid
node = Node(
    cognitive_layer = "PLAN",
    agent_role      = "DISPATCHER",   # logistics domain
    ...
)

Built-in domain packs: tech · finance · healthcare · legal · manufacturing. Custom domains: register in 8 lines with DomainPack + domain_registry.

LLM cost routing (automatic)

The CognitiveModelRouter auto-selects models by cognitive layer:

PERCEIVE / RETRIEVE / ACT / REPORT  →  cheap model  (Haiku, gpt-4o-mini)
REASON   / PLAN     / EVALUATE      →  premium model (Opus, o3, gpt-4o)

Typical result: 60–90% LLM cost reduction on multi-agent workflows.


REST API

Method Endpoint Description
POST /afmx/execute Execute matrix synchronously
POST /afmx/execute/async Execute and return immediately
GET /afmx/result/{id} Full result with node outputs
POST /afmx/validate Validate matrix without executing
POST /afmx/retry/{id} Retry failed execution
POST /afmx/resume/{id} Resume from checkpoint
POST /afmx/matrices Save named matrix
GET /afmx/executions List recent executions
GET /afmx/matrix-view/{id} Cognitive Matrix view for an execution
GET /afmx/domains List all domain packs
GET /afmx/domains/{name} Get a domain pack by name
GET /afmx/audit Query audit log
WS /afmx/ws/stream/{id} Real-time event streaming
GET /health Health check
GET /metrics Prometheus metrics

Dashboard

cd afmx/dashboard
npm install && npm run build   # served at /afmx/ui
npm run dev                    # hot-reload at localhost:5173

Pages: Overview · Executions · Live Stream · Run Matrix · Saved Matrices · Plugins · Cognitive Matrix · Domain Packs · Audit Log · API Keys

Run Matrix includes cross-domain templates: cognitive (SRE) · finance · healthcare · legal.


Observability

@bus.subscribe(EventType.NODE_FAILED)
async def on_fail(event):
    await alert_team(event.execution_id, event.data["error"])

Prometheus metrics at GET /metrics. WebSocket streaming at WS /afmx/ws/stream/{id}.


Agentability Integration

AFMX integrates with Agentability — captures confidence scores, reasoning chains, token costs, and conflict detection per node execution.

AFMX_AGENTABILITY_ENABLED=true
AFMX_AGENTABILITY_DB_PATH=agentability.db
python demo_agentability.py

Docker

docker build -t afmx:latest .
docker run -p 8100:8100 --env-file .env afmx:latest

# Full stack: AFMX + Redis + Prometheus
docker-compose up -d

Testing

pytest                              # 290+ tests
pytest tests/unit/ -v               # unit only
pytest tests/integration/ -v        # integration only
pytest --cov=afmx --cov-report=html # coverage report

Documentation

Doc Description
Architecture Layers, data flow, AFMX vs Airflow/Temporal/LangGraph
Core Concepts Node, Edge, Matrix, Context, Record
Quick Start 5-minute setup guide
Handlers Writing and registering handlers
Matrix Design Modes, edge conditions, variable resolver
API Reference All REST endpoints
Adapters LangChain, LangGraph, CrewAI, OpenAI
Hooks PRE/POST hooks
Observability EventBus, Prometheus, WebSocket, Agentability
Configuration All AFMX_ environment variables
Testing Running the test suite
Deployment Docker, Oracle Cloud, production hardening

AFMX vs alternatives (March 2026)

AFMX 1.2 LangGraph 1.0 OpenAI Agents SDK CrewAI
Deterministic ordering ❌ LLM-dependent
Per-node fault tolerance ✅ Retry + CB + fallback ❌ Manual ⚠️ Basic
Full audit trail ✅ Append-only, exportable ⚠️
Cognitive cost routing ✅ 60-90% LLM cost reduction
Cross-industry domains ✅ 5 built-in + custom
Execution resume ✅ Checkpoint-based
RBAC + multi-tenancy
Cognitive Matrix UI

Mental model: AFMX = how agents act. LangGraph = how agents think. They are complementary — AFMX can execute LangGraph graphs as nodes.


Contributing

See CONTRIBUTING.md. All contributions welcome.


License

Apache 2.0 — see LICENSE.

Enterprise features (multi-tenancy, SSO/OIDC, cryptographic execution integrity, distributed workers, cost governance, AFMX Cloud) available under a separate commercial license. See ENTERPRISE.md or contact support@inteleion.com.

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

afmx-1.3.0.tar.gz (161.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

afmx-1.3.0-py3-none-any.whl (198.5 kB view details)

Uploaded Python 3

File details

Details for the file afmx-1.3.0.tar.gz.

File metadata

  • Download URL: afmx-1.3.0.tar.gz
  • Upload date:
  • Size: 161.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for afmx-1.3.0.tar.gz
Algorithm Hash digest
SHA256 c962910d226591002801f91d0b46399e3ada594135fc0d2790553cb5e800f1e9
MD5 370d5ce215512ef77939e2334af95ca1
BLAKE2b-256 305c38e0fcbd1c5786ca69e12e21cca7ec08f7d2e712eb1860470e6e84c8a853

See more details on using hashes here.

Provenance

The following attestation bundles were made for afmx-1.3.0.tar.gz:

Publisher: publish.yml on inteleion-ai/AFMX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file afmx-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: afmx-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 198.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for afmx-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7bfec46c03a0f0e6a7069d0b1c57fb485289b6a55f83c5ed39c32c182b3a9282
MD5 4c95ae376b809f02596e99ad28998d74
BLAKE2b-256 0cde5bcee36427ef68cc64b2385d85ca510b0ef09694fa133eb7f1ae4abec998

See more details on using hashes here.

Provenance

The following attestation bundles were made for afmx-1.3.0-py3-none-any.whl:

Publisher: publish.yml on inteleion-ai/AFMX

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page