ワンクリックで
geo-keyword-research
GEO 关键词研究 Skill。为指定品牌生成行业推荐型 + 品牌直指型关键词报告, 支持 DAG 并发搜索模式,产出两份 Markdown 文件。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
GEO 关键词研究 Skill。为指定品牌生成行业推荐型 + 品牌直指型关键词报告, 支持 DAG 并发搜索模式,产出两份 Markdown 文件。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
微信公众号短评论发布技能,专为「直隶按察使」公众号的卡兹克风格评论方向定制。 适用:一事一议的短观点、热评reaction、资讯点评(**1000-1500字**,2026-06-04 佳哥确认)。 触发条件:用户说「评论」「热评」「观点」「点评」「说两句」。 ⚠️ **branding 检查铁律(用户零容忍红线,2026-06-04 与 zhiliGitHub 对齐)**: - 作者字段**固定填 `刘生`**(2 字符),**禁止**填 `卡兹克` / 留空 / 其他名字 - 文章底部「作者:xxx」也填 `刘生` - 禁用字符串清单:`['卡兹克', 'khazix', 'zhiliGitHub', 'zhiliComments', '本文由', '一键三连', '扫码', 'wzglyay', '自动发布', 'jacardl']` - 完整检查方式见 zhiliGitHub SKILL.md 顶部「🚫 branding 检查铁律」段
微信公众号长文发布技能,专为「直隶按察使」GitHub 黑马项目方向定制(1500-2000字)。 触发:用户说「写文章」「发长文」「GitHub」「黑马」。 技能边界:本技能只管 GitHub 黑马长文,**不替兄弟技能定规范**。短评/Reaction → `social-media/zhilicomments/`;日常复盘 → `openclaw-imports/zhili-publish/`。完整边界见 `references/skill-boundary.md`。 执行前必读:①写 markdown 草稿(1500-2000字);② `python3 scripts/render_zhili_article.py /tmp/draft.md /tmp/article.html`;③ 配图调用 `zhili-illustration`;④ `python3 scripts/validate_zhili_article.py --title "<标题>"`;⑤ pre-submit 清单;⑥ `python3 scripts/push.py [--html /tmp/article.html]` 推草稿。配图最多 5 张,封面 16:9 PIL 裁剪 900×383。旧脚本 `publish_zhili.py` 已废弃(2026-06-28)。⚠️ 不要凭记忆手写 HTML CSS,用脚本生成。
直隶按察使公众号长文输出技能。基于素材(视频/音频/文字稿)产出 4000-5500 字的中文公众号长文(HTML + markdown 双格式),**自动对接 zhili-publish 推送到草稿箱**。 触发条件(满足任一即触发): - 用户说"基于 [素材] 写一篇公众号长文"/"写一篇 4000-5000 字" - 用户粘贴视频链接(B 站/YouTube/播客)+ "写长文"/"写成公众号" - 已有 transcript_clean.txt + 用户说"扩写"/"做长文"/"写成文章" - 用户说"zhili long [主题]"或"长文输出" - 用户说"这篇写完后直接发到草稿箱"/"一键发布到直隶按察使" 不适用:短评(用 zhilicomments-publish)、教程(用 khazix-writer)、GitHub 项目介绍(用 khazix-writer 模板) ...
🛰️ 雷达数据采集(生产版 v5.1):金价改用新浪hq_GC+USD/CNY换算,新增沪金Au99.99国内现货价,新增gold_note字段
Evidence-backed GEO keyword and Prompt Map research for Chinese AI visibility. Use when asked to generate GEO keywords, AI-search prompts, prompt/question coverage, Nanobot prompt-map JSON, or grouped questions for 品类问题、场景问题、品牌问题、竞品比较问题; also use for this GEO diagnostic page's Step 3 prompt analysis.
招投标 / 标书分析 Skill。默认输出两个 Markdown 文档:①应标清单(符合性、经济标、商务标、技术标、技术规格强制响应、视频/证明材料、排除项、P0-P4执行优先级);②交付物清单(中标后系统/数据/模型/平台/云资源/部署/文档/验收/付款/售后/知识产权/安全/违约与澄清)。触发条件:标书分析、招投标分析、应标清单、投标材料清单、评分表拆解、交付物清单、RFP/RFQ/RFI、招标文件分析。
| name | geo-keyword-research |
| description | GEO 关键词研究 Skill。为指定品牌生成行业推荐型 + 品牌直指型关键词报告, 支持 DAG 并发搜索模式,产出两份 Markdown 文件。 |
本技能用于生成 GEO 关键词研究报告,帮助任何品牌/产品优化在 AI 回复中的露出率和回复准确性。
适用于所有行业:汽车、轮胎、家电、美妆、数码、餐饮、服务等。
GEO 关键词分为两大类:
特征:[场景/品类/规格/车型/品类+品牌] + 推荐
特征:问题中明确包含目标品牌/产品全称
本技能在 DAG 模式下运行,分为并发搜索和单一汇总两个阶段。
每个搜索 Subtask 必须:
{workspace}/geo-keyword-research/{task_id}/{task_id}_search_{N}.tmp.md(N 为维度序号)维度划分表(Planning LLM 按品牌特点从中选取 3-5 个维度):
| 维度 | 示例 query(中文) | 示例 query(英文) | 备注 |
|---|---|---|---|
| 品牌官网 ⭐ | {品牌}官网 | {brand} official site products | 必选,用 fetch-web 直接抓官网产品页,获取官方产品线信息 |
| 品牌总体评价 | {品牌}怎么样 | {brand} review | |
| 竞品对比 | {品牌} vs 竞品 | {brand} vs competitor | |
| 耐磨/寿命 | 耐磨{品类}品牌推荐 | most durable {category} brands | |
| 噪音/舒适 | 静音{品类}品牌推荐 | quietest {category} brands | |
| 价格/性价比 | 性价比高的{品类}品牌 | best value {category} brands | |
| 细分场景 A | (根据品牌核心场景定制) | ||
| 细分场景 B | |||
| 特定产品系列 | {品牌}{旗舰系列}评测 | {brand} {flagship line} review | |
| 使用维护 | {品牌}使用年限/更换标准 | {brand} maintenance guide | |
| 技术特性 | {品牌}技术优势 | {brand} technology | |
| 购买指南 | {品牌}选购指南 | {brand} buying guide |
⭐ 品牌官网维度为必选:该 Subtask 需先用 search tool 查到官网 URL,再用 fetch-web 脚本抓取官网产品页正文, 将内容写入
{workspace}/geo-keyword-research/{task_id}/{task_id}_official_site.txt, 供汇总阶段直接读取作为产品信息来源。
合并所有临时文件
*.tmp.md 片段,按 URL 去重(不同 query 可能命中相同 URL){workspace}/geo-keyword-research/{task_id}/{task_id}_urls.md*.tmp.md 临时片段抓取核心页面正文(为报告分析提供真实内容依据)
{task_id}_urls.md 中,按来源多样性选取 8-12 个高价值页面:
FETCH_SCRIPT=$(python3 -c "from nanobot.agent.skills import BUILTIN_SKILLS_DIR; print(BUILTIN_SKILLS_DIR / 'fetch-web/scripts/fetch.py')")
python3 "$FETCH_SCRIPT" --url "{url}" --output "{workspace}/geo-keyword-research/{task_id}/page_{n}.txt"
"[FETCH FAILED]" 并跳过,继续处理下一个 URL第一类关键词验证(自问自答,LLM 内部推理)
[关键词]生成报告(基于真实抓取内容分析)
{workspace}/geo-keyword-research/{task_id}/{task_id}_report.md清理临时文件(报告生成成功后执行)
rm -f {workspace}/geo-keyword-research/{task_id}/page_*.txt
rm -f {workspace}/geo-keyword-research/{task_id}/{task_id}_product_page.txt
rm -f {workspace}/geo-keyword-research/{task_id}/*.tmp.md
⚠️ 不删除
{task_id}_official_site.txt:后续 on_success.py 需读取此文件生成产品画像。
产物目录:{workspace}/geo-keyword-research/{task_id}/
| 文件 | 内容 |
|---|---|
{task_id}_urls.md | 所有真实访问 URL、标题、来源网站、搜索日期(≥ 80 条) |
{task_id}_report.md | 品牌分析 + 目标人群 + 20 个关键词 + 总结 |
{task_id}_result.json | DAG 完成后自动生成:含 brand_name / sku_name / brand_url / brand_summary / user_image_summary / keywords_data / product_image_task_id / user_image / brand_mentions / coverage_summary 的统一结构化产物 |
{task_id}_report.md)前置:数据源统计
执行了多少次 search tool / 浏览了多少个数据源 / 数据源文件路径
第一段:品牌/产品理解
基于 web 搜索 + 官网内容,输出:
- 品牌定位
- 核心产品线
- 产品信息:基于官网抓取内容,列出主要产品系列、型号、核心规格、价格区间
- 主要优势特点
- 市场地位
- 信息来源:列出本段内容的来源 URL(官网地址及其他参考页面,每行一条)
第二段:目标人群理解
基于 web 搜索,输出:核心人群特征 / 主要痛点 / 搜索行为特点
末尾必须输出以下格式的人群分类列表(供系统自动处理,格式严格):
**人群分类:** - 人群名称A:人群特征一句话简要描述(20-80字) - 人群名称B:人群特征一句话简要描述(20-80字)人群数量通常为 2-4 个,每个名称简洁(2-6字),描述须包含年龄/性别/核心需求等关键维度。
第三段:关键词列表(⚠️ 格式严格,供系统自动解析,不可更改结构)
必须严格按以下模板输出,每个关键词一个编号标题 + 两个子项。不要使用表格、不要合并行、不要更改标签名称。
### 第一类关键词(行业推荐型)- 10个
1. 关键词文本A
- **为什么选择**:选择理由说明
- **GEO策略**:对应的GEO优化策略
2. 关键词文本B
- **为什么选择**:选择理由说明
- **GEO策略**:对应的GEO优化策略
...(共10个)
### 第二类关键词(品牌直指型)- 10个
1. 关键词文本A
- **为什么选择**:选择理由说明
- **GEO策略**:对应的GEO优化策略
...(共10个)
格式规则:
- 编号使用
1.、2....10.,后接关键词文本(不要加粗,不要加**)- 子项标签必须是
**为什么选择**和**GEO策略**,不要用其他名称- 每个子项以
-开头- 关键词文本中不要包含编号、冒号、引号
第四段:总结与研究洞察
第一行:数据覆盖描述(保留原格式): 「本次执行 N 次搜索,收集 M 条数据源,满足/未满足 覆盖目标」 不进行精确覆盖百分比计算,只需说明满足/未满足覆盖目标。
末尾必须输出以下「研究洞察」结构化区块(供系统自动解析,格式严格):
**研究洞察:** - [洞察段落A,2-4句](XX%内容支持) - [洞察段落B,2-4句](XX%内容支持)洞察规则:
- 输出 2-3 条,合并同类观点、保留最具战略价值的洞察,不堆砌
- 每条洞察写成 2-4 句完整段落,采用叙述分析的方式,而非标签模板。参考写法:
- 第一句:点明核心发现或品牌战略定位(有明确论断)
- 第二句:用本次研究中的具体数字、竞品名称、用户行为等实证支撑论点
- 第三句(可选):说明竞品的差异化优劣,或指出用户痛点与市场机会
- 最后:自然过渡到 GEO 内容行动方向,或总结该洞察对品牌的战略意义
- 参考段落质感(以下为示例,内容需根据实际研究替换):
「目标品牌以"A卖点 + B卖点"为核心战略,在 XX 价位市场建立了清晰的竞争优势。X元起售价将旗舰级配置拉入中端市场,辅以 Y 和 Z 形成差异化护城河。竞品 P、Q、R 虽在单项指标上各有建树,但目标品牌的综合均衡性和生态是难以复制的竞争力。GEO 内容应重点覆盖…场景,强化…心智认知。」
- 每条洞察末尾必须标注「(XX%内容支持)」,XX 为估算有多少比例的抓取内容/搜索结果支持该结论
- 内容涵盖:市场竞争格局、用户高频关注点、目标品牌核心优劣势、GEO 策略机会点
- 禁止使用「可能」「也许」「建议考虑」等模糊措辞,每句话须有实证依据或明确论断
| 情况 | 处理方式 |
|---|---|
| 目标品牌排名第 1 | ✅ 保留(高价值) |
| 目标品牌排名第 2-3 | ✅ 保留(有露出就有价值) |
| 目标品牌排名第 4+ | ✅ 保留(只要提及就有价值) |
| 目标品牌完全没有提及 | ❌ 删除,换补候补词 |
注意:只要回复中出现了行业品牌(包括竞品)就算满足,不一定只要求目标品牌出现。
用户提供:brand_name(例:固特异轮胎)
系统输出:`
1. {task_id}_urls.md(数据源记录,≥ 80 条)
2. {task_id}_report.md(10 个第一类 + 10 个第二类关键词报告)
3. {task_id}_result.json(on_success.py 自动生成,含 brand_name + sku_name 等字段)
/xxxx 或任何占位路径,搜索失败须记录"失败原因",不得伪造 URL| 目标覆盖 | 需要 search 次数 | 需要 URL 数量 |
|---|---|---|
| 70%+ | 5-8 次 | 20-30 个 |
| 85%+ | 10-15 次 | 80-100 个 |
| 90%+ | 15-20 次 | 120-180+ 个 |
当 task_type 为 geo_keyword_match 时,不执行上述关键词研究流程,而是执行以下匹配任务:
根据前端传入的关键词列表和用户画像(含具体 profiles),使用 LLM 完成:
industry 关键词的问题严禁包含具体品牌名、产品名等专有名词,保持行业通用视角brand 关键词的问题必须包含关键词中的品牌名custom 关键词的问题必须直接体现关键词的核心词max_questions,默认 150):
| 字段 | 类型 | 说明 |
|---|---|---|
keywords | object | 关键词数据,包含 industry、brand、custom 三个数组 |
keywords.industry | array | AI 研究生成的行业推荐型关键词,每项 {keyword, reason} |
keywords.brand | array | AI 研究生成的品牌直指型关键词,每项 {keyword, reason} |
keywords.custom | array | 用户自定义关键词,支持字符串或 {keyword} dict,必须全部覆盖 |
user_images | array | 用户画像列表,每个含 persona、desc、profiles |
location | string | 目标地区(如"中国大陆") |
lang | string | 目标语言(如"中文") |
max_questions | int | 可选,最终问题数上限,默认 150;不得低于关键词总数 |
variants_count | int | 可选,每条问题生成的语义变体数,默认 2;0 = 关闭 |
直接调用脚本,不要使用 DAG 模式:
MATCH_SCRIPT=$(python3 -c "from nanobot.agent.skills import BUILTIN_SKILLS_DIR; print(BUILTIN_SKILLS_DIR / 'geo-keyword-research/scripts/keyword_match.py')")
python3 "$MATCH_SCRIPT" \
--config-file {config} \
--task-id {task_id} \
--output-dir {workspace}/geo-keyword-research/ \
--metadata-file {workspace}/.tasks/sessions/{task_id}/_task.json
| 文件 | 内容 |
|---|---|
{task_id}_keyword_match.json | 每个画像的匹配关键词(按 confidence 排序,总问题数 ≤ max_questions)+ 置信值 + profile 问题 + 语义变体 |
{task_id}_keyword_match.json 严格格式(⚠️ 如需手动生成,必须完全遵守此结构){
"location": "中国大陆",
"lang": "中文",
"matches": [
{
"persona": "画像名称",
"matched_keywords": [
{
"keyword": "关键词文本",
"keyword_type": "industry | brand | custom",
"confidence": 95,
"reason": "该画像对此关键词的匹配理由",
"profile_questions": [
{
"profile_id": "profile-id-xxx",
"question": "该 profile 会问的主问题",
"variants": [
"语义变体1",
"语义变体2"
]
}
]
}
]
}
]
}
⚠️ 格式约束:
- 顶层键为
matches(数组),不是results- 嵌套顺序为:
matches[].matched_keywords[].profile_questions[]profile_questions每项含profile_id、question、variants三个字段- 不存在
profiles[]或question_variant等字段
on_success.py 自动写入 {task_id}_result.json,字段如下:
| 字段 | 类型 | 来源 | 说明 |
|---|---|---|---|
brand_name | string | 报告标题 或 metadata | 纯品牌名,如 "肯德基" / "BMW" |
sku_name | string | metadata.brand_name LLM 拆分 | 产品型号,如 "吮指原味鸡" / "X1";无则空字符串 |
target_type | string | sku_name 是否为空推导 | "brand" = 纯品牌模式,"sku" = 品牌+SKU 模式 |
brand_url | string | 报告信息来源块 | 品牌官网 URL |
brand_summary | string | 报告第一段 | 品牌定位与产品概述 |
user_image_summary | string | 报告第二段 | 目标人群描述 |
keywords_data | object | 报告第三段 | {industry: {...}, brand: {...}} |
product_image_task_id | string | on_success 子任务 | 产品画像子任务 ID |
user_image | array | on_success 子任务 | [{persona, task_id, desc}] |
sku_name 提取方式(on_success.py 内部逻辑):
metadata.brand_name(用户当初输入的完整品牌名)调用 LLM 解析{brand_name: "...", sku_name: "..."}{workspace}/geo-keyword-research/{task_id}/{task_id}_result.json(由系统 on_success.py 自动生成)sku_name 字段:on_success.py 调用 LLM 从用户输入的 brand_name 中自动解析品牌名和产品型号,无需用户额外填写coverage_summary)brand_mentions(品牌+SKU tuple 数组)和 coverage_summary(洞察观点数组)target_type:根据 LLM 是否拆分出 SKU 推导 "brand" 或 "sku",影响下游竞品发现和 QA 分析的粒度max_questions(默认150)裁剪机制:按 confidence 降序优先保留,每个关键词至少1条保底;支持 custom 关键词类型(必须全部覆盖)