ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

用 n8n + Agent 搭一套 Markdown 自动化创作工作流,TaoToken 统一 Key 接入实践

用 n8n + Agent 搭一套 Markdown 自动化创作工作流,TaoToken 统一 Key 接入实践 1. 从选题到落盘我为什么放弃纯对话式创作如果你也在折腾 n8n、Agent、Markdown 这套自动化创作链路大概率经历过我踩过的坑选题在一个工具里、写作在另一个对话框里、配图和落盘又得手动复制粘贴。整条链路看起来是自动化的实际上每个环节都在等上一个环节的输出调用链一断前面全白干。我最初的做法很原始用浏览器开三个标签页一个放选题库一个放模型对话一个放 Markdown 编辑器。写一篇技术文光是在工具之间搬运内容就要花掉十几分钟。更麻烦的是 Key 管理——每个工具一套 Key额度分散、限流分散、账单分散想统计一下这个月到底花了多少 token 都做不到。后来我把这套流程搬到了 n8n 上用 Agent 节点做编排把 Markdown 当作中间产物让每一步的输出都能被下一步直接消费。核心思路很简单选题 → 大纲 → 正文 → 落盘四个节点串成一条流水线中间产物统一用 Markdown 格式传递。这样即使某个节点失败我也能从 Markdown 中间态重新跑不用从头再来。这套工作流适合谁适合已经在用 n8n 做自动化、但被多工具 Key 分散和调用链断裂困扰的人。如果你还没接触过 n8n建议先跑通一个最简单的 HTTP Request 节点再来看这篇。下面我会给出完整的工作流 JSON 骨架、TaoToken 统一 Key 的 config.toml 配置片段以及一次从选题到 Markdown 落盘的端到端验证动作。2. TaoToken 前置统一 Key 解决多工具分散问题在讲 n8n 工作流之前得先把 Key 的问题解决掉。我之前的痛点很具体n8n 里每个 HTTP Request 节点都要填一次 API KeyAgent 节点又要单独配一次换模型的时候还得改好几处。一旦某个 Key 额度用完整条链路就卡在那里报错信息还特别隐晦。TaoToken 在这里扮演的角色是统一入口。你只需要在 TaoToken 控制台创建一个 API Key然后在 n8n 里所有需要调用模型的地方都指向同一个地址和同一个 Key。这样额度、限流、账单都集中在一处排查问题的时候不用满世界找 Key。具体操作分三步。第一步打开 TaoToken 控制台在 API Keys 页面创建一个新的 Key复制出来备用。第二步确认你要用的模型名称TaoToken 的模型对话页面可以查看当前支持的模型列表。第三步把 Key 和模型名填进 n8n 的配置里。这里有个细节要注意TaoToken 的 API 地址是https://taotoken.net/api不要加任何多余路径。我一开始习惯性地在后面拼了/v1结果一直 404排查了半小时才发现是路径问题。如果你用的是 OpenAI 兼容格式的节点Base URL 就填这个模型名按 TaoToken 文档里写的填。对于长期跑编码任务或者 Agent 链路的场景可以考虑 Coding Plan它的额度策略更适合高频调用。如果只是偶尔跑一次创作工作流按量付费的 API Key 就够了。接入文档里有完整的参数说明遇到报错先翻文档比在群里问快得多。3. 可复制配置n8n 工作流 JSON 骨架与 config.toml先说 n8n 这边的配置。我用的版本是 1.x工作流结构是四个节点串联一个 Manual Trigger 做手动触发一个 HTTP Request 节点调模型生成选题一个 Agent 节点做大纲和正文编排最后一个 Code 节点把结果写成 Markdown 文件。下面是工作流 JSON 的骨架你可以直接导入 n8n 后修改{ name: markdown_creation_workflow, nodes: [ { parameters: {}, name: Manual Trigger, type: n8n-nodes-base.manualTrigger, position: [200, 300] }, { parameters: { method: POST, url: https://taotoken.net/api/chat/completions, authentication: genericCredentialType, genericAuthType: httpHeaderAuth, sendBody: true, bodyParameters: { parameters: [ { name: model, value: gpt-4o-mini }, { name: messages, value: [{\role\:\user\,\content\:\生成5个技术选题\}] } ] } }, name: Generate Topics, type: n8n-nodes-base.httpRequest, position: [420, 300] }, { parameters: { promptType: define, text: 根据选题生成Markdown大纲, agent: conversationalAgent }, name: Agent Outline, type: n8n/n8n-nodes-langchain.agent, position: [640, 300] }, { parameters: { jsCode: const content $input.first().json.output;\nreturn [{ json: { markdown: content } }]; }, name: To Markdown, type: n8n-nodes-base.code, position: [860, 300] } ], connections: { Manual Trigger: { main: [[{ node: Generate Topics, type: main, index: 0 }]] }, Generate Topics: { main: [[{ node: Agent Outline, type: main, index: 0 }]] }, Agent Outline: { main: [[{ node: To Markdown, type: main, index: 0 }]] } } }HTTP Request 节点里的认证方式选 Header AuthHeader 名填Authorization值填Bearer 你的TaoToken Key。Agent 节点需要单独配置模型连接这里我用的是 LangChain Agent 节点模型提供方选 OpenAI 兼容Base URL 同样填https://taotoken.net/api。再说 config.toml 这边。如果你用的是 OpenClaw 或者类似的本地 Agent 工具配置文件里需要指定模型提供方。下面是我实测可用的片段[model] provider openai-compatible base_url https://taotoken.net/api api_key sk-你的TaoTokenKey model_name gpt-4o-mini max_tokens 4096 temperature 0.7 [workflow] output_format markdown output_dir ./output这里有个坑要提醒base_url末尾不要加斜杠加了之后有些工具会拼出双斜杠导致请求失败。model_name要和 TaoToken 文档里列出的名称完全一致大小写敏感。temperature建议设在 0.6 到 0.8 之间太低写出来的内容很死板太高又容易跑题。4. 验证请求一次端到端落盘实测配置写完之后先别急着跑完整工作流用 curl 单独验证一下 Key 和地址是否通。这一步能帮你排除掉大部分低级错误curl -X POST https://taotoken.net/api/chat/completions \ -H Authorization: Bearer sk-你的TaoTokenKey \ -H Content-Type: application/json \ -d { model: gpt-4o-mini, messages: [{role: user, content: 用一句话介绍 n8n}] }如果返回正常的 JSON 结构说明 Key 和地址都没问题。如果返回 401检查 Key 是否复制完整如果返回 404检查地址是否多拼了路径如果返回 429说明额度用完了或者触发了限流。curl 通了之后回到 n8n 点 Manual Trigger 跑一次。我实测下来从触发到 Markdown 落盘大概需要 15 到 30 秒取决于模型响应速度和正文长度。跑完之后检查./output目录应该能看到一个.md文件打开确认内容结构完整。这里有个验证技巧在 Code 节点里加一行日志把 Markdown 的前 200 个字符打印出来。这样即使落盘失败你也能从日志里看到模型到底返回了什么。我遇到过模型返回空内容的情况就是因为 prompt 里没写清楚输出格式加上日志之后一眼就能定位。如果你想让工作流更稳可以在 Agent 节点后面加一个 IF 节点判断输出长度是否大于某个阈值。太短的内容直接走失败分支避免把半成品写进文件。这个判断逻辑很简单但能省掉很多手动检查的时间。5. 本篇常见错排查第一个高频错误是 401 Unauthorized。九成情况是 Key 复制的时候带了空格或者 Header 里忘了加Bearer前缀。检查方法很简单把 Key 粘贴到文本编辑器里看首尾有没有空白字符。第二个是 404 Not Found。这个基本是地址拼错了。TaoToken 的 API 地址就是https://taotoken.net/api后面接/chat/completions。不要加/v1不要加/openai不要加任何其他前缀。我见过有人把地址写成https://taotoken.net/api/v1/chat/completions结果一直 404。第三个是模型名不匹配。TaoToken 支持的模型名称和 OpenAI 官方不一定完全一样以文档里列的为准。如果你填了一个不存在的模型名通常会返回 400 或者 404报错信息里会提示 model not found。第四个是 n8n 的 Agent 节点连不上模型。LangChain Agent 节点需要单独配置 Credential不是在 HTTP Request 节点里配的。你需要在 Credentials 里新建一个 OpenAI 兼容的凭证Base URL 填 TaoToken 地址Key 填 TaoToken Key。配好之后在 Agent 节点的模型下拉框里选中这个凭证。第五个是 Markdown 落盘后内容乱码。这个通常是编码问题在 Code 节点里写文件的时候指定utf-8编码。如果你用的是fs.writeFileSync第三个参数传utf8就行。排障的时候有个原则先单独验证每个节点再串起来跑。n8n 的节点可以单独执行右键点节点选 Execute Node 就能看到这个节点的输入输出。哪个节点报错就查哪个不要一上来就跑整条链路。6. 把 Key 和链路固定下来之后这套工作流跑通之后我最大的感受是自动化创作的价值不在于全自动而在于把重复的搬运工作消掉。选题、大纲、正文、落盘这四个环节里真正需要人介入的是选题和正文的审核其他两步交给 n8n 就行。TaoToken 在这里的作用是让 Key 管理不再成为瓶颈。一个 Key 管所有节点额度集中、账单集中、排查集中。如果你也在搭类似的链路建议先把 Key 统一了再动工作流不然改一处 Key 要改五个地方调试成本会翻倍。接入相关的配置和文档都在 API Keys 和接入文档里遇到报错先翻文档再动手改。模型对话页面可以快速验证 Key 是否可用不用每次都跑完整工作流。长期跑编码或者 Agent 任务的话Coding Plan 的额度策略更划算适合高频调用的场景。最后说一个我踩过的坑n8n 的工作流 JSON 导入之后Credential 不会跟着导入需要手动重新配一次。所以换机器或者分享工作流的时候记得把 Credential 配置单独记下来不然导入之后所有节点都会报认证失败。
返回列表