Decathlon IT Training 2026

网络智能体
技术实战指南

从概念到实现:Dify 工作流编排、节点配置、迭代循环与 LLM 模型调优全解析

40+
工作流工具
7
节点类型
3
架构层级
01

三层架构设计

从基础工具到智能决策,层层递进的完整技术架构

L3Agent

智能交互层

自然语言理解 + 工具调度决策

意图识别 工具选择 多轮对话 知识检索
用户提问 意图识别 工具编排 结果输出
L2Work

业务逻辑层

复合业务流程编排

GetNetworkInspection GetClientHealthV3 WirelessSiteHealthScore
调用多个L1 数据整合 AI分析 报告生成
L1Tool

基础工具层

单一功能原子操作

GetDeviceStatus GetVPNStatus GetClientInfo GetHealthAlert
接收参数 调用API 数据处理 返回结果
02

Dify 节点类型详解

深入理解每种节点的配置方法和使用场景

HTTP 请求节点

调用外部 API,是连接 Meraki Dashboard API 的核心节点

# 配置示例 method: GET url: https://api.meraki.cn/api/v1/... headers: X-Cisco-Meraki-API-Key: {{env.API_KEY}} params: networkIds[]: {{network_id}} productTypes[]: appliance retry: max_retries=3, interval=100ms
代码执行节点

使用 Python 处理数据、JSON 解析、格式转换等逻辑

def main(**kwargs) -> dict: data = kwargs.get('appliance_data') result = json.loads(data) # 过滤关键字段 fields = ["name", "serial", "status", "wan1Ip", "wan1Gateway"] filtered = [{f: d[f] for f in fields} for d in result] return {"output": json.dumps(filtered)}
工具节点

调用其他工作流作为子流程,实现代码复用和模块化

# 引用一级工作流作为工具 provider_name: NETWORK:PR:GetVPNStatus tool_name: GetVPNStatus tool_parameters: network_id: type: mixed value: '{{#code_node.networkid#}}'
LLM 模型节点

调用大语言模型进行内容生成、分析和推理

