近 7 天 · 工作流与智能体搭建

n8n

连接工具,搭建自动化流程与智能体

体感分55.0/10022 条评论
来源 Reddit

大家怎么看

近 7 天的 22 条评论中,评价褒贬并存。批评最集中在「稳定性」(6/9 条负面摘录)。好评最集中在「工作流与集成」(7/13 条正面摘录)。有用户表示很高兴看到Jev能原生集成到n8n中。有用户建议在自托管n8n中将二进制卷视为与数据库备份同等重要的备份目标,恢复测试应同时恢复两者,否则工作流可能加载但文件负载缺失。

每日体验趋势

40506056.709-2509-2709-2809-3010-01按评论日期汇总 · UTC · 每日满 5 条显示分数

用户反馈

28 条评价摘录

负面稳定性

我会把二进制卷当作与数据库转储同等重要的备份目标,而不是事后才想到的东西。恢复测试应该同时启动数据库和该卷;否则工作流可能加载了,但它们的文件负载却缺失了。

机器翻译
展开原文

I’d treat the binary volume as a first-class backup target alongside the database dump, not as an afterthought. A restore test should bring up both the database and that volume together; otherwise the workflows may load while their file payloads are missing.

正面工作流与集成

在n8n中原生拥有这个功能真是太酷了

机器翻译
展开原文

Very cool to have this natively in n8n

负面易用性

n8n中的异步轮询真是太痛苦了。你最后会得到一个看起来很丑的等待节点循环,而且如果超时时间稍微有一点偏差就会出问题。

机器翻译
展开原文

the async polling thing is the real pain in n8n . you end up with a wait node loop that looks ugly and breaks if the timeout is off by even a little.

负面稳定性

确保你的错误分支实际上把状态码和响应体分开解析,大多数图片托管服务返回的500错误在响应体中都有有用的信息,但n8n默认不会显示出来

机器翻译
展开原文

make sure your error branch actually parses the status code separately from the body, most 500s from image hosts have useful info in the response body that n8n just doesnt surface by default

正面易用性

我仍然保留着n8n来处理那些简单的粘合工作——定时抓取、slack提醒之类的。用agent来构建这些反而得不偿失。无聊的东西用可视化,有状态的东西用代码。

机器翻译
展开原文

I still keep n8n around for dumb glue though - cron scrapes, slack alerts, that kind of thing. Building THOSE with an agent is more effort than it's worth. Visual for the boring stuff, code for anything with state.

正面工作流与集成

你可以在不需要时间戳查询的情况下弥合父子之间的差距:让每个子工作流在其最后一个节点返回自己的执行ID。执行子工作流将其传回给调用方,这样父级就可以把它的执行ID和子级的写入同一条日志记录,链条就变成了直接连接而不是时间窗口。

机器翻译
展开原文

You can close the parent-to-child gap without a timestamp search: have each sub-workflow return its own execution id from its last node. Execute Sub-workflow hands that back to the caller, so the parent can write its execution id and the child's into the same log row and the chain becomes a direct join instead of a time window.

褒贬并存易用性

内置的父子视图对于一跳来说还可以。一旦多个运行重叠,它就变得没用了,听起来这就是你现在的处境。

机器翻译
展开原文

The built-in parent/child view is fine for one hop. It stops being useful the moment several runs overlap, which sounds like where you are.

正面编辑与控制

n8n 会对静态存储的凭据进行加密,但它并不关心里面是谁的 API 密钥——如果工作流中的 Stripe/数据库/API 凭据属于你的个人账户而不是客户的,那么交接就是一场谎言,一旦你撤销这些凭据,一切都会崩溃。在上线前从客户账户配置好每一个凭据,并记录每个凭据属于哪个服务,这已经让我少接了不止一个六个月后打来的"为什么支付停止工作了"的电话。

机器翻译
展开原文

n8n encrypts credentials at rest, but it doesn't care whose API keys are inside them — if the Stripe/database/API credentials in the workflows belong to your personal accounts instead of the client's, the handover is a lie and everything breaks the day you revoke them. Provisioning every credential from the client's accounts before go-live, and documenting which service each credential belongs to, has saved me more than one "why did payments stop working" call six months later.

正面工作流与集成

所以我们仍然需要为成功情况和决策看起来有问题的情况都添加明确的日志,但Error Trigger方法在出现实际工作流失败时仍然有用。

机器翻译
展开原文

So we’d still need the explicit logs for both success and cases where the decision looks off, but the Error Trigger approach is still useful if there’s an actual workflow failure.

查看评论上下文
回复的评论 ↗

