YueGuobin a946ef2d69 eat(copilot): add dynamic wait time calculation for node startup
Optimize GNS3StartNodeTool with device-type-aware wait time calculation
   to significantly reduce startup time for fast devices (VPCS, IOU).

   Changes:
   - Add NODE_STARTUP_TIME configuration
     * VPCS: 10s base + 2s per additional node
     * IOU: 20s base + 3s per additional node
     * Other devices: 120s base + 10s per additional node (conservative)

   - Add calculate_startup_time() function
     * Detects device types via node.node_type
     * Uses fast startup time if all nodes are VPCS/IOU
     * Uses conservative time if any slow device present
     * Logs selected strategy and detected types

   - Optimize GNS3StartNodeTool._run() method
     * Retrieve node info (including node_type) before starting
     * Calculate wait time based on detected device types
     * Send start commands after info retrieval
     * Use calculated wait time for progress bar
     * Reuse collected node objects for status retrieval

   Performance improvements:
   - 1 VPCS node: 140s → 10s (93% faster)
   - 5 VPCS nodes: 180s → 18s (90% faster)
   - 1 IOU node: 140s → 20s (86% faster)
   - 5 IOU nodes: 180s → 32s (82% faster)
   - Mixed VPCS/IOU: 180s → 28s (84% faster)

   Documentation:
   - Update node-control-tools.md with dynamic wait time strategy
   - Add device type comparison table
   - Document performance improvements
   - Update changelog

   Code quality:
   - All comments in English
   - flake8 check passed
   - mypy check passed
2026-03-14 15:14:28 +08:00
..

GNS3 AI Copilot Documentation

This directory contains design documentation, implementation guides, and future plans for the GNS3 AI Copilot feature.

Directory Structure

docs/gns3-copilot/
├── README.md                    # This file
└── implemented/                 # Implemented features and designs
    ├── chat-api.md             # Chat API design (SSE, session management)
    ├── llm-model-configs.md    # LLM model configuration system
    ├── command-security.md     # Command security and filtering
    ├── context-window-management.md  # Context window optimization
    ├── node-control-tools.md   # Node start/stop/suspend tools for lab automation
    └── multi-vendor-device-support.md  # Multi-vendor device support (Cisco, Huawei)

Implemented Features

Chat API (implemented/chat-api.md)

The core Chat API that enables AI-powered conversations within GNS3 projects.

Key Features:

  • Server-Sent Events (SSE) for streaming responses
  • Project-level session isolation
  • Session management (CRUD operations)
  • Statistics tracking (messages, tokens, LLM calls)
  • User-level LLM configuration

Status: Implemented

LLM Model Configs (implemented/llm-model-configs.md)

Multi-level LLM model configuration system.

Key Features:

  • System-wide defaults
  • Group-level configurations
  • User-level overrides
  • Runtime parameter adjustment
  • Model provider abstraction

Status: Implemented

Command Security (implemented/command-security.md)

Security framework for AI-generated commands.

Key Features:

  • Command filtering and validation
  • Dangerous operation detection
  • HITL (Human-in-the-Loop) confirmations
  • Audit logging

Status: Implemented

Context Window Management (implemented/context-window-management.md)

Optimization strategies for handling large project contexts.

Key Features:

  • Intelligent content filtering
  • Token usage optimization
  • Summary generation
  • Context compression

Status: Implemented

Node Control Tools (implemented/node-control-tools.md)

Tools for controlling network device lifecycle in GNS3 projects.

Key Features:

  • Start nodes with progress tracking
  • Quick start for automated workflows
  • Stop nodes for lab shutdown
  • Batch operations support
  • Mode-based access control

Status: Implemented

Multi-Vendor Device Support (implemented/multi-vendor-device-support.md)

Multi-vendor network device support with custom Netmiko drivers for Huawei, Ruijie, and VPCS devices.

Key Features:

  • Custom HuaweiTelnetCE driver for Huawei CloudEngine (no authentication)
  • Custom RuijieTelnetEnhanced driver for Ruijie OS (interactive command handling)
  • Custom VPCSTelnet driver for VPCS simulator (no authentication, ANSI code stripping)
  • Cisco IOS Telnet support
  • Dynamic device type detection from GNS3 tags
  • Unified Nornir + Netmiko architecture
  • Vendor-specific command handling (VRP system-view, Ruijie interactive prompts, VPCS simple prompts)

Tested Vendors:

  • Cisco IOS (Telnet)
  • Huawei CloudEngine (Telnet, custom driver)
  • Ruijie (锐捷) OS (Telnet, custom enhanced driver)
  • VPCS (Virtual PC Simulator, Telnet, custom driver)

Status: Implemented

Future Enhancements

The following features are currently under consideration or development:

  • Configuration Templates: Template-based configuration generation for multi-vendor network devices
  • Vision-based Topology Creation: Create network topologies from images/diagrams
  • Enhanced HITL Workflows: Advanced Human-in-the-Loop confirmation patterns
  • Web UI Enhancements: Improved management interfaces

Contributing

When adding new documentation:

  1. Implementation: Add documentation to implemented/ when feature is complete
  2. Naming: Use concise names like {feature}.md

Document Status Legend

Status Description
Implemented Feature is fully implemented and deployed
📋 Design Complete Design is done, awaiting implementation
🚧 In Progress Currently being implemented
💡 Proposed Initial idea or proposal
  • Current Feature Branch: feature/ai-copilot-bridge
  • Main Branch: master
  • Issue Tracker: GitHub Issues

Last updated: 2026-03-14