From agi-super-team
Handles Xiaohongshu (Little Red Book) Creator Center login via QR code scanning, note publishing, and data export. Delegates all browser interactions to agent-browser-stealth. Includes cookie normalization and login verification.
How this skill is triggered — by the user, by Claude, or both
Slash command
/agi-super-team:xhs-skillThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
本技能是 `xhs-*` 的合并版,目标是让用户只需要 `clawhub install xhs-skill` 一次即可开始使用。
本技能是 xhs-* 的合并版,目标是让用户只需要 clawhub install xhs-skill 一次即可开始使用。
约束:
agent-browser-stealth。publish_from_payload);发布动作必须在会话中由 agent-browser-stealth 执行。agent-browser(旧通道禁用,统一使用 agent-browser-stealth)。data/ 目录,不要粘贴到聊天里。执行硬约束(稳定性):
agent-browser-stealth session 禁止并发操作(串行执行),否则容易触发 os error 35 假失败。snapshot 的 ref 会漂移:关键动作前后必须重抓 snapshot -i,并用 placeholder/role/text 做二次定位兜底。clawhub install xhs-skill
cd skills/xhs-skill
npm i
说明:npm i 仅用于本技能自带的本地 CLI(二维码解码、cookies 工具)。如果你不需要解码二维码/转换 cookies,也可以只用 agent-browser-stealth 完成扫码与导出。
建议在你运行命令的工作目录下准备:
data/xhs_login_qr.png:登录页二维码截图(PNG)data/raw_cookies.json:导出的原始 cookies(JSON)data/xhs_cookies.json:归一化后的 cookies(JSON)data/exports/<YYYY-MM-DD>/:导出数据(CSV/XLSX/截图)data/assets/<YYYY-MM-DD>/:发布笔记用的图标/配图素材与来源记录mkdir -p data
目标:登录小红书创作者中心并导出 cookies,避免频繁重复登录。
agent-browser-stealth 打开登录页:https://creator.xiaohongshu.com/login让 agent-browser-stealth 截图保存二维码(PNG)到 data/xhs_login_qr.png
(可选)用本地 CLI 解码二维码文本并打印 ASCII 二维码:
node ./bin/xhs-skill.mjs qr show --in ./data/xhs_login_qr.png
OpenClaw 回传规范(强制):
data/xhs_login_qr.png)。node ./bin/xhs-skill.mjs qr show --in ./data/xhs_login_qr.png,然后把输出的二维码文本 + ASCII 二维码直接发给用户。推荐回传模板:
请用小红书 App 扫这个二维码登录。
二维码文本: <qr_text>
<ASCII QR>
data/raw_cookies.json(不走 DevTools):agent-browser-stealth cookies --json > ./data/raw_cookies.json
data/xhs_cookies.json:node ./bin/xhs-skill.mjs cookies normalize --in ./data/raw_cookies.json --out ./data/xhs_cookies.json
node ./bin/xhs-skill.mjs cookies status --in ./data/xhs_cookies.json
5.1 推荐用脚本做后验校验(可执行门禁):
# 例:先让 agent-browser-stealth 记录当前 URL 与后台探测后的 URL
CURRENT_URL="$(agent-browser-stealth get url)"
agent-browser-stealth open https://creator.xiaohongshu.com/creator/home
PROBE_FINAL_URL="$(agent-browser-stealth get url)"
node ./scripts/verify_login.mjs \
--cookies ./data/xhs_cookies.json \
--current-url "$CURRENT_URL" \
--probe-final-url "$PROBE_FINAL_URL" \
--json
登录成功判定(强制):
web_session 不再作为硬依赖):/loginweb_session,或 cookie 名含 session)。没有也可能可用,但稳定性更差。登录结果输出契约(JSON):
{
"task": "xhs_login",
"ok": true,
"checks": {
"left_login": true,
"backend_not_rejected": true,
"has_session_like_cookie": true
},
"artifacts": {
"qr_png": "data/xhs_login_qr.png",
"raw_cookies": "data/raw_cookies.json",
"normalized_cookies": "data/xhs_cookies.json"
}
}
失败时 ok=false,并给出失败项(例如仍在 /login、或 probe 回跳),禁止输出“已完成”。
Cookie: header:node ./bin/xhs-skill.mjs cookies to-header --in ./data/xhs_cookies.json
失败回退:
agent-browser-stealth 放大后重新截图(仍为 PNG)。data/raw_cookies.json,后续再扩展兼容分支。核心结论:小红书风控主要看“节奏 + 指纹 + 行为 + IP + 账号权重”。工具本身不是主因,使用方式才是主因。
强制策略:
1.2s~7s)。type --delay(逐字),避免全量瞬时 fill。--profile,并启用 --headed。24h <= 3 篇。30 分钟。3~7 天。profile + IP + 设备环境。输入(用户提供):
YYYY-MM-DD)发布硬门禁(强制):
data/publish_payload.json(示例):{
"topic": "今日热点:xxxx",
"source": {
"name": "央视新闻",
"url": "https://example.com/news",
"date": "2026-02-12",
"evidence_snippet": "2月12日该媒体报道提到:......",
"key_facts": ["关键事实1(含日期/数字)", "关键事实2(含日期/数字)"]
},
"post": {
"title": "20字内标题示例",
"body": "不少于 80 字的正文......",
"tags": ["#热点", "#今日新闻", "#小红书运营"],
"real_topics": ["#人工智能", "#AI资讯", "#科技观察"],
"media": ["/abs/path/cover.png", "/abs/path/card_1.png"]
}
}
# 普通模式
node ./scripts/verify_publish_payload.mjs --in ./data/publish_payload.json --policy ./config/verify_publish_policy.json --tag-registry ./data/tag_registry.json --min-registry-tags 12 --require-source-evidence on --strict-anti-ai on --json
# 今天热点模式(强制 source.date = 今天)
node ./scripts/verify_publish_payload.mjs --in ./data/publish_payload.json --policy ./config/verify_publish_policy.json --tag-registry ./data/tag_registry.json --min-registry-tags 12 --require-source-evidence on --strict-anti-ai on --mode hot --json
node ./scripts/review_publish_payload.mjs --in ./data/publish_payload.json --policy ./config/review_policy.json --taxonomy ./config/review_taxonomy.json --ai-provider auto --require-ai off --mode hot --json
ok=true 才允许进入发布页点击“发布/提交”。
校验策略在 ./config/verify_publish_policy.json,审核策略在 ./config/review_policy.json,分层风险路径在 ./config/review_taxonomy.json。禁止链接(强制):
http/https、www.、xxx.com/.cn/...)。否则有封禁风险。反 AI 识别与真实标签(强制):
review_publish_payload 审核门禁,要求 decision=pass,并输出 risk_path、证据和 review_queue 供复核。source.evidence_snippet 与 source.key_facts 必填,且能回溯到来源事实。post.real_topics 都必须来自真实话题池 data/tag_registry.json,禁止自造标签。#标签 拼进正文冒充话题。agent-browser-stealth 执行最终点击发布。示例:准备真实标签池(建议每天更新):
cat > ./data/tag_registry.json <<'JSON'
{
"updated_at": "2026-02-24",
"source": {
"platform": "xiaohongshu",
"method": "manual_from_publish_topic_picker",
"url": "https://creator.xiaohongshu.com/creator/publish"
},
"tags": ["#AI热点", "#人工智能", "#行业观察", "#科技新闻", "#AI资讯", "#科技观察"]
}
JSON
发布执行方式(唯一):
agent-browser-stealth 串行执行:预检 -> 填充 -> 读回校验 -> 发布 -> 回查。verify/review 非 ok=true),必须停止在“发布前”,禁止继续点击提交。P0:发布编排器(流程编排,不是仓库脚本):
https://creator.xiaohongshu.com/publish/publish 进入;禁止把 /creator/* 作为首入口。https://creator.xiaohongshu.com/new/home(“你访问的页面不见了”),立即回到 /publish/publish 重试。published=true;P0:路由与状态稳定性(强制):
/publish/publish;其他页面只作为中转,不作为成功判定依据。P0:选择器双通道(强制):
placeholder + role + 可见性 + 附近文案)。tiptap/ProseMirror 语义类名)。snapshot ref 或 @e1/@e2 序号;每个关键动作前后都要 snapshot -i 二次确认。P0:写入可靠性(强制):
contenteditable、可见、可编辑、placeholder/附近文本命中“正文/内容”语义。title_len 与 body_len。title_len > 20 且 body_len < 80,或标题命中长段正文特征(大量换行/句号),判定为写入错位。# 标签、长段正文、链接;标签必须通过小红书发布页“标签/话题交互”选择,不把标签文本塞进标题。P0:草稿确认闭环(强制):
title/body/media/tags 仍满足门禁。P0:图片预处理(无脚本版):
1242x1660(3:4 竖版)。# macOS: 先居中裁剪再缩放到 1242x1660(按需替换输入输出路径)
sips -c 1660 1242 ./data/assets/in.png --out ./data/assets/out_1242x1660.png
P0:发布前硬校验(强制):
<= 20。>= 80。>= 3(通过小红书话题交互选择,不是正文拼接)。http、https、www.、域名形态)。P0:发布后双重确认(强制):
published=true。run_log 并提示人工复核。P1:热点到 payload 半自动(无脚本版):
newsnow -> payload 代码生成器;改为会话模板填充。data/publish_payload.json,人工只改“观点段”:{
"topic": "今日热点:<主题>",
"source": {
"name": "<来源名>",
"url": "<来源URL>",
"date": "YYYY-MM-DD",
"evidence_snippet": "<原文证据摘录>",
"key_facts": ["<事实1:含日期/数字>", "<事实2:含日期/数字>"]
},
"post": {
"title": "<8-20字标题,不含标签>",
"body": "<观点段+事实段,不少于80字>",
"tags": ["#标签1", "#标签2", "#标签3"],
"real_topics": ["#真实话题1", "#真实话题2", "#真实话题3"],
"media": ["/abs/path/1.png"]
}
}
P1:标签/话题池维护(无脚本版):
data/tag_registry.json(从小红书发布页话题选择器抄录)。tags 与 real_topics 都必须命中 tag_registry。P1:流程可观测(无脚本版):
data/run_log/<YYYY-MM-DD_HH-mm-ss>.json(手工写文件即可,不新增脚本)。steps、durations_ms、failed_step、error_message、screenshots、result_url、draft_check、editor_check、route_check、post_publish_check。P1:固定模板(强烈建议):
[主题词]+[观点/结论],目标 12开场观点 -> 事实1 -> 事实2 -> 个人判断 -> 行动建议,默认 >120 字。data/tag_registry.json 选取,避免临场造词导致门禁失败。P2:回归用例(每日 smoke,手工执行):
run_log,用于对比“定位稳定性/错位率”。流程(浏览器侧全部由 agent-browser-stealth 完成):
data/publish_payload.json(必须 ok=true)。https://creator.xiaohongshu.com/publish/publish,先 snapshot -i 获取最新结构。published=true + 菜单进入笔记管理二次查验),并写入 run_log。发布结果输出契约(JSON):
{
"task": "xhs_publish",
"ok": true,
"result_url": "https://creator.xiaohongshu.com/....",
"content_checks": {
"title_len": 18,
"body_len": 136,
"tag_count": 3,
"real_topic_count": 3,
"editor_alignment_ok": true,
"draft_saved_ok": true,
"publish_precheck_ok": true,
"published_param_ok": true,
"manage_menu_check_ok": true,
"topic": "今日热点:xxxx",
"source_date": "2026-02-12"
},
"artifacts": {
"payload_json": "data/publish_payload.json",
"media_inputs": ["..."],
"run_log_json": "data/run_log/2026-02-27_14-36-00.json",
"error_screenshot": null
}
}
发布失败时 ok=false,并返回 error_message、error_screenshot 路径、未通过的 missing_checks 与 failed_stage(preflight/fill/readback/publish/postcheck)。
目标:把创作者中心关键数据导出到 data/exports/<YYYY-MM-DD>/,用于后续分析。
agent-browser-stealth 进入创作者中心的常用分析页(仪表盘/内容分析/粉丝分析)。data/exports/<date>/命令:
node ./bin/xhs-skill.mjs qr show --in <pngPath>node ./bin/xhs-skill.mjs cookies normalize --in <jsonPath> --out <outPath>node ./bin/xhs-skill.mjs cookies status --in <cookiesJsonPath>node ./bin/xhs-skill.mjs cookies to-header --in <cookiesJsonPath>node ./scripts/verify_publish_payload.mjs --in <payloadJsonPath> --policy ./config/verify_publish_policy.json --tag-registry ./data/tag_registry.json --min-registry-tags 12 --require-source-evidence on --strict-anti-ai on [--mode hot]node ./scripts/review_publish_payload.mjs --in <payloadJsonPath> --policy ./config/review_policy.json --taxonomy ./config/review_taxonomy.json --ai-provider auto --require-ai off [--mode hot]npm run check:constraintsnpm testgit status --shortdocs(skill): 补充发版前快速自检清单clawhub sync --all --bump patch --changelog "docs: 补充发版前快速自检清单"npx claudepluginhub aaaaqwq/agi-super-team --plugin agi-super-teamAutomates Xiaohongshu (小红书) content publishing and draft saving with Playwright, covering title formatting, text layout, hashtag strategy, cover specs, and CES optimization. Supports image notes and carousels.
Guides automated publishing to WeChat Public Account, Xiaohongshu, and Feishu via wenyan-mcp APIs, Playwright browser automation, lark-mcp, with credential setup, workflows, and troubleshooting.
Publishes image and text content to Xiaohongshu (Little Red Book) via xiaohongshu-mcp HTTP API using Node.js script. Supports title, body, images, tags, and scheduled posting for automated social media content.