🚀 项目公告: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. 闭环工作流
为了确保自我纠正和高成功率,系统在严格的循环中运行:
- 用户输入:系统接收高级请求(例如"设置双栈 BGP 核心")
- 规划:规划智能体将其分解为 API 调用和配置命令
- 执行:执行智能体与 GNS3/EVE-NG 设备交互
- 监控:监督智能体验证状态(例如"BGP 会话是否已建立?")
- 干预:如果链路保持 'Down' 状态,专家智能体分析日志,更正配置,并循环回执行阶段
- 最终交付:经验证后,完成的工作呈现给用户
路线图
第一阶段:核心体验
- 人工在环(HITL)确认
- 语法高亮
第二阶段:无缝集成
- 分屏 UI(聊天 + GNS3 Web UI)✅
第三阶段:多平台支持
- 添加 EVE-NG、Cisco CML 和 Containerlab 🚫
第四阶段:生态系统扩展(MCP)
- 打包为模型上下文协议(MCP)服务器,以便与 Claude Desktop 和 Gemini CLI 集成
🤝 加入我们的旅程!
这是一个开源倡议,我很想听听社区的声音。
反馈
哪些功能能为您在实验室中节省最多时间?
贡献
无论是代码、文档还是测试,我们都欢迎您的参与!
支持
如果您对这个项目感兴趣,请给它一个 ⭐ Star 仓库 来关注进展。
让我们一起让网络实验室变得更智能、更快速、更有趣!🚀