Rename PipelineRunner.add_worker() to variadic add_workers(*workers)

Lets callers register multiple workers in a single call instead of
awaiting add_worker() repeatedly. Updates all examples, docs, tests,
and proxy worker docstrings to use the new API.
This commit is contained in:
Aleix Conchillo Flaqué
2026-05-21 19:45:47 -07:00
parent f91179a640
commit e8ec7c585f
13 changed files with 58 additions and 62 deletions

View File

@@ -1,6 +1,6 @@
# Pipecat Multi-Worker Examples
This directory contains example bots that use the multi-worker framework in `pipecat.workers`, `pipecat.pipeline.runner` (with `add_worker()`), and the `WorkerBus`. Each example shows a different cooperation pattern between workers: hand-off, parallel fan-out, remote workers, etc.
This directory contains example bots that use the multi-worker framework in `pipecat.workers`, `pipecat.pipeline.runner` (with `add_workers()`), and the `WorkerBus`. Each example shows a different cooperation pattern between workers: hand-off, parallel fan-out, remote workers, etc.
## Setup

View File

@@ -161,8 +161,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
logger.info("Client disconnected")
await runner.cancel()
await runner.add_worker(CodeWorker("code_worker", project_path=PROJECT_PATH))
await runner.add_worker(worker)
await runner.add_workers(CodeWorker("code_worker", project_path=PROJECT_PATH), worker)
await runner.run()

View File

@@ -251,9 +251,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
logger.info("Client disconnected")
await runner.cancel()
await runner.add_worker(build_greeter())
await runner.add_worker(build_support())
await runner.add_worker(worker)
await runner.add_workers(build_greeter(), build_support(), worker)
await runner.run()

View File

@@ -224,9 +224,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
logger.info("Client disconnected")
await runner.cancel()
await runner.add_worker(build_greeter())
await runner.add_worker(build_support())
await runner.add_worker(worker)
await runner.add_workers(build_greeter(), build_support(), worker)
await runner.run()

View File

@@ -217,9 +217,12 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
logger.info("Client disconnected")
await runner.cancel()
for role in ROLE_PROMPTS:
await runner.add_worker(DebateWorker(role))
await runner.add_worker(worker)
await runner.add_workers(
DebateWorker("advocate"),
DebateWorker("critic"),
DebateWorker("analyst"),
worker,
)
await runner.run()

View File

@@ -103,8 +103,7 @@ async def websocket_endpoint(websocket: WebSocket):
assistant = AcmeAssistant()
await runner.add_worker(proxy)
await runner.add_worker(assistant)
await runner.add_workers(proxy, assistant)
logger.info("Assistant server ready, waiting for activation")
await runner.run()

View File

@@ -146,8 +146,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
logger.info("Client disconnected")
await runner.cancel()
await runner.add_worker(proxy)
await runner.add_worker(worker)
await runner.add_workers(proxy, worker)
await runner.run()

View File

@@ -316,8 +316,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
logger.info("Client disconnected")
await runner.cancel()
await runner.add_worker(build_sensor_controller())
await runner.add_worker(worker)
await runner.add_workers(build_sensor_controller(), worker)
await runner.run()