Observed since 21 Oct, 08:57 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
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.
Multi-agent systems are opaque black boxes. When your 5-agent pipeline produces a bad result, you have no way to see:
Debugging is impossible. Optimization is guesswork.
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.
📊 Real-Time Message FeedSee messages flowing between agents as they happen. Every TASK, RESULT, ERROR, and TOOL_CALL is captured and displayed with full context. |
🕸️ Interactive Graph ViewVisualize agent topology with D3 force-directed graphs. Node size = message count, edge width = message frequency. Click to filter. |
⏮️ Session ReplayStep through past runs message-by-message. Progressive graph rendering shows how your system evolved. Speed control: 0.5× to 10×. |
💰 Cost TrackingAutomatic token counting and USD cost calculation for Claude, GPT-4, Gemini, and more. See exactly what each agent costs. |
🔌 Framework-AgnosticWorks with LangChain, AutoGen, CrewAI, and raw API calls. One unified view across all frameworks in the same session. |
🚀 Zero InfrastructureSQLite by default. No Docker, no Postgres, no signup required. |
pip install agentwire
agentwire start
This starts:
http://localhost:7433/apiws://localhost:7433/wshttp://localhost:7433import 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)
Open http://localhost:7433 to see:
| 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.
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)
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)
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)
from agentwire.integrations.langchain import AgentWireCallback
agent = initialize_agent(
tools=[...],
llm=llm,
callbacks=[AgentWireCallback(agent_name="researcher")]
)
from agentwire.integrations.autogen import wire_autogen_agent
wire_autogen_agent(my_agent, name="assistant", session_id="run-1")
from agentwire.integrations.crewai import wire_crew
my_crew = Crew(agents=[...], tasks=[...])
wire_crew(my_crew, session_id="crew-run")
result = my_crew.kickoff()
# 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
┌─────────────────┐
│ 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
└───────────────┘
# 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
# 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
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
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)MIT License - see LICENSE file for details.
Made with ❤️ for the multi-agent AI community
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.0 | 27 Apr 2026 | 15 |
This describes our collected data; it is not a security assessment.
Observed since 21 Oct, 08:57 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:7d8c0b533095f2bb3553cd8a930533c22c12edbecaab00448c1819306a5370a8