AutomateLab n8n — AutomateLab 的 n8n
v0.0.2从自然语言构建、调试和扩展n8n工作流。生成工作流JSON(包括LangChain AI Agent设置),搭建自定义TypeScript节点...
运行时依赖
安装命令
点击复制技能文档
n8n 该技能与 @automatelab/n8n-mcp 服务器(npm:@automatelab/n8n-mcp)配对。它暴露三个MCP工具,并为代理提供特定于n8n的上下文,以生成可以直接导入和运行的输出。一旦MCP服务器配置完成(见下面的“服务器设置”),代理就可以访问:
- n8n_generate_workflow - 用户以纯英语描述一个流程(“从Stripe webhook到Slack和Google Sheets行”)。返回可以导入到n8n的“从文件导入”对话框的工作流JSON。检测AI代理意图并生成一个LangChain集群(聊天触发器+代理根+聊天模型+内存+可选HTTP工具),并使用ai_languageModel / ai_memory / ai_tool连接将其连接起来。
- n8n_scaffold_node - 用户想要一个自定义节点(不在n8n的库中,或是内部API的薄包装)。返回一个单独的INodeType TypeScript文件。
- n8n_lint_workflow - 用户粘贴现有的工作流JSON,或者刚刚生成的一个。捕获缺失的typeVersion、过时的类型、缺失的凭据、断开的连接、重复的ID、AI代理缺失ai_languageModel、Webhook缺失webhookId、IF节点v1模式。默认链:generate_workflow -> 对结果进行lint_workflow。仅当lint报告没有问题时才返回JSON,或者显式调用警告。
服务器设置 将以下内容添加到用户的MCP配置中(Cursor:~/.cursor/mcp.json,Claude Desktop:claude_desktop_config.json):
{
"mcpServers": {
"n8n": {
"command": "npx",
"args": ["-y", "@automatelab/n8n-mcp"]
}
}
}
重启后,三个n8n_*工具将变得可用。n8n数据模型:项目和自动迭代 这是破坏工作流的最大来源。每个节点看到一个数组:[ { json: { ... }, binary?: { ... } }, { json: { ... } }, ... ]。大多数节点自动迭代:它们每个项目运行一次。您几乎不需要显式循环。如果前一个节点返回10个项目,下一个节点将自动执行10次。
表达式速查表(在 ={{ ... }} 内使用):
- $json - 当前项目的json有效负载(最常见)
- $json.field.nested - 点式访问当前项目
- $input.all() - 输入此节点的项目数组
- $input.first() / $input.last() - 快捷方式
- $("Node Name").item.json - 匹配来自另一个节点的项目(通过运行索引配对)
- $("Node Name").all() - 来自另一个节点的所有项目,无论配对
- $("Node Name").first().json - 来自另一个节点的第一个项目
- $node["Node Name"].json - 旧语法,仍然有效,但$()是首选
常见错误:写入$ json [0],因为您在输入面板中看到一个JSON数组。该数组就是项目列表 - n8n已经将其分割。使用$ json(单数)并相信自动迭代。
迭代:您是否真正需要一个循环? 决策树:
- 默认:无循环。将Set / HTTP Request / Code节点放置在数据源之后,它将为每个项目运行。
- 只有在以下情况下才需要循环:
选择正确的节点:
- Split Out - 一个项目包含一个数组字段(例如items []);使每个数组元素成为其自己的项目。90%的情况下使用此方法来“迭代数组”。
- Loop Over Items(Split In Batches)- 具有可配置批大小和反向边连接的实际循环。用于分页和限速批处理。
- Aggregate - Split Out的逆操作:将N个项目折叠回一个具有数组字段的单个项目。
选择“循环遍历项目”时,需要将处理分支的最后一个节点连接回循环节点的主输入。没有这种反向边,它将只运行一次。Lint不会捕获这种情况;请仔细检查连接。
AI代理/LangChain集群节点 n8n的AI节点使用不同的连接模型。根是@ n8n/n8n-nodes-langchain.agent(较旧的工作流:n8n-nodes-langchain.agent)。子节点通过专用连接类型向上连接,而不是正常的主流:
- 子节点角色
- 连接类型
- 示例
- 语言模型
- ai_languageModel
- lmChatOpenAi,lmChatAnthropic,lmChatOllama
- 内存
- ai_memory
- memoryBufferWindow,memoryPostgresChat
- 工具
- ai_tool
- toolHttpRequest,toolCode,toolWorkflow,MCP客户端
- 输出解析器
- ai_outputParser
- outputParserStructured
在连接中,子节点是源,代理是目标,连接类型设置:
"connections": {
"OpenAI Chat Model": {
"ai_languageModel": [[{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}]]
},
"Buffer Window Memory": {
"ai_memory": [[{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}]]
}
}
最小可行代理:触发器 -> AI代理(根)+ 一个聊天模型子节点 + (可选)内存 + (可选)工具。代理本身通过主流向下流动。工具节点可以包装任意HTTP请求、子工作流或代码。要从代理调用其他工作流,请使用toolWorkflow并引用子工作流的ID。代码节点:返回形状合同 代码节点必须返回一个项目数组,而不是原始对象。