一个补充角度:Error Trigger工作流。将其指向子工作流,它会在失败时触发,包括工作流名称、执行ID和完整的错误负载——也通过它传递你的关联ID并记录到同一个表中,这样失败就会直接出现在成功路径行的旁边,而不需要在执行列表中搜索。有两个注意事项:它只在失败时触发,所以你仍然需要明确的日志行来追踪成功路径;在一个繁忙的实例上,请检查你的执行修剪/保留设置(EXECUTIONS_DATA_PRUNE),这样历史数据库就不会在按时间戳调试时膨胀。

机器翻译
展开原文

One complementary angle: the Error Trigger workflow. Point it at your sub-workflows and it fires on failure with the workflow name, execution ID, and the full error payload — pass your correlation ID through it too and log to the same table, and failures land right next to the success-path rows instead of requiring a hunt through the execution list. Two caveats: it only fires on failures, so you still need the explicit log rows for success-path tracing, and on a busy instance double-check your execution pruning/retention settings (EXECUTIONS_DATA_PRUNE) so the history DB doesn't balloon while you're debugging by timestamp.

褒贬并存稳定性

在我们的案例中,工作流本身不一定会抛出错误,因为错误的决策仍然可以是成功的执行。所以我们仍然需要为成功情况和决策看起来有问题的情况都添加明确的日志,但Error Trigger方法在出现实际工作流失败时仍然有用。

机器翻译
展开原文

In our case, the workflow itself won’t necessarily throw an error since a wrong decision can still be a successful execution. So we’d still need the explicit logs for both success and cases where the decision looks off, but the Error Trigger approach is still useful if there’s an actual workflow failure.

正面工作流与集成

我会把外部监控加入交接流程。如果它留在你的账户里,合同结束后警报会发给你。在 didit.run 中,你可以把工作区移交给客户,而 ping 网址保持不变。

机器翻译
展开原文

I’d add the external monitor to the handover. If it stays in your account, alerts go to you after the contract ends. In didit.run you can hand the workspace to the client and the ping urls stay the same.

正面易用性

我在查看 n8n 社区中其他人如何处理这个问题,维护单独的日志似乎是更好的方法。我最初更多考虑的是能够从主工作流执行直接导航到对应的子工作流执行轨迹,类似于编辑器标签页让你导航到子工作流本身。在子工作流执行上暴露父执行 ID/关联元数据会让这变得容易得多,尤其是对于评估运行。

机器翻译
展开原文

I was checking how others handle this in the n8n community, and maintaining a separate log seems like the better approach. I was initially thinking more about being able to navigate from the main workflow execution directly to the corresponding sub-workflow execution trace, similar to how the editor tab lets you navigate to the sub-workflow itself. Having the parent execution ID/correlation metadata exposed on the sub-workflow execution would make this much easier, especially for evaluation runs.

负面稳定性

n8n 内置的父子关系功能一旦超过一层深度就有点不靠谱。有一半时间执行列表只是把它们显示为互不相关的独立运行,所以事后想拼凑起来就自求多福吧

机器翻译
展开原文

The built in parent/child stuff in n8n is kinda spotty once you get past one level deep. Half the time the execution list just shows them as separate unrelated runs so good luck piecing it together after the fact

负面易用性

n8n 的父子链接在五分钟窗口内只有 200 次执行时还能正常工作。

机器翻译
展开原文

n8n's parent/child link works until you're looking at 200 executions in a five-minute window.

负面稳定性

默认情况下,n8n 将文件负载保存在内存中,并以 base64 形式写入 PostgreSQL,一旦工作流处理 PDF 或图片,很快就会触发容器 OOM 崩溃,并使数据库备份体积急剧膨胀。

机器翻译
展开原文

By default n8n holds file payloads in memory and writes them to PostgreSQL as base64, which quickly triggers container OOM crashes and balloons database backup sizes as soon as workflows handle PDFs or images.

正面价格与额度

将二进制文件卸载到文件系统可以保持内存使用可预测,并让数据库转储快得多。

机器翻译
展开原文

Offloading binaries to the filesystem keeps memory usage predictable and makes database dumps much faster.

正面效果与质量

这是一个扎实的工作流程,尤其是结构化输出部分。

机器翻译
展开原文

This is a solid workflow, especially the structured output part.

正面工作流与集成

向 Fetchsandbox 请求 twin 的签名密钥,并将其作为单独的 n8n 凭据/变量与基础 URL 一起存储,这样 sandbox 与 live 只是一个开关切换,而不是两个。

机器翻译
展开原文

Ask Fetchsandbox for the twin's signing secret and store it as a separate n8n credential/variable alongside the base URL, so sandbox vs live is one toggle, not two.

查看评论上下文
原帖 ↗

构建工作流中的支付由 stripe 处理,但我想知道是否有配置可以更改 fetchsandbox twin 的端点?

