mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-08-29 13:30:12 +03:00
## Summary Add a complete fault injection system for GNS3 Copilot, migrate all skills from local Python files to an external Git repository with hot reload support, and restructure Copilot API under /copilot/. ## Key Changes ### Fault Injection - New troubleshooting_injection mode with InjectionSkillsTool - 368 fault scenarios across 39 protocol categories - Context-based filtering (LLM must pass topology protocols) ### External Skills Repository - SkillsManager: Git clone/pull, version tracking, smart updates - SkillsLoader: YAML skills + Markdown prompts from external repo - Hot reload via POST /copilot/reload/skills - Configurable via gns3_server.conf ### Architecture - API unified under /copilot/ prefix - SkillsManager moved from Controller to agent module - Lazy initialization with startup background preload - Per-command Git timeout, smart update checks - Forbidden commands hot-reloadable from external repo - 32 INFO logs downgraded to DEBUG
53 lines
1.9 KiB
Python
53 lines
1.9 KiB
Python
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
#
|
|
# GNS3-Copilot - AI-powered Network Lab Assistant for GNS3
|
|
#
|
|
# This file is part of GNS3-Copilot project.
|
|
#
|
|
# GNS3-Copilot is free software: you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License as published by the
|
|
# Free Software Foundation, either version 3 of the License, or (at your
|
|
# option) any later version.
|
|
#
|
|
# GNS3-Copilot is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
# for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with GNS3-Copilot. If not, see <https://www.gnu.org/licenses/>.
|
|
#
|
|
# Copyright (C) 2025 Yue Guobin (岳国宾)
|
|
# Author: Yue Guobin (岳国宾)
|
|
#
|
|
# Project Home: https://github.com/yueguobin/gns3-copilot
|
|
#
|
|
|
|
"""
|
|
Prompts Module for GNS3-Copilot
|
|
|
|
This package provides system prompts loading utilities for the GNS3-Copilot AI agent.
|
|
|
|
All system prompts are now loaded from the external GNS3-Skills repository:
|
|
https://github.com/yueguobin/GNS3-Skills
|
|
|
|
Available prompts (loaded from external repository):
|
|
- lab_automation_assistant.md: Lab automation mode (diagnostics + config)
|
|
- teaching_assistant.md: Teaching assistant mode (diagnostics only)
|
|
- troubleshooting_injection.md: Fault injection specialist
|
|
- title.md: Title generation prompt template
|
|
|
|
Use the SkillsManager to load these prompts:
|
|
from gns3server.agent.gns3_copilot.skills.manager import skills_manager
|
|
|
|
# Load prompts
|
|
lab_prompt = skills_manager.load_prompt("lab_automation_assistant")
|
|
teaching_prompt = skills_manager.load_prompt("teaching_assistant")
|
|
injection_prompt = skills_manager.load_prompt("troubleshooting_injection")
|
|
title_prompt = skills_manager.load_prompt("title")
|
|
"""
|
|
|
|
from .prompt_loader import load_system_prompt
|
|
|
|
__all__ = ["load_system_prompt"]
|