New in Agentry Gateway

Dynamic Multi-Agent Workflow Orchestration

Your AI planner writes the workflow at runtime. Agentry runs it.

Agentry executes multi-agent workflows that exist only as data: parallel fan out, sequential handoffs, and conditional branches, with timeouts, failure handling, and signed replies, across frameworks and organizations.

Why Static DAGs Fall Short

An LLM planner can emit a plan like "research in parallel, then synthesize if confident, otherwise ask a human". Something has to run that plan, and every existing layer stops short.

ToolOrchestratesWhy it does not run an AI-generated plan
KubernetesContainersNo notion of a step, a reply, or a dependency
Kubeflow, ArgoStatic DAGsThe DAG is compiled ahead of time, but this plan exists only at runtime
LangGraph, CrewAIGraphs inside one appOne ecosystem, context wired by hand, stops at your organization's boundary
A2AAgent to agent wireDefines how agents talk, not how work executes
MCPAgent to toolNot agent to agent at all

The Workflow Is Data on a Message

Add a coordination block to any AMTP message. The planner emits JSON, and the gateway executes it.

Parallel

Fan out to every participant at once. The workflow completes when all required_responses have answered.

Sequential

One agent at a time, in the order given by sequence. Each reply triggers dispatch of the next step.

Conditional

Evaluate the first reply against conditions and dispatch only the matching branch.

All three take a timeout in seconds and an optional stop_on_failure.

POST /v1/messages
{
  "sender": "planner@acme.com",
  "recipients": ["market@acme.com", "legal@acme.com", "competitor@partner.io"],
  "subject": "EU market entry research",
  "coordination": {
    "type": "parallel",
    "timeout": 600,
    "required_responses": ["market@acme.com", "legal@acme.com", "competitor@partner.io"],
    "stop_on_failure": true
  },
  "payload": { "question": "Should we enter the EU market?" }
}

One request. The response carries a workflow_id, and the planner is done until results come back. Participants can live behind other organizations' gateways, like competitor@partner.io here.

How a Workflow Runs

Workflow state lives in the gateway, not in the planner's context window.

  1. Initialize. The gateway assigns a workflow_id, records the participants and the deadline, and persists them.
  2. Dispatch. Each step is delivered to its agent by push (webhook) or pull (inbox), locally or across domains via DNS discovery.
  3. Reply. The agent answers with the workflow_id and response_type: workflow_response, or workflow_error to fail its step.
  4. Advance. The gateway checks that the sender is authenticated and still pending, updates state with an optimistic version check, then dispatches the next step, takes a branch, or finishes.
  5. Report. workflow@your-domain sends the planner one message with every participant's status and payload.

An agent's reply

# Agentry pushes each step to your webhook
@app.post("/webhook")
def on_message(msg: dict):
    result = research_graph.invoke(msg["payload"])
    requests.post(f"{GATEWAY}/v1/messages",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={
            "sender": "market@acme.com",
            "recipients": [msg["sender"]],
            "workflow_id": msg["workflow_id"],
            "response_type": "workflow_response",
            "payload": result,
        })

Plain HTTP, so any language or framework works. A Python SDK is available: pip install amtp.

The planner's result

{
  "workflow_id": "0199...",
  "coordination_type": "parallel",
  "status": "completed",
  "results": [
    { "address": "market@acme.com",
      "status": "completed", "payload": { } },
    { "address": "legal@acme.com",
      "status": "completed", "payload": { } },
    { "address": "competitor@partner.io",
      "status": "completed", "payload": { } }
  ]
}

Conditional Branching

Let an agent's answer decide what happens next, such as synthesis when a critic is confident and human review when it is not.

{
  "sender": "planner@acme.com",
  "recipients": ["critic@acme.com"],
  "coordination": {
    "type": "conditional",
    "timeout": 300,
    "conditions": [{
      "if": "confident == true",
      "then": ["synthesis@acme.com"],
      "else": ["human-review@acme.com"]
    }]
  },
  "payload": { "draft": "..." }
}
  • critic@acme.com replies, and the gateway evaluates the if expression against its payload
  • Only the matching branch is dispatched
  • Conditions support key == value on the reply payload today
  • Numeric comparisons, such as confidence > 0.8, are coming next

Built for Failure

Multi-agent workflows run for minutes or hours, cross networks, and depend on agents you do not control.

What goes wrongWhat Agentry does
An agent never answersA deadline sweeper marks the workflow and pending steps as timed out and notifies the sender
An agent failsA workflow_error reply fails the step, and stop_on_failure ends the workflow early
A step is dispatched twiceEach step has a deterministic idempotency key, so receivers drop the duplicate
Two replicas process replies at the same instantAn optimistic version check on shared PostgreSQL state, and the loser retries
A duplicate or forged reply arrivesIgnored: the participant is no longer pending, or the sender is not authenticated
The network blipsPer-message retries with exponential backoff and jitter

How Agentry Fits with MCP and A2A

Complementary, not competing: keep your agents and tools, and add the layer that runs the plan.

LayerQuestion it answersExample
MCPHow does an agent call a tool?Search, database, code runner
FrameworkHow is one agent built?LangGraph, CrewAI, your own loop
A2AHow do two agents talk?Agent cards, tasks, streaming
Agentry and AMTPHow does a multi-agent plan execute, across organizations?Addressing, durable delivery, workflow state, signatures
KubernetesWhere do the processes run?Pods, scaling, restarts

Use an orchestration engine when

  • Plans are generated at runtime, not drawn as graphs in code
  • Agents span frameworks, teams, or organizations
  • Steps outlive a process: minutes to hours, humans in the loop
  • You need timeouts, retries, and an audit trail of who said what

Stay with your framework when

  • One team, one framework, one process
  • Sub-second tool loops where a network hop is too expensive

Available Today and Coming Next

Works today

  • Parallel, sequential, and conditional workflows
  • Timeouts, stop on failure, idempotent steps
  • Conditions with key == value
  • Aggregated results returned to the sender
  • Domain signatures and DNS discovery across organizations

Coming next

  • Context shared automatically between agents in a workflow
  • Token-aware selection and summarization of forwarded context
  • Composite plans, such as parallel then conditional, as one workflow
  • Numeric conditions

Run Your First Workflow

Agentry Gateway is open source under Apache 2.0. Deploy it in minutes, or talk to us about Agentry Cloud.