Distributed Subagents Framework for Pipecat
Project description
Pipecat Subagents is a distributed multi-agent framework for Pipecat. Each agent runs its own Pipecat pipeline and communicates with other agents through a shared message bus, enabling you to decompose complex systems into specialized, coordinating agents that can run locally or across machines.
Whether local or distributed, the programming model is the same: create an AgentRunner, connect it to the bus, and add agents.
🧠 Why Pipecat Subagents?
Pipecat is a powerful real-time framework for building voice and multimodal AI applications. Pipecat Subagents extends it with distributed multi-agent coordination where each agent runs its own Pipecat pipeline.
Some things you can build:
- A customer support system where each specialist runs its own LLM with dedicated tools and context, transferring seamlessly between each other.
- A video game where multiple LLMs independently control different characters, environments, or game mechanics.
- A stock analysis app that dispatches parallel research to multiple worker agents and synthesizes their findings.
- A video or image analysis pipeline where worker agents process media using Pipecat processors and stream updates back.
- An IoT system where remote devices run agents on specialized hardware, reporting status and receiving commands.
If a single Pipecat pipeline covers your use case, you don't need subagents. When you outgrow it, the transition is straightforward: your existing pipeline becomes one agent among many.
✨ Features
- Per-agent pipeline: every agent runs its own Pipecat pipeline with access to all services, processors, and transports (e.g. different LLMs, local models, image analysis, custom processors).
- Agent handoff: transfer control between agents mid-conversation, seamlessly switching context and capabilities.
- Task coordination: dispatch work to specialized worker agents in parallel, track progress with timeouts and cancellation, and stream results back.
- Distributed agents: run agents across machines, scaling each independently. Agents communicate via a shared bus that works the same locally or over the network.
- Mixed agent types: combine free-form LLM agents with structured Pipecat Flows agents or wrap third-party frameworks as subagents.
- Agent lifecycle: activation, deactivation, error propagation, and graceful shutdown across a tree of agents.
📦 Installation
uv add pipecat-ai-subagents
# or: pip install pipecat-ai-subagents
Requires Python 3.11+ and Pipecat.
🚀 Examples
See the examples directory for complete, runnable demos.
🔍 Observability with Clowder
Clowder (a group of cats) is a real-time observability tool for Pipecat Subagents. It shows runners, agents, tasks, and bus messages in a web UI, whether local or distributed.
Adding Clowder to your system
Add a ClowderAgent to any runner:
from pipecat_subagents.clowder import ClowderAgent
clowder = ClowderAgent("clowder", bus=runner.bus, port=7070)
await runner.add_agent(clowder)
Or use a setup file to add Clowder without modifying your application code. Create a file (e.g. clowder_setup.py):
from pipecat_subagents.clowder import ClowderAgent
from pipecat_subagents.runner import AgentRunner
async def setup_runner(runner: AgentRunner):
clowder = ClowderAgent(bus=runner.bus)
await runner.add_agent(clowder)
Then set the environment variable:
export PIPECAT_SUBAGENTS_SETUP_FILES=/path/to/clowder_setup.py
Running the UI
cd clowder-ui
npm install
npm run dev
Open http://localhost:5173 and click Connect. The UI shows agents grouped by runner, tasks with live duration, and a filterable bus message stream. Connect at any time; all messages are buffered.
🤝 Contributing
We welcome contributions from the community! Whether you're fixing bugs, improving documentation, or adding new features, here's how you can help:
- Found a bug? Open an issue
- Have a feature idea? Start a discussion
- Documentation improvements? Docs PRs are always welcome
Before submitting a pull request, please check existing issues and PRs to avoid duplicates.
We aim to review all contributions promptly and provide constructive feedback to help get your changes merged.
💬 Getting help
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pipecat_ai_subagents-0.2.0.tar.gz.
File metadata
- Download URL: pipecat_ai_subagents-0.2.0.tar.gz
- Upload date:
- Size: 716.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b0b9b22ed008c9458465f202e3541606fcb9c731895a3fab83e311f9c0ad372
|
|
| MD5 |
4467f4a1ffc6ac0e95a9857a5cc169b5
|
|
| BLAKE2b-256 |
7d212cea9e9d514d21b9f3ef7045ec6689a7bef360f0f50826bb6075580e9514
|
Provenance
The following attestation bundles were made for pipecat_ai_subagents-0.2.0.tar.gz:
Publisher:
publish.yaml on pipecat-ai/pipecat-subagents
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pipecat_ai_subagents-0.2.0.tar.gz -
Subject digest:
4b0b9b22ed008c9458465f202e3541606fcb9c731895a3fab83e311f9c0ad372 - Sigstore transparency entry: 1312500405
- Sigstore integration time:
-
Permalink:
pipecat-ai/pipecat-subagents@494b9efc841b3bf2087ef08dcdf50dce2b31bad5 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/pipecat-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@494b9efc841b3bf2087ef08dcdf50dce2b31bad5 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file pipecat_ai_subagents-0.2.0-py3-none-any.whl.
File metadata
- Download URL: pipecat_ai_subagents-0.2.0-py3-none-any.whl
- Upload date:
- Size: 66.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15f1f14de3c05a0647579f6d530fc05f3870be9744368b3dbd1d89008ec4e6e3
|
|
| MD5 |
b080affffafcb6587e2d8ddc3045a6c6
|
|
| BLAKE2b-256 |
63da738a0e0e086438f94f8ce61426f17a6acba0210c203df6dd7b80b757e04a
|
Provenance
The following attestation bundles were made for pipecat_ai_subagents-0.2.0-py3-none-any.whl:
Publisher:
publish.yaml on pipecat-ai/pipecat-subagents
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pipecat_ai_subagents-0.2.0-py3-none-any.whl -
Subject digest:
15f1f14de3c05a0647579f6d530fc05f3870be9744368b3dbd1d89008ec4e6e3 - Sigstore transparency entry: 1312500500
- Sigstore integration time:
-
Permalink:
pipecat-ai/pipecat-subagents@494b9efc841b3bf2087ef08dcdf50dce2b31bad5 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/pipecat-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@494b9efc841b3bf2087ef08dcdf50dce2b31bad5 -
Trigger Event:
workflow_dispatch
-
Statement type: