unreal-agent README

The project's README from github.com/unreallabsai/unreal-agent. As one markdown file: README.md.

Unreal Agent

An async-first agent harness from Unreal Labs.

Glossary

Components

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.

Extending the harness

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

We intend to preserve these invariants:

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.

unreal-agent (unreallabsai/unreal-agent)

event-sourcing
Searching Database…

What is this?Unreal Agent is an async-first agent harness written in Go — a toolkit for running LLM agents with persistent, forkable sessions, tool calling, and durable background work.
Is this a library I build on, or a ready-to-run app?It's a Go library: the harness/ package you build agents on. The repo also ships cmd/ executables that use the library and benchmarks/ runners.
How do I get it running?No install steps are given. As a Go library, the first move is importing harness/ into your Go project; cmd/ contains executables showing how to use it in practice.
Do I need an account with a specific LLM provider to use it?No provider is named. The LLM Adapter component owns authentication and returns normalized responses, so you bring whichever provider implementation you plug in.
What happens if the process crashes mid-conversation?Sessions and operation state are persisted and support recovery, so a crash isn't fatal. But input deduplication is in-memory only, and an unsupported session version always errors explicitly on resume.
What does 'async-first' mean in practice?Tool work isn't done inline: translators turn model requests into serializable operations that a separate actor runtime executes durably, while the coordinator keeps moving LLM turns forward.
What tools does an agent get out of the box?A fixed registry of Bash, ViewImage, and a skill-use tool, each with a validating translator. The host selects which of them an agent session actually sees.
What exactly is a session?The agent's append-only, persisted history of a conversation. Sessions can be forked, and tool-call statuses are recorded atomically with the operations they produced.
Can tools execute somewhere else, like a remote sandbox?Yes — operations are versioned and always serializable, so a proxy operations manager can forward them to an operations manager running inside a remote sandbox and run the tools there.
What are similar projects?lightspeed, conductor, imp, OpenAgentCore, tardigrade, cayu, maka, dapr
Size
1.6 MB
Stars
2.2K
Age
26d
Commits · 90 Days