Skip to main content

Upgrading to 0.4

Most 0.3 code runs on 0.4 unchanged: an agent built from a name, an instruction, a model, local tools and MCP servers, run() and its result, sessions, memory, and the OmniServe routes. What changed is listed below, all of it measured: the public surface of 0.3.8 was installed next to 0.4 and compared name by name, setting by setting and route by route.
On 0.3.9? That release cannot build an agent: it was published without one of its own modules, and OmniCoreAgent(...) raises ModuleNotFoundError: No module named 'omnicoreagent.core.workspace'. If you are pinned to it, you are effectively upgrading from 0.3.8 — this page is for you.

1. Python 3.12 or later

0.4 needs Python 3.12, 3.13 or 3.14. On 3.10 or 3.11, pip install -U omnicoreagent does not fail: it quietly stays on 0.3.9. Check what you got:
The omnicoreagent command is new in 0.4; if omnicoreagent --version is not found, the upgrade did not happen.

2. What runs unchanged

3. What was removed, and what took its place

The workflow classes are gone; ordinary Python composes runs, and each run keeps its own trace.
For routing (was RouterAgent), give one agent the others as sub_agents=[billing, support]: the model gets a delegate_billing and a delegate_support tool and chooses. See Subagents.
Its parts are settings on any agent now: enable_subagents=True lets the model spawn focused workers with spawn_subagents, and workspace files (on by default) give it the files it plans and works in. See Subagents and Workspace files.
The memory_* tools are gone. The agent’s files live in its workspace, on by default (enable_workspace_files), with ls, read_file, write_file, edit_file, glob, grep and the rest; local disk, S3 or R2 through workspace_config. A 0.3 config that still sets the key fails when the agent is built and names this replacement. See Workspace files.
0.3’s event store is replaced by telemetry: every run is recorded as a trace, one readable record from the question to the answer, with every model call, tool call, approval and budget decision.See Telemetry events and Observability.
BackgroundAgentManager remains, rebuilt around tasks and runs kept in a task store (memory, SQL, Redis or MongoDB), with leases, retries and cron. It no longer needs APScheduler; the background extra is gone.See Background agents.
OmniAgent was another name for OmniCoreAgent; use OmniCoreAgent. with_retry, retry_async, RetryConfig, RetryStrategy, CircuitBreaker, CircuitBreakerConfig, Configuration and get_metrics were OmniServe internals exported at the top level; they are not public in 0.4. Model calls retry with backoff on their own.
Removed. Every other omniserve option is unchanged.

4. Defaults that changed

An agent built the 0.3 way behaves differently in these ways: To keep 0.3’s step limit and timeout, set them:
Telemetry writes to your disk from the first run. To leave model prompts and responses out of it, keep it in memory only, or move it:
See the TelemetryConfig reference and Guardrails and privacy.

5. What is new

Nothing here needs to change for the upgrade; it is what 0.4 adds. A tour shows most of it in fifteen minutes.

Policies and approvals

Allow, deny or ask a person, per capability; budgets the agent cannot overspend.

Sandboxes

Commands in Docker, E2B, Daytona, Modal or Vercel, with a network policy.

Durable runs

resume, interrupt, steer: a run survives a crash and a person’s pause.

Headless runs and Harbor

omnicoreagent run for CI and evaluations; omnicoreagent harbor for Terminal-Bench.
Every setting, method and command is in the reference.