This project provides a fun and interactive way to learn how multi-agent AI systems work together to solve problems. Using a GUI interface, users can give instructions to several AI agents, and choose what tools they can use (e.g., web search, document RAG, calculators, spreadsheets, etc.). Lastly, the user provides an overall task or goal for the agentic team, and sets them to work. LangGraph works in the background to coordinate the agent-tool interactions. Eventually this will be made into a web interface, but for now you can clone this repo and use the system in dev mode - see the Quick Start guide below.
- Real-time Agent Monitoring: WebSocket-based live updates of agent status and execution
- Modular JavaScript Architecture: Clean separation of concerns across 5 specialized modules
- Interactive UI: Dynamic agent cards with editable prompts and tool connections
- Tool Management: Visual representation of agent-tool interactions with toggle controls
- Document Library: Upload and vectorize documents for RAG (Retrieval-Augmented Generation) search
- Task Execution: Execute complex multi-agent workflows with live progress tracking
- LLM Integration: Support for OpenAI and Ollama (local) models
- Responsive Design: Modern, clean interface with streamlined navigation
- Real-time Tool Execution: Web search, budget calculations, Google Sheets integration, and document search
- Python 3.8+: The backend requires Python 3.8 or higher
- Modern web browser: With WebSocket support (Chrome, Firefox, Safari, Edge)
- Install Ollama: Download from ollama.ai
- Pull a model: Run
ollama pull llama3.1:latestor your preferred model - Start Ollama: The service should be running on
localhost:11434 - Benefits: Free, private, runs locally, no API keys needed
- API Key Required: Set the
OPENAI_API_KEYenvironment variableexport OPENAI_API_KEY="your-openai-api-key-here" - Benefits: Fast, powerful models like GPT-4, GPT-3.5-turbo
You can configure both providers to switch between local and cloud models as needed.
-
Clone the repository
git clone <repository-url> cd agentic -
Set up Python virtual environment
python -m venv venv source venv/bin/activate # On macOS/Linux pip install -r requirements.txt -
Start the application
./restart.sh -
Open your browser Navigate to
http://localhost:3000to use the interface -
Try the Document Library
- Upload documents using the Document Library tool
- Click "Vectorize for RAG Search" to add them to the vector database
- Run tasks that can search and retrieve from your documents
s1-websocket.js- WebSocket communication and connection managements2-rendering.js- Agent/tool card rendering and SVG connectionss3-execution.js- Task lifecycle and execution managements4-interactions.js- Event handling, user interactions, and document uploads5-app.js- Application initialization and state management
python_server.py- WebSocket server for real-time communicationllm_integration.py- LLM provider integration (OpenAI/Ollama)langgraph_workflow.py- LangGraph workflow implementationtools.py- Tool execution framework with Web Search, Budget Calculator, Google Sheets, and Document Library
index.html- Main application entry pointstyle.css- Complete styling with responsive designrestart.sh- Development server restart script- Connection management and status monitoring
- Message sending and receiving
- Reconnection handling and error recovery
-
s1-websocket.js- WebSocket Communication- Connection management and status monitoring
- Message sending and receiving
- Reconnection handling and error recovery
-
s2-rendering.js- UI Rendering Engine- Agent and tool card rendering
- Connection line drawing between components
- Dynamic UI updates and state visualization
- Special Document Library tool card with upload interface
-
s3-execution.js- Task Execution System- Task workflow simulation and management
- Progress tracking and agent highlighting
- Results display and export functionality
-
s4-interactions.js- User Interactions & Document Management- All user interface interactions and event listeners
- Model selection and workflow controls
- Document upload and vectorization functionality
- Prompt editing and keyboard shortcuts
-
s5-app.js- Application Core- Main application state management
- Module coordination and message routing
- WebSocket message handling and routing
- Sample data initialization and global state
- Maintainable: Each module has a single, clear responsibility
- Testable: Modules can be debugged and tested independently
- Reusable: Components can be easily moved to other projects
- Scalable: New features can be added without cluttering existing code
- Debuggable: Module loading status is tracked and reported
- Three-panel layout: Agents | Tools | Blackboard
- Dynamic card generation: Agent and tool cards with real-time updates
- WebSocket client: Connects to backend for live data streaming
- Responsive design: Clean, professional interface matching the reference design
- Python WebSocket Server (
python_server.py): Real-time communication with LLM integration - Tool Execution Framework (
tools.py): Web Search, Budget Calculator, Google Sheets, Document Library - LLM Integration (
llm_integration.py): OpenAI and Ollama provider support
โ Completed
- Basic UI layout and styling
- WebSocket communication infrastructure
- Dynamic card rendering system
- Real-time activity logging
- Python virtual environment setup
- Python WebSocket server with LangGraph integration
- Real agent and tool monitoring foundation
- Monitored agent base classes
- Document Library tool with RAG vectorization workflow
- Complete tool execution framework (Web Search, Budget Calculator, Google Sheets, Document Library)
- Multi-agent coordinator workflow with iterative task execution
- Real-time LLM integration with OpenAI and Ollama support
๐ง Current Features
- โ Real-time multi-agent task execution
- โ Document upload and vectorization for RAG search
- โ WebSocket-based tool execution and monitoring
- โ Coordinator-agent delegation workflow
- โ Live progress tracking with agent highlighting
- โ Interactive agent prompt editing
-
Task Input Panel
- Add task description textarea to main UI
- "Run Workflow" button with loading states
- Task validation and preprocessing
- Clear previous results functionality
-
Real-time Execution Monitor
- Current active agent indicator
- Progress bar for workflow completion
- Step-by-step execution log
- Pause/Resume/Stop controls
-
Results Display System
- Dedicated results panel in UI
- Final output formatting and display
- Intermediate results from each agent
- Export results (JSON, Markdown, Plain text)
-
Error Handling & Recovery
- Error display in UI
- Retry failed steps
- Graceful degradation for failed agents/tools
- Debug information for developers
-
Add/Remove Agents
- "Add Agent" button and form
- Delete agent functionality
- Agent role templates (researcher, writer, analyst, etc.)
- Drag & drop agent reordering
-
Agent Configuration
- Per-agent LLM settings (temperature, max_tokens, etc.)
- Agent dependency mapping (which agents can call others)
- Agent execution order and priorities
- Custom agent prompt templates
-
Tool Library & Custom Tools
- Browse available tools interface
- Add custom tool definitions
- Tool parameter configuration UI
- Tool testing and validation
-
Tool Results & Monitoring
- Real-time tool execution status
- Tool output display and formatting
- Tool performance metrics
- Tool error handling and retries
-
Save/Load Workflows
- Export complete workflow configurations
- Import and load saved workflows
- Workflow versioning and history
- Quick workflow templates
-
Template Gallery
- Pre-built workflow examples
- Community template sharing
- Template categorization and search
- Template rating and reviews
- Environment Management
- API key management interface
- LLM provider configuration
- Global workflow settings
- User profile and preferences
-
Real-time Metrics Dashboard
- Token usage tracking and costs
- Execution time per agent/tool
- Success/failure rates
- Memory usage monitoring
-
Conversation & Audit Logging
- Complete conversation history between agents
- LLM prompt/response logging
- Audit trail for all actions
- Search and filter logs
- Advanced Connection Mapping
- Dynamic workflow visualization
- Agent communication flow diagrams
- Tool dependency graphs
- Execution timeline view
- Multi-user Support
- Shared workflow sessions
- Real-time collaboration
- User authentication and permissions
- Team workspace management
- Deployment & Integration
- Docker containerization
- Cloud deployment scripts
- API for external integrations
- CI/CD pipeline setup
Week 1-2: Task Input & Execution โ COMPLETED
- โ Fix JavaScript syntax errors and UI display
- โ Add task input panel to UI
- โ Add "Run Workflow" button with loading states
- โ Implement simulated workflow execution with visual feedback
- โ Add results display panel with export functionality
Week 3-4: Enhanced Customization (Current Sprint)
- โณ NEXT: Add "Add Agent" button and dynamic agent creation
- โณ Add agent role templates (researcher, writer, analyst, etc.)
- โณ Implement tool library browser with add/remove functionality
- โณ Add per-agent LLM configuration (temperature, max_tokens)
- โณ Save/load workflow configurations
Success Metrics for Phase 1: โ Users can input a task, run the workflow, see real-time execution progress, and view/export results Success Metrics for Phase 2: Users can customize agents, add/remove tools, and save/load workflow templates
-
Task Input Panel:
- Clean textarea for task descriptions
- Smart validation and UI state management
- Example placeholder text for guidance
-
Real-time Execution Monitoring:
- Live progress bar showing completion percentage
- Step-by-step execution log with timestamps
- Visual highlighting of currently active agent
- Pause/stop controls for user control
-
Professional Results Display:
- Slide-up results panel with final output
- Separate display for each agent's contribution
- JSON export functionality for integration
- Clear/close controls for workflow management
-
Enhanced Agent Visualization:
- Active agent highlighting with red glow effect
- Smooth animations and state transitions
- Professional styling matching modern interfaces
-
Error Handling & UX:
- Connection status awareness
- Loading states and user feedback
- Graceful degradation for connection issues
- Start a Task: Type your task in the input field (e.g., "Plan a wedding for 150 people")
- Run Workflow: Click "Run Task" and watch agents execute in real-time
- Monitor Progress: See which agent is active and track execution steps
- View Results: Review comprehensive results and export if needed
- Customize Agents: Edit agent names and system prompts directly in the UI
The interface is now a fully functional demo that showcases:
- How multi-agent systems work
- Real-time agent coordination
- Professional workflow execution
- Customizable agent configurations
-
Replace Node.js with Python Backendโ COMPLETED- Create Python WebSocket server using
websocketslibrary - Integrate with actual LangGraph workflows
- Implement real agent and tool monitoring
- Create Python WebSocket server using
-
LangGraph Integration ๐ง IN PROGRESS
- Create sample LangGraph workflow with multiple agents
- Implement agent state monitoring hooks
- Add tool execution tracking
- Capture LLM prompt/response pairs (basic implementation done)
- Add more complex workflow examples
- Integrate with actual LLM providers (OpenAI, etc.)
-
Enhanced Agent Cards
- Show agent execution history
- Display agent memory/state persistence
- Add agent performance metrics
- Show inter-agent communication patterns
-
Advanced Tool Monitoring
- Real-time tool parameter validation
- Tool execution timing and performance
- Error handling and retry logic visualization
- Tool dependency mapping
-
Blackboard Enhancements
- Filtering and search functionality
- Export logs to file
- Different view modes (compact, detailed, debug)
- Timestamp and execution order tracking
-
Configuration System
- Agent configuration via UI
- Tool parameter customization
- Workflow routing visualization
- Save/load workflow configurations
-
Performance Monitoring
- Agent execution timing
- Memory usage tracking
- Token consumption monitoring
- Cost tracking for LLM calls
-
Advanced Visualization
- Flow diagrams showing agent interactions
- Execution timeline visualization
- Agent decision tree display
- Network graph of agent/tool relationships
-
Collaboration Features
- Multi-user monitoring support
- Shared workflow sessions
- Comment system for debugging
- Workflow sharing and templates
-
Integration & Deployment
- Docker containerization
- Cloud deployment scripts
- CI/CD pipeline setup
- Production monitoring and logging
- Python 3.8+
- Modern web browser with WebSocket support
- Optional: Ollama for local LLM support
# Clone and setup virtual environment
git clone <repository-url>
cd agentic
python -m venv venv
source venv/bin/activate # On macOS/Linux
pip install -r requirements.txt
# Start the application
./restart.sh
- Add real LLM integration (OpenAI API, etc.)
- Create more complex workflow examples
- Implement enhanced monitoring features
.
โโโ index.html # Main UI layout
โโโ style.css # Complete UI styling
โโโ s1-websocket.js # WebSocket communication module
โโโ s2-rendering.js # UI rendering and card generation
โโโ s3-execution.js # Task execution and progress tracking
โโโ s4-interactions.js # User interactions and document upload
โโโ s5-app.js # Application core and message routing
โโโ python_server.py # WebSocket server with LLM integration
โโโ llm_integration.py # OpenAI and Ollama provider support
โโโ langgraph_workflow.py # LangGraph workflow implementation
โโโ tools.py # Tool execution framework
โโโ requirements.txt # Python dependencies
โโโ restart.sh # Development restart script
โโโ .venv/ # Python virtual environment
โโโ archive/ # Legacy files and backups
โโโ documentation/ # Project documentation
โโโ README.md # This file
This project demonstrates a complete multi-agent AI system with real-time monitoring, document upload/vectorization, and LLM integration. The modular architecture makes it easy to extend with new agents and tools.
[To be determined]
