--- name: post-to-xhs argument-hint: "[标题或内容描述]" description: | 发布内容到小红书,支持图文笔记和视频笔记。自动判断发布类型,校验标题和素材,用户确认后发布。 当用户想在小红书发布内容时使用——包括发笔记、发图文、发视频、上传图片、写一篇小红书、把内容发到红书上、种草笔记、好物分享等,即使用户只说"帮我发一下"但上下文明确是小红书也应触发。 --- ## 输入判断 根据用户提供的素材判断发布类型: - 提供了视频文件 → 视频笔记 - 提供了图片 → 图文笔记 - 仅提供文本 → 提示用户至少提供图片或视频 ## 约束 - 标题最多 20 个中文字或英文单词(小红书平台限制,超长会被截断) - 图文笔记至少 1 张图片(小红书不允许纯文本笔记) - 视频笔记仅支持本地视频文件绝对路径(MCP 服务需要读取本地文件) - 图片和视频不能混用,只能二选一(小红书平台限制) - 正文中不要包含 # 标签(标签通过 `tags` 参数单独传递,MCP 服务会自动处理格式) - 发布前展示完整内容让用户确认(发布后无法撤回) ## 执行流程 ### 1. 收集发布信息 确保以下内容齐全: - `title`(必填)— 标题 - `content`(必填)— 正文 - 图片列表或视频路径(必填其一) - `tags`(可选)— 话题标签 - `schedule_at`(可选)— 定时发布,ISO8601 格式 - `is_original`(可选,仅图文)— 声明原创 - `visibility`(可选)— 公开可见 | 仅自己可见 | 仅互关好友可见 信息不完整时,向用户询问缺少的部分。 ### 2. 内容校验 - 检查标题长度(≤20 中文字) - 检查图片/视频文件路径是否为绝对路径 - 如用户提供 URL 内容,先用 WebFetch 提取文本和图片 ### 3. 确认发布 向用户展示完整的发布内容预览: - 标题、正文、标签 - 图片列表或视频路径 - 定时时间、可见范围(如有) 等待用户确认后才执行发布。 ### 4. 发布 **图文笔记** — 调用 `publish_content`: - `title`(string,必填) - `content`(string,必填) - `images`(string[],必填)— 图片路径或 URL - `tags`(string[],可选) - `schedule_at`(string,可选) - `is_original`(bool,可选) - `visibility`(string,可选) **视频笔记** — 调用 `publish_with_video`: - `title`(string,必填) - `content`(string,必填) - `video`(string,必填)— 本地视频绝对路径 - `tags`(string[],可选) - `schedule_at`(string,可选) - `visibility`(string,可选) ### 5. 报告结果 发布成功后,告知用户笔记 ID 和发布状态。 ## 失败处理 | 场景 | 处理 | |---|---| | 未登录 | 引导使用 xhs-login | | 标题超长 | 提示用户缩短标题 | | 图片路径无效 | 提示检查路径是否正确 | | 视频使用了相对路径 | 提示改为绝对路径 | | 发布失败 | 展示错误信息,建议检查内容或重试 |