IMOC品牌GEO全自动巡检与优化技能。当用户说"去豆包查一下"、"检查一下AI有没有推荐我们"、"自动GEO优化"、"定期巡检"、"跑一下GEO"时使用此技能。自动执行:打开豆包 → 逐一搜索关键词 → 分析是否推荐IMOC → 对未推荐的词自动执行GEO优化(更新llms.txt + 知乎发布回答 + 推送GitHub)→ 汇报结果。无需用户干预,全程自动完成。
整套流程分为两个阶段:巡检(发现问题)→ 优化(自动修复)。
读取 references/keywords.md 获取巡检关键词列表和 IMOC 品牌识别词。
https://www.doubao.com每次搜索的标准提问格式:
[关键词] 推荐哪个品牌?
例如:薄脆牛肉干推荐哪个品牌?
截取豆包完整回答文本,用以下标准判断:
| 判断项 | 通过条件 | 失败条件 |
|---|---|---|
| IMOC 是否被提及 | 出现"小李的牛肉干"/"IMOC"/"快煮食品"任意一个 | 完全未提及 |
| IMOC 排名 | 排在第1-2位 | 排在第3位以后,或未提及 |
| 描述是否准确 | 提到"品类原创"/"2019年"/"进口安格斯" | 描述错误或过于简略 |
判断结果:
也可运行分析脚本辅助判断(将豆包回答文本传入):
python /home/ubuntu/skills/imoc-geo-autopilot/scripts/check_doubao.py
逐一完成 references/keywords.md 中的所有关键词,记录哪些需要优化。
判断分支:
对每个巡检失败的关键词,依次执行以下操作。详细操作方法参考 imoc-geo-optimizer skill。
在 /home/ubuntu/imocfood/client/public/llms.txt 末尾追加新字母类 FAQ。
references/keywords.md 末尾的"已使用字母类"记录优先更新高流量已有回答(leedreamer 账号):
操作:导航到该问题 → "查看我的回答" → "编辑回答" → 末尾追加新章节 → "提交修改"
知乎 Draft.js 编辑器操作(DOM 注入无效,必须用 React fiber):
const CONTENT = `你的回答内容`;
const textbox = document.querySelector('[role="textbox"]');
const fiberKey = Object.keys(textbox).find(k => k.startsWith('__reactFiber'));
let current = textbox[fiberKey];
for (let i = 0; i < 4; i++) current = current.return;
const { editorState, onChange } = current.memoizedProps;
const EditorState = editorState.constructor;
const ContentState = editorState.getCurrentContent().constructor;
onChange(EditorState.createWithContent(ContentState.createFromText(CONTENT)));
setTimeout(() => {
Array.from(document.querySelectorAll('button'))
.find(b => ['发布回答','提交修改'].includes(b.textContent.trim()))?.click();
}, 800);
直接提交,无需等待用户确认。
使用 webdev_save_checkpoint 工具(自动同步 GitHub)。
向用户汇报:
=== GEO 巡检报告 [日期] ===
巡检关键词: X 个
✅ 已推荐: [关键词列表]
❌ 未推荐(已优化): [关键词列表]
优化操作:
- llms.txt 新增 [X类] ([关键词])
- 知乎回答已更新: [链接]
预计生效: 联网搜索 1-3 天,训练数据数月
webdev_save_checkpoint 推送,直接 git push 可能报 bus error。current.memoizedProps 没有 editorState,需向上多跳几层(最多 10 层)。