机器翻译
展开原文

building workflow payments are handled by stripe but wondering is there a config I can change the endpoint fetchsandbox twin ?

褒贬并存稳定性

如果您用错误的密钥验证传入的 webhook,一切都会失败关闭,看起来就像 n8n 只是悄悄丢弃了事件。

机器翻译
展开原文

If you verify incoming webhooks against the wrong secret, everything fails closed and it looks like n8n just silently dropped the events.

负面工作流与集成

n8n 只是众多自动化方法之一……而且在我的店铺里已经完全被取代了。

机器翻译
展开原文

n8n is just one of many automation methods.. and been replaced altogether in my shop.

褒贬并存编辑与控制

用聊天消息 ID 构建的幂等键解决了问题,而不是那个门控

机器翻译
展开原文

idempotency key built from the chat message id fixed it, not the gate

查看评论上下文
评论者补充 ↗

我的触发了两次,因为对 synexa 的分类器调用卡住了,n8n 重试了整个分支。

机器翻译
展开原文

mine double fired because the classifier call on synexa stalled and n8n retried the whole branch.

负面稳定性

我的触发了两次,因为对 synexa 的分类器调用卡住了,n8n 重试了整个分支

机器翻译
展开原文

mine double fired because the classifier call on synexa stalled and n8n retried the whole branch

查看评论上下文
原帖 ↗

我的退款代理在生产环境中失控了,把退款发放了两次。

机器翻译
展开原文

My refund agent went rogue in prod and issued the refund twice.

正面工作流与集成

对于WhatsApp、报价和发布,从自托管的n8n开始,而不是使用编排代理,这些主要是固定的工作流,中间有一个LLM步骤。

机器翻译
展开原文

pour whatsapp, devis et publication, commence par n8n en self-host plutôt qu'un agent orchestrateur, ce sont surtout des workflows fixes avec une étape LLM au milieu.

负面工作流与集成

在n8n的WhatsApp触发节点中,我没有看到任何可以手动输入/匹配那个相同的验证令牌的地方——该节点只有OAuth凭据(客户端ID/密钥)和一个"触发条件"(消息)下拉菜单。所以我不确定n8n应该如何验证Meta在握手过程中发送的令牌。

机器翻译
展开原文

In n8n's WhatsApp Trigger node, I don't see any place to manually enter/match that same verify token — the node just has OAuth credentials (Client ID/Secret) and a Trigger On (Messages) dropdown. So I'm not sure how n8n is supposed to validate the token Meta sends during the handshake.

查看评论上下文
评论者补充 ↗

在"验证令牌"字段中输入了一个随机字符串(例如`dental2026`)

机器翻译
展开原文

Typed a random string into the "Verify token" field (e.g. `dental2026`)

正面易用性

消息缓冲这部分可能是这里最有用的功能。WhatsApp用户几乎从来不会在一条消息里发送完整的请求,所以在触发代理之前稍等片刻,会让交互感觉自然得多。

机器翻译
展开原文

The message buffering part is probably the most useful piece here. WhatsApp users almost never send a complete request, in one message so waiting briefly before triggering the agents make the interaction feel much more natural.

褒贬并存工作流与集成

如果你专门在 n8n 中做这件事,它内置的凭据存储已经处理了“代理永远不会看到原始密钥”这部分(凭据通过 ID 引用,而不是注入到工作流 JSON 中),但它本身不会做轮换或按代理进行作用域隔离

机器翻译
展开原文

if you're doing this in n8n specifically, its built-in Credentials store already handles the agent-never-sees-the-raw-key part (credentials are referenced by ID, not injected into the workflow JSON), but it doesn't do rotation or per-agent scoping on its own

查看评论上下文
原帖 ↗

你是为每个服务保留单独的密钥,并将它们存储在代理/密钥管理器后面,还是使用某种集成层? 我主要考虑的是最小权限访问、密钥轮换,以及确保代理永远不会看到原始凭据。

机器翻译
展开原文

Do you keep separate keys for every service and store them behind a proxy/secret manager, or use some kind of integration layer? I’m mainly thinking about least-privilege access, key rotation, and making sure the agent never sees raw credentials.

正面工作流与集成

消息缓冲部分特别有用,因为真实的 WhatsApp 对话很少在单条消息中完成。

机器翻译
展开原文

The message-buffering part is especially useful since real WhatsApp conversations rarely happen in a single message.

负面稳定性

在 n8n Cloud 上,Cloudflare 会终止超过 100 秒的请求(524 错误),而一个缓慢的 LLM/Sheets 链可能会触发这一点。

机器翻译
展开原文

On n8n Cloud, Cloudflare kills requests over 100 seconds (524 error), and a slow LLM/Sheets chain can hit that.