尧图精选

AI SSH 运维 Agent项 目 介 绍(二)

🕒 发布时间:2026/9/28 5:04:22 📁 来源:尧图网络
AI SSH 运维 Agent · 网络设备接入能力目 录一、为什么需要它二、核心设计两条通道权责分离三、功能详解3.1 统一设备清单跨设备无感切换3.2 懂 VRP 方言不做「Linux 式误用」3.3 报错是「读」出来的不是「看退出码」看出来的3.4 配置安全的三道闸门3.5 强制「先读后写、写后回读」闭环四、实战案例一次完整的「检测 → 变更 → 验证」目标一配置 SW1 的接口地址池可用地址 100~250目标二补充 DNS 各网段网关 8.8.8.8目标三R1 补默认路由五、程序主动告诉你的「坏消息」六、变更台账与边界七、小结一、为什么需要它网工日常的痛点很集中设备在机房、只能 Telnet、命令方言各有一套。查一台交换机的 DHCP 池要背display ip pool interface Vlanif10改一条路由要记得从用户视图一步步system-view → interface → quit → return。设备一多「逐台登录、逐条敲、手工记账」就是纯粹的体力活而风险恰恰藏在体力活里——打错一个字一条shutdown或者一次save覆盖代价是断网。这套程序要解决的核心问题不是「让 AI 敲命令」而是在保留人工决策权的前提下把可标准化的读与写拆开让「看」变得零风险让「改」变得可审计、可回滚。二、核心设计两条通道权责分离程序把网络设备的交互严格切成两个入口对应两种不同的信任级别通道工具允许的操作风险等级只读巡检net_exec(host, command, timeout)仅 display / ping / tracert 白名单零风险可随意执行配置变更net_config(host, commands[])进入系统视图逐条下发自动分级管控这个「读写分离」不是形式主义它带来三个实际好处巡检可以放开手做。排查问题时需要连续下发十几条 display只读通道让这些操作完全无副作用不需要你逐条确认。变更天然留下「施工记录」。所有写操作都要经过 net_config每条命令独立返回执行结果天然形成一份变更清单便于事后复盘。误操作的物理闸门。即使模型判断失误想发一条 reboot也过不了 net_config 的检查。两条通道还配有「双向防误用」引导把net_exec指向一台 Linux 服务器时程序不会硬跑 Telnet而是提示改走 SSH 命令通道反过来在 VRP 设备上直接发配置类命令也会被引导到net_config从入口上杜绝「用错通道」。同一个工具在错误的对象上不会沉默地失败而是被纠正到正确的用法上。三、功能详解3.1 统一设备清单跨设备无感切换网络设备与服务器统一登记在同一份清单config/hosts.yml中用逻辑名直接寻址AR1: 127.0.0.1:2000华为路由器免密直进SW1: 127.0.0.1:2001华为交换机免密直进调用时只需指定名字——net_exec(SW1, display vlan)无需关心它是 Telnet 还是 SSH、端口是多少。设备条目只需要四个字段device_type: huawei_vrp加上地址、端口、备注免密直进的模拟器设备用户名和密码全部留空即可。除了手写配置文件Web 界面的「添加受管主机」表单也内置了设备类型选择——选「华为 VRPTelnet」用户名密码留空就能把一台免密模拟器设备纳入清单与 CLI 共用同一份配置。切换到网络设备时程序会自动执行一次「入场体检」采集display version与display ip interface brief的基线信息注入 AI 的上下文——设备型号、版本、接口 IP 概览在动手前就已就位AI 不用盲目摸索。更进一步run_command_on_hosts支持一条命令在多台设备上并行执行适合批量巡检并且对网络设备同样前置只读检查——非白名单命令在任何一台 VRP 设备上都会被拦下批量通道不会成为绕过闸门的后门。需要逐台执行不同命令时再退回单机模式。同名设备的连接自动复用反复下发命令不会反复重建 Telnet 会话。3.2 懂 VRP 方言不做「Linux 式误用」这是很多通用 Agent 栽跟头的地方。程序内置了 VRP 方言约束提示词层面的速查表覆盖十类高频差异知道 VRP 的过滤语法与 Linux 不同——用| include / | exclude / | section而不是 grep / awk。例如一条display current-configuration | include ip route-static就能精准捞出 R1 的全部静态路由。知道system-view / return / quit由程序托管。写配置时只管写「业务命令」不用手动切视图——net_config 自动进系统视图、自动返回用户视图。但视图内部的跳转仍由命令本身控制所以下面这种写法是合法的[interface Vlanif10, dhcp server dns-list 192.168.10.254 8.8.8.8,interface Vlanif20, dhcp server dns-list 192.168.20.254 8.8.8.8]一组逻辑完整的命令在一个事务内下发跨接口视图一气呵成中间不用 quit。知道 VRP 分页会截断长输出——连接建立后程序自动下发screen-length 0 temporary关闭分页长配置一次读全不会停在「---- More ----」。知道 ping 是逐包打印的约 2 秒/包必须用-c 3控制包数并给足超时否则会一直挂着。3.3 报错是「读」出来的不是「看退出码」看出来的VRP 没有独立错误流、也没有可靠退出码。程序对此的处理原则是一切以回显文本为准并教会模型识别典型错误Error: Unrecognized command found at ^ position.^^ 精确指向语法出错的位置程序内置了错误回显特征判定Error / Unrecognized command / Incomplete command / Wrong parameter /at ^ position/ Too many / Ambiguous命中即在结果中标注失败。遇到这类报错正确姿势是根据 ^ 位置修正语法后重试而不是原样重发——重发一万次也是同样的错。3.4 配置安全的三道闸门程序对写入命令做分级管控这是整套设计里最有价值的部分级别典型命令行为普通接口 IP、VLAN、路由、DHCP直接执行逐条返回结果高危reboot、save、shutdown暂停请求用户人工确认CLI 终端 / Web 弹窗毁灭性format、reset saved-configuration、factory-configuration、undo startup直接拒绝不给执行机会连确认弹窗都不会出现同时「写入运行配置」与「持久化到启动配置」被刻意拆成两步net_config只改运行配置save必须单独下发且必经人工确认——确认后程序还会自动应答设备侧的 [Y/N] 交互全程无需手动干预。这条设计非常关键——它意味着任何配置变更在重启前都是「可撤销」的拔掉重来即可回到原状。每次下发完成程序都会在结果里附上提示「配置已写入运行配置持久化需向用户确认后单独执行 save」把重启决策权完整地留给你。3.5 强制「先读后写、写后回读」闭环程序把一条运维铁律固化成了行为规范任何变更前先 display 确认现状下发后再回读验证生效。下面是一次标准示范。补 DNS 之前先读两个地址池的现状DNS-server0 : - - 确认原本为空Gateway-0 : 192.168.10.254下发后再次回读DNS-server0 : 192.168.10.254DNS-server1 : 8.8.8.8 - 确认写入成功没有回读的变更等于没做——因为你不知道它到底生效了没有。这个习惯也顺带抓出了不少隐藏问题见第五章。四、实战案例一次完整的「检测 → 变更 → 验证」以下是一次真实会话完成的三项变更过程可以完整反映程序的工作方式。目标一配置 SW1 的接口地址池可用地址 100~250VRP 的接口地址池不支持直接写「起止地址」标准手法是dhcp select interface拿到整个网段再用excluded-ip-address把两端挖掉interface Vlanif10dhcp select interfacedhcp server excluded-ip-address 192.168.10.1 192.168.10.99 - 挖掉 1~99dhcp server excluded-ip-address 192.168.10.251 192.168.10.253 - 挖掉 251~253回读结果精确对上了预期Total 253 / Idle 151 / Disable 102——可用地址恰为 100~250 共 151 个。Vlanif20 同样处理。一个容易踩的坑Vlanif20 的池号是 Pool-No 1 而非 0说明设备上还有别的池回读时不能想当然。目标二补充 DNS 各网段网关 8.8.8.8interface Vlanif10dhcp server dns-list 192.168.10.254 8.8.8.8一条命令同时下发主备 DNSdisplay ip pool 中 DNS-server0 / DNS-server1 双字段回显正确。目标三R1 补默认路由下发前先做下一跳存在性核查——display arp interface GigabitEthernet0/0/110.10.10.1 0050-56c0-0008 Dynamic10.10.10.2 0050-56fa-e47b Dynamic - 目标下一跳真实存在两台设备都能正常回 ARP华为 OUI 0050-56xx二层确认有真实设备说明这条路不会因 ARP 解析失败而失效。确认后才下发ip route-static 0.0.0.0 0.0.0.0 10.10.10.2回读路由表0.0.0.0/0 Static 60 RD 10.10.10.2 GE0/0/1——RD 标志表明路由已装入转发平面真正生效而不是只躺在配置里。这一手「ARP 探活」很值得说当 ICMP 被上游设备过滤时本环境 10.10.10.1/.2 都 ping 不通ping 会给出「设备不存在」的误导性结论而 ARP 表能穿透这一层——二层有没有这台机器ARP 说了算。五、程序主动告诉你的「坏消息」这套程序不只会执行命令它还会在验证阶段主动暴露那些「命令成功但业务不通」的情况。同一次会话中有两个典型其一8.8.8.8 实测不可达。默认路由配置成功、路由表生效但 ping -c 3 8.8.8.8 是 3 发 0 收tracert 全跳超时。程序没有止步于「配置已下发」而是明确标注路由配置本身正确但外网可达性未通过验证并把可能原因按可能性排序上游无回程路由 / 出口未放通 NAT / 下一跳选错。其二网关也是 DNS 地址 ≠ 网关提供 DNS 服务。按要求把首选 DNS 设成了网关地址程序提醒S5700 只负责「告知」客户端它本身不做 DNS 解析。若网关上没有真正运行 DNS 服务客户端会先超时再回落 8.8.8.8——而 8.8.8.8 当前也不通结果是「看起来配好了实际解析很慢或失败」。这类「提醒」才是运维助手真正的价值命令回显说「成功」但业务到底通不通是两回事。六、变更台账与边界每次配置下发程序都会逐条返回执行结果并标注持久化状态一份清晰的台账随会话自然形成。本次会话的成果如下设备变更内容条数持久化SW1dhcp enable Vlanif10/20 接口地址池excluded ×4、dns-list ×27仅运行配置R1默认路由 0.0.0.0/0 → 10.10.10.21仅运行配置同时明确列出未做的事没动接口 IP、VLAN、链路类型没删任何既有配置没执行 save。「没做什么」和「做了什么」同样重要——这是可审计性的另一半。关于能力边界也应当坦率说明程序管理的是运行配置持久化必须由你确认后单独 save它不能验证业务层连通性比如 8.8.8.8 是否真通、DNS 是否真能解析这需要上游设备的配合或真实流量验证对网络规划层面的判断哪台设备才是真正的出口它只能给出「基于 ARP 存活」的证据最终取舍仍需人来拍板。七、小结这套程序的设计哲学可以概括成一句话把「看」做到零成本把「改」做到零意外。读写分离让巡检毫无顾虑net_exec 与 run_command 双向引导通道用错会被当场纠正三级命令管控 运行/启动配置分离让误操作有物理闸门、让变更可回滚设备侧 [Y/N] 交互由程序自动应答强制先读后写、写后回读让每一次变更都有据可查懂 VRP 方言认 ^ 报错、会用 | include、自动关分页不做 Linux 习惯的生搬硬套敢于报告「配置成功但业务不通」把通不通、好不好的判断权交回给人。支撑这些行为的是一套不依赖真机的测试体系25 项假服务单测覆盖三态登录、安全拒绝与 Y/N 交互全路径随时可回归13 项 eNSP 真机冒烟覆盖巡检、下发、确认拒绝与错误回显判定。能力不是演示出来的是测出来的。对网工而言这不是一个「帮你敲命令的机器人」而是一位守规矩、会记账、还愿意说真话的搭档。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →