srtool · 网络设备 AI 配置助手
https://gitee.com/net561/aionsole/releases/tag/v1.0.0
通过 Console 配置线(串口) 连接交换机 / 路由器,选择设备品牌与型号、填写登录账号,
用 自然语言 让 AI 生成配置命令,支持「人工确认 / AI 接管」两种执行模式。面向数据中心运维场景的桌面工具。
功能特性
- 串口连接 :自动枚举本机串口,支持任意波特率(默认 9600),兼容多数设备 Console 登录流程
(回车激活 / Username / Password / 免账号直进) - 品牌型号支持 :内置华为、思科、H3C、锐捷、TP-Link 企业、迈普及通用模式的典型型号清单,
每种品牌带 CLI 语法说明与提示符识别规则,AI 按品牌生成对应命令 - AI 自然语言配置 :接入任意 OpenAI 兼容大模型接口(OpenAI / DeepSeek / 通义 / 文心 / Ollama 等),
输入如"把 1/0/1 口划到 VLAN 10",自动生成该品牌设备的完整 CLI 命令 - 双运行模式 :AI 配置会话支持「人工确认」与「AI 接管」一键切换(选择会持久化)。
人工确认为默认模式,维持逐条确认后执行;AI 接管模式下命令生成后自动逐条下发执行,
高危命令仍被拦截兜底,切换前有明确风险提示 - 安全确认机制 :命令执行前逐条安全校验------高危命令(格式化、删配置、重启、恢复出厂等)一律拦截,
风险命令(接口 shutdown、undo 等)在人工确认模式下提示确认;两种模式下高危命令都无法绕过 - 操作审计 :所有命令执行(来源 AI / 手动、设备、结果、回显摘要、运行模式)自动记录操作日志,
可随时查看与清空 - 实时回显:设备输出实时显示在面板(底部「设备回显」页签),命令执行结果直观可见
- 真实终端 :底部「真实终端」页签内置 xterm 终端,连接后可像串口终端软件一样逐键输入、
方向键/退格/粘贴均可(模拟设备同样支持),适合人工下发与调试;断开连接后自动锁定输入;
「导出」按钮可将缓冲区内容(含回滚的配置过程与命令回显)一键导出为文本文件 - 独立终端窗口 :真实终端可分离到独立窗口全屏操作,主窗口同步保持设备回显,
收回后自动恢复终端页签,方便「边配置边观察」 - 配置过程导出 :AI 配置会话可导出为 Markdown 文档(设备信息、运行模式、用户请求、AI 命令、
校验结果、执行状态与回显),便于归档与复盘 - 模拟设备模式 :没有真实硬件时,可切换为「模拟设备」,按所选品牌/型号模拟 Console 登录、
提示符与命令回显(display/show、视图切换、VLAN 操作、ping 等),用于演示与联调 AI 配置流程
技术栈
Electron 39 · Vue 3 · TypeScript · electron-vite · serialport(原生串口)· xterm.js(真实终端)· OpenAI 兼容 API
快速开始
bash
# 安装依赖(pnpm)
pnpm install
# 开发模式(热更新)
pnpm dev
# 类型检查
pnpm run typecheck
# 构建
pnpm run build
# 打包 Windows 安装包
pnpm run build:win
使用说明
- 连接设备 :左侧先选择「真实串口」或「模拟设备」。
- 真实串口:选择串口号(无串口时点击「刷新」重新检测)→ 选择波特率、品牌、型号 →
填写 Console 登录账号(设备免账号可留空)与密码 → 点击「连接设备」 - 模拟设备:无需串口,仅需选择品牌、型号并填写账号密码,即可体验完整的连接 → 登录 →
AI 生成命令 → 执行的流程(密码留空时模拟直连)
- 真实串口:选择串口号(无串口时点击「刷新」重新检测)→ 选择波特率、品牌、型号 →
- 配置服务 :首次使用点击右上角「AI 设置」,填写 OpenAI 兼容接口的 API 地址、密钥与模型名
(如https://api.deepseek.com/v1+deepseek-chat) - AI 配置 :连接成功后,在右侧输入自然语言需求(如"创建 VLAN 20,1/0/2 口设为 access 并划入"),
点击「生成命令」→ 核对并编辑命令 → 「全部执行」或逐条「执行」。
会话头部可切换运行模式:- 人工确认(默认):AI 生成命令后逐条核对确认再执行,风险命令有提示
- AI 接管:AI 生成命令后自动逐条执行,无需逐条确认;高危命令仍会被拦截(切换时有明确提示)
- 终端操作 :底部「真实终端」可直接逐键输入调试命令,「导出」按钮将终端全部显示内容保存为
文本文件,「分离窗口」可将终端放到独立窗口操作;会话区「导出文件」可将本次配置过程存档为 Markdown - 查看审计:右上角「操作日志」可回溯所有已执行命令、结果与当时的运行模式,支持清空
命令安全规则
| 级别 | 说明 | 示例 |
|---|---|---|
| 拦截 | 高危操作,两种模式下均不允许执行 | format / erase / delete flash: / reboot / reset saved-configuration / restore default / password recovery |
| 需确认 | 可能影响业务;人工确认模式下执行前提示,AI 接管模式下经评估自动执行 | shutdown / undo xxx / no xxx / clear 清表 / save 保存 |
| 放行 | 只读与常规配置 | display/show、接口配置、VLAN 创建等 |
提示:命令守卫是硬性安全防线,高危命令在任何模式下都无法绕过,并在操作日志中留下拦截记录;
AI 接管模式适合熟悉变更风险后的批量操作,关键设备变更仍建议切换回人工确认模式复核后再执行。
配置与数据
- AI 服务与运行模式配置:
%APPDATA%/srtool/settings.json(含runMode:confirm人工确认 /autoAI 接管;
也可用环境变量AI_BASE_URL/AI_API_KEY/AI_MODEL覆盖 AI 服务参数) - 操作日志:
%APPDATA%/srtool/operation-logs.json(保留最近 2000 条,含运行模式) - 登录密码仅保存在内存会话中,不落盘
- 导出文件(终端文本 / 会话 Markdown):保存时由系统对话框选择路径
目录结构
src/
├── main/ # 主进程(Node 侧)
│ ├── index.ts # 窗口 + IPC 通道注册
│ ├── serialManager.ts # 串口连接 / 自动登录 / 命令下发(支持模拟设备)
│ ├── virtualDevice.ts # 模拟设备:登录/提示符/命令回显状态机
│ ├── deviceProfiles.ts # 品牌型号档案与提示符规则
│ ├── aiService.ts # OpenAI 兼容接口调用与命令解析
│ ├── commandGuard.ts # 命令安全校验
│ ├── settingsStore.ts # 设置持久化
│ └── logStore.ts # 操作日志
├── preload/ # 上下文桥接(window.api)
├── renderer/ # Vue 3 界面
│ └── src/components/ # ChatPanel(AI 会话+运行模式)/ TerminalPanel(真实终端+导出)/ 等
└── shared/ # 主/渲染进程共享类型、会话导出组装、执行策略(双模式路由)
