Courier

Python SDK

Operator Architecture

Multi-agent orchestration. OA owns the state and architecture. You own the runtime.

User, coordinator, juniors

You talk to a coordinator. The coordinator commissions sub-agents through the state machine, stages their results, then accepts into the core thread and reports back. OA owns state, context, and that contract. The host owns models, keys, tools, MCP, and the filesystem.

Courier

Code
Find all uses of vLLM

vLLM is the only in-path backend. Fourteen call sites in six files — engine load, sampling params, and the OpenAI-compatible serving loop. No other inference import is live.

Step trace4 steps
    iter 1grep(pattern=vLLM, glob=**/*.{py,ts,md})0.4s

    Result

    18 hits across src/runtime, src/serving, docs.

    iter 2read_file(path=src/runtime/engine.py)0.6s

    Result

    load_engine() constructs vllm.LLM with tensor_parallel_size.

    iter 3read_file(path=src/serving/openai_api.py)0.5s

    Result

    chat completions path still imports vllm.SamplingParams.

    iter 4semantic_search(query=where do we call vLLM)1.8s

    Result

    6 files, 14 call sites. No other inference backends in-path.

Staged result joined the core thread

Accepted. Fourteen vLLM call sites across six files are on the core thread. I can commission coder next if you want them swapped out.
Ask Courier to edit code, run commands, or review changes…

Why it exists

Most agent frameworks own your loop, your messages, and your vendor. Operator Architecture is flexible and manages the state, sub-agent contracts, and coherence for reliable, production use cases.

You own runners

Models, API keys, tools, MCP, filesystem stay in the host. OA never imports your loop.

OA owns the machine

StateMachine, Coordinator, AgentSpec. Stdlib only. No process-global singleton — you hold the instance.

Any AgentRunner

Relay, LangChain, OpenAI Agents, HTTP, or a plain async function. Adapters live in your host.

# pip install operator-architecture
from operator_architecture import (
    StateMachine, Coordinator, AgentSpec, callable_agent,
)

researcher = AgentSpec(name="researcher", runner=callable_agent(research))
coder = AgentSpec(name="coder", runner=callable_agent(code))
reviewer = AgentSpec(name="reviewer", runner=callable_agent(review))

sm = StateMachine(
    coordinator=Coordinator(skill="You operate the state machine…"),
    agents=[researcher, coder, reviewer],
)

staged = await sm.commission("researcher", "Find all uses of vLLM")
accepted = sm.accept("researcher", 1)

Early SDK. The orchestration contract is the stable idea. Full README on PyPI.