Skip to content

Bernstein vs. Conductor

tl;dr — Conductor is a workflow orchestration engine for production business processes. Bernstein is a coding agent orchestrator. They solve different problems. If your question is "how do I coordinate AI coding agents on a software development task," Conductor is not designed for that. If your question is "how do I orchestrate microservice workflows with durable execution and human-in-the-loop steps," Bernstein is not designed for that either.

Last verified: 2026-04-19. "Conductor" below refers to Netflix OSS Conductor and its active community forks (Orkes Conductor, conductor-oss/conductor); the fork varies between vendors but the execution model is the same.


What each tool is

Conductor (Netflix Conductor, or the OSS forks/successors) is a workflow orchestration engine designed for production microservice coordination. It has durable execution, state machines, retry policies, human approval steps, and a web UI for workflow visualization. It is used to orchestrate processes like "charge customer → provision account → send welcome email → start onboarding sequence."

Bernstein is an orchestrator for CLI coding agents. It takes a natural language goal, decomposes it into subtasks, spawns short-lived AI coding agents (Claude Code, Codex, Gemini CLI) to work the subtasks in parallel, verifies each result, and merges the output. It is used to orchestrate processes like "add REST endpoints + write tests + update docs → run in parallel → verify → commit."

These tools share the word "orchestration" and not much else.


Where the confusion comes from

Multi-agent AI systems are being built on top of general workflow engines. Teams with existing Conductor infrastructure sometimes try to use it as the coordination layer for AI coding agents. The result is usually more complexity than value: Conductor's execution model (persistent workflows, worker polling, workflow versioning) doesn't match the filesystem-native, short-lived process model that coding agents need.

Bernstein is purpose-built for the coding agent use case. No workflow versioning, no worker registration, no durable execution across process restarts — just task files, agent processes, and a janitor.


Feature comparison

Feature Bernstein Conductor
Primary use case AI coding agent coordination Production workflow orchestration
Task execution Spawned CLI processes (short-lived) Registered workers (long-running)
State storage Plain files (.sdd/) Database-backed (Postgres/Redis/etc.)
Workflow definition Natural language → auto-decomposed YAML/JSON workflow DSL
Human-in-the-loop No (headless) Yes — human task steps
Durable execution No — restart from queue if process dies Yes — survives restarts and failures
Retry logic Quarantine + retry via janitor Configurable per workflow step
Parallel execution Yes — multiple agents on independent tasks Yes — fork/join operators
Web UI TUI + local web dashboard Full workflow visualization UI
Self-evolution Yes No
AI model integration First-class (is the point) Plugin/worker integration
License Apache 2.0 Apache 2.0
Operational complexity Low (runs locally, no external services) Medium–high (requires backend services)

Architecture comparison

Conductor (production workflow engine):

Workflow definition (YAML/JSON)
Conductor Server (backend services: Postgres, Redis, etc.)
    ├── Worker A (polls for tasks, long-running process)
    ├── Worker B (polls for tasks, long-running process)
    └── Worker C (polls for tasks, long-running process)
    Durable state, retry policies, human approval gates

Workers are persistent services that register with the Conductor server and poll for work. Workflow definitions are versioned schemas. State survives restarts because it's in a database.

Bernstein (coding agent orchestrator):

bernstein -g "goal"  (terminal)
Task server (local FastAPI, no external dependencies)
    ├── Task A → claude  (spawned process, exits after 1–3 tasks)
    ├── Task B → codex   (spawned process, exits after 1–3 tasks)
    └── Task C → gemini  (spawned process, exits after 1–3 tasks)
    Git worktree → janitor → merge

Agents are fresh processes spawned per task. State is plain files. No persistent services required. The "server" is a lightweight FastAPI process that Bernstein starts automatically.


Cost comparison

Conductor requires operational infrastructure: a database, a server process, and worker services. For self-hosted deployments, this means ongoing ops work. Managed Conductor offerings add a subscription cost.

Bernstein requires nothing but the Python package and model API tokens. A typical medium-complexity session costs $1–3 in API tokens. No backend, no subscription.


When Conductor is the right tool

  • You're orchestrating production business workflows, not development tasks. Order processing, account provisioning, approval chains, notification sequences — these are Conductor's domain.
  • You need durable execution. The workflow must survive process crashes, server restarts, and network partitions. Conductor's state machine survives these; Bernstein does not claim to.
  • You have human approval steps. A human must review and approve before the next step proceeds. Conductor has first-class human task support.
  • You need workflow versioning and rollback. Conductor tracks workflow definition versions and allows in-flight migrations.
  • Your team already runs Conductor. If you have the infrastructure, adding another AI-native workflow is reasonable.

When Bernstein is the right tool

  • You want to run coding agents on development tasks. Bernstein is purpose-built for this. No DSL required — just bernstein -g "add rate limiting to the API".
  • You want zero infrastructure. No database, no server services, no ops burden. Bernstein starts a local process and exits when done.
  • You want model-agnostic agent orchestration. Mix Claude, Codex, Gemini, and Qwen in the same run, routing each task to the cheapest capable model.
  • You want self-evolution. Bernstein analyzes its own run metrics and improves prompts and routing over time. No equivalent exists in Conductor.
  • Your state can live in git. Bernstein's .sdd/ files are checked in alongside code. The audit trail is the git history.

Can you use both?

Yes. If you run Conductor for production business workflows and want to add AI coding agent orchestration for your development pipeline, Bernstein is not a replacement — it's a different tool for a different problem. They don't compete for the same workload.

Some teams use Conductor for production orchestration and Bernstein for automated development tasks (CI-integrated PR generation, overnight issue triage, scheduled code quality improvements). These are complementary, not conflicting.


See also