State that survives crashes
An agent loop that holds its state in process memory is one OOM kill or redeploy away from losing the run. Unmeshed persists every step instead, so runs resume rather than restart from scratch.
Combine deterministic workflows with agentic steps. Your agents get durable state, automatic retries, human-in-the-loop approvals, and full observability, straight from the creators of Netflix Conductor.
Free tier · No credit card required
# agent_flow.py — an AI agent step inside a durable workflow
from unmeshed.sdk.configs.client_config import ClientConfig
from unmeshed.sdk.unmeshed_client import UnmeshedClient
from unmeshed.sdk.apis.workers.worker import Worker
from unmeshed.sdk.common.process_request_data import ProcessRequestData
def fetch_context(input_dict: dict) -> dict:
# Deterministic step: gather the data your agent reasons over
return {"account": load_account(input_dict["account_id"])}
client = UnmeshedClient(ClientConfig())
client.register_worker(
Worker(execution_method=fetch_context, name="fetch-context")
)
client.start()
# The "agent-triage" process chains this worker with an `llm` step
# that drafts a fix from {{fetch-context.output}}, plus a review
# step a human approves before anything ships.
# Failed steps retry per error policy:
# { "action": "RETRY", "retryCount": 2, "retryInterval": 5000 }
# TODO: confirm SDK method names for programmatic approvals
result = client.run_process_sync(ProcessRequestData(
name="agent-triage",
namespace="default",
input={"account_id": "acct_204"},
))The Problem
An agent loop that holds its state in process memory is one OOM kill or redeploy away from losing the run. Unmeshed persists every step instead, so runs resume rather than restart from scratch.
Retry policies are declared per step: count, interval, and backoff, instead of try/except blocks scattered across every LLM and API call.
When an agent does something surprising, you get the exact inputs, outputs, and retries for every step. No scrolling through stdout to figure out what happened.
Capabilities
Every run's state is persisted by the engine, so crashes, deploys, and restarts resume exactly where they left off.
Failed steps retry on policy, with configurable count, interval, and backoff. You don't need to write retry logic into your agent code.
Pause a run for review and resume on approval, so agents never ship risky actions unattended.
Inspect every step's input, output, and retry history. It's a complete audit trail for every agent decision.
Unmeshed is MCP-native, so your agents and tools speak a standard protocol out of the box.
Coordinate many agents in one workflow, with standard cron scheduling down to one-minute intervals and event triggers.
Build and register workers in Java, Go, Python, or TypeScript. Explore the SDKs
How It Fits
Use them together. Keep your framework for the agent's reasoning, and call it from a worker. Unmeshed makes each step durable, retried, and audited. See how workflow orchestration works →
Trusted by engineering teams at leading organisations
Explore More
Agents are one workload on Unmeshed. The same durable engine runs your workflows, APIs, and batch jobs.
Durable workflows with retries, timeouts, and long-running state on the same engine your agents run on.
Learn moreSequence APIs, webhooks, and queues into failure-aware flows your agents can call as governed tools.
Learn moreRun scheduled and high-volume batch jobs with the same durability and observability.
Learn moreConnect agents and tools over the Model Context Protocol, natively supported by Unmeshed.
Learn moreBuild and register workers in Java, Go, Python, or TypeScript with first-class SDKs.
Learn moreStart on the free tier, no credit card, no per-action fees, predictable as you scale.
Learn moreDurable state, retries, approvals, and full observability, all on a free tier with no per-action fees.
Free tier · No credit card required