没 puppyone 时,n8n 工作流有几个经典状态存储问题:
通过 REST(或自托管的 Bash)连上 puppyone 之后,每个 n8n 工作流拿到:
n8n 继续干 n8n 干的活。puppyone 是底下的持久层。
/specs、/integrations;每个 flow 工作区读+写 /n8n/<flow-name>)。POST /v1/files/<path> 写,GET /v1/files/<path> 读。没 puppyone: 一个夜跑研究工作流把发现累加到 Google Sheet,没版本历史,没 per-row 溯源。重跑要么覆盖要么重复。
有 puppyone: 每次运行把发现写到 /research/<date>/<topic>.md。完整历史。第二天早上的分析 flow 读 /research/<date-1>/,继续。人和其他 Agent 看同一份文件。
没 puppyone: "计划 → 等人审批 → 执行" flow 得把计划 serialize 进 n8n static data 或 Postgres 行,schema 手动维护。
有 puppyone: 计划写到 /plans/<run-id>.md,完整 markdown。审批 flow 读它。执行 flow 读同一个文件。每步都版本化。
没 puppyone: 每个 AI 节点拿到的 prompt 是这次运行你 Set 节点 assemble 的。除非你管道传过去,不然没有过往运行的记忆。
有 puppyone: AI 之前一步从 puppyone 拉 /context/agents/<flow-name>/recent.md。AI 用丰富上下文跑。AI 之后把输出写回 /context/agents/<flow-name>/<date>.md。明天的运行继承一切。
没 puppyone: n8n 工作流输出在数据库里。人不读数据库。其他 Agent 没 credential。你建额外表面。
有 puppyone: 输出是文件。人通过 puppyone UI / CLI 读。其他 Agent 通过 MCP / Bash / REST 读。同一份文件,多个消费者。
没 puppyone: 你建了张叫 agent_state 的表,带 id、key、value JSONB、updated_at。你在维护 schema、索引、GC 策略。
有 puppyone: 你写一个 JSON 文件到 /agent-state/<key>.json。一次 HTTP 调用读回来。历史自动。无 schema 维护。
n8n 是指挥,puppyone 是乐谱,其他人是乐手。
我需要给 puppyone 写个自定义 n8n 节点吗? 不需要 —— puppyone REST API 配 n8n 标准 HTTP Request 节点工作。社区节点在 roadmap 上,会让常见操作(读 / 写 / 列)一键,但不是必须的。
puppyone 能跟自托管 n8n 一起用吗? 能。如果两个在同一网段,你也能通过 Bash 或 NFS-style 访问挂 puppyone 拿更高吞吐。云 n8n + 云 puppyone 也一样走 HTTPS。
secret 和 credential 呢? secret 留在 n8n credential。puppyone 装内容,不装 secret。(VPC 内自托管 puppyone 让内容数据也保持主权。)
puppyone 替代 n8n static data store 吗? 你想要版本化、跟其他 Agent 共享、可审计的状态 —— 是。flow 内的小配置(last-run 时间戳之类)n8n static store 就够。
puppyone 跟 n8n 内置 AI 节点一起用吗? 能。在 AI 节点周围用 HTTP Request 节点从 puppyone 拉上下文 / 推输出。AI 节点本身不变。
整个工作流输出能塞一个 puppyone 大 JSON 吗? 能;我们通常推荐很多小文件 —— 更易版本化、人更易读、其他 Agent 更易一次消费一个。
n8n 是市面上最好的工作流编排器。puppyone 是它没有的那层持久、版本化文件层。通过 REST 把它们连起来,停止用 Sheets / Postgres / static data 当临时状态存储,你的 n8n 工作流开始真正有跨运行跨同事的记忆。
给你的 n8n flow 一份能活到下次运行的记忆。Get started