QVeris
工作流集成指南

n8n + LLM 网关:验证后再执行

用受限凭证、严格验证、幂等与明确错误分支保护模型驱动的动作。

发布日期:2026年3月22日 · QVeris团队制作

Financial market workflow supporting n8n + LLM Gateway: Validate Before Action n8n + LLM 网关:验证后再执行

速览

准备稳定请求数据

发送工作负载别名、所需能力、调用链与截止时间。

验证模型输出

任何下游动作前解析并检查结构定义。

只在一层负责重试

选择工作流或网关重试归属并共享预算。

让动作幂等

去重更新、消息与外部调用。

生产工作流路径

触发节点准备经过脱敏的输入和调用链上下文,调用网关并验证响应,确认通过后才进入业务动作节点。

n8n 画布中的每次状态迁移都应明确可见。触发请求应被整理为规范格式,包含工作流 ID、执行 ID、租户、数据分类和截止时间。网关响应必须先经过验证节点,检查状态、结构、必填字段,以及置信度或证据规则,之后才允许发送邮件、更新数据库、修改工单或执行金融动作。

故障应进入具名分支,分别执行重试、补偿、告警或受控停止。凭证应保存在平台凭证库中,而不是节点文本或导出的工作流 JSON 里;不同环境使用独立凭证,并限制哪些工作流可以访问。

还要考虑延迟与重复触发。Webhook、队列和定时任务可能多次投递同一个逻辑事件,而较长的模型调用可能超过上游超时时间。应根据业务事件生成幂等键,保存当前工作流状态,并在等待中的执行恢复时复用同一调用链,避免一次正常重试制造第二次副作用。

工作流阶段与控制

阶段 最适合 选择前验证
触发与输入 Webhook、Schedule、Queue 或 Event。 认证来源、脱敏数据并分配 Idempotency 密钥。
网关调用 带工作负载别名与调用链的稳定端点。 设置截止时间、能力 Flag 与单一重试负责人。
验证 解析严格结构化输出。 动作前拒绝缺失、多余或不安全字段。
动作或错误 执行幂等业务步骤或命名故障分支。 记录结果、补偿部分工作并用调用链 ID 告警。

工作流加固检查

凭证范围

按环境与工作流使用平台管理上游密钥。

超时链

保持 Trigger、网关与下游截止时间一致。

结构定义 Gate

把模型输出视为不可信输入。

调用链传播

让 traceparent 或稳定 Correlation ID 贯穿每个 Node。

把工作流当作状态机测试

不能只验证从触发到动作的成功路径。应列出“已接收、已标准化、等待推理、验证通过、等待审批、等待执行、已完成、已补偿、已失败”等状态。对每次迁移都要明确谁可以发起、需要哪些证据,以及是否能够安全重放。

  • 回放有效、异常、延迟和重复的触发请求。
  • 注入网关超时、429、部分响应和无效结构。
  • 确认任何故障都不会让业务动作执行两次。
  • 演练补偿、告警和带调用链证据的手动重放。

测试应使用具有代表性的请求体大小和接近生产环境的时序。一个使用短提示词能够成功的工作流,可能在检索上下文接近模型限制时失败,也可能在流式输出首块后停滞。除模型延迟和输出质量外,还要检查 n8n 执行时长、内存、队列行为与错误工作流是否成功送达。

在副作用前设置验证关卡

工作流先准备规范请求,调用网关并验证返回结构。只有通过验证的结果才能进入幂等业务动作,其他状态全部转入带调用链证据的受控错误分支。

验证应尽可能采用确定性规则。把 JSON 解析为有类型的字段,拒绝未知枚举值,限制数值范围,根据源系统核对标识符,并确认必需的证据或引用存在。另一个模型执行的自然语言检查可以作为补充,但不能成为不可逆动作前的唯一保护。

当后果严重或不确定性较高时,应加入人工审批。审批记录需要展示原始触发、标准化输入、模型输出、验证结果、拟执行动作和相关来源证据。如果审批过期或底层数据已经变化,应返回验证阶段,而不是继续执行旧决策。

生产规则:模型输出绝不能直接授权破坏性或不可逆动作。

用 QVeris 治理工作流能力

QVeris 让工作流发现并调用外部 API、工具、服务和实时数据。每项能力都应限制权限、完成验证并具备幂等性,同时与网关请求调用链关联。

设计阶段先通过“发现”寻找候选能力,再通过“检查”记录必填结构、供应商覆盖、权限、预期延迟和成本。在工作流配置中固定所选能力或验收条件,避免能力目录未来变化时悄悄改变生产动作。

运行时把 n8n 执行 ID 和业务幂等键一并传给能力调用。在结果进入动作节点前,验证时间戳、单位、实体标识和供应商错误。将 QVeris 搜索与执行 ID 同 n8n 执行记录保存在一起,运营人员即可同时还原工作流决策与外部调用。

构建可重放的 n8n 网关调用

当内置 Node 没有暴露网关操作时,可使用 HTTP 请求 Node。凭证应保存在 n8n Credential Object 中,而不是 Workflow JSON;每次调用后输出精简 Evidence Object,便于在不暴露提示词或上游密钥的前提下诊断失败工作流。

HTTP 请求 Node 契约
Method: POST
URL: {{$env.LLM_GATEWAY_BASE_URL}}/chat/completions
Authentication: Predefined credential type
Headers:
  Content-Type: application/json
Body (JSON):
{
  "model": "{{$json.model_alias}}",
  "messages": "{{$json.messages}}",
  "stream": false,
  "metadata": {"workflow_id": "{{$workflow.id}}", "execution_id": "{{$execution.id}}"}
}
Output evidence:
{
  "request_id": "{{$json.id}}",
  "model": "{{$json.model}}",
  "usage": "{{$json.usage}}"
}
  • 只有后续分支明确分类错误时才使用 Continue On Fail。
  • 设置执行超时,并只在一层控制重试。
  • 测试手动、定时、部分输入、429、5xx 与凭证轮换。

实施参考已根据官方资料核验:n8n HTTP 请求 node。

FAQ

n8n 还是网关应重试?

选择一层负责模型重试;工作流重试只用于显式状态转换。

如何解析输出?

在动作前使用严格结构定义与故障分支。

如何防止重复动作?

使用稳定 Idempotency 密钥与下游系统去重。

官方资料与延伸阅读

n8n + LLM 网关:先验证模型输出,再执行业务动作 | QVeris Guides