cd /news/ai-agents/unreal-agent-an-async-first-agent-ha… · home topics ai-agents article
[ARTICLE · art-137909] src=github.com ↗ pub= topic=ai-agents verified=true sentiment=· neutral

Unreal Agent An async-first agent harness

Unreal Labs released Unreal Agent, an async-first agent harness organized into a harness library, cmd executables, and benchmark runners. The harness defines an input/inbox/session model with a coordinator, session store, context builder, LLM adapter, tool registry, tool translator, and operation manager, and it commits to versioned, serializable session-store items and operations with explicit errors on unsupported session versions during resume. Tool translators run synchronously on the coordinator's event loop and must not perform I/O, while operations are dispatched for asynchronous execution and can be proxied to a remote sandbox.

read2 min views1 publishedSep 23, 2026
Unreal Agent An async-first agent harness
Image: Michielbdejong (auto-discovered)

An async-first agent harness from Unreal Labs.

- [harness/](https://github.com/unreallabsai/unreal-agent/blob/main/harness) — the library.
- [cmd/](https://github.com/unreallabsai/unreal-agent/blob/main/cmd) — executables that use the library.
- [benchmarks/](https://github.com/unreallabsai/unreal-agent/blob/main/benchmarks) — benchmark runners.
  • Input : an event with a caller-supplied globally unique ID that remains stable across redeliveries.
  • Inbox : session-scoped, in-memory deduplication of external, control, and crash inputs.
  • Session : append-only persisted history that can be forked.
  • LLM turn : the coordinator-managed sequence around one logical LLM request.
  • Tool : a capability described by a schema and bound to a translator.
  • Tool call : a model-produced request to use a tool.
  • Tool translator : validates a tool call and translates it into one or more operations. It runs synchronously on the coordinator's event loop and must not perform I/O or suspend the loop.
  • Tool call status : the translation outcome: a validation error or references to submitted operations. Operation execution state is tracked separately; the translator formats these into a model-facing result.
  • Operation : a serializable description of work produced by a tool translator

for asynchronous execution. Implementations are encouraged to use the availableprimitives .

Component Responsibility
Session inbox Volatile, session-scoped input idempotency.
Coordinator Persist accepted inputs, run LLM turns, resolve tool translators through the registry, and dispatch committed operations.
Session store Persist canonical session history and operation state; support recovery and forks; atomically record tool-call status with operations.
Context builder Statefully assemble model input in memory. Return the model input together with a record of anything omitted, truncated, or compacted. Perform no I/O and accept no persistence dependencies.
LLM Adapter Send prepared model input to a provider and return a normalized completed response. Own authentication, cancellation, and provider errors.
Tool registry Own the fixed Bash, ViewImage, and skill-use definitions and their translators; expose the host-selected set.
Tool translator Validate a tool call and produce its status and operations. Format a recorded call status and prepared operation output into model results. Perform no I/O.
Operation manager Actor runtime for durable operations. The local implementation is swappable.

Harness components are composable, and alternative implementations of their interfaces are encouraged.

We intend to preserve these invariants:

  • Session-store items are serializable, and the storage format is versioned.
  • We'll do our best to maintain backwards compatibility for sessions. An unsupported session version will always cause an explicit error on resume.
  • Operations are versioned and always serializable.

For example, a proxy operations manager can send serialized operations to a local operations manager running in a process inside a remote sandbox, allowing tools to execute there.

── more in #ai-agents 4 stories · sorted by recency
── more on @unreal labs 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/unreal-agent-an-asyn…] indexed:0 read:2min 2026-09-23 ·