mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-10-28 03:02:22 +02:00
Integrate the gns3-copilot AI assistant module to provide intelligent automation and interaction capabilities for GNS3 network emulation. Key components: - AI agent framework with LLM integration (supports Qwen vision model) - GNS3 client library for project topology management - Extensive prompt templates for various network operation scenarios - Tool library for node creation, linking, configuration, and management - Support for English level assessment (A1-C2) and specialized personas - Network drawing and topology visualization tools - Linux device automation via Nornir/Telnetlib - Window controller for UI interaction Features: - Multi-modal AI agent with vision capabilities - Automated network topology deployment and configuration - Interactive node and drawing management - File-based project operations (read, write, list) - Specialized prompts for different scenarios and skill levels - Comprehensive tool set for network device management
83 lines
3.0 KiB
Python
83 lines
3.0 KiB
Python
"""
|
|
Drawing tool prompt for GNS3 area annotation creation.
|
|
|
|
This module provides specialized prompts for guiding the AI in using GNS3 drawing tools
|
|
to create visual area annotations for network topology.
|
|
"""
|
|
|
|
|
|
def get_drawing_prompt() -> str:
|
|
"""
|
|
Get the drawing tool usage prompt for the AI agent.
|
|
|
|
Returns:
|
|
str: A comprehensive prompt with examples and best practices for drawing tools.
|
|
"""
|
|
return """
|
|
## GNS3 Drawing Tools
|
|
|
|
Use `create_gns3_area_drawing` to create visual area annotations for network devices.
|
|
|
|
### When to Use
|
|
|
|
Create annotations when configuring routing protocols or grouping devices:
|
|
- OSPF areas, EIGRP AS, BGP AS
|
|
- Logical isolation (VRF, VLAN, MSTP)
|
|
- High availability groups (VRRP, HSRP)
|
|
- Any 2 devices in the same logical domain
|
|
|
|
### Tool Parameters
|
|
|
|
- `project_id`: GNS3 project UUID
|
|
- `area_name`: Area/group name (e.g., "Area 0", "BGP AS 65001", "VRF A", "VLAN 10")
|
|
- `node_names`: Exactly 2 node names (e.g., ["R-1", "R-2"])
|
|
|
|
**Important**: Only supports exactly 2 nodes.
|
|
|
|
### Usage Examples
|
|
|
|
```
|
|
User: Configure OSPF area 0 on R-1 and R-2
|
|
→ create_gns3_area_drawing(project_id="xxx", area_name="Area 0", node_names=["R-1", "R-2"])
|
|
|
|
User: Create VLAN 10 for SW-1 and SW-2
|
|
→ create_gns3_area_drawing(project_id="xxx", area_name="VLAN 10", node_names=["SW-1", "SW-2"])
|
|
|
|
User: Configure VRRP group 1 on R-1 and R-2
|
|
→ create_gns3_area_drawing(project_id="xxx", area_name="VRRP Group 1", node_names=["R-1", "R-2"])
|
|
```
|
|
|
|
### Color Scheme (Business Professional)
|
|
|
|
The tool automatically selects colors based on keywords in area_name:
|
|
|
|
| Color | Semantics | Keywords | Examples |
|
|
|-------|-----------|----------|----------|
|
|
| `#2980B9` (Blue) | Core/Backbone | BGP, AS, AREA 0, BACKBONE | "BGP AS 65001", "Area 0" |
|
|
| `#5AA9DD` (Light Blue) | Normal Areas | AREA, LEVEL, OSPF, IS-IS, RIP, EIGRP | "Area 1", "Level-1" |
|
|
| `#9B59B6` (Purple) | Logical Isolation | VRF, VLAN, MSTP, VXLAN, MPLS | "VRF A", "VLAN 10" |
|
|
| `#E67E22` (Orange) | Management | MGMT, OOB, MANAGEMENT, INFRA | "MGMT", "OOB Network" |
|
|
| `#F39C12` (Bright Orange) | High Availability | VRRP, HSRP, HA, STACK, M-LAG, GLBP | "VRRP Group 1", "Core Stack" |
|
|
| `#E74C3C` (Bright Red) | External/Boundary | INET, OUT, EXTERNAL, INTERNET, DMZ | "Internet", "DMZ" |
|
|
| `#2ECC71` (Bright Green) | Security/Trusted | TRUST, SECURE, SAFE, DATA CENTER, SECURITY, VPN, IPSEC | "Trust Zone", "Data Center" |
|
|
| `#00CED1` (Cyan) | Cloud/Tunnel | GRE, IPSEC, VPN, TUNNEL, CLOUD, AWS, AZURE | "GRE Tunnel", "Cloud Provider" |
|
|
|
|
**Default**: Uses gray (`#808B96`) for labels without matching keywords.
|
|
|
|
### Best Practices
|
|
|
|
1. Complete configuration before creating annotations
|
|
2. Use concise names: "Area 0" not "OSPF Backbone Area Zero"
|
|
3. Verify configuration success with display commands first
|
|
4. Inform user when creating visual annotations
|
|
|
|
### Error Handling
|
|
|
|
If drawing fails:
|
|
- Verify node names are correct
|
|
- Ensure exactly 2 node names are provided
|
|
- Check project_id is valid
|
|
- Report error and continue with other tasks
|
|
|
|
"""
|