Skip to content

Temporal Agent Harness vs Orchestrator Zero

oz0 records agent jobs running on your infrastructure. Both use Temporal workflows. The harness is a library for building agents; oz0 adds machine management, tenants, a model gateway and reviewed tool definitions. Recovery in oz0 depends on the agent type.

What Temporal Agent Harness is

The Temporal Agent Harness is an experimental, MIT-licensed Python library from Temporal Technologies for building agents on Temporal. Each agent is a Temporal workflow whose model and tool calls run as activities on workers you host, against a self-hosted Temporal service or Temporal Cloud. Turn logic uses an existing AI SDK (Google Gemini, the OpenAI Agents SDK or Pydantic AI), and Temporal calls the project earlier than public preview.

github.com
Runs
Self-hosted or managed
Licence
MIT
Checked
27 October 2026

Side by side.

Temporal Agent Harness's ratings come from its own pages. A column's name opens its definition and how Orchestrator Zero does it. How we rated

Where it runs

Any machine you own

Yes

Docs

Yes

Agents run on Temporal workers, which run on hosts outside the Temporal service that you choose.

docs.temporal.io

Linux, macOS and Windows

Yes

Native; hosted-runner tested

Docs

Yes

Workers are Python processes on the Temporal Python SDK, which Temporal publishes as native wheels for Windows, macOS and Linux, and the harness itself is pure Python; its own docs say nothing about operating systems.

pypi.org

Self-hosted control plane

Yes

Docs

Yes

The Temporal service is open source and can be self-hosted.

docs.temporal.io

No inbound ports

Yes

Docs

Yes

Workers poll task queues, so the service never calls into them.

docs.temporal.io

Fleet operations

Yes

Docs

Conditional: Worker list, no machine join

Temporal lists and versions workers and routes tasks through queues. Managing host enrollment, revocation and operating-system upgrades remains outside the harness.

docs.temporal.io docs.temporal.io

Durability

Durable runs

Conditional

Depends on agent type

Docs

Yes

Agents survive crashes and resume mid-turn where they left off.

github.com

Governance

Tool policy outside the model

Conditional

Harness coverage varies

Docs

Yes: Per agent and session

Each tool call is checked against a serialisable approval policy (allow lists, inherently safe tools, and an auto mode with approve, deny and escalate criteria), and anything not allowed waits for a person; the policy is set per agent, overridable per session and at runtime, and enforced in the workflow.

github.com temporal.io

Approvals in chat

Conditional

Tested against stand-ins only

Docs

Yes: Slack, Discord and Teams

A gated tool call pauses inside the workflow until a decision arrives from the web UI, the API, or the optional Slack and Discord front end in the repository; a Nexus connector covers Slack and Microsoft Teams.

github.com github.com github.com

Tool snapshots

Yes

Docs

Not documented

The MCP gateway discovers tools from registered servers. The docs do not describe a stored definition comparison that blocks changed tools pending approval.

github.com

Tenants built in

Yes

Docs

Conditional: Namespaces, access is yours

Temporal namespaces separate work, but on a self-hosted service restricting access to each one needs a custom authorizer you write.

docs.temporal.io

Cost

Budgets that stop a run

Yes

Set strict reservation

Docs

Conditional: Tokens counted, no budget

The harness records token usage. A built-in monetary budget that stops a run is not documented.

github.com

Security

Provider keys off the workers

Yes

Docs

No: Keys in worker environment

Model calls run as activities on your workers, which read the provider key from their environment; Temporal offers no gateway that holds it.

github.com

Sandbox with an egress allowlist

Conditional

Linux/macOS; Windows tier 0

Docs

Conditional: Code Mode only, no allowlist

Model-written Code Mode scripts run in the Monty sandbox and act only through your tools, but the tools themselves run on the worker with no isolation or egress allowlist.

github.com

Audit and compliance

Tamper-evident audit trail

Yes

Keep trusted chain heads

Docs

Conditional: History, not tamper-evident

Temporal history and the harness event stream record turns, tools and approval decisions. Cloud audit logs cover control-plane operations; a verifiable hash chain or signature for agent activity is not documented.

github.com docs.temporal.io

Erasure by key

Yes

Restore with erasure ledger

Docs

Conditional: Delete runs, no per-user keys

Each agent session is a workflow you can delete with its history, and payload encryption is a codec you write and key yourself, so per-person keys and crypto-shredding are your own code.

docs.temporal.io docs.temporal.io

Retention with legal hold

Conditional

Capture needs source data

Docs

Conditional: Retention, no legal hold

A namespace sets how long closed workflow histories are kept, 1 to 90 days on Temporal Cloud, and nothing documents a legal hold.

docs.temporal.io docs.temporal.io

Openness

Model provider choice

Yes

Docs

Yes

Integrations cover Google Gemini, the OpenAI Agents SDK (OpenAI and LiteLLM models) and Pydantic AI, whose providers include Anthropic and local models; the harness docs do not name local models themselves.

temporal.io github.com github.com

MCP and A2A

Yes

Docs

Conditional: MCP, no A2A

Agents use MCP servers through the OpenAI Agents integration and a Nexus MCP package; agents call each other through the harness's own typed interfaces, and A2A does not appear in the repository.

github.com github.com

Where Temporal Agent Harness is stronger.

  • Managed control plane available

    Agents can run against Temporal Cloud, a managed service whose operator has a SOC 2 Type 2 report, so there is no control plane to operate.

    docs.temporal.io
  • Approvals in Microsoft Teams

    A Nexus connector in the repository brings agents and their approval prompts to Microsoft Teams as well as Slack; Orchestrator Zero's Teams plugin has been tested only against a stand-in so far.

    github.com
  • Typed React and Svelte UIs

    Client SDKs turn an agent's Python class into a typed session object for a React or Svelte product UI.

    github.com
  • Open source today

    The harness is public on GitHub under MIT.

    github.com

Full in Temporal Agent Harness, partial in oz0: Durable runs, Tool policy outside the model, Approvals in chat.

Differences to examine.

Compare the scope, conditions and editions in the source notes.

Using both

Both run each agent as a Temporal workflow and both support Pydantic AI and the OpenAI Agents SDK, which eases moving agent code between them. Orchestrator Zero can run on a Temporal cluster you already have, and a harness agent can call an Orchestrator Zero agent as an MCP tool.

Based on documentation; this pairing has not been tested.