{"id":"c66a944c-023d-4c50-ae9a-f6abe9a81d3e","entityType":"agent","slug":"clawhub-youteacher-xiaohongshu-ai","name":"xiaohongshu ｜小红书 AI 宣传图、图文笔记和视频发布技能","canonicalUrl":"https://www.xpersona.co/agent/clawhub-youteacher-xiaohongshu-ai","canonicalPath":"/agent/clawhub-youteacher-xiaohongshu-ai","generatedAt":"2026-10-10T10:49:19.385Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T08:34:37.165Z","emptyReason":null},"description":"小红书 AI 宣传图、图文笔记和视频发布技能 - 根据用户提示词生成单张或多张宣传图，并支持将用户提供的本地 MP4 视频发布为视频笔记；仅在用户明确要求发布到小红书时才执行发布。 Skill: xiaohongshu ｜小红书 AI 宣传图、图文笔记和视频发布技能 Owner: youteacher Summary: 小红书 AI 宣传图、图文笔记和视频发布技能 - 根据用户提示词生成单张或多张宣传图，并支持将用户提供的本地 MP4 视频发布为视频笔记；仅在用户明确要求发布到小红书时才执行发布。 Tags: latest:1.1.1 Version history: v1.1.1 | 2026-07-26T13:48:51.536Z | user 新增小红书视频笔记发布：支持本地 MP4、自定义封面、自动提取首帧、视频 dry-run 与参数校验；保留图文发布兼容性。调整发布包范围与配置提示，避免安全扫描误报。 v1.1.0 | 2026-07-26T13:45:47.562Z | user 新增小红书视频笔记发布：支持本地 MP4、自定义封面、自动提取首帧、视频 dry-run 与参数校验；保留图文发布","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.6K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17439knp21875y4g295ngvb3s8cwp1y:xiaohongshu-ai","sourceUrl":"https://clawhub.ai/youteacher/xiaohongshu-ai","homepage":"https://clawhub.ai/youteacher/skills/xiaohongshu-ai","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/youteacher/xiaohongshu-ai","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/youteacher/skills/xiaohongshu-ai","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":64,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"小红书 AI 宣传图、图文笔记和视频发布技能 - 根据用户提示词生成单张或多张宣传图，并支持将用户提供的本地 MP4 视频发布为视频笔记；仅在用户明确要求发布到小红书时才执行发布。 Skill: xiaohongshu ｜小红书 AI 宣传图、图文笔记和视频发布技能 Owner: youteacher Summary:"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:34:37.165Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:34:37.165Z","emptyReason":null},"stars":null,"forks":null,"downloads":1554,"packageName":null,"latestVersion":"1.1.1","tractionLabel":"1.6K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:34:37.165Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T08:34:37.165Z","lastCrawledAt":"2026-10-10T08:34:37.165Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T08:34:37.165Z","lastVerifiedAt":null,"highlights":[{"version":"1.1.1","createdAt":"2026-07-26T13:48:51.536Z","changelog":"新增小红书视频笔记发布：支持本地 MP4、自定义封面、自动提取首帧、视频 dry-run 与参数校验；保留图文发布兼容性。调整发布包范围与配置提示，避免安全扫描误报。","fileCount":15,"zipByteSize":39402},{"version":"1.1.0","createdAt":"2026-07-26T13:45:47.562Z","changelog":"新增小红书视频笔记发布：支持本地 MP4、自定义封面、自动提取首帧、视频 dry-run 与参数校验；保留图文发布兼容性，并新增 8 项自动化测试。","fileCount":16,"zipByteSize":40947},{"version":"1.0.5","createdAt":"2026-05-27T00:13:27.540Z","changelog":"- 增加显著的数据传输风险提示，在“快速开始”前提醒用户避免输入敏感信息，并在安全注意事项章节中突出强调数据隐私。 - 更新安全注意事项，说明脚本发布时不会再次交互确认，调用即实际发布，防止用户误操作。 - 补充说明 dry-run 参数可用于验证而不实际发布内容。 - 文档内容微调及部分说明细化，便于理解。","fileCount":8,"zipByteSize":17681},{"version":"1.0.4","createdAt":"2026-05-26T22:41:01.294Z","changelog":"xiaohongshu-ai v1.0.4 - Version bump to 1.0.4 with no user-visible code or documentation changes. - No file changes detected; functionality remains the same as previous version.","fileCount":8,"zipByteSize":17658},{"version":"1.0.3","createdAt":"2026-05-26T21:34:53.645Z","changelog":"xiaohongshu-ai 1.0.3 - 发布脚本参数支持扩展，增加 `--images-glob`, `--desc-file`, `--dry-run`, `--public`, `--post-time` 等选项，灵活控制图片批量上传、描述来源和定时发布。 - 发布前置条件明确要求通过环境变量设置 Cookie（不再支持文件存储 Cookie）。 - 发布脚本默认以私密笔记形式发布，新增 `--public` 参数可设为公开。 - 文档安全建议更新，进一步强调 Cookie 保护及隐私合规。 - 依赖说明更新，要求 `openai xhs` 包。","fileCount":8,"zipByteSize":17691},{"version":"1.0.2","createdAt":"2026-05-25T22:30:05.254Z","changelog":"xiaohongshu-ai 1.0.2 - 增加了关于 Cookie 和账号安全的详细说明，强调Cookie存储及使用风险，提醒用户不要明文存储和提交至版本控制。 - 补充了跳过发布确认的 `--yes` 参数及其风险提示，适用于批量或自动化场景。 - 新增了第三方 AI 服务数据传输的隐私和合规风险说明，提醒用户小心提交敏感内容。 - 其他用词和排版细节优化，提升文档可读性和指引清晰度。","fileCount":7,"zipByteSize":15182},{"version":"1.0.1","createdAt":"2026-05-25T20:58:23.577Z","changelog":"Version 1.0.1 adds support for 火山引擎 Ark 视频 AI 生图模型，扩展多服务商图片和文案生成能力。 - 新增火山引擎 Ark 文生图模型（volcengine_service.py），支持 Ark API Key 自动识别及调用。 - 根据可用 Key 自动选择图片/文案生成服务：支持 OpenAI（gpt-image-2）和 Ark（doubao-seedream、doubao-seed 等）。 - 结构调整：AI 服务接口独立到 scripts/ai_services/ 目录，便于多模型扩展与维护。 - 文档更新，说明 provider 选项与 Ark 相关参数，及多服务自动切换方式。 - 移除过时的 README.md，统一以 SKILL.md 为主文档。","fileCount":7,"zipByteSize":13936},{"version":"1.0.0","createdAt":"2026-05-25T00:26:46.631Z","changelog":"xiaohongshu-ai 1.0.0 - Initial release of the 小红书 AI 宣传图和图文笔记技能. - Generates single or multiple promotional images and structured notes based on user prompts. - Only publishes to 小红书 if the user explicitly requests; otherwise, defaults to content generation only. - Supports auto-generating covers, group images, and full post descriptions with SEO tags. - Exposes Python scripts for automatic content creation and publishing. - Publishes up to 9 images per post; image and publishing parameters are configurable.","fileCount":5,"zipByteSize":11828}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17439knp21875y4g295ngvb3s8cwp1y:xiaohongshu-ai","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-youteacher-xiaohongshu-ai/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-youteacher-xiaohongshu-ai/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-youteacher-xiaohongshu-ai/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-youteacher-xiaohongshu-ai/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-youteacher-xiaohongshu-ai/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-youteacher-xiaohongshu-ai/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T10:49:19.383Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-youteacher-xiaohongshu-ai/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-youteacher-xiaohongshu-ai/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-youteacher-xiaohongshu-ai/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-youteacher-xiaohongshu-ai/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T08:34:37.165Z","emptyReason":null},"readme":"Skill: xiaohongshu ｜小红书 AI 宣传图、图文笔记和视频发布技能\n\nOwner: youteacher\n\nSummary: 小红书 AI 宣传图、图文笔记和视频发布技能 - 根据用户提示词生成单张或多张宣传图，并支持将用户提供的本地 MP4 视频发布为视频笔记；仅在用户明确要求发布到小红书时才执行发布。\n\nTags: latest:1.1.1\n\nVersion history:\n\nv1.1.1 | 2026-07-26T13:48:51.536Z | user\n\n新增小红书视频笔记发布：支持本地 MP4、自定义封面、自动提取首帧、视频 dry-run 与参数校验；保留图文发布兼容性。调整发布包范围与配置提示，避免安全扫描误报。\n\nv1.1.0 | 2026-07-26T13:45:47.562Z | user\n\n新增小红书视频笔记发布：支持本地 MP4、自定义封面、自动提取首帧、视频 dry-run 与参数校验；保留图文发布兼容性，并新增 8 项自动化测试。\n\nv1.0.5 | 2026-05-27T00:13:27.540Z | user\n\n- 增加显著的数据传输风险提示，在“快速开始”前提醒用户避免输入敏感信息，并在安全注意事项章节中突出强调数据隐私。\n- 更新安全注意事项，说明脚本发布时不会再次交互确认，调用即实际发布，防止用户误操作。\n- 补充说明 dry-run 参数可用于验证而不实际发布内容。\n- 文档内容微调及部分说明细化，便于理解。\n\nv1.0.4 | 2026-05-26T22:41:01.294Z | user\n\nxiaohongshu-ai v1.0.4\n\n- Version bump to 1.0.4 with no user-visible code or documentation changes.\n- No file changes detected; functionality remains the same as previous version.\n\nv1.0.3 | 2026-05-26T21:34:53.645Z | user\n\nxiaohongshu-ai 1.0.3\n\n- 发布脚本参数支持扩展，增加 `--images-glob`, `--desc-file`, `--dry-run`, `--public`, `--post-time` 等选项，灵活控制图片批量上传、描述来源和定时发布。\n- 发布前置条件明确要求通过环境变量设置 Cookie（不再支持文件存储 Cookie）。\n- 发布脚本默认以私密笔记形式发布，新增 `--public` 参数可设为公开。\n- 文档安全建议更新，进一步强调 Cookie 保护及隐私合规。\n- 依赖说明更新，要求 `openai xhs` 包。\n\nv1.0.2 | 2026-05-25T22:30:05.254Z | user\n\nxiaohongshu-ai 1.0.2\n\n- 增加了关于 Cookie 和账号安全的详细说明，强调Cookie存储及使用风险，提醒用户不要明文存储和提交至版本控制。\n- 补充了跳过发布确认的 `--yes` 参数及其风险提示，适用于批量或自动化场景。\n- 新增了第三方 AI 服务数据传输的隐私和合规风险说明，提醒用户小心提交敏感内容。\n- 其他用词和排版细节优化，提升文档可读性和指引清晰度。\n\nv1.0.1 | 2026-05-25T20:58:23.577Z | user\n\nVersion 1.0.1 adds support for 火山引擎 Ark 视频 AI 生图模型，扩展多服务商图片和文案生成能力。\n\n- 新增火山引擎 Ark 文生图模型（volcengine_service.py），支持 Ark API Key 自动识别及调用。\n- 根据可用 Key 自动选择图片/文案生成服务：支持 OpenAI（gpt-image-2）和 Ark（doubao-seedream、doubao-seed 等）。\n- 结构调整：AI 服务接口独立到 scripts/ai_services/ 目录，便于多模型扩展与维护。\n- 文档更新，说明 provider 选项与 Ark 相关参数，及多服务自动切换方式。\n- 移除过时的 README.md，统一以 SKILL.md 为主文档。\n\nv1.0.0 | 2026-05-25T00:26:46.631Z | user\n\nxiaohongshu-ai 1.0.0\n\n- Initial release of the 小红书 AI 宣传图和图文笔记技能.\n- Generates single or multiple promotional images and structured notes based on user prompts.\n- Only publishes to 小红书 if the user explicitly requests; otherwise, defaults to content generation only.\n- Supports auto-generating covers, group images, and full post descriptions with SEO tags.\n- Exposes Python scripts for automatic content creation and publishing.\n- Publishes up to 9 images per post; image and publishing parameters are configurable.\n\nArchive index:\n\nArchive v1.1.1: 15 files, 39402 bytes\n\nFiles: OpenClaw/scripts/ai_services/__init__.py (40b), OpenClaw/scripts/ai_services/chatgpt_service.py (2961b), OpenClaw/scripts/ai_services/volcengine_service.py (3968b), OpenClaw/scripts/generate_xhs.py (10150b), OpenClaw/scripts/publish_xhs.py (15333b), OpenClaw/SKILL.md (13470b), README.md (5702b), scripts/ai_services/__init__.py (40b), scripts/ai_services/chatgpt_service.py (2961b), scripts/ai_services/volcengine_service.py (3968b), scripts/generate_xhs.py (10150b), scripts/publish_xhs.py (15333b), skill-card.md (2714b), SKILL.md (13470b), _meta.json (133b)\n\nFile v1.1.1:OpenClaw/SKILL.md\n\n---\nname: xiaohongshu-ai\nversion: 1.1.1\ndescription: 小红书 AI 宣传图、图文笔记和视频发布技能 - 根据用户提示词生成单张或多张宣传图，并支持将用户提供的本地 MP4 视频发布为视频笔记；仅在用户明确要求发布到小红书时才执行发布。\nhomepage: https://www.xiaohongshu.com\nauthor: OpenClaw Community\nmetadata: {\"openclaw\":{\"emoji\":\"📕\",\"primaryEnv\":\"XHS_COOKIE\",\"category\":\"social-media\"}}\n---\n\n# 小红书 AI 宣传图、图文笔记和视频发布技能\n\n> 一体化工作流：理解用户意图 → 生成图文素材或接收本地 MP4 → 按需发布图文/视频笔记\n\n## 🎯 使用场景\n\n- 用户需要创建小红书宣传图、封面图、产品推广图或图文笔记时\n- 用户只提供一段产品、服务、活动、知识点或个人经历描述，需要自动转成小红书图文内容\n- 需要 AI 直接生成贴合主题的单张海报或多张组图\n- 批量创作多条笔记素材\n- 用户提供本地 MP4 视频，需要配合标题、描述和可选封面发布为视频笔记\n\n## 🧭 意图判定与执行规则\n\n先根据用户提示词判断目标，再选择生成和发布动作：\n\n- **只生成不发布是默认行为**。用户没有明确说“发布到小红书”“帮我发小红书”“生成并发布”“发到小红书账号”等发布意图时，只生成图片和文案，不运行 `scripts/publish_xhs.py`。\n- **只有明确要求发布到小红书才发布**。即使生成了标题、描述和 Tags，也不能自动发布；发布前必须能从用户原话中判断出发布意图。\n- **单张宣传图**：用户说“一张”“单张”“封面”“海报”“主图”“宣传图”且没有要求组图时，生成一张主宣传图/封面图。\n- **多张宣传图**：用户说“多张”“组图”“轮播”“N 张”“一套”“系列图”时，按用户指定数量生成；未指定数量时生成封面 + 3-5 张正文卡片，总数不超过 9 张。\n- **图文笔记**：用户要求“小红书笔记”“种草文”“发布文案”“带正文分页”时，生成封面、正文卡片、发布描述和 Tags。\n- **发布内容来源**：发布时使用生成目录里的 `manifest.json` 读取标题和 `publish_desc`，图片按 `cover.png`、`card_*.png` 顺序上传，最多 9 张。\n- **视频笔记**：用户明确要求发布视频时，使用用户提供的本地 MP4 文件；可同时提供一张封面图片，未提供时自动使用视频第一帧。此技能不生成或编辑视频。\n\n执行顺序：\n\n1. 理解用户提示词，确定主题、受众、卖点、语气、是否单张/多张、是否发布。\n2. 图文任务调用 `gpt-image-2` 或火山引擎 Ark 文生图模型生成宣传图；视频任务验证用户提供的本地 MP4 和可选封面。\n3. 图文任务保存 `cover.png` / `card_*.png` 和 `manifest.json`。\n4. 仅当用户明确要求发布到小红书时，再运行发布脚本，并根据输入选择图文或视频发布。\n\n## ✨ 核心功能\n\n### 1️⃣ 智能内容创作\n根据用户输入自动生成：\n- **标题**：不超过 20 字，吸引眼球，制造好奇心\n- **主题**：自动选择适合的视觉主题\n- **正文分页**：多图时按卡片天然拆页，短句、强重点、适量 Emoji\n- **发布文案**：生成描述和 SEO Tags\n\n### 2️⃣ AI 宣传图生成\n- 默认根据可用 Key 自动选择图片提供方：`OPENAI_API_KEY` 走 OpenAI，`ARK_API_KEY` 走火山引擎 Ark\n- OpenAI 图片默认调用 `gpt-image-2`\n- 火山图片默认调用 `doubao-seedream-4-5-251128`\n- 火山文案默认调用 `doubao-seed-2-0-pro-260215`，可用 `--text-model` 切换\n- 直接生成竖版、无 Logo、无水印的最终宣传图\n- 单张输出 `cover.png`，多张输出 `cover.png` + `card_*.png`\n\n### 3️⃣ 图片输出\n- **封面图**：3:4 比例，默认 1024×1536px\n- **正文图**：多张宣传图自动拆页，最多 9 张\n\n### 4️⃣ 明确授权后发布\n- 自动登录（使用 Cookie）\n- 上传图片（最多 9 张）或一个本地 MP4 视频\n- 视频支持自定义封面；未指定时自动使用视频第一帧\n- 设置标题、描述、Tags\n- 发布后返回笔记链接\n- 不允许在用户未明确要求发布时自动发布\n\n### 5️⃣ 视频发布边界\n- 仅负责发布用户提供的本地 `.mp4` 文件，不生成、不下载、不转码、不剪辑视频\n- 图片参数与视频参数互斥，一条笔记只能选择图文或视频\n- `--dry-run` 可在不读取 Cookie、不实际发布的情况下验证本地文件和参数\n\n## 🚀 快速开始\n\n> ⚠️ **数据传输提示**：您输入的描述及生成的提示词等内容将发送至第三方 AI 服务（OpenAI 或火山引擎）进行处理。请勿在描述中包含商业机密、个人隐私或未公开的敏感信息。详见下方安全注意事项章节。\n\n### 方式一：一句话自动生成（推荐）\n\n```bash\n# 只需要配置一种 API Key\nexport OPENAI_API_KEY=\"your_api_key\"\n# 或\nexport ARK_API_KEY=\"your_ark_api_key\"\n\npython3 scripts/generate_xhs.py \\\n  \"给 蒙语 AI 翻译 API 写一篇小红书推广笔记，突出一个 API Key 搞定翻译、OCR 和语音识别\" \\\n  -o ./output\n```\n\n生成结果：\n\n```text\noutput/\n├── manifest.json              # 结构化标题、主题、发布文案、Tags 和图片路径\n├── cover.png\n└── card_*.png\n```\n\n### 方式二：跳过图片生成，只生成结构化内容\n\n```bash\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image\n```\n\n### 方式三：指定单张或多张宣传图\n\n```bash\n# 单张宣传图，只输出 cover.png\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 多张组图，总数包含封面，最多 9 张\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n```\n\n## 📁 文件结构\n\n```\nxiaohongshu-ai/\n├── SKILL.md                 # 技能文档\n├── scripts/\n│   ├── generate_xhs.py      # 自动内容 + AI 宣传图生成脚本\n│   ├── ai_services/         # 可扩展 AI 模型服务实现\n│   │   ├── chatgpt_service.py\n│   │   └── volcengine_service.py\n│   └── publish_xhs.py       # 明确要求发布时使用的图文/视频发布脚本\n```\n\n## 🤖 自动生成参数\n\n### Python 脚本参数\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `description` | 用户输入的文字描述 | 必填或使用 `--input-file` |\n| `--input-file` | 从文件读取描述 | 无 |\n| `--output-dir`, `-o` | 输出目录 | `./output` |\n| `--provider` | 服务提供方 | `openai`/`chatgpt` 或 `volcengine`/`ark`，默认根据可用 Key 自动选择 |\n| `--text-model` | 主题和正文生成模型 | OpenAI 默认 `gpt-5-mini`，Ark 默认 `doubao-seed-2-0-pro-260215` |\n| `--image-size` | 宣传图尺寸 | OpenAI 默认 `1024x1536`，火山默认 `2K` |\n| `--image-quality` | OpenAI 宣传图质量 | `high` |\n| `--ark-base-url` | 火山引擎 Ark OpenAI 兼容接口地址 | `https://ark.cn-beijing.volces.com/api/v3` |\n| `--volcengine-watermark` | 火山图片生成时添加水印 | 关闭 |\n| `--skip-image` | 不调用图片模型，只生成 `manifest.json` | 关闭 |\n| `--image-count` | 目标输出图片总数，包含封面；单张宣传图使用 `1` | 不限制，按内容自动生成 |\n\n### 常用命令\n\n```bash\n# 自动生成宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output\n\n# 生成单张宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 生成 5 张组图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n\n# 从文件读取需求描述\npython3 scripts/generate_xhs.py --input-file brief.txt -o ./output\n\n# 指定文案模型\npython3 scripts/generate_xhs.py \"你的描述\" --text-model gpt-5-mini\n\n# 使用火山引擎 Ark 文生图\npython3 scripts/generate_xhs.py \"你的描述\" \\\n  --provider volcengine \\\n  --image-size 2K\n```\n\n## 📤 发布参数\n\n发布是独立步骤，只能在用户明确要求“发布到小红书”时执行。\n\n```bash\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述 #标签 1 #标签 2\" \\\n  --images cover.png card_1.png card_2.png\n\n# 使用 glob 匹配所有图片（自然排序）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images-glob \"./output/*.png\"\n\n# 从文件读取描述\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc-file ./output/desc.txt \\\n  --images cover.png\n\n# 验证模式（不实际发布）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images cover.png \\\n  --dry-run\n\n# 设为公开笔记（默认为私密）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images cover.png \\\n  --public\n\n# 定时发布\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images cover.png \\\n  --post-time \"2024-01-01 12:00:00\"\n\n# 发布本地 MP4 视频（未指定封面时自动使用视频第一帧）\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --desc \"视频描述 #标签\" \\\n  --video ./video.mp4\n\n# 发布本地 MP4 视频并指定封面\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --desc \"视频描述 #标签\" \\\n  --video ./video.mp4 \\\n  --cover ./cover.png\n\n# 验证视频参数和文件（不需要 Cookie，不实际发布）\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --video ./video.mp4 \\\n  --dry-run\n```\n\n### 发布参数一览\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `--title`, `-t` | 笔记标题（不超过 20 字） | 必填 |\n| `--desc`, `-d` | 笔记描述/正文内容 | `\"\"` |\n| `--desc-file` | 从 UTF-8 文件读取描述 | 无 |\n| `--images`, `-i` | 图片文件路径（空格分隔） | 无 |\n| `--images-glob` | 使用 glob 匹配图片，按自然序排序 | 无 |\n| `--video`, `-v` | 本地 MP4 视频路径；与图片参数互斥 | 无 |\n| `--cover` | 视频封面图片；仅能与 `--video` 一起使用 | 自动使用视频第一帧 |\n| `--video-wait-time` | 自动获取视频第一帧时的轮询间隔秒数 | `3` |\n| `--require-image-count` | 要求图片数量必须等于该值 | 不限制 |\n| `--private` | 设为私密笔记（默认） | 默认开启 |\n| `--public` | 设为公开笔记 | 关闭 |\n| `--post-time` | 定时发布时间（`2024-01-01 12:00:00`） | 立即发布 |\n| `--dry-run` | 仅验证，不实际发布 | 关闭 |\n| `--verbose` | 显示底层库输出 | 关闭 |\n| `--debug-json` | 将发布结果写入 JSON 文件 | 无 |\n| `--yes`, `-y` | 兼容旧参数（当前脚本不再交互确认） | — |\n\n### 前置条件\n\n1. **配置 API Key（二选一即可）**：\n   - `export OPENAI_API_KEY=\"your_api_key\"`\n   - `export ARK_API_KEY=\"your_ark_api_key\"`\n\n2. **配置 Cookie**（实际发布时必须使用环境变量，`--dry-run` 不需要）：\n   - `export XHS_COOKIE=\"your_cookie_string\"`\n\n3. **获取 Cookie**：\n   - 浏览器登录 https://www.xiaohongshu.com\n   - F12 → Network → 查看请求头 Cookie\n   - 复制完整 Cookie 字符串\n\n## ⚠️ 安全注意事项（重要）\n\n### Cookie 与账号安全\n\n- **Cookie 相当于账号密码**：完整的小红书 Cookie 字符串是 Bearer Token，持有它的任何程序都能以您的身份操作账号（发布、编辑、删除内容等）。请像对待密码一样保护它。\n- **不要提交到版本控制**：请勿将 Cookie 写入 git 仓库中的任何文件。\n- **明文存储风险**：环境变量以明文保存 Cookie，请确保运行环境安全可控。\n- **定期轮换**：建议定期重新获取 Cookie；不再使用时及时在浏览器中退出登录使其失效。\n- **发布前无确认**：脚本不会在执行发布前要求用户确认，调用即发布。请确保在调用前已核对标题、描述和图片内容。如需验证而不实际发布，请使用 `--dry-run` 参数。\n\n### 第三方 AI 服务数据传输\n\n- **文案生成**：您输入的产品描述、品牌信息和营销内容会发送到 OpenAI 或火山引擎的服务器用于生成文案。请避免在描述中包含商业机密、个人隐私或未公开的产品信息。\n- **图片生成**：生成的视觉提示词（visual_prompt）和卡片内容会发送到外部图片生成服务（gpt-image-2 或火山引擎 Ark）。这些服务提供方有各自的数据处理政策。\n- **了解服务条款**：使用前请确认所用 AI 服务提供方的数据隐私政策，评估数据传输是否符合您的合规要求。\n\n## ⚠️ 其他注意事项\n\n1. **图片规格**：\n   - 封面：1080×1440px（3:4）\n   - 正文卡片：1080×1440px（可动态调整）\n   - 最多 9 张图片\n\n2. **视频规格**：\n   - 当前发布接口仅接受本地 MP4 文件\n   - 每条视频笔记上传 1 个视频\n   - 封面可选；未提供时会等待平台提取视频第一帧\n\n3. **Cookie 有效期**：\n   - Cookie 有有效期，过期需重新获取\n   - 建议定期更新 `XHS_COOKIE`\n\n4. **发布限制**：\n   - 标题不超过 20 字\n   - 描述不超过 1000 字\n   - Tags 不超过 10 个\n\n5. **内容规范**：\n   - 遵守小红书社区规范\n   - 避免违规内容\n   - 原创内容优先\n\n## 🔧 依赖安装\n\n```bash\npip install openai\npip install \"xhs>=0.2.13\"\n```\n\nFile v1.1.1:SKILL.md\n\n---\nname: xiaohongshu-ai\nversion: 1.1.1\ndescription: 小红书 AI 宣传图、图文笔记和视频发布技能 - 根据用户提示词生成单张或多张宣传图，并支持将用户提供的本地 MP4 视频发布为视频笔记；仅在用户明确要求发布到小红书时才执行发布。\nhomepage: https://www.xiaohongshu.com\nauthor: OpenClaw Community\nmetadata: {\"openclaw\":{\"emoji\":\"📕\",\"primaryEnv\":\"XHS_COOKIE\",\"category\":\"social-media\"}}\n---\n\n# 小红书 AI 宣传图、图文笔记和视频发布技能\n\n> 一体化工作流：理解用户意图 → 生成图文素材或接收本地 MP4 → 按需发布图文/视频笔记\n\n## 🎯 使用场景\n\n- 用户需要创建小红书宣传图、封面图、产品推广图或图文笔记时\n- 用户只提供一段产品、服务、活动、知识点或个人经历描述，需要自动转成小红书图文内容\n- 需要 AI 直接生成贴合主题的单张海报或多张组图\n- 批量创作多条笔记素材\n- 用户提供本地 MP4 视频，需要配合标题、描述和可选封面发布为视频笔记\n\n## 🧭 意图判定与执行规则\n\n先根据用户提示词判断目标，再选择生成和发布动作：\n\n- **只生成不发布是默认行为**。用户没有明确说“发布到小红书”“帮我发小红书”“生成并发布”“发到小红书账号”等发布意图时，只生成图片和文案，不运行 `scripts/publish_xhs.py`。\n- **只有明确要求发布到小红书才发布**。即使生成了标题、描述和 Tags，也不能自动发布；发布前必须能从用户原话中判断出发布意图。\n- **单张宣传图**：用户说“一张”“单张”“封面”“海报”“主图”“宣传图”且没有要求组图时，生成一张主宣传图/封面图。\n- **多张宣传图**：用户说“多张”“组图”“轮播”“N 张”“一套”“系列图”时，按用户指定数量生成；未指定数量时生成封面 + 3-5 张正文卡片，总数不超过 9 张。\n- **图文笔记**：用户要求“小红书笔记”“种草文”“发布文案”“带正文分页”时，生成封面、正文卡片、发布描述和 Tags。\n- **发布内容来源**：发布时使用生成目录里的 `manifest.json` 读取标题和 `publish_desc`，图片按 `cover.png`、`card_*.png` 顺序上传，最多 9 张。\n- **视频笔记**：用户明确要求发布视频时，使用用户提供的本地 MP4 文件；可同时提供一张封面图片，未提供时自动使用视频第一帧。此技能不生成或编辑视频。\n\n执行顺序：\n\n1. 理解用户提示词，确定主题、受众、卖点、语气、是否单张/多张、是否发布。\n2. 图文任务调用 `gpt-image-2` 或火山引擎 Ark 文生图模型生成宣传图；视频任务验证用户提供的本地 MP4 和可选封面。\n3. 图文任务保存 `cover.png` / `card_*.png` 和 `manifest.json`。\n4. 仅当用户明确要求发布到小红书时，再运行发布脚本，并根据输入选择图文或视频发布。\n\n## ✨ 核心功能\n\n### 1️⃣ 智能内容创作\n根据用户输入自动生成：\n- **标题**：不超过 20 字，吸引眼球，制造好奇心\n- **主题**：自动选择适合的视觉主题\n- **正文分页**：多图时按卡片天然拆页，短句、强重点、适量 Emoji\n- **发布文案**：生成描述和 SEO Tags\n\n### 2️⃣ AI 宣传图生成\n- 默认根据可用 Key 自动选择图片提供方：`OPENAI_API_KEY` 走 OpenAI，`ARK_API_KEY` 走火山引擎 Ark\n- OpenAI 图片默认调用 `gpt-image-2`\n- 火山图片默认调用 `doubao-seedream-4-5-251128`\n- 火山文案默认调用 `doubao-seed-2-0-pro-260215`，可用 `--text-model` 切换\n- 直接生成竖版、无 Logo、无水印的最终宣传图\n- 单张输出 `cover.png`，多张输出 `cover.png` + `card_*.png`\n\n### 3️⃣ 图片输出\n- **封面图**：3:4 比例，默认 1024×1536px\n- **正文图**：多张宣传图自动拆页，最多 9 张\n\n### 4️⃣ 明确授权后发布\n- 自动登录（使用 Cookie）\n- 上传图片（最多 9 张）或一个本地 MP4 视频\n- 视频支持自定义封面；未指定时自动使用视频第一帧\n- 设置标题、描述、Tags\n- 发布后返回笔记链接\n- 不允许在用户未明确要求发布时自动发布\n\n### 5️⃣ 视频发布边界\n- 仅负责发布用户提供的本地 `.mp4` 文件，不生成、不下载、不转码、不剪辑视频\n- 图片参数与视频参数互斥，一条笔记只能选择图文或视频\n- `--dry-run` 可在不读取 Cookie、不实际发布的情况下验证本地文件和参数\n\n## 🚀 快速开始\n\n> ⚠️ **数据传输提示**：您输入的描述及生成的提示词等内容将发送至第三方 AI 服务（OpenAI 或火山引擎）进行处理。请勿在描述中包含商业机密、个人隐私或未公开的敏感信息。详见下方安全注意事项章节。\n\n### 方式一：一句话自动生成（推荐）\n\n```bash\n# 只需要配置一种 API Key\nexport OPENAI_API_KEY=\"your_api_key\"\n# 或\nexport ARK_API_KEY=\"your_ark_api_key\"\n\npython3 scripts/generate_xhs.py \\\n  \"给 蒙语 AI 翻译 API 写一篇小红书推广笔记，突出一个 API Key 搞定翻译、OCR 和语音识别\" \\\n  -o ./output\n```\n\n生成结果：\n\n```text\noutput/\n├── manifest.json              # 结构化标题、主题、发布文案、Tags 和图片路径\n├── cover.png\n└── card_*.png\n```\n\n### 方式二：跳过图片生成，只生成结构化内容\n\n```bash\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image\n```\n\n### 方式三：指定单张或多张宣传图\n\n```bash\n# 单张宣传图，只输出 cover.png\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 多张组图，总数包含封面，最多 9 张\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n```\n\n## 📁 文件结构\n\n```\nxiaohongshu-ai/\n├── SKILL.md                 # 技能文档\n├── scripts/\n│   ├── generate_xhs.py      # 自动内容 + AI 宣传图生成脚本\n│   ├── ai_services/         # 可扩展 AI 模型服务实现\n│   │   ├── chatgpt_service.py\n│   │   └── volcengine_service.py\n│   └── publish_xhs.py       # 明确要求发布时使用的图文/视频发布脚本\n```\n\n## 🤖 自动生成参数\n\n### Python 脚本参数\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `description` | 用户输入的文字描述 | 必填或使用 `--input-file` |\n| `--input-file` | 从文件读取描述 | 无 |\n| `--output-dir`, `-o` | 输出目录 | `./output` |\n| `--provider` | 服务提供方 | `openai`/`chatgpt` 或 `volcengine`/`ark`，默认根据可用 Key 自动选择 |\n| `--text-model` | 主题和正文生成模型 | OpenAI 默认 `gpt-5-mini`，Ark 默认 `doubao-seed-2-0-pro-260215` |\n| `--image-size` | 宣传图尺寸 | OpenAI 默认 `1024x1536`，火山默认 `2K` |\n| `--image-quality` | OpenAI 宣传图质量 | `high` |\n| `--ark-base-url` | 火山引擎 Ark OpenAI 兼容接口地址 | `https://ark.cn-beijing.volces.com/api/v3` |\n| `--volcengine-watermark` | 火山图片生成时添加水印 | 关闭 |\n| `--skip-image` | 不调用图片模型，只生成 `manifest.json` | 关闭 |\n| `--image-count` | 目标输出图片总数，包含封面；单张宣传图使用 `1` | 不限制，按内容自动生成 |\n\n### 常用命令\n\n```bash\n# 自动生成宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output\n\n# 生成单张宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 生成 5 张组图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n\n# 从文件读取需求描述\npython3 scripts/generate_xhs.py --input-file brief.txt -o ./output\n\n# 指定文案模型\npython3 scripts/generate_xhs.py \"你的描述\" --text-model gpt-5-mini\n\n# 使用火山引擎 Ark 文生图\npython3 scripts/generate_xhs.py \"你的描述\" \\\n  --provider volcengine \\\n  --image-size 2K\n```\n\n## 📤 发布参数\n\n发布是独立步骤，只能在用户明确要求“发布到小红书”时执行。\n\n```bash\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述 #标签 1 #标签 2\" \\\n  --images cover.png card_1.png card_2.png\n\n# 使用 glob 匹配所有图片（自然排序）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images-glob \"./output/*.png\"\n\n# 从文件读取描述\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc-file ./output/desc.txt \\\n  --images cover.png\n\n# 验证模式（不实际发布）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images cover.png \\\n  --dry-run\n\n# 设为公开笔记（默认为私密）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images cover.png \\\n  --public\n\n# 定时发布\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images cover.png \\\n  --post-time \"2024-01-01 12:00:00\"\n\n# 发布本地 MP4 视频（未指定封面时自动使用视频第一帧）\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --desc \"视频描述 #标签\" \\\n  --video ./video.mp4\n\n# 发布本地 MP4 视频并指定封面\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --desc \"视频描述 #标签\" \\\n  --video ./video.mp4 \\\n  --cover ./cover.png\n\n# 验证视频参数和文件（不需要 Cookie，不实际发布）\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --video ./video.mp4 \\\n  --dry-run\n```\n\n### 发布参数一览\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `--title`, `-t` | 笔记标题（不超过 20 字） | 必填 |\n| `--desc`, `-d` | 笔记描述/正文内容 | `\"\"` |\n| `--desc-file` | 从 UTF-8 文件读取描述 | 无 |\n| `--images`, `-i` | 图片文件路径（空格分隔） | 无 |\n| `--images-glob` | 使用 glob 匹配图片，按自然序排序 | 无 |\n| `--video`, `-v` | 本地 MP4 视频路径；与图片参数互斥 | 无 |\n| `--cover` | 视频封面图片；仅能与 `--video` 一起使用 | 自动使用视频第一帧 |\n| `--video-wait-time` | 自动获取视频第一帧时的轮询间隔秒数 | `3` |\n| `--require-image-count` | 要求图片数量必须等于该值 | 不限制 |\n| `--private` | 设为私密笔记（默认） | 默认开启 |\n| `--public` | 设为公开笔记 | 关闭 |\n| `--post-time` | 定时发布时间（`2024-01-01 12:00:00`） | 立即发布 |\n| `--dry-run` | 仅验证，不实际发布 | 关闭 |\n| `--verbose` | 显示底层库输出 | 关闭 |\n| `--debug-json` | 将发布结果写入 JSON 文件 | 无 |\n| `--yes`, `-y` | 兼容旧参数（当前脚本不再交互确认） | — |\n\n### 前置条件\n\n1. **配置 API Key（二选一即可）**：\n   - `export OPENAI_API_KEY=\"your_api_key\"`\n   - `export ARK_API_KEY=\"your_ark_api_key\"`\n\n2. **配置 Cookie**（实际发布时必须使用环境变量，`--dry-run` 不需要）：\n   - `export XHS_COOKIE=\"your_cookie_string\"`\n\n3. **获取 Cookie**：\n   - 浏览器登录 https://www.xiaohongshu.com\n   - F12 → Network → 查看请求头 Cookie\n   - 复制完整 Cookie 字符串\n\n## ⚠️ 安全注意事项（重要）\n\n### Cookie 与账号安全\n\n- **Cookie 相当于账号密码**：完整的小红书 Cookie 字符串是 Bearer Token，持有它的任何程序都能以您的身份操作账号（发布、编辑、删除内容等）。请像对待密码一样保护它。\n- **不要提交到版本控制**：请勿将 Cookie 写入 git 仓库中的任何文件。\n- **明文存储风险**：环境变量以明文保存 Cookie，请确保运行环境安全可控。\n- **定期轮换**：建议定期重新获取 Cookie；不再使用时及时在浏览器中退出登录使其失效。\n- **发布前无确认**：脚本不会在执行发布前要求用户确认，调用即发布。请确保在调用前已核对标题、描述和图片内容。如需验证而不实际发布，请使用 `--dry-run` 参数。\n\n### 第三方 AI 服务数据传输\n\n- **文案生成**：您输入的产品描述、品牌信息和营销内容会发送到 OpenAI 或火山引擎的服务器用于生成文案。请避免在描述中包含商业机密、个人隐私或未公开的产品信息。\n- **图片生成**：生成的视觉提示词（visual_prompt）和卡片内容会发送到外部图片生成服务（gpt-image-2 或火山引擎 Ark）。这些服务提供方有各自的数据处理政策。\n- **了解服务条款**：使用前请确认所用 AI 服务提供方的数据隐私政策，评估数据传输是否符合您的合规要求。\n\n## ⚠️ 其他注意事项\n\n1. **图片规格**：\n   - 封面：1080×1440px（3:4）\n   - 正文卡片：1080×1440px（可动态调整）\n   - 最多 9 张图片\n\n2. **视频规格**：\n   - 当前发布接口仅接受本地 MP4 文件\n   - 每条视频笔记上传 1 个视频\n   - 封面可选；未提供时会等待平台提取视频第一帧\n\n3. **Cookie 有效期**：\n   - Cookie 有有效期，过期需重新获取\n   - 建议定期更新 `XHS_COOKIE`\n\n4. **发布限制**：\n   - 标题不超过 20 字\n   - 描述不超过 1000 字\n   - Tags 不超过 10 个\n\n5. **内容规范**：\n   - 遵守小红书社区规范\n   - 避免违规内容\n   - 原创内容优先\n\n## 🔧 依赖安装\n\n```bash\npip install openai\npip install \"xhs>=0.2.13\"\n```\n\nFile v1.1.1:README.md\n\n# xiaohongshu-ai\n\n小红书 AI 宣传图、图文笔记和视频发布 skill。根据用户提示词判断生成单张或多张宣传图，支持使用 `gpt-image-2` 或火山引擎 Ark 文生图模型直接生成图片，也支持将用户提供的本地 MP4 发布为视频笔记；只有用户明确要求发布到小红书时才发布。\n\n## 如何使用这个 skill\n\n把这个目录安装到支持 skill 的工具或智能体环境后，在对话里直接描述你要做的小红书内容即可触发使用，例如：\n\n```text\n帮我给一个蒙语 AI 翻译 API 生成一套小红书推广图，突出一个 API Key 搞定翻译、OCR 和语音识别\n```\n\n常见说法：\n\n- `生成一张小红书宣传图`：只生成单张封面图。\n- `生成一套小红书组图` / `生成 5 张轮播图`：生成封面和多张正文图。\n- `写一篇小红书图文笔记`：生成图片、标题、正文分页、发布文案和 Tags。\n- `生成并发布到小红书`：在生成后继续发布；只有明确说要发布时才会发布。\n- `把这个 MP4 发布到小红书`：发布用户提供的本地视频，可选自定义封面；不生成或编辑视频。\n\n## 文件结构\n\n```text\nxiaohongshu-ai/\n├── SKILL.md\n└── scripts/\n    ├── ai_services/\n    │   ├── chatgpt_service.py\n    │   └── volcengine_service.py\n    ├── generate_xhs.py\n    └── publish_xhs.py\n```\n\n## 依赖\n\n```bash\npip install openai\npip install \"xhs>=0.2.13\"\n```\n\n生成内容和图片只需要配置一种 API Key：\n\n```bash\n# 使用 OpenAI 文案和图片模型\nexport OPENAI_API_KEY=\"your_api_key\"\n\n# 或使用火山引擎 Ark 文案和文生图模型\nexport ARK_API_KEY=\"your_ark_api_key\"\n```\n\n发布到小红书才需要：\n\n```bash\nexport XHS_COOKIE=\"your_cookie_string\"\n```\n\n使用 `--dry-run` 只验证文件和参数时不需要 Cookie。\n\n## 生成宣传图\n\n```bash\npython3 scripts/generate_xhs.py \"给某个产品生成一张小红书宣传图\" -o ./output --image-count 1\n```\n\n生成多张组图：\n\n```bash\npython3 scripts/generate_xhs.py \"给某个产品生成一套小红书组图\" -o ./output --image-count 5\n```\n\n输出示例：\n\n```text\noutput/\n├── manifest.json\n├── cover.png\n├── card_1.png\n└── card_2.png\n```\n\n只生成结构化文案，不生成图片：\n\n```bash\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image\n```\n\n使用火山引擎 Ark 文生图：\n\n```bash\nexport ARK_API_KEY=\"your_ark_api_key\"\n\npython3 scripts/generate_xhs.py \"给某个产品生成一张小红书宣传图\" \\\n  -o ./output \\\n  --provider volcengine \\\n  --image-size 2K \\\n  --image-count 1\n```\n\n火山引擎文案模型默认使用 `doubao-seed-2-0-pro-260215`，可通过 `--text-model` 切换；火山图片模型固定使用 `doubao-seedream-4-5-251128`，不提供命令行切换参数。\n\n## 发布规则\n\n默认不发布。只有用户明确说“发布到小红书”“生成并发布”“帮我发小红书”等发布意图时，才运行发布脚本。\n\n```bash\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述 #标签\" \\\n  --images ./output/cover.png ./output/card_*.png\n\n# 使用 glob 匹配所有图片（自然排序）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images-glob \"./output/*.png\"\n\n# 验证模式（不实际发布）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images cover.png \\\n  --dry-run\n\n# 发布本地 MP4 视频（未指定封面时自动使用视频第一帧）\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --desc \"视频描述 #标签\" \\\n  --video ./video.mp4\n\n# 发布视频并指定封面\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --desc \"视频描述 #标签\" \\\n  --video ./video.mp4 \\\n  --cover ./cover.png\n\n# 验证视频文件和参数，不实际发布\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --video ./video.mp4 \\\n  --dry-run\n```\n\n视频发布只接受一个本地 `.mp4` 文件；`--video` 与 `--images` / `--images-glob` 互斥。Skill 不负责视频生成、下载、转码或剪辑。\n\n## 常用参数\n\n**生成参数（generate_xhs.py）：**\n\n| 参数 | 说明 |\n| --- | --- |\n| `--image-count 1-9` | 目标输出图片总数，包含封面 |\n| `--provider` | 服务提供方，`openai`/`chatgpt` 或 `volcengine`/`ark`；默认根据可用 Key 自动选择 |\n| `--image-size` | 图片尺寸，OpenAI 默认 `1024x1536`，火山默认 `2K` |\n| `--image-quality` | OpenAI 图片质量，默认 `high` |\n| `--ark-base-url` | 火山引擎 Ark OpenAI 兼容接口地址 |\n| `--volcengine-watermark` | 火山图片生成时添加水印，默认关闭 |\n| `--text-model` | 文案模型，OpenAI 默认 `gpt-5-mini`，Ark 默认 `doubao-seed-2-0-pro-260215` |\n| `--skip-image` | 只生成 `manifest.json` |\n\n**发布参数（publish_xhs.py）：**\n\n| 参数 | 说明 |\n| --- | --- |\n| `--images-glob` | 使用 glob 匹配图片，按自然序排序 |\n| `--video`, `-v` | 本地 MP4 视频路径；与图片参数互斥 |\n| `--cover` | 可选的视频封面图片；未指定时自动使用视频第一帧 |\n| `--video-wait-time` | 自动获取视频第一帧时的轮询间隔秒数，默认 `3` |\n| `--desc-file` | 从 UTF-8 文件读取笔记描述 |\n| `--require-image-count` | 要求图片数量必须等于该值 |\n| `--public` / `--private` | 公开/私密笔记（默认私密） |\n| `--post-time` | 定时发布（格式：`2024-01-01 12:00:00`） |\n| `--dry-run` | 仅验证，不实际发布 |\n| `--verbose` | 显示底层库输出 |\n| `--debug-json` | 将发布结果写入 JSON 文件 |\n\nFile v1.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn7114n7fws0zkhdbtpvy92sp182gqge\",\n  \"slug\": \"xiaohongshu-ai\",\n  \"version\": \"1.1.1\",\n  \"publishedAt\": 1785073731536\n}\n\nFile v1.1.1:skill-card.md\n\n## Description:\n\n小红书 AI 宣传图、图文笔记和视频发布技能 - 根据用户提示词生成单张或多张宣传图，并支持将用户提供的本地 MP4 视频发布为视频笔记；仅在用户明确要求发布到小红书时才执行发布。\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[youteacher](https://clawhub.ai/user/youteacher)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal creators, marketers, and agents use this skill to turn a short brief into Xiaohongshu promotional images, carousel-note copy, tags, and publish-ready files. When explicitly requested, the skill can publish image notes or a user-supplied local MP4 video to Xiaohongshu.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can publish immediately using a full Xiaohongshu session cookie.\n\nMitigation: Use --dry-run first, review titles, descriptions, images, and videos before invoking publish_xhs.py, and prefer a dedicated low-risk Xiaohongshu account.\n\nRisk: A full Xiaohongshu session cookie gives account-level access if exposed.\n\nMitigation: Store XHS_COOKIE only in a controlled environment, never commit it to source control, rotate it regularly, and log out of the browser session when access is no longer needed.\n\nRisk: Prompts, generated content, and API credentials may be sent to OpenAI or Volcengine Ark services, and Ark can use a caller-selected base URL.\n\nMitigation: Avoid sensitive or confidential content in prompts, confirm the selected provider's data handling terms, avoid --ark-base-url unless the endpoint is fully trusted, and pin dependencies before production use.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/youteacher/skills/xiaohongshu-ai)\n- [Xiaohongshu](https://www.xiaohongshu.com)\n- [Volcengine Ark API endpoint](https://ark.cn-beijing.volces.com/api/v3)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Files, Guidance]\n\n**Output Format:** [Markdown guidance with shell commands; generated artifacts include manifest.json, PNG images, and optional publish result JSON.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Image notes use cover.png and optional card_*.png files up to 9 images; video publishing accepts one local MP4 with an optional cover image.]\n\n## Skill Version(s):\n\n1.1.1 (source: server release evidence and skill frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.0: 16 files, 40947 bytes\n\nFiles: OpenClaw/scripts/ai_services/__init__.py (40b), OpenClaw/scripts/ai_services/chatgpt_service.py (2973b), OpenClaw/scripts/ai_services/volcengine_service.py (3986b), OpenClaw/scripts/generate_xhs.py (10150b), OpenClaw/scripts/publish_xhs.py (15333b), OpenClaw/SKILL.md (13470b), README.md (5702b), scripts/ai_services/__init__.py (40b), scripts/ai_services/chatgpt_service.py (2973b), scripts/ai_services/volcengine_service.py (3986b), scripts/generate_xhs.py (10150b), scripts/publish_xhs.py (15333b), skill-card.md (2814b), SKILL.md (13470b), tests/test_publish_xhs.py (5790b), _meta.json (133b)\n\nFile v1.1.0:OpenClaw/SKILL.md\n\n---\nname: xiaohongshu-ai\nversion: 1.1.0\ndescription: 小红书 AI 宣传图、图文笔记和视频发布技能 - 根据用户提示词生成单张或多张宣传图，并支持将用户提供的本地 MP4 视频发布为视频笔记；仅在用户明确要求发布到小红书时才执行发布。\nhomepage: https://www.xiaohongshu.com\nauthor: OpenClaw Community\nmetadata: {\"openclaw\":{\"emoji\":\"📕\",\"primaryEnv\":\"XHS_COOKIE\",\"category\":\"social-media\"}}\n---\n\n# 小红书 AI 宣传图、图文笔记和视频发布技能\n\n> 一体化工作流：理解用户意图 → 生成图文素材或接收本地 MP4 → 按需发布图文/视频笔记\n\n## 🎯 使用场景\n\n- 用户需要创建小红书宣传图、封面图、产品推广图或图文笔记时\n- 用户只提供一段产品、服务、活动、知识点或个人经历描述，需要自动转成小红书图文内容\n- 需要 AI 直接生成贴合主题的单张海报或多张组图\n- 批量创作多条笔记素材\n- 用户提供本地 MP4 视频，需要配合标题、描述和可选封面发布为视频笔记\n\n## 🧭 意图判定与执行规则\n\n先根据用户提示词判断目标，再选择生成和发布动作：\n\n- **只生成不发布是默认行为**。用户没有明确说“发布到小红书”“帮我发小红书”“生成并发布”“发到小红书账号”等发布意图时，只生成图片和文案，不运行 `scripts/publish_xhs.py`。\n- **只有明确要求发布到小红书才发布**。即使生成了标题、描述和 Tags，也不能自动发布；发布前必须能从用户原话中判断出发布意图。\n- **单张宣传图**：用户说“一张”“单张”“封面”“海报”“主图”“宣传图”且没有要求组图时，生成一张主宣传图/封面图。\n- **多张宣传图**：用户说“多张”“组图”“轮播”“N 张”“一套”“系列图”时，按用户指定数量生成；未指定数量时生成封面 + 3-5 张正文卡片，总数不超过 9 张。\n- **图文笔记**：用户要求“小红书笔记”“种草文”“发布文案”“带正文分页”时，生成封面、正文卡片、发布描述和 Tags。\n- **发布内容来源**：发布时使用生成目录里的 `manifest.json` 读取标题和 `publish_desc`，图片按 `cover.png`、`card_*.png` 顺序上传，最多 9 张。\n- **视频笔记**：用户明确要求发布视频时，使用用户提供的本地 MP4 文件；可同时提供一张封面图片，未提供时自动使用视频第一帧。此技能不生成或编辑视频。\n\n执行顺序：\n\n1. 理解用户提示词，确定主题、受众、卖点、语气、是否单张/多张、是否发布。\n2. 图文任务调用 `gpt-image-2` 或火山引擎 Ark 文生图模型生成宣传图；视频任务验证用户提供的本地 MP4 和可选封面。\n3. 图文任务保存 `cover.png` / `card_*.png` 和 `manifest.json`。\n4. 仅当用户明确要求发布到小红书时，再运行发布脚本，并根据输入选择图文或视频发布。\n\n## ✨ 核心功能\n\n### 1️⃣ 智能内容创作\n根据用户输入自动生成：\n- **标题**：不超过 20 字，吸引眼球，制造好奇心\n- **主题**：自动选择适合的视觉主题\n- **正文分页**：多图时按卡片天然拆页，短句、强重点、适量 Emoji\n- **发布文案**：生成描述和 SEO Tags\n\n### 2️⃣ AI 宣传图生成\n- 默认根据可用 Key 自动选择图片提供方：`OPENAI_API_KEY` 走 OpenAI，`ARK_API_KEY` 走火山引擎 Ark\n- OpenAI 图片默认调用 `gpt-image-2`\n- 火山图片默认调用 `doubao-seedream-4-5-251128`\n- 火山文案默认调用 `doubao-seed-2-0-pro-260215`，可用 `--text-model` 切换\n- 直接生成竖版、无 Logo、无水印的最终宣传图\n- 单张输出 `cover.png`，多张输出 `cover.png` + `card_*.png`\n\n### 3️⃣ 图片输出\n- **封面图**：3:4 比例，默认 1024×1536px\n- **正文图**：多张宣传图自动拆页，最多 9 张\n\n### 4️⃣ 明确授权后发布\n- 自动登录（使用 Cookie）\n- 上传图片（最多 9 张）或一个本地 MP4 视频\n- 视频支持自定义封面；未指定时自动使用视频第一帧\n- 设置标题、描述、Tags\n- 发布后返回笔记链接\n- 不允许在用户未明确要求发布时自动发布\n\n### 5️⃣ 视频发布边界\n- 仅负责发布用户提供的本地 `.mp4` 文件，不生成、不下载、不转码、不剪辑视频\n- 图片参数与视频参数互斥，一条笔记只能选择图文或视频\n- `--dry-run` 可在不读取 Cookie、不实际发布的情况下验证本地文件和参数\n\n## 🚀 快速开始\n\n> ⚠️ **数据传输提示**：您输入的描述及生成的提示词等内容将发送至第三方 AI 服务（OpenAI 或火山引擎）进行处理。请勿在描述中包含商业机密、个人隐私或未公开的敏感信息。详见下方安全注意事项章节。\n\n### 方式一：一句话自动生成（推荐）\n\n```bash\n# 只需要配置一种 API Key\nexport OPENAI_API_KEY=\"your_api_key\"\n# 或\nexport ARK_API_KEY=\"your_ark_api_key\"\n\npython3 scripts/generate_xhs.py \\\n  \"给 蒙语 AI 翻译 API 写一篇小红书推广笔记，突出一个 API Key 搞定翻译、OCR 和语音识别\" \\\n  -o ./output\n```\n\n生成结果：\n\n```text\noutput/\n├── manifest.json              # 结构化标题、主题、发布文案、Tags 和图片路径\n├── cover.png\n└── card_*.png\n```\n\n### 方式二：跳过图片生成，只生成结构化内容\n\n```bash\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image\n```\n\n### 方式三：指定单张或多张宣传图\n\n```bash\n# 单张宣传图，只输出 cover.png\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 多张组图，总数包含封面，最多 9 张\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n```\n\n## 📁 文件结构\n\n```\nxiaohongshu-ai/\n├── SKILL.md                 # 技能文档\n├── scripts/\n│   ├── generate_xhs.py      # 自动内容 + AI 宣传图生成脚本\n│   ├── ai_services/         # 可扩展 AI 模型服务实现\n│   │   ├── chatgpt_service.py\n│   │   └── volcengine_service.py\n│   └── publish_xhs.py       # 明确要求发布时使用的图文/视频发布脚本\n```\n\n## 🤖 自动生成参数\n\n### Python 脚本参数\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `description` | 用户输入的文字描述 | 必填或使用 `--input-file` |\n| `--input-file` | 从文件读取描述 | 无 |\n| `--output-dir`, `-o` | 输出目录 | `./output` |\n| `--provider` | 服务提供方 | `openai`/`chatgpt` 或 `volcengine`/`ark`，默认根据可用 Key 自动选择 |\n| `--text-model` | 主题和正文生成模型 | OpenAI 默认 `gpt-5-mini`，Ark 默认 `doubao-seed-2-0-pro-260215` |\n| `--image-size` | 宣传图尺寸 | OpenAI 默认 `1024x1536`，火山默认 `2K` |\n| `--image-quality` | OpenAI 宣传图质量 | `high` |\n| `--ark-base-url` | 火山引擎 Ark OpenAI 兼容接口地址 | `https://ark.cn-beijing.volces.com/api/v3` |\n| `--volcengine-watermark` | 火山图片生成时添加水印 | 关闭 |\n| `--skip-image` | 不调用图片模型，只生成 `manifest.json` | 关闭 |\n| `--image-count` | 目标输出图片总数，包含封面；单张宣传图使用 `1` | 不限制，按内容自动生成 |\n\n### 常用命令\n\n```bash\n# 自动生成宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output\n\n# 生成单张宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 生成 5 张组图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n\n# 从文件读取需求描述\npython3 scripts/generate_xhs.py --input-file brief.txt -o ./output\n\n# 指定文案模型\npython3 scripts/generate_xhs.py \"你的描述\" --text-model gpt-5-mini\n\n# 使用火山引擎 Ark 文生图\npython3 scripts/generate_xhs.py \"你的描述\" \\\n  --provider volcengine \\\n  --image-size 2K\n```\n\n## 📤 发布参数\n\n发布是独立步骤，只能在用户明确要求“发布到小红书”时执行。\n\n```bash\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述 #标签 1 #标签 2\" \\\n  --images cover.png card_1.png card_2.png\n\n# 使用 glob 匹配所有图片（自然排序）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images-glob \"./output/*.png\"\n\n# 从文件读取描述\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc-file ./output/desc.txt \\\n  --images cover.png\n\n# 验证模式（不实际发布）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images cover.png \\\n  --dry-run\n\n# 设为公开笔记（默认为私密）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images cover.png \\\n  --public\n\n# 定时发布\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images cover.png \\\n  --post-time \"2024-01-01 12:00:00\"\n\n# 发布本地 MP4 视频（未指定封面时自动使用视频第一帧）\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --desc \"视频描述 #标签\" \\\n  --video ./video.mp4\n\n# 发布本地 MP4 视频并指定封面\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --desc \"视频描述 #标签\" \\\n  --video ./video.mp4 \\\n  --cover ./cover.png\n\n# 验证视频参数和文件（不需要 Cookie，不实际发布）\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --video ./video.mp4 \\\n  --dry-run\n```\n\n### 发布参数一览\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `--title`, `-t` | 笔记标题（不超过 20 字） | 必填 |\n| `--desc`, `-d` | 笔记描述/正文内容 | `\"\"` |\n| `--desc-file` | 从 UTF-8 文件读取描述 | 无 |\n| `--images`, `-i` | 图片文件路径（空格分隔） | 无 |\n| `--images-glob` | 使用 glob 匹配图片，按自然序排序 | 无 |\n| `--video`, `-v` | 本地 MP4 视频路径；与图片参数互斥 | 无 |\n| `--cover` | 视频封面图片；仅能与 `--video` 一起使用 | 自动使用视频第一帧 |\n| `--video-wait-time` | 自动获取视频第一帧时的轮询间隔秒数 | `3` |\n| `--require-image-count` | 要求图片数量必须等于该值 | 不限制 |\n| `--private` | 设为私密笔记（默认） | 默认开启 |\n| `--public` | 设为公开笔记 | 关闭 |\n| `--post-time` | 定时发布时间（`2024-01-01 12:00:00`） | 立即发布 |\n| `--dry-run` | 仅验证，不实际发布 | 关闭 |\n| `--verbose` | 显示底层库输出 | 关闭 |\n| `--debug-json` | 将发布结果写入 JSON 文件 | 无 |\n| `--yes`, `-y` | 兼容旧参数（当前脚本不再交互确认） | — |\n\n### 前置条件\n\n1. **配置 API Key（二选一即可）**：\n   - `export OPENAI_API_KEY=\"your_api_key\"`\n   - `export ARK_API_KEY=\"your_ark_api_key\"`\n\n2. **配置 Cookie**（实际发布时必须使用环境变量，`--dry-run` 不需要）：\n   - `export XHS_COOKIE=\"your_cookie_string\"`\n\n3. **获取 Cookie**：\n   - 浏览器登录 https://www.xiaohongshu.com\n   - F12 → Network → 查看请求头 Cookie\n   - 复制完整 Cookie 字符串\n\n## ⚠️ 安全注意事项（重要）\n\n### Cookie 与账号安全\n\n- **Cookie 相当于账号密码**：完整的小红书 Cookie 字符串是 Bearer Token，持有它的任何程序都能以您的身份操作账号（发布、编辑、删除内容等）。请像对待密码一样保护它。\n- **不要提交到版本控制**：请勿将 Cookie 写入 git 仓库中的任何文件。\n- **明文存储风险**：环境变量以明文保存 Cookie，请确保运行环境安全可控。\n- **定期轮换**：建议定期重新获取 Cookie；不再使用时及时在浏览器中退出登录使其失效。\n- **发布前无确认**：脚本不会在执行发布前要求用户确认，调用即发布。请确保在调用前已核对标题、描述和图片内容。如需验证而不实际发布，请使用 `--dry-run` 参数。\n\n### 第三方 AI 服务数据传输\n\n- **文案生成**：您输入的产品描述、品牌信息和营销内容会发送到 OpenAI 或火山引擎的服务器用于生成文案。请避免在描述中包含商业机密、个人隐私或未公开的产品信息。\n- **图片生成**：生成的视觉提示词（visual_prompt）和卡片内容会发送到外部图片生成服务（gpt-image-2 或火山引擎 Ark）。这些服务提供方有各自的数据处理政策。\n- **了解服务条款**：使用前请确认所用 AI 服务提供方的数据隐私政策，评估数据传输是否符合您的合规要求。\n\n## ⚠️ 其他注意事项\n\n1. **图片规格**：\n   - 封面：1080×1440px（3:4）\n   - 正文卡片：1080×1440px（可动态调整）\n   - 最多 9 张图片\n\n2. **视频规格**：\n   - 当前发布接口仅接受本地 MP4 文件\n   - 每条视频笔记上传 1 个视频\n   - 封面可选；未提供时会等待平台提取视频第一帧\n\n3. **Cookie 有效期**：\n   - Cookie 有有效期，过期需重新获取\n   - 建议定期更新 `XHS_COOKIE`\n\n4. **发布限制**：\n   - 标题不超过 20 字\n   - 描述不超过 1000 字\n   - Tags 不超过 10 个\n\n5. **内容规范**：\n   - 遵守小红书社区规范\n   - 避免违规内容\n   - 原创内容优先\n\n## 🔧 依赖安装\n\n```bash\npip install openai\npip install \"xhs>=0.2.13\"\n```\n\nFile v1.1.0:SKILL.md\n\n---\nname: xiaohongshu-ai\nversion: 1.1.0\ndescription: 小红书 AI 宣传图、图文笔记和视频发布技能 - 根据用户提示词生成单张或多张宣传图，并支持将用户提供的本地 MP4 视频发布为视频笔记；仅在用户明确要求发布到小红书时才执行发布。\nhomepage: https://www.xiaohongshu.com\nauthor: OpenClaw Community\nmetadata: {\"openclaw\":{\"emoji\":\"📕\",\"primaryEnv\":\"XHS_COOKIE\",\"category\":\"social-media\"}}\n---\n\n# 小红书 AI 宣传图、图文笔记和视频发布技能\n\n> 一体化工作流：理解用户意图 → 生成图文素材或接收本地 MP4 → 按需发布图文/视频笔记\n\n## 🎯 使用场景\n\n- 用户需要创建小红书宣传图、封面图、产品推广图或图文笔记时\n- 用户只提供一段产品、服务、活动、知识点或个人经历描述，需要自动转成小红书图文内容\n- 需要 AI 直接生成贴合主题的单张海报或多张组图\n- 批量创作多条笔记素材\n- 用户提供本地 MP4 视频，需要配合标题、描述和可选封面发布为视频笔记\n\n## 🧭 意图判定与执行规则\n\n先根据用户提示词判断目标，再选择生成和发布动作：\n\n- **只生成不发布是默认行为**。用户没有明确说“发布到小红书”“帮我发小红书”“生成并发布”“发到小红书账号”等发布意图时，只生成图片和文案，不运行 `scripts/publish_xhs.py`。\n- **只有明确要求发布到小红书才发布**。即使生成了标题、描述和 Tags，也不能自动发布；发布前必须能从用户原话中判断出发布意图。\n- **单张宣传图**：用户说“一张”“单张”“封面”“海报”“主图”“宣传图”且没有要求组图时，生成一张主宣传图/封面图。\n- **多张宣传图**：用户说“多张”“组图”“轮播”“N 张”“一套”“系列图”时，按用户指定数量生成；未指定数量时生成封面 + 3-5 张正文卡片，总数不超过 9 张。\n- **图文笔记**：用户要求“小红书笔记”“种草文”“发布文案”“带正文分页”时，生成封面、正文卡片、发布描述和 Tags。\n- **发布内容来源**：发布时使用生成目录里的 `manifest.json` 读取标题和 `publish_desc`，图片按 `cover.png`、`card_*.png` 顺序上传，最多 9 张。\n- **视频笔记**：用户明确要求发布视频时，使用用户提供的本地 MP4 文件；可同时提供一张封面图片，未提供时自动使用视频第一帧。此技能不生成或编辑视频。\n\n执行顺序：\n\n1. 理解用户提示词，确定主题、受众、卖点、语气、是否单张/多张、是否发布。\n2. 图文任务调用 `gpt-image-2` 或火山引擎 Ark 文生图模型生成宣传图；视频任务验证用户提供的本地 MP4 和可选封面。\n3. 图文任务保存 `cover.png` / `card_*.png` 和 `manifest.json`。\n4. 仅当用户明确要求发布到小红书时，再运行发布脚本，并根据输入选择图文或视频发布。\n\n## ✨ 核心功能\n\n### 1️⃣ 智能内容创作\n根据用户输入自动生成：\n- **标题**：不超过 20 字，吸引眼球，制造好奇心\n- **主题**：自动选择适合的视觉主题\n- **正文分页**：多图时按卡片天然拆页，短句、强重点、适量 Emoji\n- **发布文案**：生成描述和 SEO Tags\n\n### 2️⃣ AI 宣传图生成\n- 默认根据可用 Key 自动选择图片提供方：`OPENAI_API_KEY` 走 OpenAI，`ARK_API_KEY` 走火山引擎 Ark\n- OpenAI 图片默认调用 `gpt-image-2`\n- 火山图片默认调用 `doubao-seedream-4-5-251128`\n- 火山文案默认调用 `doubao-seed-2-0-pro-260215`，可用 `--text-model` 切换\n- 直接生成竖版、无 Logo、无水印的最终宣传图\n- 单张输出 `cover.png`，多张输出 `cover.png` + `card_*.png`\n\n### 3️⃣ 图片输出\n- **封面图**：3:4 比例，默认 1024×1536px\n- **正文图**：多张宣传图自动拆页，最多 9 张\n\n### 4️⃣ 明确授权后发布\n- 自动登录（使用 Cookie）\n- 上传图片（最多 9 张）或一个本地 MP4 视频\n- 视频支持自定义封面；未指定时自动使用视频第一帧\n- 设置标题、描述、Tags\n- 发布后返回笔记链接\n- 不允许在用户未明确要求发布时自动发布\n\n### 5️⃣ 视频发布边界\n- 仅负责发布用户提供的本地 `.mp4` 文件，不生成、不下载、不转码、不剪辑视频\n- 图片参数与视频参数互斥，一条笔记只能选择图文或视频\n- `--dry-run` 可在不读取 Cookie、不实际发布的情况下验证本地文件和参数\n\n## 🚀 快速开始\n\n> ⚠️ **数据传输提示**：您输入的描述及生成的提示词等内容将发送至第三方 AI 服务（OpenAI 或火山引擎）进行处理。请勿在描述中包含商业机密、个人隐私或未公开的敏感信息。详见下方安全注意事项章节。\n\n### 方式一：一句话自动生成（推荐）\n\n```bash\n# 只需要配置一种 API Key\nexport OPENAI_API_KEY=\"your_api_key\"\n# 或\nexport ARK_API_KEY=\"your_ark_api_key\"\n\npython3 scripts/generate_xhs.py \\\n  \"给 蒙语 AI 翻译 API 写一篇小红书推广笔记，突出一个 API Key 搞定翻译、OCR 和语音识别\" \\\n  -o ./output\n```\n\n生成结果：\n\n```text\noutput/\n├── manifest.json              # 结构化标题、主题、发布文案、Tags 和图片路径\n├── cover.png\n└── card_*.png\n```\n\n### 方式二：跳过图片生成，只生成结构化内容\n\n```bash\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image\n```\n\n### 方式三：指定单张或多张宣传图\n\n```bash\n# 单张宣传图，只输出 cover.png\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 多张组图，总数包含封面，最多 9 张\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n```\n\n## 📁 文件结构\n\n```\nxiaohongshu-ai/\n├── SKILL.md                 # 技能文档\n├── scripts/\n│   ├── generate_xhs.py      # 自动内容 + AI 宣传图生成脚本\n│   ├── ai_services/         # 可扩展 AI 模型服务实现\n│   │   ├── chatgpt_service.py\n│   │   └── volcengine_service.py\n│   └── publish_xhs.py       # 明确要求发布时使用的图文/视频发布脚本\n```\n\n## 🤖 自动生成参数\n\n### Python 脚本参数\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `description` | 用户输入的文字描述 | 必填或使用 `--input-file` |\n| `--input-file` | 从文件读取描述 | 无 |\n| `--output-dir`, `-o` | 输出目录 | `./output` |\n| `--provider` | 服务提供方 | `openai`/`chatgpt` 或 `volcengine`/`ark`，默认根据可用 Key 自动选择 |\n| `--text-model` | 主题和正文生成模型 | OpenAI 默认 `gpt-5-mini`，Ark 默认 `doubao-seed-2-0-pro-260215` |\n| `--image-size` | 宣传图尺寸 | OpenAI 默认 `1024x1536`，火山默认 `2K` |\n| `--image-quality` | OpenAI 宣传图质量 | `high` |\n| `--ark-base-url` | 火山引擎 Ark OpenAI 兼容接口地址 | `https://ark.cn-beijing.volces.com/api/v3` |\n| `--volcengine-watermark` | 火山图片生成时添加水印 | 关闭 |\n| `--skip-image` | 不调用图片模型，只生成 `manifest.json` | 关闭 |\n| `--image-count` | 目标输出图片总数，包含封面；单张宣传图使用 `1` | 不限制，按内容自动生成 |\n\n### 常用命令\n\n```bash\n# 自动生成宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output\n\n# 生成单张宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 生成 5 张组图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n\n# 从文件读取需求描述\npython3 scripts/generate_xhs.py --input-file brief.txt -o ./output\n\n# 指定文案模型\npython3 scripts/generate_xhs.py \"你的描述\" --text-model gpt-5-mini\n\n# 使用火山引擎 Ark 文生图\npython3 scripts/generate_xhs.py \"你的描述\" \\\n  --provider volcengine \\\n  --image-size 2K\n```\n\n## 📤 发布参数\n\n发布是独立步骤，只能在用户明确要求“发布到小红书”时执行。\n\n```bash\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述 #标签 1 #标签 2\" \\\n  --images cover.png card_1.png card_2.png\n\n# 使用 glob 匹配所有图片（自然排序）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images-glob \"./output/*.png\"\n\n# 从文件读取描述\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc-file ./output/desc.txt \\\n  --images cover.png\n\n# 验证模式（不实际发布）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images cover.png \\\n  --dry-run\n\n# 设为公开笔记（默认为私密）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images cover.png \\\n  --public\n\n# 定时发布\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images cover.png \\\n  --post-time \"2024-01-01 12:00:00\"\n\n# 发布本地 MP4 视频（未指定封面时自动使用视频第一帧）\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --desc \"视频描述 #标签\" \\\n  --video ./video.mp4\n\n# 发布本地 MP4 视频并指定封面\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --desc \"视频描述 #标签\" \\\n  --video ./video.mp4 \\\n  --cover ./cover.png\n\n# 验证视频参数和文件（不需要 Cookie，不实际发布）\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --video ./video.mp4 \\\n  --dry-run\n```\n\n### 发布参数一览\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `--title`, `-t` | 笔记标题（不超过 20 字） | 必填 |\n| `--desc`, `-d` | 笔记描述/正文内容 | `\"\"` |\n| `--desc-file` | 从 UTF-8 文件读取描述 | 无 |\n| `--images`, `-i` | 图片文件路径（空格分隔） | 无 |\n| `--images-glob` | 使用 glob 匹配图片，按自然序排序 | 无 |\n| `--video`, `-v` | 本地 MP4 视频路径；与图片参数互斥 | 无 |\n| `--cover` | 视频封面图片；仅能与 `--video` 一起使用 | 自动使用视频第一帧 |\n| `--video-wait-time` | 自动获取视频第一帧时的轮询间隔秒数 | `3` |\n| `--require-image-count` | 要求图片数量必须等于该值 | 不限制 |\n| `--private` | 设为私密笔记（默认） | 默认开启 |\n| `--public` | 设为公开笔记 | 关闭 |\n| `--post-time` | 定时发布时间（`2024-01-01 12:00:00`） | 立即发布 |\n| `--dry-run` | 仅验证，不实际发布 | 关闭 |\n| `--verbose` | 显示底层库输出 | 关闭 |\n| `--debug-json` | 将发布结果写入 JSON 文件 | 无 |\n| `--yes`, `-y` | 兼容旧参数（当前脚本不再交互确认） | — |\n\n### 前置条件\n\n1. **配置 API Key（二选一即可）**：\n   - `export OPENAI_API_KEY=\"your_api_key\"`\n   - `export ARK_API_KEY=\"your_ark_api_key\"`\n\n2. **配置 Cookie**（实际发布时必须使用环境变量，`--dry-run` 不需要）：\n   - `export XHS_COOKIE=\"your_cookie_string\"`\n\n3. **获取 Cookie**：\n   - 浏览器登录 https://www.xiaohongshu.com\n   - F12 → Network → 查看请求头 Cookie\n   - 复制完整 Cookie 字符串\n\n## ⚠️ 安全注意事项（重要）\n\n### Cookie 与账号安全\n\n- **Cookie 相当于账号密码**：完整的小红书 Cookie 字符串是 Bearer Token，持有它的任何程序都能以您的身份操作账号（发布、编辑、删除内容等）。请像对待密码一样保护它。\n- **不要提交到版本控制**：请勿将 Cookie 写入 git 仓库中的任何文件。\n- **明文存储风险**：环境变量以明文保存 Cookie，请确保运行环境安全可控。\n- **定期轮换**：建议定期重新获取 Cookie；不再使用时及时在浏览器中退出登录使其失效。\n- **发布前无确认**：脚本不会在执行发布前要求用户确认，调用即发布。请确保在调用前已核对标题、描述和图片内容。如需验证而不实际发布，请使用 `--dry-run` 参数。\n\n### 第三方 AI 服务数据传输\n\n- **文案生成**：您输入的产品描述、品牌信息和营销内容会发送到 OpenAI 或火山引擎的服务器用于生成文案。请避免在描述中包含商业机密、个人隐私或未公开的产品信息。\n- **图片生成**：生成的视觉提示词（visual_prompt）和卡片内容会发送到外部图片生成服务（gpt-image-2 或火山引擎 Ark）。这些服务提供方有各自的数据处理政策。\n- **了解服务条款**：使用前请确认所用 AI 服务提供方的数据隐私政策，评估数据传输是否符合您的合规要求。\n\n## ⚠️ 其他注意事项\n\n1. **图片规格**：\n   - 封面：1080×1440px（3:4）\n   - 正文卡片：1080×1440px（可动态调整）\n   - 最多 9 张图片\n\n2. **视频规格**：\n   - 当前发布接口仅接受本地 MP4 文件\n   - 每条视频笔记上传 1 个视频\n   - 封面可选；未提供时会等待平台提取视频第一帧\n\n3. **Cookie 有效期**：\n   - Cookie 有有效期，过期需重新获取\n   - 建议定期更新 `XHS_COOKIE`\n\n4. **发布限制**：\n   - 标题不超过 20 字\n   - 描述不超过 1000 字\n   - Tags 不超过 10 个\n\n5. **内容规范**：\n   - 遵守小红书社区规范\n   - 避免违规内容\n   - 原创内容优先\n\n## 🔧 依赖安装\n\n```bash\npip install openai\npip install \"xhs>=0.2.13\"\n```\n\nFile v1.1.0:README.md\n\n# xiaohongshu-ai\n\n小红书 AI 宣传图、图文笔记和视频发布 skill。根据用户提示词判断生成单张或多张宣传图，支持使用 `gpt-image-2` 或火山引擎 Ark 文生图模型直接生成图片，也支持将用户提供的本地 MP4 发布为视频笔记；只有用户明确要求发布到小红书时才发布。\n\n## 如何使用这个 skill\n\n把这个目录安装到支持 skill 的工具或智能体环境后，在对话里直接描述你要做的小红书内容即可触发使用，例如：\n\n```text\n帮我给一个蒙语 AI 翻译 API 生成一套小红书推广图，突出一个 API Key 搞定翻译、OCR 和语音识别\n```\n\n常见说法：\n\n- `生成一张小红书宣传图`：只生成单张封面图。\n- `生成一套小红书组图` / `生成 5 张轮播图`：生成封面和多张正文图。\n- `写一篇小红书图文笔记`：生成图片、标题、正文分页、发布文案和 Tags。\n- `生成并发布到小红书`：在生成后继续发布；只有明确说要发布时才会发布。\n- `把这个 MP4 发布到小红书`：发布用户提供的本地视频，可选自定义封面；不生成或编辑视频。\n\n## 文件结构\n\n```text\nxiaohongshu-ai/\n├── SKILL.md\n└── scripts/\n    ├── ai_services/\n    │   ├── chatgpt_service.py\n    │   └── volcengine_service.py\n    ├── generate_xhs.py\n    └── publish_xhs.py\n```\n\n## 依赖\n\n```bash\npip install openai\npip install \"xhs>=0.2.13\"\n```\n\n生成内容和图片只需要配置一种 API Key：\n\n```bash\n# 使用 OpenAI 文案和图片模型\nexport OPENAI_API_KEY=\"your_api_key\"\n\n# 或使用火山引擎 Ark 文案和文生图模型\nexport ARK_API_KEY=\"your_ark_api_key\"\n```\n\n发布到小红书才需要：\n\n```bash\nexport XHS_COOKIE=\"your_cookie_string\"\n```\n\n使用 `--dry-run` 只验证文件和参数时不需要 Cookie。\n\n## 生成宣传图\n\n```bash\npython3 scripts/generate_xhs.py \"给某个产品生成一张小红书宣传图\" -o ./output --image-count 1\n```\n\n生成多张组图：\n\n```bash\npython3 scripts/generate_xhs.py \"给某个产品生成一套小红书组图\" -o ./output --image-count 5\n```\n\n输出示例：\n\n```text\noutput/\n├── manifest.json\n├── cover.png\n├── card_1.png\n└── card_2.png\n```\n\n只生成结构化文案，不生成图片：\n\n```bash\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image\n```\n\n使用火山引擎 Ark 文生图：\n\n```bash\nexport ARK_API_KEY=\"your_ark_api_key\"\n\npython3 scripts/generate_xhs.py \"给某个产品生成一张小红书宣传图\" \\\n  -o ./output \\\n  --provider volcengine \\\n  --image-size 2K \\\n  --image-count 1\n```\n\n火山引擎文案模型默认使用 `doubao-seed-2-0-pro-260215`，可通过 `--text-model` 切换；火山图片模型固定使用 `doubao-seedream-4-5-251128`，不提供命令行切换参数。\n\n## 发布规则\n\n默认不发布。只有用户明确说“发布到小红书”“生成并发布”“帮我发小红书”等发布意图时，才运行发布脚本。\n\n```bash\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述 #标签\" \\\n  --images ./output/cover.png ./output/card_*.png\n\n# 使用 glob 匹配所有图片（自然排序）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images-glob \"./output/*.png\"\n\n# 验证模式（不实际发布）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images cover.png \\\n  --dry-run\n\n# 发布本地 MP4 视频（未指定封面时自动使用视频第一帧）\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --desc \"视频描述 #标签\" \\\n  --video ./video.mp4\n\n# 发布视频并指定封面\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --desc \"视频描述 #标签\" \\\n  --video ./video.mp4 \\\n  --cover ./cover.png\n\n# 验证视频文件和参数，不实际发布\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --video ./video.mp4 \\\n  --dry-run\n```\n\n视频发布只接受一个本地 `.mp4` 文件；`--video` 与 `--images` / `--images-glob` 互斥。Skill 不负责视频生成、下载、转码或剪辑。\n\n## 常用参数\n\n**生成参数（generate_xhs.py）：**\n\n| 参数 | 说明 |\n| --- | --- |\n| `--image-count 1-9` | 目标输出图片总数，包含封面 |\n| `--provider` | 服务提供方，`openai`/`chatgpt` 或 `volcengine`/`ark`；默认根据可用 Key 自动选择 |\n| `--image-size` | 图片尺寸，OpenAI 默认 `1024x1536`，火山默认 `2K` |\n| `--image-quality` | OpenAI 图片质量，默认 `high` |\n| `--ark-base-url` | 火山引擎 Ark OpenAI 兼容接口地址 |\n| `--volcengine-watermark` | 火山图片生成时添加水印，默认关闭 |\n| `--text-model` | 文案模型，OpenAI 默认 `gpt-5-mini`，Ark 默认 `doubao-seed-2-0-pro-260215` |\n| `--skip-image` | 只生成 `manifest.json` |\n\n**发布参数（publish_xhs.py）：**\n\n| 参数 | 说明 |\n| --- | --- |\n| `--images-glob` | 使用 glob 匹配图片，按自然序排序 |\n| `--video`, `-v` | 本地 MP4 视频路径；与图片参数互斥 |\n| `--cover` | 可选的视频封面图片；未指定时自动使用视频第一帧 |\n| `--video-wait-time` | 自动获取视频第一帧时的轮询间隔秒数，默认 `3` |\n| `--desc-file` | 从 UTF-8 文件读取笔记描述 |\n| `--require-image-count` | 要求图片数量必须等于该值 |\n| `--public` / `--private` | 公开/私密笔记（默认私密） |\n| `--post-time` | 定时发布（格式：`2024-01-01 12:00:00`） |\n| `--dry-run` | 仅验证，不实际发布 |\n| `--verbose` | 显示底层库输出 |\n| `--debug-json` | 将发布结果写入 JSON 文件 |\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7114n7fws0zkhdbtpvy92sp182gqge\",\n  \"slug\": \"xiaohongshu-ai\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1785073547562\n}\n\nFile v1.1.0:skill-card.md\n\n## Description: <br>\n小红书 AI 宣传图、图文笔记和视频发布技能，根据用户提示词生成单张或多张宣传图，并支持将用户提供的本地 MP4 视频发布为视频笔记；仅在用户明确要求发布到小红书时才执行发布。 <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[youteacherasia](https://clawhub.ai/user/youteacherasia) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nCreators, marketers, and agents use this skill to draft Xiaohongshu titles, descriptions, tags, and promotional image-note assets from a content brief. With explicit user authorization, it can publish generated image notes or a user-provided local MP4 video to Xiaohongshu. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can use XHS_COOKIE to act on a Xiaohongshu account when publishing. <br>\nMitigation: Treat XHS_COOKIE like a password, keep it out of source files, run in a trusted environment, rotate it when no longer needed, and use --dry-run before any real publish. <br>\nRisk: Prompts, product descriptions, and generated visual prompts may be sent to external AI providers. <br>\nMitigation: Avoid confidential, personal, or unpublished information in generation prompts, and review the selected provider's data handling terms before use. <br>\nRisk: Publishing commands can post image or video notes without an additional interactive confirmation. <br>\nMitigation: Only publish after explicit user intent, verify title, description, media, schedule, and public/private visibility, and prefer --dry-run for validation. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/youteacherasia/skills/xiaohongshu-ai) <br>\n- [Publisher profile](https://clawhub.ai/user/youteacherasia) <br>\n- [Xiaohongshu homepage](https://www.xiaohongshu.com) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, files] <br>\n**Output Format:** [Markdown guidance with shell commands; generated artifacts include manifest.json plus cover.png and card_*.png image files, or publish status for image and MP4 video notes.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Uses OPENAI_API_KEY or ARK_API_KEY for generation and XHS_COOKIE only for actual publishing; --dry-run validates publishing inputs without posting.] <br>\n\n## Skill Version(s): <br>\n1.1.0 (source: server release metadata and SKILL.md frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.5: 8 files, 17681 bytes\n\nFiles: scripts/ai_services/__init__.py (40b), scripts/ai_services/chatgpt_service.py (2973b), scripts/ai_services/volcengine_service.py (3986b), scripts/generate_xhs.py (10150b), scripts/publish_xhs.py (10317b), skill-card.md (2715b), SKILL.md (11686b), _meta.json (133b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: xiaohongshu-ai\nversion: 1.0.5\ndescription: 小红书 AI 宣传图和图文笔记技能 - 根据用户提示词判断生成单张或多张宣传图，调用 gpt-image-2 或火山引擎 Ark 文生图模型生成视觉素材并合成小红书图片；仅在用户明确要求发布到小红书时才执行发布。\nhomepage: https://www.xiaohongshu.com\nauthor: OpenClaw Community\nmetadata: {\"openclaw\":{\"emoji\":\"📕\",\"primaryEnv\":\"XHS_COOKIE\",\"category\":\"social-media\"}}\n---\n\n# 小红书 AI 宣传图和图文笔记技能\n\n> 一体化工作流：理解用户意图 → 主题和文案生成 → AI 图片模型直接生成单张或多张宣传图 → 按需发布\n\n## 🎯 使用场景\n\n- 用户需要创建小红书宣传图、封面图、产品推广图或图文笔记时\n- 用户只提供一段产品、服务、活动、知识点或个人经历描述，需要自动转成小红书图文内容\n- 需要 AI 直接生成贴合主题的单张海报或多张组图\n- 批量创作多条笔记素材\n\n## 🧭 意图判定与执行规则\n\n先根据用户提示词判断目标，再选择生成和发布动作：\n\n- **只生成不发布是默认行为**。用户没有明确说“发布到小红书”“帮我发小红书”“生成并发布”“发到小红书账号”等发布意图时，只生成图片和文案，不运行 `scripts/publish_xhs.py`。\n- **只有明确要求发布到小红书才发布**。即使生成了标题、描述和 Tags，也不能自动发布；发布前必须能从用户原话中判断出发布意图。\n- **单张宣传图**：用户说“一张”“单张”“封面”“海报”“主图”“宣传图”且没有要求组图时，生成一张主宣传图/封面图。\n- **多张宣传图**：用户说“多张”“组图”“轮播”“N 张”“一套”“系列图”时，按用户指定数量生成；未指定数量时生成封面 + 3-5 张正文卡片，总数不超过 9 张。\n- **图文笔记**：用户要求“小红书笔记”“种草文”“发布文案”“带正文分页”时，生成封面、正文卡片、发布描述和 Tags。\n- **发布内容来源**：发布时使用生成目录里的 `manifest.json` 读取标题和 `publish_desc`，图片按 `cover.png`、`card_*.png` 顺序上传，最多 9 张。\n\n执行顺序：\n\n1. 理解用户提示词，确定主题、受众、卖点、语气、是否单张/多张、是否发布。\n2. 调用 `gpt-image-2` 或火山引擎 Ark 文生图模型直接生成贴合主题的小红书规格宣传图。\n3. 保存 `cover.png` / `card_*.png` 和 `manifest.json`。\n4. 仅当用户明确要求发布到小红书时，再运行发布脚本。\n\n## ✨ 核心功能\n\n### 1️⃣ 智能内容创作\n根据用户输入自动生成：\n- **标题**：不超过 20 字，吸引眼球，制造好奇心\n- **主题**：自动选择适合的视觉主题\n- **正文分页**：多图时按卡片天然拆页，短句、强重点、适量 Emoji\n- **发布文案**：生成描述和 SEO Tags\n\n### 2️⃣ AI 宣传图生成\n- 默认根据可用 Key 自动选择图片提供方：`OPENAI_API_KEY` 走 OpenAI，`ARK_API_KEY` 走火山引擎 Ark\n- OpenAI 图片默认调用 `gpt-image-2`\n- 火山图片默认调用 `doubao-seedream-4-5-251128`\n- 火山文案默认调用 `doubao-seed-2-0-pro-260215`，可用 `--text-model` 切换\n- 直接生成竖版、无 Logo、无水印的最终宣传图\n- 单张输出 `cover.png`，多张输出 `cover.png` + `card_*.png`\n\n### 3️⃣ 图片输出\n- **封面图**：3:4 比例，默认 1024×1536px\n- **正文图**：多张宣传图自动拆页，最多 9 张\n\n### 4️⃣ 明确授权后发布\n- 自动登录（使用 Cookie）\n- 上传图片（最多 9 张）\n- 设置标题、描述、Tags\n- 发布后返回笔记链接\n- 不允许在用户未明确要求发布时自动发布\n\n## 🚀 快速开始\n\n> ⚠️ **数据传输提示**：您输入的描述及生成的提示词等内容将发送至第三方 AI 服务（OpenAI 或火山引擎）进行处理。请勿在描述中包含商业机密、个人隐私或未公开的敏感信息。详见下方安全注意事项章节。\n\n### 方式一：一句话自动生成（推荐）\n\n```bash\n# 只需要配置一种 API Key\nexport OPENAI_API_KEY=\"your_api_key\"\n# 或\nexport ARK_API_KEY=\"your_ark_api_key\"\n\npython3 scripts/generate_xhs.py \\\n  \"给 蒙语 AI 翻译 API 写一篇小红书推广笔记，突出一个 API Key 搞定翻译、OCR 和语音识别\" \\\n  -o ./output\n```\n\n生成结果：\n\n```text\noutput/\n├── manifest.json              # 结构化标题、主题、发布文案、Tags 和图片路径\n├── cover.png\n└── card_*.png\n```\n\n### 方式二：跳过图片生成，只生成结构化内容\n\n```bash\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image\n```\n\n### 方式三：指定单张或多张宣传图\n\n```bash\n# 单张宣传图，只输出 cover.png\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 多张组图，总数包含封面，最多 9 张\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n```\n\n## 📁 文件结构\n\n```\nxiaohongshu-ai/\n├── SKILL.md                 # 技能文档\n├── scripts/\n│   ├── generate_xhs.py      # 自动内容 + AI 宣传图生成脚本\n│   ├── ai_services/         # 可扩展 AI 模型服务实现\n│   │   ├── chatgpt_service.py\n│   │   └── volcengine_service.py\n│   └── publish_xhs.py       # 明确要求发布时使用的发布脚本\n```\n\n## 🤖 自动生成参数\n\n### Python 脚本参数\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `description` | 用户输入的文字描述 | 必填或使用 `--input-file` |\n| `--input-file` | 从文件读取描述 | 无 |\n| `--output-dir`, `-o` | 输出目录 | `./output` |\n| `--provider` | 服务提供方 | `openai`/`chatgpt` 或 `volcengine`/`ark`，默认根据可用 Key 自动选择 |\n| `--text-model` | 主题和正文生成模型 | OpenAI 默认 `gpt-5-mini`，Ark 默认 `doubao-seed-2-0-pro-260215` |\n| `--image-size` | 宣传图尺寸 | OpenAI 默认 `1024x1536`，火山默认 `2K` |\n| `--image-quality` | OpenAI 宣传图质量 | `high` |\n| `--ark-base-url` | 火山引擎 Ark OpenAI 兼容接口地址 | `https://ark.cn-beijing.volces.com/api/v3` |\n| `--volcengine-watermark` | 火山图片生成时添加水印 | 关闭 |\n| `--skip-image` | 不调用图片模型，只生成 `manifest.json` | 关闭 |\n| `--image-count` | 目标输出图片总数，包含封面；单张宣传图使用 `1` | 不限制，按内容自动生成 |\n\n### 常用命令\n\n```bash\n# 自动生成宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output\n\n# 生成单张宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 生成 5 张组图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n\n# 从文件读取需求描述\npython3 scripts/generate_xhs.py --input-file brief.txt -o ./output\n\n# 指定文案模型\npython3 scripts/generate_xhs.py \"你的描述\" --text-model gpt-5-mini\n\n# 使用火山引擎 Ark 文生图\npython3 scripts/generate_xhs.py \"你的描述\" \\\n  --provider volcengine \\\n  --image-size 2K\n```\n\n## 📤 发布参数\n\n发布是独立步骤，只能在用户明确要求”发布到小红书”时执行。\n\n```bash\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc “笔记描述 #标签 1 #标签 2” \\\n  --images cover.png card_1.png card_2.png\n\n# 使用 glob 匹配所有图片（自然排序）\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc “笔记描述” \\\n  --images-glob “./output/*.png”\n\n# 从文件读取描述\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc-file ./output/desc.txt \\\n  --images cover.png\n\n# 验证模式（不实际发布）\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc “笔记描述” \\\n  --images cover.png \\\n  --dry-run\n\n# 设为公开笔记（默认为私密）\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc “笔记描述” \\\n  --images cover.png \\\n  --public\n\n# 定时发布\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc “笔记描述” \\\n  --images cover.png \\\n  --post-time “2024-01-01 12:00:00”\n```\n\n### 发布参数一览\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `--title`, `-t` | 笔记标题（不超过 20 字） | 必填 |\n| `--desc`, `-d` | 笔记描述/正文内容 | `””` |\n| `--desc-file` | 从 UTF-8 文件读取描述 | 无 |\n| `--images`, `-i` | 图片文件路径（空格分隔） | 无 |\n| `--images-glob` | 使用 glob 匹配图片，按自然序排序 | 无 |\n| `--require-image-count` | 要求图片数量必须等于该值 | 不限制 |\n| `--private` | 设为私密笔记（默认） | 默认开启 |\n| `--public` | 设为公开笔记 | 关闭 |\n| `--post-time` | 定时发布时间（`2024-01-01 12:00:00`） | 立即发布 |\n| `--dry-run` | 仅验证，不实际发布 | 关闭 |\n| `--verbose` | 显示底层库输出 | 关闭 |\n| `--debug-json` | 将发布结果写入 JSON 文件 | 无 |\n| `--yes`, `-y` | 兼容旧参数（当前脚本不再交互确认） | — |\n\n### 前置条件\n\n1. **配置 API Key（二选一即可）**：\n   - `export OPENAI_API_KEY=\"your_api_key\"`\n   - `export ARK_API_KEY=\"your_ark_api_key\"`\n\n2. **配置 Cookie**（发布时必须使用环境变量）：\n   - `export XHS_COOKIE=\"your_cookie_string\"`\n\n3. **获取 Cookie**：\n   - 浏览器登录 https://www.xiaohongshu.com\n   - F12 → Network → 查看请求头 Cookie\n   - 复制完整 Cookie 字符串\n\n## ⚠️ 安全注意事项（重要）\n\n### Cookie 与账号安全\n\n- **Cookie 相当于账号密码**：完整的小红书 Cookie 字符串是 Bearer Token，持有它的任何程序都能以您的身份操作账号（发布、编辑、删除内容等）。请像对待密码一样保护它。\n- **不要提交到版本控制**：请勿将 Cookie 写入 git 仓库中的任何文件。\n- **明文存储风险**：环境变量以明文保存 Cookie，请确保运行环境安全可控。\n- **定期轮换**：建议定期重新获取 Cookie；不再使用时及时在浏览器中退出登录使其失效。\n- **发布前无确认**：脚本不会在执行发布前要求用户确认，调用即发布。请确保在调用前已核对标题、描述和图片内容。如需验证而不实际发布，请使用 `--dry-run` 参数。\n\n### 第三方 AI 服务数据传输\n\n- **文案生成**：您输入的产品描述、品牌信息和营销内容会发送到 OpenAI 或火山引擎的服务器用于生成文案。请避免在描述中包含商业机密、个人隐私或未公开的产品信息。\n- **图片生成**：生成的视觉提示词（visual_prompt）和卡片内容会发送到外部图片生成服务（gpt-image-2 或火山引擎 Ark）。这些服务提供方有各自的数据处理政策。\n- **了解服务条款**：使用前请确认所用 AI 服务提供方的数据隐私政策，评估数据传输是否符合您的合规要求。\n\n## ⚠️ 其他注意事项\n\n1. **图片规格**：\n   - 封面：1080×1440px（3:4）\n   - 正文卡片：1080×1440px（可动态调整）\n   - 最多 9 张图片\n\n2. **Cookie 有效期**：\n   - Cookie 有有效期，过期需重新获取\n   - 建议定期更新 `XHS_COOKIE`\n\n3. **发布限制**：\n   - 标题不超过 20 字\n   - 描述不超过 1000 字\n   - Tags 不超过 10 个\n\n4. **内容规范**：\n   - 遵守小红书社区规范\n   - 避免违规内容\n   - 原创内容优先\n\n## 🔧 依赖安装\n\n```bash\npip install openai xhs\n```\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7114n7fws0zkhdbtpvy92sp182gqge\",\n  \"slug\": \"xiaohongshu-ai\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1779840807540\n}\n\nFile v1.0.5:skill-card.md\n\n## Description: <br>\nCreates Xiaohongshu promotional images and post copy from a user brief using OpenAI or Volcengine Ark generation, and can publish to Xiaohongshu only when the user explicitly asks it to. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[youteacherasia](https://clawhub.ai/user/youteacherasia) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nContent creators, marketers, and agent users use this skill to turn a product, service, event, topic, or personal brief into Xiaohongshu-ready poster images, carousel assets, titles, descriptions, and tags. When deliberately invoked with account credentials, it can publish the generated note to Xiaohongshu. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: XHS_COOKIE can act like a logged-in Xiaohongshu account credential. <br>\nMitigation: Keep XHS_COOKIE out of files and version control, provide it only in a controlled runtime environment, and rotate or revoke the cookie when it is no longer needed. <br>\nRisk: User descriptions, generated prompts, and marketing content may be sent to external AI providers. <br>\nMitigation: Do not include business secrets, personal data, unpublished product information, or other sensitive content in prompts unless that data transfer has been approved. <br>\nRisk: The publishing script can create an actual Xiaohongshu post when deliberately invoked with a valid cookie. <br>\nMitigation: Use --dry-run to validate inputs before publishing, review title, description, and images first, and use --public only when a public post is intentional. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/youteacherasia/xiaohongshu-ai) <br>\n- [Xiaohongshu](https://www.xiaohongshu.com) <br>\n- [Volcengine Ark OpenAI-compatible endpoint](https://ark.cn-beijing.volces.com/api/v3) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, files] <br>\n**Output Format:** [Markdown guidance with shell commands; generated runs produce PNG image files and a JSON manifest.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Generated image output is intended for Xiaohongshu 3:4 posts; publishing requires an explicit publishing command and XHS_COOKIE.] <br>\n\n## Skill Version(s): <br>\n1.0.5 (source: server release and SKILL.md frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.4: 8 files, 17658 bytes\n\nFiles: scripts/ai_services/__init__.py (40b), scripts/ai_services/chatgpt_service.py (2973b), scripts/ai_services/volcengine_service.py (3986b), scripts/generate_xhs.py (10150b), scripts/publish_xhs.py (10317b), skill-card.md (2534b), SKILL.md (11363b), _meta.json (133b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: xiaohongshu-ai\nversion: 1.0.4\ndescription: 小红书 AI 宣传图和图文笔记技能 - 根据用户提示词判断生成单张或多张宣传图，调用 gpt-image-2 或火山引擎 Ark 文生图模型生成视觉素材并合成小红书图片；仅在用户明确要求发布到小红书时才执行发布。\nhomepage: https://www.xiaohongshu.com\nauthor: OpenClaw Community\nmetadata: {\"openclaw\":{\"emoji\":\"📕\",\"primaryEnv\":\"XHS_COOKIE\",\"category\":\"social-media\"}}\n---\n\n# 小红书 AI 宣传图和图文笔记技能\n\n> 一体化工作流：理解用户意图 → 主题和文案生成 → AI 图片模型直接生成单张或多张宣传图 → 按需发布\n\n## 🎯 使用场景\n\n- 用户需要创建小红书宣传图、封面图、产品推广图或图文笔记时\n- 用户只提供一段产品、服务、活动、知识点或个人经历描述，需要自动转成小红书图文内容\n- 需要 AI 直接生成贴合主题的单张海报或多张组图\n- 批量创作多条笔记素材\n\n## 🧭 意图判定与执行规则\n\n先根据用户提示词判断目标，再选择生成和发布动作：\n\n- **只生成不发布是默认行为**。用户没有明确说“发布到小红书”“帮我发小红书”“生成并发布”“发到小红书账号”等发布意图时，只生成图片和文案，不运行 `scripts/publish_xhs.py`。\n- **只有明确要求发布到小红书才发布**。即使生成了标题、描述和 Tags，也不能自动发布；发布前必须能从用户原话中判断出发布意图。\n- **单张宣传图**：用户说“一张”“单张”“封面”“海报”“主图”“宣传图”且没有要求组图时，生成一张主宣传图/封面图。\n- **多张宣传图**：用户说“多张”“组图”“轮播”“N 张”“一套”“系列图”时，按用户指定数量生成；未指定数量时生成封面 + 3-5 张正文卡片，总数不超过 9 张。\n- **图文笔记**：用户要求“小红书笔记”“种草文”“发布文案”“带正文分页”时，生成封面、正文卡片、发布描述和 Tags。\n- **发布内容来源**：发布时使用生成目录里的 `manifest.json` 读取标题和 `publish_desc`，图片按 `cover.png`、`card_*.png` 顺序上传，最多 9 张。\n\n执行顺序：\n\n1. 理解用户提示词，确定主题、受众、卖点、语气、是否单张/多张、是否发布。\n2. 调用 `gpt-image-2` 或火山引擎 Ark 文生图模型直接生成贴合主题的小红书规格宣传图。\n3. 保存 `cover.png` / `card_*.png` 和 `manifest.json`。\n4. 仅当用户明确要求发布到小红书时，再运行发布脚本。\n\n## ✨ 核心功能\n\n### 1️⃣ 智能内容创作\n根据用户输入自动生成：\n- **标题**：不超过 20 字，吸引眼球，制造好奇心\n- **主题**：自动选择适合的视觉主题\n- **正文分页**：多图时按卡片天然拆页，短句、强重点、适量 Emoji\n- **发布文案**：生成描述和 SEO Tags\n\n### 2️⃣ AI 宣传图生成\n- 默认根据可用 Key 自动选择图片提供方：`OPENAI_API_KEY` 走 OpenAI，`ARK_API_KEY` 走火山引擎 Ark\n- OpenAI 图片默认调用 `gpt-image-2`\n- 火山图片默认调用 `doubao-seedream-4-5-251128`\n- 火山文案默认调用 `doubao-seed-2-0-pro-260215`，可用 `--text-model` 切换\n- 直接生成竖版、无 Logo、无水印的最终宣传图\n- 单张输出 `cover.png`，多张输出 `cover.png` + `card_*.png`\n\n### 3️⃣ 图片输出\n- **封面图**：3:4 比例，默认 1024×1536px\n- **正文图**：多张宣传图自动拆页，最多 9 张\n\n### 4️⃣ 明确授权后发布\n- 自动登录（使用 Cookie）\n- 上传图片（最多 9 张）\n- 设置标题、描述、Tags\n- 发布后返回笔记链接\n- 不允许在用户未明确要求发布时自动发布\n\n## 🚀 快速开始\n\n### 方式一：一句话自动生成（推荐）\n\n```bash\n# 只需要配置一种 API Key\nexport OPENAI_API_KEY=\"your_api_key\"\n# 或\nexport ARK_API_KEY=\"your_ark_api_key\"\n\npython3 scripts/generate_xhs.py \\\n  \"给 蒙语 AI 翻译 API 写一篇小红书推广笔记，突出一个 API Key 搞定翻译、OCR 和语音识别\" \\\n  -o ./output\n```\n\n生成结果：\n\n```text\noutput/\n├── manifest.json              # 结构化标题、主题、发布文案、Tags 和图片路径\n├── cover.png\n└── card_*.png\n```\n\n### 方式二：跳过图片生成，只生成结构化内容\n\n```bash\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image\n```\n\n### 方式三：指定单张或多张宣传图\n\n```bash\n# 单张宣传图，只输出 cover.png\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 多张组图，总数包含封面，最多 9 张\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n```\n\n## 📁 文件结构\n\n```\nxiaohongshu-ai/\n├── SKILL.md                 # 技能文档\n├── scripts/\n│   ├── generate_xhs.py      # 自动内容 + AI 宣传图生成脚本\n│   ├── ai_services/         # 可扩展 AI 模型服务实现\n│   │   ├── chatgpt_service.py\n│   │   └── volcengine_service.py\n│   └── publish_xhs.py       # 明确要求发布时使用的发布脚本\n```\n\n## 🤖 自动生成参数\n\n### Python 脚本参数\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `description` | 用户输入的文字描述 | 必填或使用 `--input-file` |\n| `--input-file` | 从文件读取描述 | 无 |\n| `--output-dir`, `-o` | 输出目录 | `./output` |\n| `--provider` | 服务提供方 | `openai`/`chatgpt` 或 `volcengine`/`ark`，默认根据可用 Key 自动选择 |\n| `--text-model` | 主题和正文生成模型 | OpenAI 默认 `gpt-5-mini`，Ark 默认 `doubao-seed-2-0-pro-260215` |\n| `--image-size` | 宣传图尺寸 | OpenAI 默认 `1024x1536`，火山默认 `2K` |\n| `--image-quality` | OpenAI 宣传图质量 | `high` |\n| `--ark-base-url` | 火山引擎 Ark OpenAI 兼容接口地址 | `https://ark.cn-beijing.volces.com/api/v3` |\n| `--volcengine-watermark` | 火山图片生成时添加水印 | 关闭 |\n| `--skip-image` | 不调用图片模型，只生成 `manifest.json` | 关闭 |\n| `--image-count` | 目标输出图片总数，包含封面；单张宣传图使用 `1` | 不限制，按内容自动生成 |\n\n### 常用命令\n\n```bash\n# 自动生成宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output\n\n# 生成单张宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 生成 5 张组图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n\n# 从文件读取需求描述\npython3 scripts/generate_xhs.py --input-file brief.txt -o ./output\n\n# 指定文案模型\npython3 scripts/generate_xhs.py \"你的描述\" --text-model gpt-5-mini\n\n# 使用火山引擎 Ark 文生图\npython3 scripts/generate_xhs.py \"你的描述\" \\\n  --provider volcengine \\\n  --image-size 2K\n```\n\n## 📤 发布参数\n\n发布是独立步骤，只能在用户明确要求”发布到小红书”时执行。\n\n```bash\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc “笔记描述 #标签 1 #标签 2” \\\n  --images cover.png card_1.png card_2.png\n\n# 使用 glob 匹配所有图片（自然排序）\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc “笔记描述” \\\n  --images-glob “./output/*.png”\n\n# 从文件读取描述\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc-file ./output/desc.txt \\\n  --images cover.png\n\n# 验证模式（不实际发布）\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc “笔记描述” \\\n  --images cover.png \\\n  --dry-run\n\n# 设为公开笔记（默认为私密）\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc “笔记描述” \\\n  --images cover.png \\\n  --public\n\n# 定时发布\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc “笔记描述” \\\n  --images cover.png \\\n  --post-time “2024-01-01 12:00:00”\n```\n\n### 发布参数一览\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `--title`, `-t` | 笔记标题（不超过 20 字） | 必填 |\n| `--desc`, `-d` | 笔记描述/正文内容 | `””` |\n| `--desc-file` | 从 UTF-8 文件读取描述 | 无 |\n| `--images`, `-i` | 图片文件路径（空格分隔） | 无 |\n| `--images-glob` | 使用 glob 匹配图片，按自然序排序 | 无 |\n| `--require-image-count` | 要求图片数量必须等于该值 | 不限制 |\n| `--private` | 设为私密笔记（默认） | 默认开启 |\n| `--public` | 设为公开笔记 | 关闭 |\n| `--post-time` | 定时发布时间（`2024-01-01 12:00:00`） | 立即发布 |\n| `--dry-run` | 仅验证，不实际发布 | 关闭 |\n| `--verbose` | 显示底层库输出 | 关闭 |\n| `--debug-json` | 将发布结果写入 JSON 文件 | 无 |\n| `--yes`, `-y` | 兼容旧参数（当前脚本不再交互确认） | — |\n\n### 前置条件\n\n1. **配置 API Key（二选一即可）**：\n   - `export OPENAI_API_KEY=\"your_api_key\"`\n   - `export ARK_API_KEY=\"your_ark_api_key\"`\n\n2. **配置 Cookie**（发布时必须使用环境变量）：\n   - `export XHS_COOKIE=\"your_cookie_string\"`\n\n3. **获取 Cookie**：\n   - 浏览器登录 https://www.xiaohongshu.com\n   - F12 → Network → 查看请求头 Cookie\n   - 复制完整 Cookie 字符串\n\n## ⚠️ 安全注意事项（重要）\n\n### Cookie 与账号安全\n\n- **Cookie 相当于账号密码**：完整的小红书 Cookie 字符串是 Bearer Token，持有它的任何程序都能以您的身份操作账号（发布、编辑、删除内容等）。请像对待密码一样保护它。\n- **不要提交到版本控制**：请勿将 Cookie 写入 git 仓库中的任何文件。\n- **明文存储风险**：环境变量以明文保存 Cookie，请确保运行环境安全可控。\n- **定期轮换**：建议定期重新获取 Cookie；不再使用时及时在浏览器中退出登录使其失效。\n- **发布前需确认**：脚本在执行发布前会要求用户显式确认。如需跳过确认（批量/自动化场景），请使用 `--yes` 参数并自行承担风险。\n\n### 第三方 AI 服务数据传输\n\n- **文案生成**：您输入的产品描述、品牌信息和营销内容会发送到 OpenAI 或火山引擎的服务器用于生成文案。请避免在描述中包含商业机密、个人隐私或未公开的产品信息。\n- **图片生成**：生成的视觉提示词（visual_prompt）和卡片内容会发送到外部图片生成服务（gpt-image-2 或火山引擎 Ark）。这些服务提供方有各自的数据处理政策。\n- **了解服务条款**：使用前请确认所用 AI 服务提供方的数据隐私政策，评估数据传输是否符合您的合规要求。\n\n## ⚠️ 其他注意事项\n\n1. **图片规格**：\n   - 封面：1080×1440px（3:4）\n   - 正文卡片：1080×1440px（可动态调整）\n   - 最多 9 张图片\n\n2. **Cookie 有效期**：\n   - Cookie 有有效期，过期需重新获取\n   - 建议定期更新 `XHS_COOKIE`\n\n3. **发布限制**：\n   - 标题不超过 20 字\n   - 描述不超过 1000 字\n   - Tags 不超过 10 个\n\n4. **内容规范**：\n   - 遵守小红书社区规范\n   - 避免违规内容\n   - 原创内容优先\n\n## 🔧 依赖安装\n\n```bash\npip install openai xhs\n```\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn7114n7fws0zkhdbtpvy92sp182gqge\",\n  \"slug\": \"xiaohongshu-ai\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1779835261294\n}\n\nFile v1.0.4:skill-card.md\n\n## Description: <br>\n根据用户提示词判断生成单张或多张小红书宣传图，调用 OpenAI 或火山引擎 Ark 图像模型生成视觉素材，并且仅在用户明确要求时发布到小红书。 <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[youteacherasia](https://clawhub.ai/user/youteacherasia) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nContent creators, marketers, and agents use this skill to turn a brief into Xiaohongshu-ready titles, captions, tags, and promotional image sets. It can also publish generated notes when the user explicitly requests publishing and provides valid account credentials. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can use sensitive Xiaohongshu account cookies for publishing. <br>\nMitigation: Store XHS_COOKIE only in a controlled environment, rotate it regularly, and run publishing commands only after confirming the target account and post visibility. <br>\nRisk: Prompts and derived marketing content may be sent to configured external AI providers. <br>\nMitigation: Use non-sensitive briefs unless the selected provider and deployment environment are approved for the data being processed. <br>\nRisk: Publishing behavior may be misunderstood if the user has not verified the exact command flow. <br>\nMitigation: Use dry-run or local review workflows first, and publish only when the user explicitly requests publication. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill listing](https://clawhub.ai/youteacherasia/xiaohongshu-ai) <br>\n- [Xiaohongshu](https://www.xiaohongshu.com) <br>\n- [Volcengine Ark API endpoint](https://ark.cn-beijing.volces.com/api/v3) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with shell commands; runtime artifacts include PNG images and manifest JSON.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Generated image sets are limited to Xiaohongshu-style cover and card images, normally up to nine images.] <br>\n\n## Skill Version(s): <br>\n1.0.4 (source: frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.3: 8 files, 17691 bytes\n\nFiles: scripts/ai_services/__init__.py (40b), scripts/ai_services/chatgpt_service.py (2973b), scripts/ai_services/volcengine_service.py (3986b), scripts/generate_xhs.py (10150b), scripts/publish_xhs.py (10317b), skill-card.md (3044b), SKILL.md (11363b), _meta.json (133b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: xiaohongshu-ai\nversion: 1.0.3\ndescription: 小红书 AI 宣传图和图文笔记技能 - 根据用户提示词判断生成单张或多张宣传图，调用 gpt-image-2 或火山引擎 Ark 文生图模型生成视觉素材并合成小红书图片；仅在用户明确要求发布到小红书时才执行发布。\nhomepage: https://www.xiaohongshu.com\nauthor: OpenClaw Community\nmetadata: {\"openclaw\":{\"emoji\":\"📕\",\"primaryEnv\":\"XHS_COOKIE\",\"category\":\"social-media\"}}\n---\n\n# 小红书 AI 宣传图和图文笔记技能\n\n> 一体化工作流：理解用户意图 → 主题和文案生成 → AI 图片模型直接生成单张或多张宣传图 → 按需发布\n\n## 🎯 使用场景\n\n- 用户需要创建小红书宣传图、封面图、产品推广图或图文笔记时\n- 用户只提供一段产品、服务、活动、知识点或个人经历描述，需要自动转成小红书图文内容\n- 需要 AI 直接生成贴合主题的单张海报或多张组图\n- 批量创作多条笔记素材\n\n## 🧭 意图判定与执行规则\n\n先根据用户提示词判断目标，再选择生成和发布动作：\n\n- **只生成不发布是默认行为**。用户没有明确说“发布到小红书”“帮我发小红书”“生成并发布”“发到小红书账号”等发布意图时，只生成图片和文案，不运行 `scripts/publish_xhs.py`。\n- **只有明确要求发布到小红书才发布**。即使生成了标题、描述和 Tags，也不能自动发布；发布前必须能从用户原话中判断出发布意图。\n- **单张宣传图**：用户说“一张”“单张”“封面”“海报”“主图”“宣传图”且没有要求组图时，生成一张主宣传图/封面图。\n- **多张宣传图**：用户说“多张”“组图”“轮播”“N 张”“一套”“系列图”时，按用户指定数量生成；未指定数量时生成封面 + 3-5 张正文卡片，总数不超过 9 张。\n- **图文笔记**：用户要求“小红书笔记”“种草文”“发布文案”“带正文分页”时，生成封面、正文卡片、发布描述和 Tags。\n- **发布内容来源**：发布时使用生成目录里的 `manifest.json` 读取标题和 `publish_desc`，图片按 `cover.png`、`card_*.png` 顺序上传，最多 9 张。\n\n执行顺序：\n\n1. 理解用户提示词，确定主题、受众、卖点、语气、是否单张/多张、是否发布。\n2. 调用 `gpt-image-2` 或火山引擎 Ark 文生图模型直接生成贴合主题的小红书规格宣传图。\n3. 保存 `cover.png` / `card_*.png` 和 `manifest.json`。\n4. 仅当用户明确要求发布到小红书时，再运行发布脚本。\n\n## ✨ 核心功能\n\n### 1️⃣ 智能内容创作\n根据用户输入自动生成：\n- **标题**：不超过 20 字，吸引眼球，制造好奇心\n- **主题**：自动选择适合的视觉主题\n- **正文分页**：多图时按卡片天然拆页，短句、强重点、适量 Emoji\n- **发布文案**：生成描述和 SEO Tags\n\n### 2️⃣ AI 宣传图生成\n- 默认根据可用 Key 自动选择图片提供方：`OPENAI_API_KEY` 走 OpenAI，`ARK_API_KEY` 走火山引擎 Ark\n- OpenAI 图片默认调用 `gpt-image-2`\n- 火山图片默认调用 `doubao-seedream-4-5-251128`\n- 火山文案默认调用 `doubao-seed-2-0-pro-260215`，可用 `--text-model` 切换\n- 直接生成竖版、无 Logo、无水印的最终宣传图\n- 单张输出 `cover.png`，多张输出 `cover.png` + `card_*.png`\n\n### 3️⃣ 图片输出\n- **封面图**：3:4 比例，默认 1024×1536px\n- **正文图**：多张宣传图自动拆页，最多 9 张\n\n### 4️⃣ 明确授权后发布\n- 自动登录（使用 Cookie）\n- 上传图片（最多 9 张）\n- 设置标题、描述、Tags\n- 发布后返回笔记链接\n- 不允许在用户未明确要求发布时自动发布\n\n## 🚀 快速开始\n\n### 方式一：一句话自动生成（推荐）\n\n```bash\n# 只需要配置一种 API Key\nexport OPENAI_API_KEY=\"your_api_key\"\n# 或\nexport ARK_API_KEY=\"your_ark_api_key\"\n\npython3 scripts/generate_xhs.py \\\n  \"给 蒙语 AI 翻译 API 写一篇小红书推广笔记，突出一个 API Key 搞定翻译、OCR 和语音识别\" \\\n  -o ./output\n```\n\n生成结果：\n\n```text\noutput/\n├── manifest.json              # 结构化标题、主题、发布文案、Tags 和图片路径\n├── cover.png\n└── card_*.png\n```\n\n### 方式二：跳过图片生成，只生成结构化内容\n\n```bash\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image\n```\n\n### 方式三：指定单张或多张宣传图\n\n```bash\n# 单张宣传图，只输出 cover.png\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 多张组图，总数包含封面，最多 9 张\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n```\n\n## 📁 文件结构\n\n```\nxiaohongshu-ai/\n├── SKILL.md                 # 技能文档\n├── scripts/\n│   ├── generate_xhs.py      # 自动内容 + AI 宣传图生成脚本\n│   ├── ai_services/         # 可扩展 AI 模型服务实现\n│   │   ├── chatgpt_service.py\n│   │   └── volcengine_service.py\n│   └── publish_xhs.py       # 明确要求发布时使用的发布脚本\n```\n\n## 🤖 自动生成参数\n\n### Python 脚本参数\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `description` | 用户输入的文字描述 | 必填或使用 `--input-file` |\n| `--input-file` | 从文件读取描述 | 无 |\n| `--output-dir`, `-o` | 输出目录 | `./output` |\n| `--provider` | 服务提供方 | `openai`/`chatgpt` 或 `volcengine`/`ark`，默认根据可用 Key 自动选择 |\n| `--text-model` | 主题和正文生成模型 | OpenAI 默认 `gpt-5-mini`，Ark 默认 `doubao-seed-2-0-pro-260215` |\n| `--image-size` | 宣传图尺寸 | OpenAI 默认 `1024x1536`，火山默认 `2K` |\n| `--image-quality` | OpenAI 宣传图质量 | `high` |\n| `--ark-base-url` | 火山引擎 Ark OpenAI 兼容接口地址 | `https://ark.cn-beijing.volces.com/api/v3` |\n| `--volcengine-watermark` | 火山图片生成时添加水印 | 关闭 |\n| `--skip-image` | 不调用图片模型，只生成 `manifest.json` | 关闭 |\n| `--image-count` | 目标输出图片总数，包含封面；单张宣传图使用 `1` | 不限制，按内容自动生成 |\n\n### 常用命令\n\n```bash\n# 自动生成宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output\n\n# 生成单张宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 生成 5 张组图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n\n# 从文件读取需求描述\npython3 scripts/generate_xhs.py --input-file brief.txt -o ./output\n\n# 指定文案模型\npython3 scripts/generate_xhs.py \"你的描述\" --text-model gpt-5-mini\n\n# 使用火山引擎 Ark 文生图\npython3 scripts/generate_xhs.py \"你的描述\" \\\n  --provider volcengine \\\n  --image-size 2K\n```\n\n## 📤 发布参数\n\n发布是独立步骤，只能在用户明确要求”发布到小红书”时执行。\n\n```bash\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc “笔记描述 #标签 1 #标签 2” \\\n  --images cover.png card_1.png card_2.png\n\n# 使用 glob 匹配所有图片（自然排序）\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc “笔记描述” \\\n  --images-glob “./output/*.png”\n\n# 从文件读取描述\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc-file ./output/desc.txt \\\n  --images cover.png\n\n# 验证模式（不实际发布）\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc “笔记描述” \\\n  --images cover.png \\\n  --dry-run\n\n# 设为公开笔记（默认为私密）\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc “笔记描述” \\\n  --images cover.png \\\n  --public\n\n# 定时发布\npython3 scripts/publish_xhs.py \\\n  --title “笔记标题” \\\n  --desc “笔记描述” \\\n  --images cover.png \\\n  --post-time “2024-01-01 12:00:00”\n```\n\n### 发布参数一览\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `--title`, `-t` | 笔记标题（不超过 20 字） | 必填 |\n| `--desc`, `-d` | 笔记描述/正文内容 | `””` |\n| `--desc-file` | 从 UTF-8 文件读取描述 | 无 |\n| `--images`, `-i` | 图片文件路径（空格分隔） | 无 |\n| `--images-glob` | 使用 glob 匹配图片，按自然序排序 | 无 |\n| `--require-image-count` | 要求图片数量必须等于该值 | 不限制 |\n| `--private` | 设为私密笔记（默认） | 默认开启 |\n| `--public` | 设为公开笔记 | 关闭 |\n| `--post-time` | 定时发布时间（`2024-01-01 12:00:00`） | 立即发布 |\n| `--dry-run` | 仅验证，不实际发布 | 关闭 |\n| `--verbose` | 显示底层库输出 | 关闭 |\n| `--debug-json` | 将发布结果写入 JSON 文件 | 无 |\n| `--yes`, `-y` | 兼容旧参数（当前脚本不再交互确认） | — |\n\n### 前置条件\n\n1. **配置 API Key（二选一即可）**：\n   - `export OPENAI_API_KEY=\"your_api_key\"`\n   - `export ARK_API_KEY=\"your_ark_api_key\"`\n\n2. **配置 Cookie**（发布时必须使用环境变量）：\n   - `export XHS_COOKIE=\"your_cookie_string\"`\n\n3. **获取 Cookie**：\n   - 浏览器登录 https://www.xiaohongshu.com\n   - F12 → Network → 查看请求头 Cookie\n   - 复制完整 Cookie 字符串\n\n## ⚠️ 安全注意事项（重要）\n\n### Cookie 与账号安全\n\n- **Cookie 相当于账号密码**：完整的小红书 Cookie 字符串是 Bearer Token，持有它的任何程序都能以您的身份操作账号（发布、编辑、删除内容等）。请像对待密码一样保护它。\n- **不要提交到版本控制**：请勿将 Cookie 写入 git 仓库中的任何文件。\n- **明文存储风险**：环境变量以明文保存 Cookie，请确保运行环境安全可控。\n- **定期轮换**：建议定期重新获取 Cookie；不再使用时及时在浏览器中退出登录使其失效。\n- **发布前需确认**：脚本在执行发布前会要求用户显式确认。如需跳过确认（批量/自动化场景），请使用 `--yes` 参数并自行承担风险。\n\n### 第三方 AI 服务数据传输\n\n- **文案生成**：您输入的产品描述、品牌信息和营销内容会发送到 OpenAI 或火山引擎的服务器用于生成文案。请避免在描述中包含商业机密、个人隐私或未公开的产品信息。\n- **图片生成**：生成的视觉提示词（visual_prompt）和卡片内容会发送到外部图片生成服务（gpt-image-2 或火山引擎 Ark）。这些服务提供方有各自的数据处理政策。\n- **了解服务条款**：使用前请确认所用 AI 服务提供方的数据隐私政策，评估数据传输是否符合您的合规要求。\n\n## ⚠️ 其他注意事项\n\n1. **图片规格**：\n   - 封面：1080×1440px（3:4）\n   - 正文卡片：1080×1440px（可动态调整）\n   - 最多 9 张图片\n\n2. **Cookie 有效期**：\n   - Cookie 有有效期，过期需重新获取\n   - 建议定期更新 `XHS_COOKIE`\n\n3. **发布限制**：\n   - 标题不超过 20 字\n   - 描述不超过 1000 字\n   - Tags 不超过 10 个\n\n4. **内容规范**：\n   - 遵守小红书社区规范\n   - 避免违规内容\n   - 原创内容优先\n\n## 🔧 依赖安装\n\n```bash\npip install openai xhs\n```\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7114n7fws0zkhdbtpvy92sp182gqge\",\n  \"slug\": \"xiaohongshu-ai\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1779831293645\n}\n\nFile v1.0.3:skill-card.md\n\n## Description: <br>\nCreates Xiaohongshu promotional images and note copy from a user brief, using OpenAI or Volcengine Ark models, and can publish to Xiaohongshu only when explicitly requested. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[youteacherasia](https://clawhub.ai/user/youteacherasia) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal creators, marketers, and agent operators use this skill to turn a product, service, activity, knowledge point, or personal story brief into Xiaohongshu-ready cover images, carousel cards, titles, descriptions, and tags. Operators may run the separate publishing script only after approving the exact content, account, visibility, and timing. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The publishing script can use XHS_COOKIE to act on the user's Xiaohongshu account. <br>\nMitigation: Run only in a controlled environment, keep XHS_COOKIE out of files and logs, and rotate or revoke the cookie when it is no longer needed. <br>\nRisk: Publishing may occur without an interactive confirmation prompt in the script. <br>\nMitigation: Use --dry-run first and do not execute publish_xhs.py until the exact title, description, images, visibility, and timing have been separately approved. <br>\nRisk: Prompts, brand details, and generated content may be sent to OpenAI or Volcengine Ark services. <br>\nMitigation: Avoid including secrets, personal data, or unreleased commercial information in prompts unless the chosen provider is approved for that data. <br>\nRisk: Generated promotional content may be inaccurate or unsuitable for Xiaohongshu publication. <br>\nMitigation: Review all generated copy, tags, and images for accuracy, rights, privacy, and platform policy compliance before publishing. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/youteacherasia/xiaohongshu-ai) <br>\n- [Publisher profile](https://clawhub.ai/user/youteacherasia) <br>\n- [Xiaohongshu website](https://www.xiaohongshu.com) <br>\n- [Volcengine Ark API base URL](https://ark.cn-beijing.volces.com/api/v3) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance, files] <br>\n**Output Format:** [Markdown guidance with shell commands plus generated JSON manifests and PNG image files.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Default behavior is generation without publishing; publishing uses XHS_COOKIE and should be preceded by dry-run validation and human review of title, description, images, visibility, and timing.] <br>\n\n## Skill Version(s): <br>\n1.0.3 (source: frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.2: 7 files, 15182 bytes\n\nFiles: scripts/ai_services/__init__.py (40b), scripts/ai_services/chatgpt_service.py (2973b), scripts/ai_services/volcengine_service.py (3986b), scripts/generate_xhs.py (10150b), scripts/publish_xhs.py (8271b), SKILL.md (9942b), _meta.json (133b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: xiaohongshu-ai\nversion: 1.0.2\ndescription: 小红书 AI 宣传图和图文笔记技能 - 根据用户提示词判断生成单张或多张宣传图，调用 gpt-image-2 或火山引擎 Ark 文生图模型生成视觉素材并合成小红书图片；仅在用户明确要求发布到小红书时才执行发布。\nhomepage: https://www.xiaohongshu.com\nauthor: OpenClaw Community\nmetadata: {\"openclaw\":{\"emoji\":\"📕\",\"primaryEnv\":\"XHS_COOKIE\",\"category\":\"social-media\"}}\n---\n\n# 小红书 AI 宣传图和图文笔记技能\n\n> 一体化工作流：理解用户意图 → 主题和文案生成 → AI 图片模型直接生成单张或多张宣传图 → 按需发布\n\n## 🎯 使用场景\n\n- 用户需要创建小红书宣传图、封面图、产品推广图或图文笔记时\n- 用户只提供一段产品、服务、活动、知识点或个人经历描述，需要自动转成小红书图文内容\n- 需要 AI 直接生成贴合主题的单张海报或多张组图\n- 批量创作多条笔记素材\n\n## 🧭 意图判定与执行规则\n\n先根据用户提示词判断目标，再选择生成和发布动作：\n\n- **只生成不发布是默认行为**。用户没有明确说“发布到小红书”“帮我发小红书”“生成并发布”“发到小红书账号”等发布意图时，只生成图片和文案，不运行 `scripts/publish_xhs.py`。\n- **只有明确要求发布到小红书才发布**。即使生成了标题、描述和 Tags，也不能自动发布；发布前必须能从用户原话中判断出发布意图。\n- **单张宣传图**：用户说“一张”“单张”“封面”“海报”“主图”“宣传图”且没有要求组图时，生成一张主宣传图/封面图。\n- **多张宣传图**：用户说“多张”“组图”“轮播”“N 张”“一套”“系列图”时，按用户指定数量生成；未指定数量时生成封面 + 3-5 张正文卡片，总数不超过 9 张。\n- **图文笔记**：用户要求“小红书笔记”“种草文”“发布文案”“带正文分页”时，生成封面、正文卡片、发布描述和 Tags。\n- **发布内容来源**：发布时使用生成目录里的 `manifest.json` 读取标题和 `publish_desc`，图片按 `cover.png`、`card_*.png` 顺序上传，最多 9 张。\n\n执行顺序：\n\n1. 理解用户提示词，确定主题、受众、卖点、语气、是否单张/多张、是否发布。\n2. 调用 `gpt-image-2` 或火山引擎 Ark 文生图模型直接生成贴合主题的小红书规格宣传图。\n3. 保存 `cover.png` / `card_*.png` 和 `manifest.json`。\n4. 仅当用户明确要求发布到小红书时，再运行发布脚本。\n\n## ✨ 核心功能\n\n### 1️⃣ 智能内容创作\n根据用户输入自动生成：\n- **标题**：不超过 20 字，吸引眼球，制造好奇心\n- **主题**：自动选择适合的视觉主题\n- **正文分页**：多图时按卡片天然拆页，短句、强重点、适量 Emoji\n- **发布文案**：生成描述和 SEO Tags\n\n### 2️⃣ AI 宣传图生成\n- 默认根据可用 Key 自动选择图片提供方：`OPENAI_API_KEY` 走 OpenAI，`ARK_API_KEY` 走火山引擎 Ark\n- OpenAI 图片默认调用 `gpt-image-2`\n- 火山图片默认调用 `doubao-seedream-4-5-251128`\n- 火山文案默认调用 `doubao-seed-2-0-pro-260215`，可用 `--text-model` 切换\n- 直接生成竖版、无 Logo、无水印的最终宣传图\n- 单张输出 `cover.png`，多张输出 `cover.png` + `card_*.png`\n\n### 3️⃣ 图片输出\n- **封面图**：3:4 比例，默认 1024×1536px\n- **正文图**：多张宣传图自动拆页，最多 9 张\n\n### 4️⃣ 明确授权后发布\n- 自动登录（使用 Cookie）\n- 上传图片（最多 9 张）\n- 设置标题、描述、Tags\n- 发布后返回笔记链接\n- 不允许在用户未明确要求发布时自动发布\n\n## 🚀 快速开始\n\n### 方式一：一句话自动生成（推荐）\n\n```bash\n# 只需要配置一种 API Key\nexport OPENAI_API_KEY=\"your_api_key\"\n# 或\nexport ARK_API_KEY=\"your_ark_api_key\"\n\npython3 scripts/generate_xhs.py \\\n  \"给 蒙语 AI 翻译 API 写一篇小红书推广笔记，突出一个 API Key 搞定翻译、OCR 和语音识别\" \\\n  -o ./output\n```\n\n生成结果：\n\n```text\noutput/\n├── manifest.json              # 结构化标题、主题、发布文案、Tags 和图片路径\n├── cover.png\n└── card_*.png\n```\n\n### 方式二：跳过图片生成，只生成结构化内容\n\n```bash\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image\n```\n\n### 方式三：指定单张或多张宣传图\n\n```bash\n# 单张宣传图，只输出 cover.png\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 多张组图，总数包含封面，最多 9 张\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n```\n\n## 📁 文件结构\n\n```\nxiaohongshu-ai/\n├── SKILL.md                 # 技能文档\n├── scripts/\n│   ├── generate_xhs.py      # 自动内容 + AI 宣传图生成脚本\n│   ├── ai_services/         # 可扩展 AI 模型服务实现\n│   │   ├── chatgpt_service.py\n│   │   └── volcengine_service.py\n│   └── publish_xhs.py       # 明确要求发布时使用的发布脚本\n```\n\n## 🤖 自动生成参数\n\n### Python 脚本参数\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `description` | 用户输入的文字描述 | 必填或使用 `--input-file` |\n| `--input-file` | 从文件读取描述 | 无 |\n| `--output-dir`, `-o` | 输出目录 | `./output` |\n| `--provider` | 服务提供方 | `openai`/`chatgpt` 或 `volcengine`/`ark`，默认根据可用 Key 自动选择 |\n| `--text-model` | 主题和正文生成模型 | OpenAI 默认 `gpt-5-mini`，Ark 默认 `doubao-seed-2-0-pro-260215` |\n| `--image-size` | 宣传图尺寸 | OpenAI 默认 `1024x1536`，火山默认 `2K` |\n| `--image-quality` | OpenAI 宣传图质量 | `high` |\n| `--ark-base-url` | 火山引擎 Ark OpenAI 兼容接口地址 | `https://ark.cn-beijing.volces.com/api/v3` |\n| `--volcengine-watermark` | 火山图片生成时添加水印 | 关闭 |\n| `--skip-image` | 不调用图片模型，只生成 `manifest.json` | 关闭 |\n| `--image-count` | 目标输出图片总数，包含封面；单张宣传图使用 `1` | 不限制，按内容自动生成 |\n\n### 常用命令\n\n```bash\n# 自动生成宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output\n\n# 生成单张宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 生成 5 张组图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n\n# 从文件读取需求描述\npython3 scripts/generate_xhs.py --input-file brief.txt -o ./output\n\n# 指定文案模型\npython3 scripts/generate_xhs.py \"你的描述\" --text-model gpt-5-mini\n\n# 使用火山引擎 Ark 文生图\npython3 scripts/generate_xhs.py \"你的描述\" \\\n  --provider volcengine \\\n  --image-size 2K\n```\n\n## 📤 发布参数\n\n发布是独立步骤，只能在用户明确要求“发布到小红书”时执行。\n\n```bash\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述 #标签 1 #标签 2\" \\\n  --images cover.png card_1.png card_2.png\n\n# 跳过确认提示（批量/自动化场景）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images cover.png \\\n  --yes\n```\n\n### 前置条件\n\n1. **配置 API Key（二选一即可）**：\n   - `export OPENAI_API_KEY=\"your_api_key\"`\n   - `export ARK_API_KEY=\"your_ark_api_key\"`\n\n2. **配置 Cookie**（发布时二选一）：\n   - 环境变量：`export XHS_COOKIE=\"your_cookie_string\"`\n   - 文件存储：`memory/xhs-cookie.md`（推荐）\n\n3. **获取 Cookie**：\n   - 浏览器登录 https://www.xiaohongshu.com\n   - F12 → Network → 查看请求头 Cookie\n   - 复制完整 Cookie 字符串\n\n## ⚠️ 安全注意事项（重要）\n\n### Cookie 与账号安全\n\n- **Cookie 相当于账号密码**：完整的小红书 Cookie 字符串是 Bearer Token，持有它的任何程序都能以您的身份操作账号（发布、编辑、删除内容等）。请像对待密码一样保护它。\n- **不要提交到版本控制**：请勿将 Cookie 写入 git 仓库中的任何文件，包括 `memory/xhs-cookie.md`（应在 `.gitignore` 中排除）。\n- **明文存储风险**：环境变量和本地文件均以明文保存 Cookie，请确保运行环境和文件权限安全可控。\n- **定期轮换**：建议定期重新获取 Cookie；不再使用时及时在浏览器中退出登录使其失效。\n- **发布前需确认**：脚本在执行发布前会要求用户显式确认。如需跳过确认（批量/自动化场景），请使用 `--yes` 参数并自行承担风险。\n\n### 第三方 AI 服务数据传输\n\n- **文案生成**：您输入的产品描述、品牌信息和营销内容会发送到 OpenAI 或火山引擎的服务器用于生成文案。请避免在描述中包含商业机密、个人隐私或未公开的产品信息。\n- **图片生成**：生成的视觉提示词（visual_prompt）和卡片内容会发送到外部图片生成服务（gpt-image-2 或火山引擎 Ark）。这些服务提供方有各自的数据处理政策。\n- **了解服务条款**：使用前请确认所用 AI 服务提供方的数据隐私政策，评估数据传输是否符合您的合规要求。\n\n## ⚠️ 其他注意事项\n\n1. **图片规格**：\n   - 封面：1080×1440px（3:4）\n   - 正文卡片：1080×1440px（可动态调整）\n   - 最多 9 张图片\n\n2. **Cookie 有效期**：\n   - Cookie 有有效期，过期需重新获取\n   - 建议定期更新 `memory/xhs-cookie.md`\n\n3. **发布限制**：\n   - 标题不超过 20 字\n   - 描述不超过 1000 字\n   - Tags 不超过 10 个\n\n4. **内容规范**：\n   - 遵守小红书社区规范\n   - 避免违规内容\n   - 原创内容优先\n\n## 🔧 依赖安装\n\n```bash\npip install openai requests\n```\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7114n7fws0zkhdbtpvy92sp182gqge\",\n  \"slug\": \"xiaohongshu-ai\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1779748205254\n}\n\nArchive v1.0.1: 7 files, 13936 bytes\n\nFiles: scripts/ai_services/__init__.py (40b), scripts/ai_services/chatgpt_service.py (2973b), scripts/ai_services/volcengine_service.py (3986b), scripts/generate_xhs.py (10150b), scripts/publish_xhs.py (7244b), SKILL.md (8180b), _meta.json (133b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: xiaohongshu-ai\nversion: 1.0.1\ndescription: 小红书 AI 宣传图和图文笔记技能 - 根据用户提示词判断生成单张或多张宣传图，调用 gpt-image-2 或火山引擎 Ark 文生图模型生成视觉素材并合成小红书图片；仅在用户明确要求发布到小红书时才执行发布。\nhomepage: https://www.xiaohongshu.com\nauthor: OpenClaw Community\nmetadata: {\"openclaw\":{\"emoji\":\"📕\",\"primaryEnv\":\"XHS_COOKIE\",\"category\":\"social-media\"}}\n---\n\n# 小红书 AI 宣传图和图文笔记技能\n\n> 一体化工作流：理解用户意图 → 主题和文案生成 → AI 图片模型直接生成单张或多张宣传图 → 按需发布\n\n## 🎯 使用场景\n\n- 用户需要创建小红书宣传图、封面图、产品推广图或图文笔记时\n- 用户只提供一段产品、服务、活动、知识点或个人经历描述，需要自动转成小红书图文内容\n- 需要 AI 直接生成贴合主题的单张海报或多张组图\n- 批量创作多条笔记素材\n\n## 🧭 意图判定与执行规则\n\n先根据用户提示词判断目标，再选择生成和发布动作：\n\n- **只生成不发布是默认行为**。用户没有明确说\"发布到小红书\"\"帮我发小红书\"\"生成并发布\"\"发到小红书账号\"等发布意图时，只生成图片和文案，不运行 `scripts/publish_xhs.py`。\n- **只有明确要求发布到小红书才发布**。即使生成了标题、描述和 Tags，也不能自动发布；发布前必须能从用户原话中判断出发布意图。\n- **单张宣传图**：用户说\"一张\"\"单张\"\"封面\"\"海报\"\"主图\"\"宣传图\"且没有要求组图时，生成一张主宣传图/封面图。\n- **多张宣传图**：用户说\"多张\"\"组图\"\"轮播\"\"N 张\"\"一套\"\"系列图\"时，按用户指定数量生成；未指定数量时生成封面 + 3-5 张正文卡片，总数不超过 9 张。\n- **图文笔记**：用户要求\"小红书笔记\"\"种草文\"\"发布文案\"\"带正文分页\"时，生成封面、正文卡片、发布描述和 Tags。\n- **发布内容来源**：发布时使用生成目录里的 `manifest.json` 读取标题和 `publish_desc`，图片按 `cover.png`、`card_*.png` 顺序上传，最多 9 张。\n\n执行顺序：\n\n1. 理解用户提示词，确定主题、受众、卖点、语气、是否单张/多张、是否发布。\n2. 调用 `gpt-image-2` 或火山引擎 Ark 文生图模型直接生成贴合主题的小红书规格宣传图。\n3. 保存 `cover.png` / `card_*.png` 和 `manifest.json`。\n4. 仅当用户明确要求发布到小红书时，再运行发布脚本。\n\n## ✨ 核心功能\n\n### 1️⃣ 智能内容创作\n根据用户输入自动生成：\n- **标题**：不超过 20 字，吸引眼球，制造好奇心\n- **主题**：自动选择适合的视觉主题\n- **正文分页**：多图时按卡片天然拆页，短句、强重点、适量 Emoji\n- **发布文案**：生成描述和 SEO Tags\n\n### 2️⃣ AI 宣传图生成\n- 默认根据可用 Key 自动选择图片提供方：`OPENAI_API_KEY` 走 OpenAI，`ARK_API_KEY` 走火山引擎 Ark\n- OpenAI 图片默认调用 `gpt-image-2`\n- 火山图片默认调用 `doubao-seedream-4-5-251128`\n- 火山文案默认调用 `doubao-seed-2-0-pro-260215`，可用 `--text-model` 切换\n- 直接生成竖版、无 Logo、无水印的最终宣传图\n- 单张输出 `cover.png`，多张输出 `cover.png` + `card_*.png`\n\n### 3️⃣ 图片输出\n- **封面图**：3:4 比例，默认 1024×1536px\n- **正文图**：多张宣传图自动拆页，最多 9 张\n\n### 4️⃣ 明确授权后发布\n- 自动登录（使用 Cookie）\n- 上传图片（最多 9 张）\n- 设置标题、描述、Tags\n- 发布后返回笔记链接\n- 不允许在用户未明确要求发布时自动发布\n\n## 🚀 快速开始\n\n### 方式一：一句话自动生成（推荐）\n\n```bash\n# 只需要配置一种 API Key\nexport OPENAI_API_KEY=\"your_api_key\"\n# 或\nexport ARK_API_KEY=\"your_ark_api_key\"\n\npython3 scripts/generate_xhs.py \\\n  \"给 蒙语 AI 翻译 API 写一篇小红书推广笔记，突出一个 API Key 搞定翻译、OCR 和语音识别\" \\\n  -o ./output\n```\n\n生成结果：\n\n```text\noutput/\n├── manifest.json              # 结构化标题、主题、发布文案、Tags 和图片路径\n├── cover.png\n└── card_*.png\n```\n\n### 方式二：跳过图片生成，只生成结构化内容\n\n```bash\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image\n```\n\n### 方式三：指定单张或多张宣传图\n\n```bash\n# 单张宣传图，只输出 cover.png\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 多张组图，总数包含封面，最多 9 张\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n```\n\n## 📁 文件结构\n\n```\nxiaohongshu-ai/\n├── SKILL.md                 # 技能文档\n├── scripts/\n│   ├── generate_xhs.py      # 自动内容 + AI 宣传图生成脚本\n│   ├── ai_services/         # 可扩展 AI 模型服务实现\n│   │   ├── chatgpt_service.py\n│   │   └── volcengine_service.py\n│   └── publish_xhs.py       # 明确要求发布时使用的发布脚本\n```\n\n## 🤖 自动生成参数\n\n### Python 脚本参数\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `description` | 用户输入的文字描述 | 必填或使用 `--input-file` |\n| `--input-file` | 从文件读取描述 | 无 |\n| `--output-dir`, `-o` | 输出目录 | `./output` |\n| `--provider` | 服务提供方 | `openai`/`chatgpt` 或 `volcengine`/`ark`，默认根据可用 Key 自动选择 |\n| `--text-model` | 主题和正文生成模型 | OpenAI 默认 `gpt-5-mini`，Ark 默认 `doubao-seed-2-0-pro-260215` |\n| `--image-size` | 宣传图尺寸 | OpenAI 默認 `1024x1536`，火山默认 `2K` |\n| `--image-quality` | OpenAI 宣传图质量 | `high` |\n| `--ark-base-url` | 火山引擎 Ark OpenAI 兼容接口地址 | `https://ark.cn-beijing.volces.com/api/v3` |\n| `--volcengine-watermark` | 火山图片生成时添加水印 | 关闭 |\n| `--skip-image` | 不调用图片模型，只生成 `manifest.json` | 关闭 |\n| `--image-count` | 目标输出图片总数，包含封面；单张宣传图使用 `1` | 不限制，按内容自动生成 |\n\n### 常用命令\n\n```bash\n# 自动生成宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output\n\n# 生成单张宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 生成 5 张组图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n\n# 从文件读取需求描述\npython3 scripts/generate_xhs.py --input-file brief.txt -o ./output\n\n# 指定文案模型\npython3 scripts/generate_xhs.py \"你的描述\" --text-model gpt-5-mini\n\n# 使用火山引擎 Ark 文生图\npython3 scripts/generate_xhs.py \"你的描述\" \\\n  --provider volcengine \\\n  --image-size 2K\n```\n\n## 📤 发布参数\n\n发布是独立步骤，只能在用户明确要求\"发布到小红书\"时执行。\n\n```bash\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述 #标签 1 #标签 2\" \\\n  --images cover.png card_1.png card_2.png\n```\n\n### 前置条件\n\n1. **配置 API Key（二选一即可）**：\n   - `export OPENAI_API_KEY=\"your_api_key\"`\n   - `export ARK_API_KEY=\"your_ark_api_key\"`\n\n2. **配置 Cookie**（发布时二选一）：\n   - 环境変量：`export XHS_COOKIE=\"your_cookie_string\"`\n   - ファイル保存：`memory/xhs-cookie.md`（推荐）\n\n3. **获取 Cookie**：\n   - 浏览器登录 https://www.xiaohongshu.com\n   - F12 → Network → 查看请求头 Cookie\n   - 复制完整 Cookie 字符串\n\n## ⚠️ 注意事项\n\n1. **图片规格**：\n   - 封面：1080×1440px（3:4）\n   - 正文卡片：1080×1440px（可动态调整）\n   - 最多 9 张图片\n\n2. **Cookie 有效期**：\n   - Cookie 有有效期，过期需重新获取\n   - 建议定期更新 `memory/xhs-cookie.md`\n\n3. **发布限制**：\n   - 标题不超过 20 字\n   - 描述不超过 1000 字\n   - Tags 不超过 10 个\n\n4. **内容规范**：\n   - 遵守小红书社区规范\n   - 避免违规内容\n   - 原创内容优先\n\n## 🔧 依赖安装\n\n```bash\npip install openai requests\n```\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7114n7fws0zkhdbtpvy92sp182gqge\",\n  \"slug\": \"xiaohongshu-ai\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1779742703577\n}\n\nArchive v1.0.0: 5 files, 11828 bytes\n\nFiles: README.md (2585b), scripts/generate_xhs.py (10683b), scripts/publish_xhs.py (7244b), SKILL.md (7238b), _meta.json (133b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: xiaohongshu-ai\nversion: 1.0.0\ndescription: 小红书 AI 宣传图和图文笔记技能 - 根据用户提示词判断生成单张或多张宣传图，调用 gpt-image-2 生成视觉素材并合成小红书图片；仅在用户明确要求发布到小红书时才执行发布。\nhomepage: https://www.xiaohongshu.com\nauthor: OpenClaw Community\nmetadata: {\"openclaw\":{\"emoji\":\"📕\",\"primaryEnv\":\"XHS_COOKIE\",\"category\":\"social-media\"}}\n---\n\n# 小红书 AI 宣传图和图文笔记技能\n\n> 一体化工作流：理解用户意图 → 主题和文案生成 → gpt-image-2 直接生成单张或多张宣传图 → 按需发布\n\n## 🎯 使用场景\n\n- 用户需要创建小红书宣传图、封面图、产品推广图或图文笔记时\n- 用户只提供一段产品、服务、活动、知识点或个人经历描述，需要自动转成小红书图文内容\n- 需要 AI 直接生成贴合主题的单张海报或多张组图\n- 批量创作多条笔记素材\n\n## 🧭 意图判定与执行规则\n\n先根据用户提示词判断目标，再选择生成和发布动作：\n\n- **只生成不发布是默认行为**。用户没有明确说“发布到小红书”“帮我发小红书”“生成并发布”“发到小红书账号”等发布意图时，只生成图片和文案，不运行 `scripts/publish_xhs.py`。\n- **只有明确要求发布到小红书才发布**。即使生成了标题、描述和 Tags，也不能自动发布；发布前必须能从用户原话中判断出发布意图。\n- **单张宣传图**：用户说“一张”“单张”“封面”“海报”“主图”“宣传图”且没有要求组图时，生成一张主宣传图/封面图。\n- **多张宣传图**：用户说“多张”“组图”“轮播”“N 张”“一套”“系列图”时，按用户指定数量生成；未指定数量时生成封面 + 3-5 张正文卡片，总数不超过 9 张。\n- **图文笔记**：用户要求“小红书笔记”“种草文”“发布文案”“带正文分页”时，生成封面、正文卡片、发布描述和 Tags。\n- **发布内容来源**：发布时使用生成目录里的 `manifest.json` 读取标题和 `publish_desc`，图片按 `cover.png`、`card_*.png` 顺序上传，最多 9 张。\n\n执行顺序：\n\n1. 理解用户提示词，确定主题、受众、卖点、语气、是否单张/多张、是否发布。\n2. 调用 `gpt-image-2` 直接生成贴合主题的小红书规格宣传图。\n3. 保存 `cover.png` / `card_*.png` 和 `manifest.json`。\n4. 仅当用户明确要求发布到小红书时，再运行发布脚本。\n\n## ✨ 核心功能\n\n### 1️⃣ 智能内容创作\n根据用户输入自动生成：\n- **标题**：不超过 20 字，吸引眼球，制造好奇心\n- **主题**：自动选择适合的视觉主题\n- **正文分页**：多图时按卡片天然拆页，短句、强重点、适量 Emoji\n- **发布文案**：生成描述和 SEO Tags\n\n### 2️⃣ AI 宣传图生成\n- 默认调用 `gpt-image-2`\n- 直接生成竖版、无 Logo、无水印的最终宣传图\n- 单张输出 `cover.png`，多张输出 `cover.png` + `card_*.png`\n\n### 3️⃣ 图片输出\n- **封面图**：3:4 比例，默认 1024×1536px\n- **正文图**：多张宣传图自动拆页，最多 9 张\n\n### 4️⃣ 明确授权后发布\n- 自动登录（使用 Cookie）\n- 上传图片（最多 9 张）\n- 设置标题、描述、Tags\n- 发布后返回笔记链接\n- 不允许在用户未明确要求发布时自动发布\n\n## 🚀 快速开始\n\n### 方式一：一句话自动生成（推荐）\n\n```bash\n# 需要 OPENAI_API_KEY\nexport OPENAI_API_KEY=\"your_api_key\"\n\npython3 scripts/generate_xhs.py \\\n  \"给 蒙语 AI 翻译 API 写一篇小红书推广笔记，突出一个 API Key 搞定翻译、OCR 和语音识别\" \\\n  -o ./output\n```\n\n生成结果：\n\n```text\noutput/\n├── manifest.json              # 结构化标题、主题、发布文案、Tags 和图片路径\n├── cover.png\n└── card_*.png\n```\n\n### 方式二：跳过图片生成，只生成结构化内容\n\n```bash\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image\n```\n\n### 方式三：指定单张或多张宣传图\n\n```bash\n# 单张宣传图，只输出 cover.png\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 多张组图，总数包含封面，最多 9 张\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n```\n\n## 📁 文件结构\n\n```\nxiaohongshu-ai/\n├── SKILL.md                 # 技能文档\n├── scripts/\n│   ├── generate_xhs.py      # 自动内容 + AI 宣传图生成脚本\n│   └── publish_xhs.py       # 明确要求发布时使用的发布脚本\n```\n\n## 🤖 自动生成参数\n\n### Python 脚本参数\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `description` | 用户输入的文字描述 | 必填或使用 `--input-file` |\n| `--input-file` | 从文件读取描述 | 无 |\n| `--output-dir`, `-o` | 输出目录 | `./output` |\n| `--text-model` | 主题和正文生成模型 | `gpt-5-mini` 或 `XHS_TEXT_MODEL` |\n| `--image-model` | 宣传图生成模型 | `gpt-image-2` 或 `XHS_IMAGE_MODEL` |\n| `--image-size` | 宣传图尺寸 | `1024x1536` |\n| `--image-quality` | 宣传图质量 | `high` |\n| `--skip-image` | 不调用图片模型，只生成 `manifest.json` | 关闭 |\n| `--image-count` | 目标输出图片总数，包含封面；单张宣传图使用 `1` | 不限制，按内容自动生成 |\n\n### 常用命令\n\n```bash\n# 自动生成宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output\n\n# 生成单张宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 生成 5 张组图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n\n# 从文件读取需求描述\npython3 scripts/generate_xhs.py --input-file brief.txt -o ./output\n\n# 指定模型\npython3 scripts/generate_xhs.py \"你的描述\" --text-model gpt-5-mini --image-model gpt-image-2\n```\n\n## 📤 发布参数\n\n发布是独立步骤，只能在用户明确要求“发布到小红书”时执行。\n\n```bash\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述 #标签 1 #标签 2\" \\\n  --images cover.png card_1.png card_2.png\n```\n\n### 前置条件\n\n1. **配置 OpenAI API Key**：\n   - `export OPENAI_API_KEY=\"your_api_key\"`\n\n2. **配置 Cookie**（发布时二选一）：\n   - 环境变量：`export XHS_COOKIE=\"your_cookie_string\"`\n   - 文件存储：`memory/xhs-cookie.md`（推荐）\n\n3. **获取 Cookie**：\n   - 浏览器登录 https://www.xiaohongshu.com\n   - F12 → Network → 查看请求头 Cookie\n   - 复制完整 Cookie 字符串\n\n## ⚠️ 注意事项\n\n1. **图片规格**：\n   - 封面：1080×1440px（3:4）\n   - 正文卡片：1080×1440px（可动态调整）\n   - 最多 9 张图片\n\n2. **Cookie 有效期**：\n   - Cookie 有有效期，过期需重新获取\n   - 建议定期更新 `memory/xhs-cookie.md`\n\n3. **发布限制**：\n   - 标题不超过 20 字\n   - 描述不超过 1000 字\n   - Tags 不超过 10 个\n\n4. **内容规范**：\n   - 遵守小红书社区规范\n   - 避免违规内容\n   - 原创内容优先\n\n## 🔧 依赖安装\n\n```bash\npip install openai requests\n```\n\nFile v1.0.0:README.md\n\n# xiaohongshu-ai\n\n小红书 AI 宣传图和图文笔记 skill。根据用户提示词判断生成单张或多张宣传图，使用 `gpt-image-2` 直接生成图片；只有用户明确要求发布到小红书时才发布。\n\n## 如何使用这个 skill\n\n把这个目录安装到支持 skill 的工具或智能体环境后，在对话里直接描述你要做的小红书内容即可触发使用，例如：\n\n```text\n帮我给一个蒙语 AI 翻译 API 生成一套小红书推广图，突出一个 API Key 搞定翻译、OCR 和语音识别\n```\n\n常见说法：\n\n- `生成一张小红书宣传图`：只生成单张封面图。\n- `生成一套小红书组图` / `生成 5 张轮播图`：生成封面和多张正文图。\n- `写一篇小红书图文笔记`：生成图片、标题、正文分页、发布文案和 Tags。\n- `生成并发布到小红书`：在生成后继续发布；只有明确说要发布时才会发布。\n\n## 文件结构\n\n```text\nxiaohongshu-ai/\n├── SKILL.md\n└── scripts/\n    ├── generate_xhs.py\n    └── publish_xhs.py\n```\n\n## 依赖\n\n```bash\npip install openai requests\n```\n\n生成图片需要：\n\n```bash\nexport OPENAI_API_KEY=\"your_api_key\"\n```\n\n发布到小红书才需要：\n\n```bash\nexport XHS_COOKIE=\"your_cookie_string\"\n```\n\n也可以把 Cookie 放到 `memory/xhs-cookie.md`。\n\n## 生成宣传图\n\n```bash\npython3 scripts/generate_xhs.py \"给某个产品生成一张小红书宣传图\" -o ./output --image-count 1\n```\n\n生成多张组图：\n\n```bash\npython3 scripts/generate_xhs.py \"给某个产品生成一套小红书组图\" -o ./output --image-count 5\n```\n\n输出示例：\n\n```text\noutput/\n├── manifest.json\n├── cover.png\n├── card_1.png\n└── card_2.png\n```\n\n只生成结构化文案，不生成图片：\n\n```bash\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image\n```\n\n## 发布规则\n\n默认不发布。只有用户明确说“发布到小红书”“生成并发布”“帮我发小红书”等发布意图时，才运行发布脚本。\n\n```bash\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述 #标签\" \\\n  --images ./output/cover.png ./output/card_*.png\n```\n\n## 常用参数\n\n| 参数 | 说明 |\n| --- | --- |\n| `--image-count 1-9` | 目标输出图片总数，包含封面 |\n| `--image-model` | 图片模型，默认 `gpt-image-2` |\n| `--image-size` | 图片尺寸，默认 `1024x1536` |\n| `--image-quality` | 图片质量，默认 `high` |\n| `--text-model` | 文案模型，默认 `gpt-5-mini` |\n| `--skip-image` | 只生成 `manifest.json` |\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7114n7fws0zkhdbtpvy92sp182gqge\",\n  \"slug\": \"xiaohongshu-ai\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1779668806631\n}","readmeExcerpt":"Skill: xiaohongshu ｜小红书 AI 宣传图、图文笔记和视频发布技能 Owner: youteacher Summary: 小红书 AI 宣传图、图文笔记和视频发布技能 - 根据用户提示词生成单张或多张宣传图，并支持将用户提供的本地 MP4 视频发布为视频笔记；仅在用户明确要求发布到小红书时才执行发布。 Tags: latest:1.1.1 Version history: v1.1.1 | 2026-07-26T13:48:51.536Z | user 新增小红书视频笔记发布：支持本地 MP4、自定义封面、自动提取首帧、视频 dry-run 与参数校验；保留图文发布兼容性。调整发布包范围与配置提示，避免安全扫描误报。 v1.1.0 | 2026-07-26T13:45:47.562Z | user 新增小红书视频笔记发布：支持本地 MP4、自定义封面、自动提取首帧、视频 dry-run 与参数校验；保留图文发布","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"# 只需要配置一种 API Key\nexport OPENAI_API_KEY=\"your_api_key\"\n# 或\nexport ARK_API_KEY=\"your_ark_api_key\"\n\npython3 scripts/generate_xhs.py \\\n  \"给 蒙语 AI 翻译 API 写一篇小红书推广笔记，突出一个 API Key 搞定翻译、OCR 和语音识别\" \\\n  -o ./output"},{"language":"text","snippet":"output/\n├── manifest.json              # 结构化标题、主题、发布文案、Tags 和图片路径\n├── cover.png\n└── card_*.png"},{"language":"bash","snippet":"python3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image"},{"language":"bash","snippet":"# 单张宣传图，只输出 cover.png\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 多张组图，总数包含封面，最多 9 张\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5"},{"language":"text","snippet":"xiaohongshu-ai/\n├── SKILL.md                 # 技能文档\n├── scripts/\n│   ├── generate_xhs.py      # 自动内容 + AI 宣传图生成脚本\n│   ├── ai_services/         # 可扩展 AI 模型服务实现\n│   │   ├── chatgpt_service.py\n│   │   └── volcengine_service.py\n│   └── publish_xhs.py       # 明确要求发布时使用的图文/视频发布脚本"},{"language":"bash","snippet":"# 自动生成宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output\n\n# 生成单张宣传图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 生成 5 张组图\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n\n# 从文件读取需求描述\npython3 scripts/generate_xhs.py --input-file brief.txt -o ./output\n\n# 指定文案模型\npython3 scripts/generate_xhs.py \"你的描述\" --text-model gpt-5-mini\n\n# 使用火山引擎 Ark 文生图\npython3 scripts/generate_xhs.py \"你的描述\" \\\n  --provider volcengine \\\n  --image-size 2K"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"OpenClaw/SKILL.md","content":"---\nname: xiaohongshu-ai\nversion: 1.1.1\ndescription: 小红书 AI 宣传图、图文笔记和视频发布技能 - 根据用户提示词生成单张或多张宣传图，并支持将用户提供的本地 MP4 视频发布为视频笔记；仅在用户明确要求发布到小红书时才执行发布。\nhomepage: https://www.xiaohongshu.com\nauthor: OpenClaw Community\nmetadata: {\"openclaw\":{\"emoji\":\"📕\",\"primaryEnv\":\"XHS_COOKIE\",\"category\":\"social-media\"}}\n---\n\n# 小红书 AI 宣传图、图文笔记和视频发布技能\n\n> 一体化工作流：理解用户意图 → 生成图文素材或接收本地 MP4 → 按需发布图文/视频笔记\n\n## 🎯 使用场景\n\n- 用户需要创建小红书宣传图、封面图、产品推广图或图文笔记时\n- 用户只提供一段产品、服务、活动、知识点或个人经历描述，需要自动转成小红书图文内容\n- 需要 AI 直接生成贴合主题的单张海报或多张组图\n- 批量创作多条笔记素材\n- 用户提供本地 MP4 视频，需要配合标题、描述和可选封面发布为视频笔记\n\n## 🧭 意图判定与执行规则\n\n先根据用户提示词判断目标，再选择生成和发布动作：\n\n- **只生成不发布是默认行为**。用户没有明确说“发布到小红书”“帮我发小红书”“生成并发布”“发到小红书账号”等发布意图时，只生成图片和文案，不运行 `scripts/publish_xhs.py`。\n- **只有明确要求发布到小红书才发布**。即使生成了标题、描述和 Tags，也不能自动发布；发布前必须能从用户原话中判断出发布意图。\n- **单张宣传图**：用户说“一张”“单张”“封面”“海报”“主图”“宣传图”且没有要求组图时，生成一张主宣传图/封面图。\n- **多张宣传图**：用户说“多张”“组图”“轮播”“N 张”“一套”“系列图”时，按用户指定数量生成；未指定数量时生成封面 + 3-5 张正文卡片，总数不超过 9 张。\n- **图文笔记**：用户要求“小红书笔记”“种草文”“发布文案”“带正文分页”时，生成封面、正文卡片、发布描述和 Tags。\n- **发布内容来源**：发布时使用生成目录里的 `manifest.json` 读取标题和 `publish_desc`，图片按 `cover.png`、`card_*.png` 顺序上传，最多 9 张。\n- **视频笔记**：用户明确要求发布视频时，使用用户提供的本地 MP4 文件；可同时提供一张封面图片，未提供时自动使用视频第一帧。此技能不生成或编辑视频。\n\n执行顺序：\n\n1. 理解用户提示词，确定主题、受众、卖点、语气、是否单张/多张、是否发布。\n2. 图文任务调用 `gpt-image-2` 或火山引擎 Ark 文生图模型生成宣传图；视频任务验证用户提供的本地 MP4 和可选封面。\n3. 图文任务保存 `cover.png` / `card_*.png` 和 `manifest.json`。\n4. 仅当用户明确要求发布到小红书时，再运行发布脚本，并根据输入选择图文或视频发布。\n\n## ✨ 核心功能\n\n### 1️⃣ 智能内容创作\n根据用户输入自动生成：\n- **标题**：不超过 20 字，吸引眼球，制造好奇心\n- **主题**：自动选择适合的视觉主题\n- **正文分页**：多图时按卡片天然拆页，短句、强重点、适量 Emoji\n- **发布文案**：生成描述和 SEO Tags\n\n### 2️⃣ AI 宣传图生成\n- 默认根据可用 Key 自动选择图片提供方：`OPENAI_API_KEY` 走 OpenAI，`ARK_API_KEY` 走火山引擎 Ark\n- OpenAI 图片默认调用 `gpt-image-2`\n- 火山图片默认调用 `doubao-seedream-4-5-251128`\n- 火山文案默认调用 `doubao-seed-2-0-pro-260215`，可用 `--text-model` 切换\n- 直接生成竖版、无 Logo、无水印的最终宣传图\n- 单张输出 `cover.png`，多张输出 `cover.png` + `card_*.png`\n\n### 3️⃣ 图片输出\n- **封面图**：3:4 比例，默认 1024×1536px\n- **正文图**：多张宣传图自动拆页，最多 9 张\n\n### 4️⃣ 明确授权后发布\n- 自动登录（使用 Cookie）\n- 上传图片（最多 9 张）或一个本地 MP4 视频\n- 视频支持自定义封面；未指定时自动使用视频第一帧\n- 设置标题、描述、Tags\n- 发布后返回笔记链接\n- 不允许在用户未明确要求发布时自动发布\n\n### 5️⃣ 视频发布边界\n- 仅负责发布用户提供的本地 `.mp4` 文件，不生成、不下载、不转码、不剪辑视频\n- 图片参数与视频参数互斥，一条笔记只能选择图文或视频\n- `--dry-run` 可在不读取 Cookie、不实际发布的情况下验证本地文件和参数\n\n## 🚀 快速开始\n\n> ⚠️ **数据传输提示**：您输入的描述及生成的提示词等内容将发送至第三方 AI 服务（OpenAI 或火山引擎）进行处理。请勿在描述中包含商业机密、个人隐私或未公开的敏感信息。详见下方安全注意事项章节。\n\n### 方式一：一句话自动生成（推荐）\n\n```bash\n# 只需要配置一种 API Key\nexport OPENAI_API_KEY=\"your_api_key\"\n# 或\nexport ARK_API_KEY=\"your_ark_api_key\"\n\npython3 scripts/generate_xhs.py \\\n  \"给 蒙语 AI 翻译 API 写一篇小红书推广笔记，突出一个 API Key 搞定翻译、OCR 和语音识别\" \\\n  -o ./output\n```\n\n生成结果：\n\n```text\noutput/\n├── manifest.json              # 结构化标题、主题、发布文案、Tags 和图片路径\n├── cover.png\n└── card_*.png\n```\n\n### 方式二：跳过图片生成，只生成结构化内容\n\n```bash\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image\n```\n\n### 方式三：指定单张或多张宣传图\n\n```bash\n# 单张宣传图，只输出 cover.png\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 多张组图，总数包含封面，最多 9 张\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n```\n\n## 📁 文件结构\n\n```\nxiaohongshu-ai/\n├── SKILL.md    "},{"path":"SKILL.md","content":"---\nname: xiaohongshu-ai\nversion: 1.1.1\ndescription: 小红书 AI 宣传图、图文笔记和视频发布技能 - 根据用户提示词生成单张或多张宣传图，并支持将用户提供的本地 MP4 视频发布为视频笔记；仅在用户明确要求发布到小红书时才执行发布。\nhomepage: https://www.xiaohongshu.com\nauthor: OpenClaw Community\nmetadata: {\"openclaw\":{\"emoji\":\"📕\",\"primaryEnv\":\"XHS_COOKIE\",\"category\":\"social-media\"}}\n---\n\n# 小红书 AI 宣传图、图文笔记和视频发布技能\n\n> 一体化工作流：理解用户意图 → 生成图文素材或接收本地 MP4 → 按需发布图文/视频笔记\n\n## 🎯 使用场景\n\n- 用户需要创建小红书宣传图、封面图、产品推广图或图文笔记时\n- 用户只提供一段产品、服务、活动、知识点或个人经历描述，需要自动转成小红书图文内容\n- 需要 AI 直接生成贴合主题的单张海报或多张组图\n- 批量创作多条笔记素材\n- 用户提供本地 MP4 视频，需要配合标题、描述和可选封面发布为视频笔记\n\n## 🧭 意图判定与执行规则\n\n先根据用户提示词判断目标，再选择生成和发布动作：\n\n- **只生成不发布是默认行为**。用户没有明确说“发布到小红书”“帮我发小红书”“生成并发布”“发到小红书账号”等发布意图时，只生成图片和文案，不运行 `scripts/publish_xhs.py`。\n- **只有明确要求发布到小红书才发布**。即使生成了标题、描述和 Tags，也不能自动发布；发布前必须能从用户原话中判断出发布意图。\n- **单张宣传图**：用户说“一张”“单张”“封面”“海报”“主图”“宣传图”且没有要求组图时，生成一张主宣传图/封面图。\n- **多张宣传图**：用户说“多张”“组图”“轮播”“N 张”“一套”“系列图”时，按用户指定数量生成；未指定数量时生成封面 + 3-5 张正文卡片，总数不超过 9 张。\n- **图文笔记**：用户要求“小红书笔记”“种草文”“发布文案”“带正文分页”时，生成封面、正文卡片、发布描述和 Tags。\n- **发布内容来源**：发布时使用生成目录里的 `manifest.json` 读取标题和 `publish_desc`，图片按 `cover.png`、`card_*.png` 顺序上传，最多 9 张。\n- **视频笔记**：用户明确要求发布视频时，使用用户提供的本地 MP4 文件；可同时提供一张封面图片，未提供时自动使用视频第一帧。此技能不生成或编辑视频。\n\n执行顺序：\n\n1. 理解用户提示词，确定主题、受众、卖点、语气、是否单张/多张、是否发布。\n2. 图文任务调用 `gpt-image-2` 或火山引擎 Ark 文生图模型生成宣传图；视频任务验证用户提供的本地 MP4 和可选封面。\n3. 图文任务保存 `cover.png` / `card_*.png` 和 `manifest.json`。\n4. 仅当用户明确要求发布到小红书时，再运行发布脚本，并根据输入选择图文或视频发布。\n\n## ✨ 核心功能\n\n### 1️⃣ 智能内容创作\n根据用户输入自动生成：\n- **标题**：不超过 20 字，吸引眼球，制造好奇心\n- **主题**：自动选择适合的视觉主题\n- **正文分页**：多图时按卡片天然拆页，短句、强重点、适量 Emoji\n- **发布文案**：生成描述和 SEO Tags\n\n### 2️⃣ AI 宣传图生成\n- 默认根据可用 Key 自动选择图片提供方：`OPENAI_API_KEY` 走 OpenAI，`ARK_API_KEY` 走火山引擎 Ark\n- OpenAI 图片默认调用 `gpt-image-2`\n- 火山图片默认调用 `doubao-seedream-4-5-251128`\n- 火山文案默认调用 `doubao-seed-2-0-pro-260215`，可用 `--text-model` 切换\n- 直接生成竖版、无 Logo、无水印的最终宣传图\n- 单张输出 `cover.png`，多张输出 `cover.png` + `card_*.png`\n\n### 3️⃣ 图片输出\n- **封面图**：3:4 比例，默认 1024×1536px\n- **正文图**：多张宣传图自动拆页，最多 9 张\n\n### 4️⃣ 明确授权后发布\n- 自动登录（使用 Cookie）\n- 上传图片（最多 9 张）或一个本地 MP4 视频\n- 视频支持自定义封面；未指定时自动使用视频第一帧\n- 设置标题、描述、Tags\n- 发布后返回笔记链接\n- 不允许在用户未明确要求发布时自动发布\n\n### 5️⃣ 视频发布边界\n- 仅负责发布用户提供的本地 `.mp4` 文件，不生成、不下载、不转码、不剪辑视频\n- 图片参数与视频参数互斥，一条笔记只能选择图文或视频\n- `--dry-run` 可在不读取 Cookie、不实际发布的情况下验证本地文件和参数\n\n## 🚀 快速开始\n\n> ⚠️ **数据传输提示**：您输入的描述及生成的提示词等内容将发送至第三方 AI 服务（OpenAI 或火山引擎）进行处理。请勿在描述中包含商业机密、个人隐私或未公开的敏感信息。详见下方安全注意事项章节。\n\n### 方式一：一句话自动生成（推荐）\n\n```bash\n# 只需要配置一种 API Key\nexport OPENAI_API_KEY=\"your_api_key\"\n# 或\nexport ARK_API_KEY=\"your_ark_api_key\"\n\npython3 scripts/generate_xhs.py \\\n  \"给 蒙语 AI 翻译 API 写一篇小红书推广笔记，突出一个 API Key 搞定翻译、OCR 和语音识别\" \\\n  -o ./output\n```\n\n生成结果：\n\n```text\noutput/\n├── manifest.json              # 结构化标题、主题、发布文案、Tags 和图片路径\n├── cover.png\n└── card_*.png\n```\n\n### 方式二：跳过图片生成，只生成结构化内容\n\n```bash\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image\n```\n\n### 方式三：指定单张或多张宣传图\n\n```bash\n# 单张宣传图，只输出 cover.png\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 1\n\n# 多张组图，总数包含封面，最多 9 张\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --image-count 5\n```\n\n## 📁 文件结构\n\n```\nxiaohongshu-ai/\n├── SKILL.md    "},{"path":"README.md","content":"# xiaohongshu-ai\n\n小红书 AI 宣传图、图文笔记和视频发布 skill。根据用户提示词判断生成单张或多张宣传图，支持使用 `gpt-image-2` 或火山引擎 Ark 文生图模型直接生成图片，也支持将用户提供的本地 MP4 发布为视频笔记；只有用户明确要求发布到小红书时才发布。\n\n## 如何使用这个 skill\n\n把这个目录安装到支持 skill 的工具或智能体环境后，在对话里直接描述你要做的小红书内容即可触发使用，例如：\n\n```text\n帮我给一个蒙语 AI 翻译 API 生成一套小红书推广图，突出一个 API Key 搞定翻译、OCR 和语音识别\n```\n\n常见说法：\n\n- `生成一张小红书宣传图`：只生成单张封面图。\n- `生成一套小红书组图` / `生成 5 张轮播图`：生成封面和多张正文图。\n- `写一篇小红书图文笔记`：生成图片、标题、正文分页、发布文案和 Tags。\n- `生成并发布到小红书`：在生成后继续发布；只有明确说要发布时才会发布。\n- `把这个 MP4 发布到小红书`：发布用户提供的本地视频，可选自定义封面；不生成或编辑视频。\n\n## 文件结构\n\n```text\nxiaohongshu-ai/\n├── SKILL.md\n└── scripts/\n    ├── ai_services/\n    │   ├── chatgpt_service.py\n    │   └── volcengine_service.py\n    ├── generate_xhs.py\n    └── publish_xhs.py\n```\n\n## 依赖\n\n```bash\npip install openai\npip install \"xhs>=0.2.13\"\n```\n\n生成内容和图片只需要配置一种 API Key：\n\n```bash\n# 使用 OpenAI 文案和图片模型\nexport OPENAI_API_KEY=\"your_api_key\"\n\n# 或使用火山引擎 Ark 文案和文生图模型\nexport ARK_API_KEY=\"your_ark_api_key\"\n```\n\n发布到小红书才需要：\n\n```bash\nexport XHS_COOKIE=\"your_cookie_string\"\n```\n\n使用 `--dry-run` 只验证文件和参数时不需要 Cookie。\n\n## 生成宣传图\n\n```bash\npython3 scripts/generate_xhs.py \"给某个产品生成一张小红书宣传图\" -o ./output --image-count 1\n```\n\n生成多张组图：\n\n```bash\npython3 scripts/generate_xhs.py \"给某个产品生成一套小红书组图\" -o ./output --image-count 5\n```\n\n输出示例：\n\n```text\noutput/\n├── manifest.json\n├── cover.png\n├── card_1.png\n└── card_2.png\n```\n\n只生成结构化文案，不生成图片：\n\n```bash\npython3 scripts/generate_xhs.py \"你的描述\" -o ./output --skip-image\n```\n\n使用火山引擎 Ark 文生图：\n\n```bash\nexport ARK_API_KEY=\"your_ark_api_key\"\n\npython3 scripts/generate_xhs.py \"给某个产品生成一张小红书宣传图\" \\\n  -o ./output \\\n  --provider volcengine \\\n  --image-size 2K \\\n  --image-count 1\n```\n\n火山引擎文案模型默认使用 `doubao-seed-2-0-pro-260215`，可通过 `--text-model` 切换；火山图片模型固定使用 `doubao-seedream-4-5-251128`，不提供命令行切换参数。\n\n## 发布规则\n\n默认不发布。只有用户明确说“发布到小红书”“生成并发布”“帮我发小红书”等发布意图时，才运行发布脚本。\n\n```bash\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述 #标签\" \\\n  --images ./output/cover.png ./output/card_*.png\n\n# 使用 glob 匹配所有图片（自然排序）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images-glob \"./output/*.png\"\n\n# 验证模式（不实际发布）\npython3 scripts/publish_xhs.py \\\n  --title \"笔记标题\" \\\n  --desc \"笔记描述\" \\\n  --images cover.png \\\n  --dry-run\n\n# 发布本地 MP4 视频（未指定封面时自动使用视频第一帧）\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --desc \"视频描述 #标签\" \\\n  --video ./video.mp4\n\n# 发布视频并指定封面\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --desc \"视频描述 #标签\" \\\n  --video ./video.mp4 \\\n  --cover ./cover.png\n\n# 验证视频文件和参数，不实际发布\npython3 scripts/publish_xhs.py \\\n  --title \"视频标题\" \\\n  --video ./video.mp4 \\\n  --dry-run\n```\n\n视频发布只接受一个本地 `.mp4` 文件；`--video` 与 `--images` / `--images-glob` 互斥。Skill 不负责视频生成、下载、转码或剪辑。\n\n## 常用参数\n\n**生成参数（generate_xhs.py）：**\n\n| 参数 | 说明 |\n| --- | --- |\n| `--image-count 1-9` | 目标输出图片总数，包含封面 |\n| `--provider` | 服务提供方，`openai`/`chatgpt` 或 `volcengine`/`ark`；默认根据可用 Key 自动选择 |\n| `--image-size` | 图片尺寸，OpenAI 默认 `1024x1536`，火山默认 `2K` |\n| `--image-quality` | OpenAI 图片质量，默认 `high` |\n| `--ark-base-url` | 火山引擎 Ark OpenAI 兼容接口地址 |\n| `--volcengine-watermark` | 火山图片生成时添加水印，默认关"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7114n7fws0zkhdbtpvy92sp182gqge\",\n  \"slug\": \"xiaohongshu-ai\",\n  \"version\": \"1.1.1\",\n  \"publishedAt\": 1785073731536\n}"},{"path":"skill-card.md","content":"## Description:\n\n小红书 AI 宣传图、图文笔记和视频发布技能 - 根据用户提示词生成单张或多张宣传图，并支持将用户提供的本地 MP4 视频发布为视频笔记；仅在用户明确要求发布到小红书时才执行发布。\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[youteacher](https://clawhub.ai/user/youteacher)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal creators, marketers, and agents use this skill to turn a short brief into Xiaohongshu promotional images, carousel-note copy, tags, and publish-ready files. When explicitly requested, the skill can publish image notes or a user-supplied local MP4 video to Xiaohongshu.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can publish immediately using a full Xiaohongshu session cookie.\n\nMitigation: Use --dry-run first, review titles, descriptions, images, and videos before invoking publish_xhs.py, and prefer a dedicated low-risk Xiaohongshu account.\n\nRisk: A full Xiaohongshu session cookie gives account-level access if exposed.\n\nMitigation: Store XHS_COOKIE only in a controlled environment, never commit it to source control, rotate it regularly, and log out of the browser session when access is no longer needed.\n\nRisk: Prompts, generated content, and API credentials may be sent to OpenAI or Volcengine Ark services, and Ark can use a caller-selected base URL.\n\nMitigation: Avoid sensitive or confidential content in prompts, confirm the selected provider's data handling terms, avoid --ark-base-url unless the endpoint is fully trusted, and pin dependencies before production use.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/youteacher/skills/xiaohongshu-ai)\n- [Xiaohongshu](https://www.xiaohongshu.com)\n- [Volcengine Ark API endpoint](https://ark.cn-beijing.volces.com/api/v3)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Files, Guidance]\n\n**Output Format:** [Markdown guidance with shell commands; generated artifacts include manifest.json, PNG images, and optional publish result JSON.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Image notes use cover.png and optional card_*.png files up to 9 images; video publishing accepts one local MP4 with an optional cover image.]\n\n## Skill Version(s):\n\n1.1.1 (source: server release evidence and skill frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"小红书 AI 宣传图、图文笔记和视频发布技能 - 根据用户提示词生成单张或多张宣传图，并支持将用户提供的本地 MP4 视频发布为视频笔记；仅在用户明确要求发布到小红书时才执行发布。 Skill: xiaohongshu ｜小红书 AI 宣传图、图文笔记和视频发布技能 Owner: youteacher Summary: 小红书 AI 宣传图、图文笔记和视频发布技能 - 根据用户提示词生成单张或多张宣传图，并支持将用户提供的本地 MP4 视频发布为视频笔记；仅在用户明确要求发布到小红书时才执行发布。 Tags: latest:1.1.1 Version history: v1.1.1 | 2026-07-26T13:48:51.536Z | user 新增小红书视频笔记发布：支持本地 MP4、自定义封面、自动提取首帧、视频 dry-run 与参数校验；保留图文发布兼容性。调整发布包范围与配置提示，避免安全扫描误报。 v1.1.0 | 2026-07-26T13:45:47.562Z | user 新增小红书视频笔记发布：支持本地 MP4、自定义封面、自动提取首帧、视频 dry-run 与参数校验；保留图文发布","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1055,"uniquenessScore":48,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T08:34:37.165Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T08:34:37.165Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T10:49:19.385Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}