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.
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:
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
SequentialAgent, ParallelAgent, RouterAgent
SequentialAgent, ParallelAgent, RouterAgent
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.DeepAgent
DeepAgent
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.agent_config['memory_tool_backend']
agent_config['memory_tool_backend']
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.EventRouter, event_router=, and the event-store methods
EventRouter, event_router=, and the event-store methods
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.
BackgroundOmniCoreAgent, BackgroundTaskScheduler, APSchedulerBackend, TaskRegistry
BackgroundOmniCoreAgent, BackgroundTaskScheduler, APSchedulerBackend, TaskRegistry
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, and the retry and circuit-breaker helpers
OmniAgent, and the retry and circuit-breaker helpers
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.omniserve run --reload
omniserve run --reload
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:
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.