ANNOUNCEMENT
Open source

Durable Execution for AI Agents

Built by the team at Orkes, Agentspan compiles your agent definitions into durable workflows, so execution state lives outside your process, tool calls retry automatically, and human approvals pause and resume without timeouts.

Your process dies. The agent doesn't.

What makes it click

Try these once. You won't ship agents any other way.

crash + resume

Your process dies.
The agent doesn't.

Your process crashes. The agent keeps running on the Agentspan server. Reconnect from any machine — it resumes from the exact step, no lost work.
from agentspan.agents import (
    start, AgentHandle, AgentRuntime,
)

handle = start(agent, "analyze 10k records")
# process dies 4 min in — agent lives on

# reconnect from any machine, any time
handle = AgentHandle(
    workflow_id="wf-f8a2c1",
    runtime=AgentRuntime(),
)   # picks up right where it left off
human-in-the-loop

One decorator.
Agents that wait.

Mark any tool as requiring approval. The agent pauses, holds state on the server with no timeout, and waits. Resume from Slack, a web portal, or code.
@tool(approval_required=True)
def process_refund(order_id, amount):
    """Refund — needs human approval."""
    ...

handle = start(agent, "refund #8821")
# agent pauses, state held on server

# approve from Slack, web, or code
handle.approve()
# or handle.reject("over limit")
# resumes from the exact waiting point
agent pipelines

Multi-agent in one expression.

Wire agents into pipelines with>>. Each output feeds the next — every step logged, crash-safe, and resumable across the full chain.
from agentspan.agents import Agent, run

researcher = Agent("researcher", ...)
writer     = Agent("writer", ...)
editor     = Agent("editor", ...)

# three agents, one expression, durable
result = run(
    researcher >> writer >> editor,
    "state of AI agents in 2026",
)
# each step: logged · crash-safe

Join the Developer Community

Ready to build agents that hold.