n8n实战:从零搭建智能水质查询机器人

🌊 n8n 实战:从零搭建智能水质查询机器人

久违的更新,本次将深入探讨智能体(Agent)的构建实践。在众多工具的对比与探索中,我们发现开源工作流自动化平台 n8n 凭借其卓越的易用性和全面性脱颖而出。其在 GitHub 上迅速积累了超过 13 万星标,充分证明了其强大的社区支持和广泛认可度。

本文将以构建一个智能水质查询机器人为例,详细介绍如何利用 n8n 搭建一个能够理解自然语言、调用外部 API 获取数据,并最终通过大语言模型(LLM)进行智能总结与输出的 Agent。


一、什么是 n8n?为何选择它?

n8n(发音 “n-eight-n”)是一个开源的、可扩展的工作流自动化工具。它允许您通过“拖拽节点 + 配置参数”的方式,连接不同服务(如 API、数据库、AI 模型、消息平台等),构建复杂的数据处理或自动化流程。

✅ 核心优势:

  • 开源免费:社区版完全免费,企业版提供高级功能和支持。
  • 高度灵活:支持 300+ 官方节点(HTTP、数据库、Slack、Telegram、OpenAI 等),并支持自定义 JavaScript/Python 代码节点,满足多样化需求。
  • 本地部署 & 云端运行:可一键 npx n8n 启动本地服务,也可灵活部署到服务器或云平台,实现私有化部署。
  • AI 原生集成:内置 LangChain 支持,轻松接入主流大语言模型(如 GLM、GPT、Claude 等),实现自然语言理解与生成。
  • 开发者友好:对于开发者而言,n8n 同样友好。它允许用户在工作流中无缝集成自定义代码节点(支持 JavaScript/Python),以应对更复杂的业务逻辑或特定需求。

二、环境准备

n8n 的安装与启动过程非常便捷:

1
2
# 安装并启动(需 Node.js 环境)
npx n8n

成功启动后,访问 http://localhost:5678 即可进入简洁直观的工作流编辑界面。

📌 提示:首次使用建议注册账号并探索内置的“模板工作流”,这将有助于您快速熟悉 n8n 的各项功能和应用场景。


三、实战项目:构建智能水质查询机器人

本项目的核心目标是:

用户输入:“请帮我查询某某站点昨天的水质数据情况。”
→ n8n 自动解析用户意图
→ 调用相关 API 获取数据
→ 生成结构化分析报告
→ 以自然语言形式返回结果

搭建结果

整个工作流将围绕以下四个核心模块展开:

1
用户输入 → AI 语义解析 → API 请求 → AI 数据分析 → 返回结果

n8n 提供了直观的拖拽式界面,用户可以根据设计好的流程,通过添加和配置相应的节点来快速构建工作流。

🧩 模块一:接收用户输入(Chat Trigger)

作为工作流的起始点,我们选择 Chat Trigger 节点。该节点能够灵活接收来自 Webhook、Slack、Telegram 或自定义网页聊天窗口的用户消息,从而启动整个自动化流程。

查找节点

🧠 模块二:AI 语义解析(Agent + LLM)

此模块是实现自然语言理解的关键。我们利用大语言模型(LLM)将用户的自然语言查询转换为结构化的 API 调用参数,通常以 JSON 格式输出。

我们通过组合 AI Agent 节点与 OpenAI Chat Model(或其他兼容模型)来实现:

  • 系统提示词(System Prompt):精心设计的提示词是核心,它明确指导 AI 如何从用户输入中提取关键信息,如时间、地点、监测指标,并将其格式化为标准的 JSON 数据结构。
  • 模型选择:n8n 支持集成多种主流大语言模型,包括 GLM-4、GPT-4、Claude 等,用户可根据需求灵活选择。本次测试中,我们选用了硅基流动的免费 GLM-9 B 模型,其在性能和响应速度方面表现良好,足以满足本项目的需求。
  • 内存节点(Memory):为支持多轮对话和上下文理解,可选择配置记忆节点,使 Agent 能够记住之前的对话内容。

🎯 示例输入:“请查询某站点过去 24 小时的溶解氧数据。”
🎯 AI 输出{"mn":"SITE_CODE","beginTime":"...","endTime":"...","period":"h1"}

模型设置

AI Agent设置

