🔌 AgentWire
Real-time message bus and inspector for multi-agent LLM systems
Features • Quick Start • Examples • Documentation • Integrations
Make the invisible visible. See every message, every agent, every decision.
🎯 The Problem
Multi-agent systems are opaque black boxes. When your 5-agent pipeline produces a bad result, you have no way to see:
- Which agent said what to whom
- Why things went wrong
- Where the breakdown happened
- How much it cost
Debugging is impossible. Optimization is guesswork.
✨ The Solution
pip install agentwire
agentwire start
# Wrap your agents (one line each)
researcher = aw.wrap(ResearchAgent(), name="researcher")
writer = aw.wrap(WriterAgent(), name="writer")
# Run your pipeline
with aw.session("blog-post-run"):
facts = researcher.run("Find quantum computing breakthroughs")
post = writer.run(facts)
Open http://localhost:7433 → See everything in real-time.
🚀 Features
⚡ Quick Start
Installation
pip install agentwire
Start the Server
agentwire start
This starts:
- 🌐 REST API at
http://localhost:7433/api - 🔌 WebSocket at
ws://localhost:7433/ws - 📊 Dashboard at
http://localhost:7433
Wrap Your Agents
import agentwire as aw
# Configure once
aw.configure(bus_url="http://localhost:7433")
# Wrap any agent (works with any class)
researcher = aw.wrap(ResearchAgent(), name="researcher")
writer = aw.wrap(WriterAgent(), name="writer")
reviewer = aw.wrap(ReviewerAgent(), name="reviewer")
# Run with session grouping
with aw.session("blog-post-run-42", name="Blog Post Generation"):
facts = researcher.run("Find quantum computing breakthroughs")
draft = writer.run(facts)
final = reviewer.run(draft)
View in Dashboard
Open http://localhost:7433 to see:
- 📝 Feed View - Real-time message stream with auto-scroll
- 🕸️ Graph View - Agent topology with interactive nodes
- 📊 Stats - Messages, tokens, cost tracking
- ⏮️ Replay - Step through session with timeline controls
🎨 What Makes It Different
| Feature | AgentWire | LangSmith | Langfuse | Phoenix |
|---|---|---|---|---|
| Traces inter-agent messages | ✅ | ❌ | ❌ | ❌ |
| Framework-agnostic | ✅ | ❌ | Partial | Partial |
| Session replay | ✅ | ❌ | ❌ | ❌ |
| Zero infrastructure | ✅ | ❌ | ❌ | ❌ |
| Open source | ✅ | ❌ | ✅ | ✅ |
| Real-time graph | ✅ | ❌ | ❌ | Partial |
AgentWire focuses on the message bus abstraction - what agents say to each other - not just LLM calls.
📚 Examples
LangChain Research Pipeline
from agentwire.integrations.langchain import AgentWireCallback
import agentwire as aw
aw.configure(bus_url="http://localhost:7433")
with aw.session("research-run"):
planner = aw.wrap(PlannerAgent(), name="planner")
researcher = aw.wrap(ResearchAgent(), name="researcher")
summarizer = aw.wrap(SummarizerAgent(), name="summarizer")
plan = planner.run("Quantum computing breakthroughs 2024")
findings = researcher.run(plan)
summary = summarizer.run(findings)
AutoGen Coding Team
from agentwire.integrations.autogen import wire_autogen_agent
import agentwire as aw
with aw.session("coding-session"):
orchestrator = aw.wrap(OrchestratorAgent(), name="orchestrator")
coder = aw.wrap(CoderAgent(), name="coder")
reviewer = aw.wrap(ReviewerAgent(), name="reviewer")
assignment = orchestrator.run("Write Fibonacci function")
code = coder.run(assignment)
review = reviewer.run(code)
Raw API Pipeline
import agentwire as aw
with aw.session("data-pipeline"):
fetcher = aw.wrap(DataFetcher(), name="fetcher")
processor = aw.wrap(DataProcessor(), name="processor")
analyzer = aw.wrap(DataAnalyzer(), name="analyzer")
reporter = aw.wrap(Reporter(), name="reporter")
data = fetcher.run("production-db")
processed = processor.run(data)
analysis = analyzer.run(processed)
report = reporter.run(analysis)
🔧 Integrations
LangChain
from agentwire.integrations.langchain import AgentWireCallback
agent = initialize_agent(
tools=[...],
llm=llm,
callbacks=[AgentWireCallback(agent_name="researcher")]
)
AutoGen
from agentwire.integrations.autogen import wire_autogen_agent
wire_autogen_agent(my_agent, name="assistant", session_id="run-1")
CrewAI
from agentwire.integrations.crewai import wire_crew
my_crew = Crew(agents=[...], tasks=[...])
wire_crew(my_crew, session_id="crew-run")
result = my_crew.kickoff()
🎮 CLI Commands
# Start server
agentwire start # Default: port 7433
agentwire start --port 8000 # Custom port
agentwire start --no-dashboard # API-only mode
# Check status
agentwire status # Show server status and stats
# Clear data
agentwire clear # Clear all (with confirmation)
agentwire clear --session abc123 # Clear specific session
agentwire clear --force # Skip confirmation
# Stop server
agentwire stop
# Docker
agentwire docker up # Start with Docker Compose
agentwire docker down # Stop containers
📖 Documentation
- Quick Start Guide - Get started in 5 minutes
- API Reference - Complete REST & WebSocket API
- SDK Documentation - Python SDK reference
- Integration Guides - Framework integrations
- Dashboard Guide - Using the web interface
- Examples - Working code examples
🏗️ Architecture
┌─────────────────┐
│ Agent Code │ Your Python code
│ (SDK) │ aw.wrap(), aw.session()
└────────┬────────┘
│ emit()
↓
┌─────────────────┐
│ REST API │ FastAPI server
│ POST /api/ │ Store + broadcast
└────────┬────────┘
│
┌────┴────┐
↓ ↓
┌────────┐ ┌──────────┐
│ SQLite │ │WebSocket │ Real-time
│ DB │ │Broadcast │ to clients
└────────┘ └─────┬────┘
↓
┌───────────────┐
│ React │ Dashboard
│ Dashboard │ Feed + Graph
└───────────────┘
🧪 Testing
# Run all tests (54 passing)
pytest tests/ -v
# Run specific test suite
pytest tests/test_bus.py -v
pytest tests/test_integrations.py -v
# Run with coverage
pytest tests/ --cov=agentwire --cov-report=html
🛠️ Development
Setup
# Clone repository
git clone https://github.com/DanixMP/AgentWire.git
cd agentwire
# Install in development mode
pip install -e .
pip install -r requirements-dev.txt
# Run tests
pytest tests/
# Start dashboard dev server
cd dashboard
npm install
npm run dev
Project Structure
agentwire/
├── agentwire/ # Python package
│ ├── models.py # Data models
│ ├── store.py # Database layer
│ ├── bus.py # FastAPI server
│ ├── emitter.py # Message emission
│ ├── wrapper.py # Agent wrapping
│ ├── session.py # Session management
│ ├── cli.py # CLI tool
│ └── integrations/ # Framework integrations
├── dashboard/ # React dashboard
│ └── src/
│ ├── components/ # React components
│ ├── hooks/ # Custom hooks
│ └── types.ts # TypeScript types
├── examples/ # Example scripts
├── tests/ # Test suite
└── docs/ # Documentation
🎯 Roadmap
✅ Completed
- Core message bus and storage
- Real-time WebSocket broadcasting
- React dashboard with feed and graph
- Session replay with timeline
- CLI tool
- Framework integrations (LangChain, AutoGen, CrewAI)
- Examples and documentation
🚧 Planned
- Postgres support for production
- Multi-session comparison
- Export sessions as JSON/CSV
- Custom message types
- Webhook notifications
- Team collaboration features
- Cloud deployment guides
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📄 License
MIT License - see LICENSE file for details.
🙏 Acknowledgments
- Built with FastAPI, React, and D3.js
- Inspired by the need for better multi-agent observability
- Thanks to the LangChain, AutoGen, and CrewAI communities
📞 Support
- 📖 Documentation
- 💬 GitHub Issues
Made with ❤️ for the multi-agent AI community
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 agentwire_mcp-0.1.0.tar.gz.
File metadata
- Download URL: agentwire_mcp-0.1.0.tar.gz
- Upload date:
- Size: 365.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2e0274cf9c2079ff158e8cca16319d3192026f80b0342bdc81f638f7aa4ea81
|
|
| MD5 |
9bb348975bad214fc2e7ba2eda1ba813
|
|
| BLAKE2b-256 |
589de502061b9ccbac5505343db684c5bad18fd916f4bb8d6dc6ed53c340564e
|
File details
Details for the file agentwire_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: agentwire_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 207.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6df910515e50eb87dcecc5f96b8e5ed953e30534f024df190c55adae5e6fa8c9
|
|
| MD5 |
9fb53aedb1a1c7c1ad97ea100d48ed73
|
|
| BLAKE2b-256 |
903dd7f9cb9ef9dbbcf20800ecb438afab1b122d6a825410bdf5fb031b390fed
|