Skip to content

🚀 项目公告:GNS3 Copilot — 构建面向网络实验室的 AI 驱动助手


大家好!👋

我很高兴正式宣布 GNS3 Copilot,这是我在过去几个月里一直在开发的开源项目。我的目标是通过将 LLM 和 AI 智能体的强大功能引入网络世界,改变我们与网络实验室的交互方式。

💡 愿景

愿景很简单:让工程师能够使用自然语言管理复杂的网络拓扑。无论是创建节点、连接链路、配置 OSPF,还是排查连接问题,GNS3 Copilot 都可以充当您的智能合作伙伴。


当前状态(单智能体原型)

我们已经有了一个可工作的原型,支持以下功能:

自然语言交互

由基于 LangGraph 的智能体驱动。

支持工具的 GNS3 API 集成

基于 GNS3 REST API 构建的全面工具套件,使 LLM 能够执行函数调用,根据实时意图动态创建项目、管理节点和配置链路。

Streamlit Web UI

一个简洁的界面,用于实时聊天和执行反馈。


来自实验室的经验:为什么我们需要不止一个智能体

在构建初始原型时,我花了一个月时间"生活"在 LLM + GNS3 的环境中。这些实践经验直接促成了我们向多智能体架构的转变:

"无限耐心"因素

LLM 是终极的 24/7 导师。它们永远不会因为你的 BGP 状态是 "Active" 而感到厌烦。但作为单智能体,它们有时会"只见树木,不见森林"。

幻觉障碍

虽然 AI 对标准 RFC(OSPF/BGP)了如指掌,但在处理专有厂商逻辑或复杂的路由重分发时会遇到困难。我了解到我们不应该向 AI 索要"答案",而是要求诊断树。

"空间"限制

在具有 20+ 节点的拓扑中,单个 LLM 会话经常遇到"逻辑上限"。它无法一次"看到"整个地图,这就是我们要转向模块化规划方法的原因。

模拟中的安全性

GNS3 + AI 最好的部分是允许失败的自由。我意识到让 AI"破坏"实验室是工程师学习的最快方式。


下一步演进:多智能体系统(计划中)

为了解决上述发现的局限性,我们正在将 GNS3 Copilot 演进为一个复杂的多智能体系统。

随着项目的发展,我们正在转向复杂的多智能体系统架构,以确保可靠性并处理复杂的网络任务。

1. 多智能体角色分配

我们采用不同的智能体,每个智能体专门负责特定功能:

智能体 职责
规划智能体 识别用户意图并制定详细的分步任务计划
执行智能体 根据计划执行特定的设备操作
监督智能体 持续监控结果。如果出现问题,它会触发重试或调用专家智能体
专家智能体 解决复杂故障,提供高级指导,并修正原始计划

2. 闭环工作流

为了确保自我纠正和高成功率,系统在严格的循环中运行:

  1. 用户输入:系统接收高级请求(例如"设置双栈 BGP 核心")
  2. 规划:规划智能体将其分解为 API 调用和配置命令
  3. 执行:执行智能体与 GNS3/EVE-NG 设备交互
  4. 监控:监督智能体验证状态(例如"BGP 会话是否已建立?")
  5. 干预:如果链路保持 'Down' 状态,专家智能体分析日志,更正配置,并循环回执行阶段
  6. 最终交付:经验证后,完成的工作呈现给用户

路线图

第一阶段:核心体验

  • 人工在环(HITL)确认
  • 语法高亮

第二阶段:无缝集成

  • 分屏 UI(聊天 + GNS3 Web UI)✅

第三阶段:多平台支持

  • 添加 EVE-NG、Cisco CML 和 Containerlab 🚫

第四阶段:生态系统扩展(MCP)

  • 打包为模型上下文协议(MCP)服务器,以便与 Claude Desktop 和 Gemini CLI 集成

🤝 加入我们的旅程!

这是一个开源倡议,我很想听听社区的声音。

反馈

哪些功能能为您在实验室中节省最多时间?

贡献

无论是代码、文档还是测试,我们都欢迎您的参与!

支持

如果您对这个项目感兴趣,请给它一个 ⭐ Star 仓库 来关注进展。


让我们一起让网络实验室变得更智能、更快速、更有趣!🚀