model: qwen3.6-plus provider: higress/higress/higress temperature: 0 top_p: 0.1 prompt: "你是专业网络分析师, 基于以下数据生成健康报告..." context: {{#tool.result#}}
迭代节点

遍历数组,对每个元素执行相同操作,支持并行处理

type: iteration iterator_input_type: array[object] is_parallel: true parallel_nums: 10 # 内部节点访问当前元素: query: {{#iteration.item#}}
条件分支 / IF-ELSE

根据变量值走不同分支,实现流程控制逻辑

type: if-else conditions: - variable: {{#code.connection_type#}} operator: contains value: 'wireless' # true → 获取无线指标 # false → 获取有线指标
知识检索节点 (RAG)

从知识库中检索相关文档片段,为 LLM 提供上下文信息。支持多知识库联合检索和 Rerank 重排序。

type: knowledge-retrieval dataset_ids: ["8sSTv7ONxp2C38KY..."] # 知识库ID:如 Meraki告警知识库 retrieval_mode: multiple # 多路召回 top_k: 4 # 返回前4条 reranking_enable: true # 开启重排序 reranking_model: gte-rerank-v2 # 重排序模型 query_variable_selector: {{#iteration.item#}} # 查询内容来自迭代项
03

迭代节点配置详解

迭代是处理批量数据的核心,掌握它实现复杂的批量处理逻辑

GetNetworkInspection 中的迭代配置

遍历多条告警信息,对每条告警进行知识库检索,为 LLM 提供上下文

iterator_selector

{{#code.Alert_TS_Groups#}}

指定迭代的输入数据源,来自代码节点输出的告警数组

iterator_input_type

array[object]

输入数组元素类型,支持 string / object / array

is_parallel

true

启用并行处理,显著提升批量处理速度

parallel_nums

10

并行任务数,根据 API 限流调整,建议 5-10

output_selector

{{#knowledge.result#}}

指定迭代内部节点的输出字段

error_handle_mode

terminated

错误策略:terminated(终止) / continue(跳过继续)

迭代节点内部结构

iteration-start
knowledge-retrieval RAG 知识库检索
iteration-end → array[object]
04

LLM 模型节点配置

掌握 LLM 节点参数调优,让 AI 输出更符合业务需求

核心配置参数

Model Selection 模型选择

  • qwen3.6-plus - Agent 主力模型,Function Call 能力强
  • qwen-max - 平衡模型,兼顾推理深度与成本
  • qwen-turbo - 快速响应,适合简单任务和高并发

Temperature 温度参数

  • 0.0 - 确定性强,适合结构化输出
  • 0.3 - 轻微创意,适合分析报告
  • 0.7 - 中等创意,适合创意写作
  • 1.0+ - 高随机性,不推荐生产用

Top P 核采样

  • 0.1 - 高确定性,输出更集中
  • 0.5 - 中等,平衡多样性与稳定性
  • 0.9 - 高多样性,输出更丰富

System Prompt 设计

  • 定义角色身份:专业网络运维助手
  • 指定输出格式:JSON / Markdown
  • 添加约束条件:安全规则
  • 提供示例输出:few-shot 学习

Context 上下文管理

  • 变量引用:{{#node_id.field#}}
  • 数组遍历:{% for item in list %}
  • 条件渲染:{% if condition %}
  • 知识库注入:自动拼接 RAG 结果

Agent 策略配置

  • strategy: function_call 函数调用
  • max_iteration: 10 最大迭代次数
  • enable_thinking: false 关闭思考
  • reasoning_effort: low 推理级别
实际配置示例 - Agent LLM
model_config: agent_mode: enabled: true strategy: function_call # 函数调用模式 max_iteration: 10 # 最多调用10次工具 model: name: qwen3.6-plus provider: higress/higress/higress completion_params: temperature: 0 # 确定性输出 top_p: 0.1 # 高确定性 enable_thinking: false # 关闭思考链 reasoning_effort: low # 低推理开销
05

实战案例解析

深入分析核心工作流的完整实现

🔍 GetNetworkInspection - 核心巡检工作流

完整执行流程(14个L1工具 + 多个代码/迭代节点)

START 输入: network_name
GetNetworkID 获取站点ID
current_time 获取当前时间
Code 提取 network_id,构造下游参数
▼ 并行调用 14 个 L1 工具 ▼
GetVPNStatus
GetVPNPerformance
GetHealthAlert
GetNetworkDeviceStatus
WirelessSiteHealthScore
GetUplinkLossAndLatency
GetUplinksUsageHistory
GetMXUtilization
GetNetworkDeviceMemory
GetNetworkChangelog
GetNetworkDHCPPool
GetNetworkDeviceAvailability
GetNetworkIWirelessFailedConnection
▼ 数据处理 + 迭代检索 ▼
Code 提取 Alert 告警信息,用正则分割为数组
Iteration #1 (parallel=10) 遍历告警数组 → RAG 知识检索
Code 提取无线连接失败事件,构造问题列表
Iteration #2 (parallel=10) 遍历事件 → RAG 知识检索
Code 合并所有 RAG 检索结果
LLM (qwen3.6-plus) 综合所有数据 + RAG 上下文,生成健康分析报告
END 输出 AI 网络巡检报告

关键实现点

  • 14 个 L1 工具并行调用,全面采集 VPN、设备、无线、WAN、DHCP、变更日志等
  • 多个 Code 节点:用正则提取告警中的【告警】和【描述】,分割为数组
  • 2 个迭代节点:分别对告警信息和无线失败事件做 RAG 知识库检索
  • 知识库 RAG:检索 Meraki 告警知识库,为 LLM 提供处理建议上下文
  • LLM 汇总分析:综合 14 路数据 + RAG 上下文生成结构化健康报告

使用场景

  • 📍 用户问 "CNST1277 门店网络怎么样?"
  • 📍 NetDevOps 平台定时巡检任务(API 对接)
  • 📍 新站点上线后的网络验收检查
  • 📍 故障排查前的全面环境摸底
💻 GetClientHealthV3 - 客户端健康诊断

客户端诊断流程

START network_name + Client_MAC
GetNetworkID
GetClientStatus
Code 判断有线/无线连接
IF-ELSE wireless? / wired?
WirelessClientLatency
WirelessClientSNR
ClientTrafficHistory
Code 汇总诊断数据
END 输出诊断报告

条件分支核心逻辑

# IF-ELSE 节点根据连接方式走不同分支 if connection_type == "wireless": # 无线终端 → 获取无线指标 GetWirelessClientLatency(network_id, client_id) # 延迟 GetWirelessClientSNR(network_id, client_id) # 信噪比 GetWirelessClientChannelUtil(network_id, client_id)# 信道利用率 elif connection_type == "wired": # 有线终端 → 获取有线指标 GetSwitchPortsStatus(switch_serial, port_id) # 端口状态 GetClientTrafficHistory(client_mac) # 流量历史
📡 GetAPClientPerformance - AP 性能采集(迭代实战)

批量采集 AP 下客户端性能

START network_id + AP_Serial
GetAPClientCount 获取AP下客户端列表
Code 提取 client_ids 数组
Iteration (parallel=4) 遍历每个 client_id
WirelessClientLatency
WirelessClientSNR
ClientTrafficHistory
Code 合并结果
END AP_Clients_Performance

迭代配置

iterator_input_type: array[string] iterator_selector: {{#code.clients#}} is_parallel: true parallel_nums: 4 output_type: array[string] flatten_output: true

为什么用迭代?

AP 下可能有多个客户端(最多取7个),每个客户端需要分别调用接口获取 SNR、RSSI、Latency 等性能数据。使用迭代 + 并行处理模式,可以同时处理多个客户端请求,显著缩短总执行时间。

06

系统价值总结

10x
排障效率提升
40+
可复用工具
0
代码开发门槛
24/7
自动化运行