Concepts
The handful of ideas the rest of the platform is built on, and where each one is defined in depth.
Everything in UseAgent reduces to a small set of ideas. Hold these four and the rest of the system reads cleanly.
The harness lives outside the sandbox
The backend is the harness. Runs and steps in Postgres are the source of truth. The sandbox runs the engine and the work; the UI renders the log.
The inner loop is rented
Engine adapters drive each turn one-shot against a resident engine process inside the thread’s sandbox and translate each engine’s stream into steps. No engine web UI, and no engine process outside the sandbox.
Output is canonicalized
Every engine’s native output is mapped to provider-neutral canonical events, so different engines render through one UI contract. Native frames are kept for fidelity.
Privileged work goes through the gateway
A run never holds long-lived provider or database credentials. It calls typed gateway tools that perform privileged work behind short-lived, scope-bound capability tokens.
The pieces
Runs, threads, and commands
The units of work: a command starts a run, a run is one turn, a thread is the continuing conversation.
Events and streaming
Canonical events, native frames, steps, and the two SSE streams that carry them to the UI.
Engines and adapters
How Codex, Claude, and OpenCode are driven, the runtime path versus ACP, and the Codex subscription relay.
Sandboxes and desktop
Isolated Linux workstations, warm pools, the noVNC desktop, and restart reconciliation.
Gateway, tools, and approvals
The trust boundary, capability tokens, the in-run tool families, and the human approval lane.
Knowledge and learning
Skills, playbooks, knowledge, wiki, memory, and the human-gated self-improvement loop.
Artifacts and workpieces
Published results, the four editable workpiece kinds, uploads, and the outbox.