n8n实战:从零搭建水质查询agent
久违的更新,本次将深入探讨智能体(Agent)的构建实践。在众多工具的对比与探索中,我们发现开源工作流自动化平台 n8n 凭借其卓越的易用性和全面性脱颖而出。其在 GitHub 上迅速积累了超过 13 万星标,充分证明了其强大的社区支持和广泛认可度。【AI大模型教程】
本文将以构建一个智能水质查询机器人为例,详细介绍如何利用 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 的安装与启动过程非常便捷:
# 安装并启动(需 Node.js 环境)npx n8n
成功启动后,访问 http://localhost:5678 即可进入简洁直观的工作流编辑界面。
📌 提示:首次使用建议注册账号并探索内置的“模板工作流”,这将有助于您快速熟悉 n8n 的各项功能和应用场景。
三、实战详解
本项目的核心目标是:
用户输入:“请帮我查询某某站点昨天的水质数据情况。”
→ n8n 自动解析用户意图
→ 调用相关 API 获取数据
→ 生成结构化分析报告
→ 以自然语言形式返回结果
搭建结果
整个工作流将围绕以下四个核心模块展开:
用户输入 → AI 语义解析 → API 请求 → AI 数据分析 → 返回结果
n8n 提供了直观的拖拽式界面,用户可以根据设计好的流程,通过添加和配置相应的节点来快速构建工作流。
🧩 模块一:接收用户输入
作为工作流的起始点,我们选择 Chat Trigger 节点。该节点能够灵活接收来自 Webhook、Slack、Telegram 或自定义网页聊天窗口的用户消息,从而启动整个自动化流程。
🧠 模块二:AI 语义解析
此模块是实现自然语言理解的关键。我们利用大语言模型(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。
🧹 模块三:数据清洗
大语言模型在生成 JSON 数据时,有时会包含 Markdown 格式的包裹(如 json ...)或额外的换行符。为了确保下游节点能够直接、正确地解析和使用这些数据,我们需要一个数据清洗步骤。
通过 Code 节点,我们可以利用 JavaScript 编写自定义逻辑来处理这些格式问题:
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 请求节点能够接收到纯净、标准的结构化数据。
### 📡 模块四:调用 API
在获取并清洗了结构化的 API 参数后,下一步是使用 `HTTP Request` 节点向目标水质监测平台 API 发送请求。
该节点功能强大,支持:
* 将上一步清洗后的 JSON 参数动态映射为 Query String 或请求体。
* 自定义请求头(Header)、认证方式(如 API Key、OAuth 2)。
* 配置重试机制和超时设置,以适应复杂的企业级接口调用场景。
只需将前一节点生成的 JSON 数据拖拽至 `HTTP Request` 节点的相应参数字段,即可轻松构建动态请求。

### 📊 模块五:报告生成
在成功获取水质数据后,我们再次利用 `AI Agent` 节点,将原始的 JSON 格式数据转化为人类易读、专业且富有洞察力的分析报告。
例如,将原始数据总结为:
> “某站点在 2025-04-04 至 2025-04-05 期间共采集 24 条数据,氨氮平均值 0.12 mg/L,溶解氧平均值 8.5 mg/L,水质良好。”
此模块的关键在于精心设计系统提示词。您可以在提示词中嵌入:
* **字段映射表**:解释 JSON 字段的含义。
* **单位说明**:确保数值单位的准确性。
* **报告模板**:定义报告的结构和风格,确保输出的专业性和一致性。
* **分析指令**:明确要求 AI 进行数据统计(如平均值、最大值、最小值)、趋势分析或水质评估。
通过精确的提示词工程,Agent 能够理解数据背后的意义,并生成符合预期的专业报告。

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

对话测试
如上图所示,机器人成功地实现了语义理解、数据查询与智能总结的全流程自动化。
五、进阶方向与扩展资源
-----------
本实战指南仅展示了 n8n 的基础应用。基于此,您可以进一步探索和扩展机器人的功能,使其更加强大和智能化。
#### 🚀 可扩展功能:
* **多渠道集成**:接入微信、钉钉、Telegram 等消息平台,实现移动端便捷查询与通知。
* **定时任务与报告**:利用定时触发器,每日自动生成并推送水质简报或异常告警。
* **数据持久化与分析**:结合数据库节点(如 MySQL),将查询结果存档,进行长期趋势分析或可视化。
* **智能告警系统**:通过“条件判断”节点,对水质超标数据自动触发告警通知。
* **生产环境部署**:将 n8n 工作流部署到云服务器,并配置域名,对外提供稳定可靠的服务。