OpenRouter Rankings 截图 → 飞书文档
抓取 OpenRouter Rankings,Categories 下每个场景各截一张图,并生成销售可读的文字总结,写入新建飞书文档后把文档链接发给用户。
默认配置
项 值
页面 https://openrouter.ai/rankings
输出目录 ~/.openclaw/cache/openrouter-rankings/YYYY-MM-DD/
飞书用户 ou_58b1afd31a9c961df56ae8fc04e293e0
Chromium /snap/bin/chromium
工作流(严格按顺序)
node {SKILL_DIR}/scripts/capture-rankings.mjs
产出:
manifest.json — 截图路径与解析出的 Top5 排名
summary.md — 飞书文档正文(含各场景表格)
summary-chat.txt — 飞书私聊用的短摘要(无本地路径)
categories/*.png — 12 个场景:Programming、Roleplay、Marketing、SEO、Technology、Science、Translation、Legal、Finance、Health、Trivia、Academia
其他板块:01_top_models … 11_top_apps(无单独 Categories 总图)
{SKILL_DIR} = 本文件所在目录。
node {SKILL_DIR}/scripts/validate-screenshots.mjs \ ~/.openclaw/cache/openrouter-rankings/$(date +%F)/manifest.json
失败则重跑第 1 步,不得创建文档或发飞书。
禁止向用户发送宿主机路径、MEDIA:/root/... 或 file://。
按顺序操作:
3.1 创建文档
工具:feishu_create_doc
标题:OpenRouter 模型排名日报 YYYY-MM-DD
markdown:读取 summary.md 全文(不要用一级标题重复 title;可直接从「给销售同学的 3 句话摘要」开始,或把 summary 作为正文)
3.2 按顺序插入截图
对每个 manifest.json 中 ok: true 的条目,调用 feishu_doc_media:
{
"action": "insert",
"doc_id": "<上一步返回的 doc_id>",
"type": "image",
"file_path": "",
"caption": ""
}
推荐顺序:
页面板块:01_top_models → … → 11_top_apps(按 id 排序)
Categories 场景:按 categoryScenarios 数组顺序(Programming → … → Academia)
每个场景截图前可在文档中追加小标题(可用 feishu_update_doc append 插入 ### 场景:Programming 等),再插入对应图片。
3.3 确认文档
必要时 feishu_fetch_doc 抽查文档已含图片与表格。
只发文档链接 + 短摘要,示例:
(读取 summary-chat.txt 的全文)
📎 完整截图与各场景排名表:
规则:
必须包含可点击的 doc_url
禁止出现 /root/、.openclaw/cache 等本地路径
禁止用 MEDIA: 代替文档(销售需在一个文档里查看全部内容)
短摘要用通俗中文,突出 Top 模型与场景名
任一场景截图失败 → 重跑 capture,仍失败则告知用户「今日日报未完成」
图表为骨架屏 → 不得写入文档
Categories 场景列表(脚本会自动遍历)
Programming、Roleplay、Marketing、SEO、Technology、Science、Translation、Legal、Finance、Health、Trivia、Academia
定时任务 Cron
OpenRouter Rankings 完整日报(每天 9:00 Asia/Shanghai)应执行本 skill 全流程(截图 → 校验 → 飞书文档 → 私聊链接)。
依赖
cd {SKILL_DIR}/scripts && npm install
需要:feishu_create_doc、feishu_doc_media、feishu_update_doc(已配置 openclaw-lark)。
禁止
不要只发本地路径或 MEDIA: 裸图集(除非用户明确要求改回图片模式)
不要用 thum.io / web_fetch 截图
不要在 Categories 下拉未切换、图表未加载时截图