network-automation-system
This hybrid network automation system integrates LangGraph for workflow orchestration, LangChain for natural language processing, and Model Context Protocol (MCP) for intelligent network device management. Users can interact with network devices using conversational commands, simplifying complex multi-device operations. It also features automated network mapping and topology discovery capabilities.
GitHub Stars
1
User Rating
Not Rated
Favorites
0
Views
38
Forks
1
Issues
0
Hybrid Network Automation System
LangGraph/LangChain/MCP with pyATS/Genie Integration
A comprehensive network automation system that combines the power of LangGraph workflow orchestration, LangChain natural language processing, and Model Context Protocol (MCP) for intelligent network device management.
๐ Features
Core Capabilities
- Natural Language Interface: Interact with network devices using conversational commands
- Intelligent Workflow Orchestration: Complex multi-device operations with LangGraph
- Rich Context Management: MCP-powered device and topology awareness
- Multi-Vendor Support: pyATS/Genie integration for Cisco, Juniper, Arista, and more
- Comprehensive Topology Discovery: Automated network mapping and relationship tracking
- Enterprise Security: Role-based access control, audit logging, and credential management
Supported Platforms
- Cisco: IOS, IOS-XE, IOS-XR, NX-OS, WLC (Wireless Controllers)
- Juniper: JunOS
- Arista: EOS
- Future: Palo Alto, Fortinet, F5, and more
๐๏ธ Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ User Interface Layer โ
โ (CLI + Web Dashboard) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ FastAPI Gateway โ
โ (Authentication & Routing) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโ
โผ โผ โผ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ LangChain โ โ LangGraph โ โ MCP Server โ
โ (NL Processing)โ โ (Workflows) โ โ (Context) โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Network Execution Layer โ
โ (pyATS/Genie) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ PostgreSQL Database โ
โ (Devices, Topology, Commands, Audit) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ ๏ธ Technology Stack
- Backend: FastAPI, Python 3.11+
- Database: PostgreSQL 15+ with JSONB support
- Caching: Redis
- Network Automation: pyATS/Genie, Unicon
- AI/ML: LangChain, LangGraph, OpenAI/Ollama
- Context Protocol: Model Context Protocol (MCP)
- Containerization: Docker, Docker Compose
- Monitoring: Prometheus, Grafana
- Testing: pytest, pytest-asyncio
๐ Prerequisites
- Python 3.11 or higher
- PostgreSQL 15 or higher
- Redis 7 or higher
- Docker and Docker Compose (for containerized deployment)
- Git
๐ Quick Start
1. Clone the Repository
git clone https://github.com/your-org/network-automation-system.git
cd network-automation-system
2. Environment Setup
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
3. Database Setup
# Start PostgreSQL and Redis with Docker
docker-compose -f deployment/docker-compose/docker-compose.dev.yml up -d postgres redis
# Run database migrations
alembic upgrade head
4. Configuration
# Copy environment template
cp configs/env.template .env
# Edit .env with your settings
# - Database connection
# - OpenAI API key (or Ollama endpoint)
# - Device credentials
5. Start the System
# Development mode
python -m uvicorn src.api.main:app --reload --host 0.0.0.0 --port 8000
# Or use Docker Compose
docker-compose -f deployment/docker-compose/docker-compose.dev.yml up
6. Access the System
- API Documentation: http://localhost:8000/docs
- Web Interface: http://localhost:3000
- Monitoring: http://localhost:3001 (Grafana)
๐ Documentation
Quick Links
Architecture Documentation
Operational Guides
๐ฏ Usage Examples
Natural Language Commands
# CLI Interface
network-automation interactive
> Add a new Cisco wireless controller at 192.168.1.10
> Show me the status of all access points on WLC-CORP-01
> Find all devices connected to VLAN 100
> Backup configurations of all core routers
API Usage
import httpx
# Execute command via API
async with httpx.AsyncClient() as client:
response = await client.post("http://localhost:8000/api/v1/natural-language/process",
json={"input": "Show interface status on router-01"})
print(response.json())
Workflow Creation
from src.langgraph_layer.workflows import WorkflowBuilder
# Create multi-device workflow
workflow = WorkflowBuilder() \
.add_command_step("Backup Config", "show_running_config", "router-01") \
.add_command_step("Update SNMP", "configure_snmp", "router-01", {"community": "new-string"}) \
.add_validation_step("Verify Config", "show_running_config", "router-01") \
.build("SNMP Update Workflow")
๐งช Testing
# Run all tests
pytest
# Run specific test categories
pytest tests/unit/ # Unit tests
pytest tests/integration/ # Integration tests
pytest tests/e2e/ # End-to-end tests
# Run with coverage
pytest --cov=src --cov-report=html
๐ Deployment
Docker Compose (Recommended)
# Production deployment
docker-compose -f deployment/docker-compose/docker-compose.prod.yml up -d
# Development deployment
docker-compose -f deployment/docker-compose/docker-compose.dev.yml up -d
Kubernetes
# Deploy to Kubernetes
kubectl apply -f deployment/kubernetes/
๐ง Development
Project Structure
src/
โโโ api/ # FastAPI application
โโโ core/ # Database models and core utilities
โโโ langchain_layer/ # Natural language processing
โโโ langgraph_layer/ # Workflow orchestration
โโโ mcp_server/ # Model Context Protocol implementation
โโโ network_layer/ # Network device connectivity
โโโ topology/ # Network topology management
docs/ # Documentation
tests/ # Test suites
docker/ # Docker configurations
deployment/ # Deployment configurations
monitoring/ # Monitoring configurations
Contributing
- Fork the repository
- Create a 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
๐ Monitoring
The system includes comprehensive monitoring with:
- Prometheus: Metrics collection
- Grafana: Visualization and alerting
- Application metrics: Command execution, workflow performance
- Infrastructure metrics: Database, API, network connectivity
๐ Security
- Authentication: JWT with multi-factor authentication
- Authorization: Role-based access control (RBAC)
- Credential Management: HashiCorp Vault integration
- Audit Logging: Comprehensive audit trail
- Network Security: Encrypted connections, credential rotation
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ค Support
- Documentation: docs/
- Issues: GitHub Issues
- Discussions: GitHub Discussions
๐ Acknowledgments
- pyATS/Genie - Network automation framework
- LangChain - LLM application framework
- LangGraph - Workflow orchestration
- FastAPI - Modern web framework
- Model Context Protocol - Context management standard
2
Followers
10
Repositories
1
Gists
0
Total Contributions