Ops Agent¶
Ops Agent 是深度网络运维的多步编排器。它将请求路由到正确的专家:Analysis 做模拟、Probe 做实时检测、Diff 做漂移检测。
功能声明
| ID | 声明 | 状态 |
|---|---|---|
| C-NE-20 | olav --agent ops "分析路由" 路由到 Analysis subagent |
🔶 需 LLM |
| C-NE-21 | olav --agent ops "检查所有设备" 路由到 Probe subagent |
🔶 需 LLM |
架构¶
编排器接收请求并委托给合适的子 agent:
graph TD
User["olav --agent ops '...'"] --> Orch[Ops Orchestrator]
Orch -->|路由、模拟、拓扑| Analysis[Analysis Agent]
Orch -->|实时设备检测| Probe[Probe Agent]
Orch -->|快照比较| Diff[Diff Agent]
Orch -->|数字孪生验证| Lab[Lab Agent]
| 子 Agent | 专长 | 网络访问 |
|---|---|---|
| Analysis | 路由分析、What-If 模拟、拓扑可视化 | 无(纯计算) |
| Probe | 活性检测、并行 CLI 执行 | 有(SSH) |
| Diff | 跨快照比较、漂移检测 | 无(DB 查询) |
| Lab | ContainerLab 数字孪生、CAB 验证 | 仅 CLAB API |
Lab 文档
Lab Agent 文档将在当前开发周期完成后发布。
路由逻辑¶
编排器通过意图检测选择子 agent:
| 问题包含... | 路由到 |
|---|---|
| "模拟"、"如果"、"影响"、"故障" | Analysis |
| "路径"、"路由"、"BGP 最优路径"、"拓扑图" | Analysis |
| "检查"、"ping"、"可达"、"在...上执行" | Probe |
| "比较"、"变化"、"漂移"、"差异"、"快照之间" | Diff |
| "部署实验室"、"数字孪生"、"CAB"、"验证变更" | Lab |
对于模糊请求,编排器可能询问澄清问题或依次使用多个子 agent。
共享工具¶
所有 Ops 子 agent 从编排器继承这些工具:
| 工具 | 用途 |
|---|---|
execute_cli |
单设备 CLI 执行(白名单强制) |
search_commands |
按平台/关键词查找命令 |
take_snapshot |
按需采集 |
diff_configs |
原始配置比较 |
record_network_event |
追加审计日志 |
加上所有核心平台工具(execute_sql、format_and_export 等)。
每个子 agent 还有专属工具 — 详见各自页面。
网络隔离策略¶
| 子 Agent | network_isolation |
原因 |
|---|---|---|
| Analysis | True |
纯本地计算 — networkx + DuckDB 内存克隆 |
| Probe | False |
需 SSH 到实时设备 |
| Diff | N/A | 仅查询 DuckDB,无沙箱 |
| Lab | False |
需通过 httpx 调 CLAB REST API |
Analysis 在完全隔离的沙箱中运行,无法发起网络调用。需要新鲜数据时,它告知编排器,由编排器委托 Probe 或触发快照。