← Compare

Vocion vs. Temporal

Temporal gives durable execution and signals. A dated comparison: what you still build yourself for agents on Temporal alone versus Vocion.

Last verified

A durable AI agent workflow is an agent procedure whose state survives process restarts, deploys, and multi-day waits, so a run can pause — for a retry, a schedule, or a human decision — and continue later from exactly where it stopped. Temporal is a standard durable-execution engine for this: workflows, schedules, and signals, with state maintained by the platform rather than a hand-written state machine. Temporal advertises exactly this for agents: "Guarantee all executions of all processes run to completion successfully in spite of failures" and "Easily facilitate human-in-the-loop interactions like validating LLM results or approving agent decisions" (https://temporal.io/solutions/ai). Temporal is infrastructure, not an agent platform: it does not define what an agent is, hold a registry of them, or provide a review surface for a person. Vocion is an open-source agent workforce platform that adds those layers on top of a workflow runtime: agents and workflows authored as YAML in git, approval steps, a review queue, and an audit trail.

This page is "Temporal alone vs. Temporal plus an operating layer," not Vocion vs. Temporal as competitors — Temporal is infrastructure Vocion's stack includes, not something it replaces. Rows where building directly on Temporal is the better choice stay in. Last verified 2026-09-08, against @vocion/core v2.37.0.

What durability buys an agent

An agent that calls three tools and waits on one of them for two days should not lose its place if the process restarts in between. Durable execution means the workflow's history — which steps ran, what they returned — is persisted by the engine, so a resume replays from that history rather than starting over or duplicating a side effect like a sent email.

What Temporal provides out of the box

Durable workflow execution with automatic retries, schedules for recurring runs, signals for delivering an external event (like a human decision) into a paused workflow, and a visibility store for querying running and historical workflows. Temporal's own AI positioning page names exactly the human-in-the-loop case: "validating LLM results or approving agent decisions" via a signal into a paused workflow (https://temporal.io/solutions/ai). None of this is agent-specific — Temporal has no concept of an agent, a skill, or a prompt; a workflow is a function, and what runs inside it is up to the caller.

What you still have to build, on Temporal alone

On Temporal alone, the honest list: agent definitions and prompts (as code, versioned however your repo is versioned), a registry of those agents, a review UI a non-engineer can use to approve or reject a paused workflow, per-action approval thresholds tied to confidence, an audit link from a specific output back to the configuration that produced it, connectors to the systems the agent reads and writes, and cost/trace reporting across runs. Temporal's docs do not claim to provide any of these — it is infrastructure for durable execution, by design.

A durable workflow that pauses for a human

In a Vocion workflow.yaml, an approve step pauses the run in the review queue until a person decides, and an ask step pauses until a person supplies a value — unless a default resolves to a non-empty string, in which case the step completes without pausing, so the same workflow serves an automated caller and a person starting it by hand (docs/entities/workflow.md). The worked example in that same doc is a discovery-call-to-follow-up workflow: an ask step for the salesperson's notes, then an approve step gated on the drafted email. Operationally, the paused run sits as a row the reviewer can see in the dashboard or fetch over the API; deciding it resumes the workflow at the next step.

Where the pending item lives while the workflow waits

In the review queue, reachable over HTTP: GET /api/v1/reviews lists pending items (with kind, assignedTo, and pagination), and POST /api/v1/reviews/decide resolves one (README.md). The write API's /api/v1/reviews surface is nine endpoints total — list, propose, rewrite, decide, auto-executed, assign, snooze, signal, and a per-item lookup (packages/core/src/app/api/v1/reviews/) — covering the review record and its triage actions, but none of them is a webhook subscription or a streaming connection: a client polls GET /api/v1/reviews to find out what is waiting. Temporal's own signal mechanism is push in the sense that a signal call wakes the specific paused workflow it targets (https://docs.temporal.io/encyclopedia/workflow-message-passing); the two are not directly comparable, since a Vocion reviewer is choosing from a worklist rather than sending a signal to one workflow they already know the ID of.

A note on the autonomy ladder

Vocion documents five mission autonomy levels — draft only, ask before action, act within rules, manage a goal, improve itself (docs/entities/mission.md) — but requiresApprovalForMutation (packages/core/src/services/authz.ts) has three branches, checked in this order: an explicit approvalRequired flag on the task forces a gate at any autonomy level (the mission planner sets this when a task sends or changes something external, packages/core/src/services/missions/planner.ts); a mutation that is not external is never gated, at any level; only then does level <= 2 require approval, with every level above that not requiring it by default. So for the common case — an external mutation the planner did not already flag — levels 3, 4, and 5 are behaviorally identical; the distinction between "act within rules" and "improve itself" is not enforced by this function, only by whether the planner set approvalRequired on that task. This matters for a durability comparison because the default pause-for-a-human boundary in Vocion today is binary (levels 1-2 vs. 3+) unless a task overrides it, not five distinct enforcement tiers, whereas a Temporal-based system's pause points are whatever the workflow author codes them to be — arbitrarily granular, at the cost of writing that logic yourself.

Temporal's role in running Vocion today

Not for workflow durability today. Vocion's own workflow steps persist to Postgres directly — the self-hosting guide states plainly that "in v1 workflows store state in workflow_run rows. If the process dies mid-run, the run sits paused at its last persisted step," and describes Temporal-backed workflow durability as forthcoming work (docs/guides/self-hosting.md). Temporal is part of the reference deployment stack regardless: it runs scheduled and event-driven automations, including source-sync crons, on a Temporal Schedule and Workflow underneath (docs/object-model.md describes the Automation entity as dispatching "Temporal schedule or event match"). So today, on Postgres-only durability for the workflow steps that hold approve/ask gates, Temporal itself is a better-tested answer to "did the process crash mid-step" than Vocion's own step runner is as of this date — a plain instance of a row where Temporal alone is the stronger primitive.

When to build directly on Temporal

Say it without hedging: one team, one or two workflows, engineers as the only reviewers of paused runs, an existing Temporal cluster already in production, and no need for an agent catalog a non-engineer can browse. Temporal's durability guarantees, retry semantics, and visibility tooling are mature and battle-tested at a scale Vocion has not built or documented equivalents for. Adding an operating layer on top is only worth it once more than one team, or more than engineers, need to see and act on what an agent is doing.

Comparison table

CapabilityTemporalVocion
Durable execution engineCore product; workflow history replayed on restart (https://docs.temporal.io/evaluate/understanding-temporal)Workflow step state persists to Postgres workflow_run rows; Temporal-backed durability is forthcoming (docs/guides/self-hosting.md)
Human-in-the-loopSignal delivers a human decision into a paused workflow (https://docs.temporal.io/encyclopedia/workflow-message-passing); positioned explicitly for "approving agent decisions" (https://temporal.io/solutions/ai)approve / ask workflow steps pause in a shared review queue (docs/entities/workflow.md)
SchedulesFirst-party Schedules API (https://docs.temporal.io/develop/typescript/schedules)Workflow trigger: schedule and source-sync crons dispatch onto Temporal Schedules underneath (docs/object-model.md)
Visibility / observabilityBuilt-in visibility store for querying workflow state (https://docs.temporal.io/visibility)Langfuse for LLM traces, OpenTelemetry for spans and metrics (README.md) — a different layer, not a Temporal-visibility equivalent
Agent registryNot a concept Temporal defines — a workflow is a generic durable function (understanding Temporal)Agents are an authored entity (agents/<slug>.md) applied to a database table with an owner
Review UI for a non-engineerNot provided; Temporal Web UI is an operator/developer console for workflow state, not an approval queue (Web UI docs)GET /api/v1/reviews, POST /api/v1/reviews/decide, and a dashboard review screen (README.md)
Per-action approval thresholdsNot a first-party concept; a caller would gate this in workflow codetrust.yaml: autoApproveAbove per action, disabled by default (docs/entities/trust.md)
Config versioning / audit trailWorkflow code versioning is the caller's own repo and deploy practiceworkspace_version row per workspace:apply; tool_call.workspace_sha links an output to the config that produced it (docs/workspace.md)
Self-hostingDocumented self-hosted guide (https://docs.temporal.io/self-hosted-guide)Single Docker image, reference deploy on one EC2 instance (docs/guides/self-hosting.md)
Managed offeringTemporal Cloud, priced separately (https://temporal.io/pricing)No first-party hosted offering as of this date
LicenseMIT (https://github.com/temporalio/temporal/blob/main/LICENSE)MPL-2.0 plus a commercial license

Which to pick

Build directly on Temporal if your team is small, your reviewers are engineers who are comfortable reading workflow history in the Temporal Web UI, and you do not need a catalog of agents that a non-engineer can browse or approve against. Add Vocion's layer on top of durable execution if the people deciding what an agent is allowed to do are not the people writing the workflow code, or if you need to answer "why did this run do that" from an audit row rather than from application logs.

Read docs/entities/workflow.md for the full approve/ask step reference, or clone vocion-core and run the discovery-followup example workflow to see a paused run resume on a human decision.