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
自动化运行