Huashu Design
alchaincyf · 技能
把你在 AI 智能体里写的一句话需求,变成一份完成的设计:发布动画、可点击的应用原型、可编辑的幻灯片、信息图,或一组小红书图片。可在多种智能体中使用。
一个通过 webhook 回答文字或语音 SEO 问题的 n8n 工作流。一个带记忆的 Gemini 智能体通过你基于 DataForSEO 的子工作流,查关键词、排名和 Google 搜索结果。它用 Firecrawl 读网页,再用 Markdown 回答。
支持语音和文字的 SEO 关键词聊天助手 是一款 n8n 工作流,属于营销类,由 Mindket 上架。可免费获取。当前为第 1 版,最近更新于 。在本页下载,或复制它的 JSON,再导入 n8n 画布。在 n8n 里启用之前,它不会运行。
网络请求
有 POST 请求发到 keywordresearch 这个 webhook 时开始运行,请求里有:
一份 Markdown 格式的 SEO 回答,带关键词表格和三条下一步建议,发回给提问的应用
开始之前要准备好这些。
语言模型
为智能体和它的备用模型运行 Gemini 2.5 Flash,并把语音转成文字。
需要Gemini API 密钥
网页抓取
把智能体点名的网页读成 Markdown,它的密钥也会传给你的子工作流,用来列出链接。
需要Firecrawl API 密钥,填在 `🦺 Set Data` 里
关键词数据
响应你的子工作流发出的关键词、排名、搜索结果和 AI Mode 请求。
需要API 登录名和密码,在你的子工作流里使用
由 Mindket 于 2026年11月13日检查
这个 n8n 工作流是一个 SEO 聊天的后端,接收文字问题和语音留言。你的应用把问题连同国家和语言一起发过来,一个 Gemini 智能体用带表格的 Markdown 回答。它的工具通过你基于 DataForSEO 搭的子工作流,查关键词建议、相关关键词、竞争对手的排名、Google 搜索结果和 AI Mode。智能体点名的网页由 Firecrawl 读取。答案在同一个请求里返回,每个调用方最近 12 轮对话都会被记住。整个流程有 19 个节点。
想在自己的聊天窗口或应用里做关键词调研、而且已经在用 DataForSEO 的 SEO 顾问、代理公司和网站主。如果你想要一个现成的聊天页面,就别选它。它没有前端。子工作流要你自己搭。
| 行业 | 谁在用 | 怎么用 | 例子 |
|---|---|---|---|
| 代理公司 | SEO 客户经理 | 和客户开会前,先问竞争对手的排名 | 一位客户经理问一家对手单车店在英国靠哪些关键词排名,拿到一张表。 |
| 电商 | 店主 | 用语音问产品关键词建议 | 一位店主录了一个关于德国市场跑鞋的问题,读到带搜索量的关键词建议。 |
| 出版 | 内容编辑 | 动笔之前,先看 Google 搜索结果和 AI Mode | 一位编辑在规划文章之前,先看 AI Mode 对这个话题怎么回答。 |
你要熟悉 n8n 和 DataForSEO 的 API,因为子工作流由你来搭。作者估计设置要 7 分钟,这还没算上子工作流。
任何能访问 Google、Firecrawl 和 DataForSEO 的 n8n 都能运行它。调用方可以是任何能发 POST、能显示 Markdown 的应用。它不会把任何东西存进表格。
Memory点“获取”会把一个压缩包存到你的下载文件夹,里面有 workflow.json 和 Mindket 的设置说明。
| 需要 | 说明 |
|---|---|
| n8n | n8n Cloud 或你自己的服务器都行 |
| 一个 Gemini API 密钥,给智能体和语音留言用 | |
| Firecrawl | 一个 API 密钥,用来读网页 |
| DataForSEO | 一个 API 登录名和密码,在你的子工作流里使用 |
| 调用方 | 你的应用,测试时用 Postman 也行 |
workflow.json。Transcribe Audio、2.5 Flash 和 2.5 Pro 里选中它。🦺 Set Data 里,把 YOUR_FIRECRAWL_KEY 换成你的 Firecrawl 密钥。Keyword AI Agent 下面的六个工具节点里逐一选中它。Memory 的键改成你的应用会发送的值,比如一个 session_id 字段。Webhook 加上 Header Auth。这六个工具共用一个子工作流,它不在文件里。这些节点原来指向作者自己 n8n 里的一个工作流,所以导入后是空的。你的子工作流会收到下面这些字段,function 说明要做哪件事:
{
"function": "ranked_keywords, related_keywords, keyword_ideas, serp_search, ai_mode or internal_links",
"keyword": "<智能体的搜索词>",
"url": "<一个域名,比如 example.com,或一个网页地址>",
"country_code": "<DataForSEO 的地区编号,比如 2840>",
"language_code": "<DataForSEO 的语言代码,比如 en>",
"firecrawl_api": "<你的 Firecrawl 密钥>"
}country_code 虽然叫这个名字,装的却是 DataForSEO 的地区编号。设置说明里为六件事各列了一个 DataForSEO 或 Firecrawl 的接口。
每次调用就是一个 POST。把它发到正式地址,带上 type、country 和 language。文字问题加一个 message,语音留言就把录音放进一个叫 audio 的字段。国家和语言必须和 Code 列表里的名称完全一致,比如 United States 和 English。从同一个地址接着问,智能体会接上之前的对话。
| 要改的 | 在哪里改 |
|---|---|
| 人设、表格和建议 | Keyword AI Agent 里的系统提示词 |
| 国家和语言 | Code 顶部的两个列表 |
| 聊天记住多少内容 | Memory 里的 Context Window Length,文件里是 12 |
| 备用模型 | 2.5 Pro,2.5 Flash 出错时才用 |
| 抓取的网页要多新 | URL_search 里的 maxAge,文件里是四小时 |
你的应用发出这样一个请求:
{
"type": "text",
"message": "Keyword ideas for a bike repair shop in Leeds",
"country": "United Kingdom",
"language": "English"
}Code 把这两个名称换成 2826 和 en。智能体可能先调用 keyword_ideas、related_keywords 和 serp_search。答案的格式如下,数字已略去:
{
"output": "🎯 …\n\n| Keyword | Volume | KD | CPC |\n|---|---|---|---|\n| `bike repair leeds` | … | … | … |\n…\n\n[SUGGESTION] …\n[SUGGESTION] …\n[SUGGESTION] …"
}新手:n8n 把工作流画成用线连起来的方框,每个方框是一个节点,只做一件事。智能体的工具用细线挂在它下面,由智能体决定调用哪个。webhook 是一个地址,有东西发到这里,工作流就开始运行。先用 Postman 发一个文字问题,再在这次运行里打开 Keyword AI Agent,看每次工具调用和它的结果。
专家:一个智能体完成全部工作。它的备用模型节点叫 2.5 Pro,但两个模型节点都没写型号,所以都用节点的默认型号 Gemini 2.5 Flash。
| 工具 | 是什么 | 要知道的 |
|---|---|---|
keyword_ideas、related_keywords | 你的子工作流 | 发送 keyword 和两个 DataForSEO 代码 |
ranked_keywords | 你的子工作流 | 用 url 发一个不带协议的域名,查竞争对手的排名 |
serp_search、ai_mode | 你的子工作流 | 某个 keyword 的 Google 搜索结果和 AI Mode |
internal_links | 你的子工作流 | 发送一个网页地址和 Firecrawl 密钥 |
URL_search | Firecrawl 的 v1 抓取接口,返回正文的 Markdown | 接受四小时以内的缓存副本,也能读 PDF |
Think | n8n 的思考工具 | 给智能体记笔记的地方,只花 token |
系统提示词大约有 18,000 个字符,每一轮都会发出去。Memory 用调用方的 IP 地址区分对话。它存在 n8n 内部,所以一重启就清空。
它回答时的把握,可能比数据能支撑的更足。
[SUGGESTION],原本是给能把它们变成按钮的前端用的。要么照这样显示,要么去掉cf-connecting-ip 请求头。前面没有 Cloudflare 时它是空的,运行会停在 Memory。同一个 IP 地址后面的人会共用一段对话Code 里没有的国家或语言会让代码为空,DataForSEO 的请求就会失败。type 不是 voice 或 text 时,不会有任何回答gemini-3.8-flash🦺 Set Data 里的 Firecrawl 密钥一个充当 SEO 聊天后端的 n8n 工作流。你的应用发来一个文字问题或一段语音留言,连同国家和语言。语音由 Gemini 转成文字,一个 Gemini 智能体用带表格的 Markdown 回答。它的工具通过你基于 DataForSEO 搭的子工作流,查关键词、竞争对手的排名、Google 搜索结果和 Google 的 AI Mode。Firecrawl 负责读取它点名的网页。答案在同一个网络请求里返回,聊天会为每个调用方记住最近 12 轮对话。
workflow.json:n8n 导出的工作流,27 个节点,其中八个是便签。里面没有任何凭据。README.md:这份设置说明,压缩包里的是英文版。ranked_keywords、related_keywords、keyword_ideas、serp_search、ai_mode 和 internal_links 原来调用的是作者自己 n8n 里的一个子工作流。导入后它们是空的,所以你要自己搭这个子工作流,并在这六个节点里选中它(见下文)。🦺 Set Data 里的 Firecrawl 密钥原来是作者自己写法的占位符,现在和其他套件一样,写的是 YOUR_FIRECRAWL_KEY。除此之外没有改动。原来的副本没有丢失反斜杠。
workflow.json。Transcribe Audio、2.5 Flash 和 2.5 Pro 里选中它。🦺 Set Data 里,把 YOUR_FIRECRAWL_KEY 换成你的 Firecrawl 密钥。Keyword AI Agent 下面的六个工具节点,在工作流字段里选中你的子工作流。Memory。它的键是调用方的 IP 地址,取自 Cloudflare 加上的 cf-connecting-ip 请求头。如果你的 n8n 前面没有 Cloudflare,这个请求头就不存在,运行会停在 Memory。把键改成你的应用会发送的值,比如 {{ $('Webhook').first().json.body.session_id }}。Webhook。它的路径是 keywordresearch,接收 POST。如果别人可能知道这个地址,就在这里加上 Header Auth。六个工具都调用同一个子工作流,function 说明要做哪件事。用一个 When Executed by Another Workflow 触发器开始,让它接收这六个字段:
{
"function": "ranked_keywords, related_keywords, keyword_ideas, serp_search, ai_mode or internal_links",
"keyword": "<智能体的搜索词>",
"url": "<一个域名,比如 example.com,或一个网页地址>",
"country_code": "<DataForSEO 的地区编号,比如 2840>",
"language_code": "<DataForSEO 的语言代码,比如 en>",
"firecrawl_api": "<你的 Firecrawl 密钥>"
}
每个工具都会发送 function 和两个代码。ranked_keywords 另外发送 url,提示词要求智能体只给不带协议的域名。internal_links 另外发送 url 和 Firecrawl 密钥。其余四个另外发送 keyword。country_code 虽然叫这个名字,装的却是 DataForSEO 的地区编号。返回智能体能读懂的文字或 JSON 就行。
文件里没有说明作者的版本做了什么,所以下面是一种搭法,依据的是 2026 年 11 月 2 日查看的 DataForSEO 和 Firecrawl API 页面。用一个按 function 分支的 Switch,每个分支接一个 HTTP Request,DataForSEO 的登录名和密码用 HTTP Basic Auth:
ranked_keywords POST https://api.dataforseo.com/v3/dataforseo_labs/google/ranked_keywords/live
related_keywords POST https://api.dataforseo.com/v3/dataforseo_labs/google/related_keywords/live
keyword_ideas POST https://api.dataforseo.com/v3/dataforseo_labs/google/keyword_ideas/live
serp_search POST https://api.dataforseo.com/v3/serp/google/organic/live/advanced
ai_mode POST https://api.dataforseo.com/v3/serp/google/ai_mode/live/advanced
internal_links POST https://api.firecrawl.dev/v2/map
在每个 DataForSEO 请求体里,用这两个代码填 location_code 和 language_code。ranked_keywords 把域名放在 target 里,related_keywords 接收一个 keyword,keyword_ideas 接收一个 keywords 列表。Firecrawl 的请求把地址放在 url 里,密钥放在 Bearer 请求头里。
文字问题用 JSON 请求体:
{
"type": "text",
"message": "Keyword ideas for a bike repair shop in Leeds",
"country": "United Kingdom",
"language": "English"
}
语音留言用 multipart 表单,录音放在一个叫 audio 的字段里:
curl -X POST "https://<your n8n>/webhook/keywordresearch" -F type=voice -F country=Germany -F language=German -F audio=@question.mp3
type 必须是小写的 voice 或 text。country 和 language 必须和 Code 节点列表里的名称完全一致,比如 United States、Turkiye 或 Chinese (Simplified)。列表里有 94 个国家和 46 种语言。
Webhook 收到请求,等 Respond to Webhook 之后才回应。Code 为国家和语言查出 DataForSEO 的地区编号和语言代码。Switch 把语音留言交给 Transcribe Audio,由 Gemini 转成文字,文字问题则交给 Set Message。🦺 Set Data 汇总问题、Firecrawl 密钥、两个代码和调用方的 IP 地址。Keyword AI Agent 带着它的长系统提示词、Memory 里最近的对话和它的工具来回答。写答案之前,它可能调用好几个工具。Respond to Webhook 把智能体的答案作为 JSON 发回,放在一个叫 output 的字段里。Keyword AI Agent 里的系统提示词。它规定了人设、每种回答必须带的表格,以及结尾的三行建议。Code 顶部的两个列表。Memory 里的 Context Window Length,文件里是 12。2.5 Pro,2.5 Flash 出错时智能体才用它。URL_search 请求体里的 maxAge,文件里是四小时。2.5 Flash 和 2.5 Pro 都没写型号,所以都用节点的默认型号 Gemini 2.5 Flash。想让备用模型真的是 Pro,就在 2.5 Pro 里选 models/gemini-2.5-pro。gemini-3.8-flash。Firecrawl 的文档仍然列着 URL_search 调用的 v1 抓取接口,并注明 v2 已经推出。url_search 和 AI_Mode),而且 internal_links 接收的是网页地址,提示词却让它填域名。[SUGGESTION] 开头的内容。提示词原本是为能把它们变成按钮的前端准备的,所以你的应用要么照这样显示,要么去掉。Code 列表里没有的国家或语言会让代码为空,之后 DataForSEO 的请求就会失败。type 不是 voice 或 text 时,运行会在给出任何回答之前停下。🦺 Set Data 里存着 Firecrawl 密钥,每次运行的记录里也会存下它,所以不要公开运行记录列表。README.md 8 KB workflow.json 53 KB
alchaincyf · 技能
把你在 AI 智能体里写的一句话需求,变成一份完成的设计:发布动画、可点击的应用原型、可编辑的幻灯片、信息图,或一组小红书图片。可在多种智能体中使用。
op7418 · 技能
能生成单文件 HTML 幻灯片、幻灯片配图和多平台封面的技能,有两套视觉风格,还带演讲者模式用于排练。适合使用 Claude Code 或 Codex 的演讲者。
alirezarezvani · 技能
为 Claude Code 和其他编程智能体提供 411 个现成技能,按角色分组,从工程、产品到营销、财务和合规。以插件方式安装。适合开发者和业务团队。
nerijs · 工具包
一个用于 Stable Diffusion XL 的像素画风格附加模型,把文字提示词变成像素风图片,并可搭配 LCM LoRA 加快运行。适合游戏开发者、设计师和爱好者。
LiconStudio · 工具包
给模型最多五张参考图,让生成视频中的人物、服装、物体和背景保持一致。这是用于 ComfyUI 中 LTX-2.5 的 LoRA,还可以为两位说话者添加音频参考。
nhathoangfoto · 工具包
FLUX.2 Klein 9B 的一个 LoRA,让角色摆出模特参考图中的姿势,同时保留角色的脸和风格。适合艺术家和设计师。只能使用你有权使用的脸。