关于模型记忆功能
为了实现更流畅的多轮对话体验,您可以为模型配置记忆功能(如 Simple Memory 节点),使其能够保留对话上下文。

simple memory

【推荐】硅基流动平台
如果您正在寻找免费且性能不错的 LLM 服务,可以考虑硅基流动。通过以下邀请链接注册,您将获得 2000 万 Tokens(价值 14 元平台配额):https://cloud.siliconflow.cn/i/p61lgKxB 或填写邀请码:p61lgKxB

🧹 模块三:数据清洗(Code 节点)

大语言模型在生成 JSON 数据时,有时会包含 Markdown 格式的包裹(如 json ... )或额外的换行符。为了确保下游节点能够直接、正确地解析和使用这些数据,我们需要一个数据清洗步骤。

通过 Code 节点,我们可以利用 JavaScript 编写自定义逻辑来处理这些格式问题:

1
2
3
4
5
6
const dirtyStr = $input.first().json.output; // 获取AI输出的原始字符串
const cleanStr = dirtyStr
.replace(/```json|```/g, '') // 移除Markdown代码块标识
.replace(/\\n/g, '') // 移除多余的换行符
.trim(); // 清除首尾空白
return [{ json: JSON.parse(cleanStr) }]; // 将清洗后的字符串解析为JSON对象

code 设置

此清洗步骤至关重要,它保证了后续 API 请求节点能够接收到纯净、标准的结构化数据。

📡 模块四:调用 HTTP API

在获取并清洗了结构化的 API 参数后,下一步是使用 HTTP Request 节点向目标水质监测平台 API 发送请求。

该节点功能强大,支持:

  • 将上一步清洗后的 JSON 参数动态映射为 Query String 或请求体。
  • 自定义请求头(Header)、认证方式(如 API Key、OAuth 2)。
  • 配置重试机制和超时设置,以适应复杂的企业级接口调用场景。

只需将前一节点生成的 JSON 数据拖拽至 HTTP Request 节点的相应参数字段,即可轻松构建动态请求。

http设置

📊 模块五:AI 数据分析与报告生成

在成功获取水质数据后,我们再次利用 AI Agent 节点,将原始的 JSON 格式数据转化为人类易读、专业且富有洞察力的分析报告。

例如,将原始数据总结为:

“某站点在 2025-04-04 至 2025-04-05 期间共采集 24 条数据,氨氮平均值 0.12 mg/L,溶解氧平均值 8.5 mg/L,水质良好。”

此模块的关键在于精心设计系统提示词。您可以在提示词中嵌入:

  • 字段映射表:解释 JSON 字段的含义。
  • 单位说明:确保数值单位的准确性。
  • 报告模板:定义报告的结构和风格,确保输出的专业性和一致性。
  • 分析指令:明确要求 AI 进行数据统计(如平均值、最大值、最小值)、趋势分析或水质评估。

通过精确的提示词工程,Agent 能够理解数据背后的意义,并生成符合预期的专业报告。

模型配置

四、效果展示

经过上述步骤的构建,我们的智能水质查询机器人能够高效地理解用户意图,自动调用接口获取数据,并最终生成清晰、专业的总结报告。

对话测试

如上图所示,机器人成功地实现了语义理解、数据查询与智能总结的全流程自动化。

五、进阶方向与扩展资源

本实战指南仅展示了 n8n 的基础应用。基于此,您可以进一步探索和扩展机器人的功能,使其更加强大和智能化。

🚀 可扩展功能:

  • 多渠道集成:接入微信、钉钉、Telegram 等消息平台,实现移动端便捷查询与通知。
  • 定时任务与报告:利用定时触发器,每日自动生成并推送水质简报或异常告警。
  • 数据持久化与分析:结合数据库节点(如 MySQL, PostgreSQL),将查询结果存档,进行长期趋势分析或可视化。
  • 智能告警系统:通过“条件判断”节点,对水质超标数据自动触发告警通知(短信、邮件等)。
  • 生产环境部署:将 n8n 工作流部署到云服务器,并配置域名,对外提供稳定可靠的服务。

📚 学习资源:



n8n实战:从零搭建智能水质查询机器人
https://maoyu92.github.io/2025/09/10/02 生态环境/n8n 实战:从零搭建智能水质查询机器人/
作者
陈文茂
发布于
2025年9月10日
许可协议