بنقرة واحدة
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 关键词类型(必须全部覆盖)