Sen-platotech

小红书自动发布运营助手

Community Sen-platotech
Updated

以人为最终责任节点的小红书内容生产、人工复核与受控发布工作流

小红书自动发布运营助手

一个以人为最终责任节点的小红书内容生产与受控发布工作流:把结构化写作、3:4 图卡、语境化合规召回、不可变审核单和一次性发布授权串成一条本地优先、默认不发布的流水线。

TestLicenseUpstream

本项目基于优秀的开源项目 xpzouying/xiaohongshu-mcp v2.5.0 构建。上游提供通用 MCP 与浏览器自动化能力;本项目增加内容生产工作流、本地人工编辑台和服务端强制的审核单一致性门。

这不是小红书官方项目,也不是“全自动养号机器人”。默认状态始终是 GENERATE_ONLY;真实发布需要针对某一版审核单的明确人工确认。项目不保证内容过审、账号安全或避免平台处罚,请遵守平台规则和适用法律。

为什么做这个项目

普通自动发布工具解决的是“AI 能不能点下发布”。真正危险的问题却是:

  • 发布的是不是人刚刚看过的那一版?
  • 图片换了、标签截断了、可见范围变了,授权还算不算数?
  • 当前 Cookie 对应的真是目标账号吗?
  • 请求超时后再试一次,会不会其实发了两遍?
  • AI 生成内容声明、版权和高风险语境,谁来负最终责任?

本项目的答案是:只有工作流收到审核单中的逐字确认口令、内容和媒体没有变化、当前账号匹配且一次性授权尚未消费时,服务发布路径才打开。 任何不一致都按失败关闭处理。Go 服务强制口令结构与审核单一致,但不读取或判断聊天记录。

核心能力

内容生产

  • 单书深读、主题书单、文章深读的结构化 Agent 工作流;
  • 可参数化的 1242×1660 HTML/CSS 图卡模板;
  • Playwright 高分辨率 PNG 渲染和 Pillow 总览图;
  • 标题、正文、标签及事实/素材来源记录模板;
  • 面向人文社科内容的语境化风险召回:只提示人工复核,不自动替换,不协助规避审核。

人工审核与版本化

  • 独立本地编辑台,只监听 127.0.0.1 随机端口;
  • 编辑台不读 Cookie、不连接 MCP、没有发布端点;
  • 只允许改标题、正文和标签,其余发布元数据只读;
  • 追加式修订、乐观并发控制和跨进程文件锁;
  • 定稿生成新 review ID、新 manifest SHA256 和新确认口令,父版立即失效。

受控发布

  • publish_content / publish_with_video 强制接收不可变审核单;
  • 请求与标题、正文、标签顺序、媒体路径及 SHA256、可见范围、原创声明和发布时间逐项匹配;
  • 页面可见范围始终显式选择并回读确认,不依赖平台默认公开状态;
  • 发布会话同时核对真实账号昵称和 user_id
  • 跨进程锁 + 不可覆盖的 publish-attempt.json,保证授权最多消费一次;
  • 媒体经哈希验证后复制为 0400 只读快照,缩小检查后替换风险;
  • 超过 10 个、空值或重复标签显式拒绝;联想项必须精确匹配并回读真实话题实体。

工作流

flowchart LR
  A["素材与选题"] --> B["结构化文案"]
  B --> C["HTML/CSS 图卡"]
  C --> D["渲染与人工目检"]
  D --> E["语境化风险召回"]
  E --> F["GENERATE_ONLY 审核单"]
  F --> G["本地人工编辑台"]
  G --> H["冻结新版 + SHA256"]
  H --> I{"精确人工确认?"}
  I -- 否 --> G
  I -- 是 --> J["账号/内容/媒体/授权重验"]
  J --> K["一次发布尝试"]
  K --> L["App 人工核验结果与声明"]

与母项目比较

本项目不是上游的替代品。上游擅长通用、跨平台的小红书 MCP;本项目聚焦端到端运营和更保守的发布约束。

维度 母项目 xpzouying/xiaohongshu-mcp 本项目
定位 通用 MCP 与浏览器自动化 内容生产、人工复核、受控发布一体化
发布输入 调用时自由传入图文/视频参数 只接受与不可变审核单逐项一致的参数
完整性 无独立发布 manifest 约束 manifest + 媒体 SHA256 + 只读上传快照
授权 MCP 调用触发执行 精确人审流程 + 变更失效 + 一次性消费
账号 使用当前 Cookie 对应账号 发布会话核对昵称与 user_id
重复/并发 调用方自行控制 文件锁 + 发布尝试记录;失败、超时也不自动重试
标签 v2.5.0 超限静默截断,联想失败可降级 显式上限、去空/去重、精确联想和实体回读
编辑 无独立发布前版本编辑台 无发布端点编辑台、追加修订、父子审核链
内容生产 通常从已备好的媒体和文案开始 写作、图卡、合规召回、发布包与审核全链路
运行边界 跨平台、通用部署 当前整套验证偏 macOS Apple Silicon,默认 localhost 短时运行

完整、带版本口径的比较见 docs/UPSTREAM_COMPARISON.md

快速开始

环境

当前主要验证环境:macOS Apple Silicon。Go 审核门和 Python 编辑台都使用 Unix 文件锁;Linux 可编译并由 CI 测试,尚未完成真实平台发布验证;Windows 当前不支持

需要:

  • Go 1.24+
  • Python 3.11+
  • Node.js(仅用于检查编辑台 JavaScript)
  • Chromium(图卡渲染由 Playwright 安装)

1. 克隆与构建

git clone https://github.com/Sen-platotech/xiaohongshu-auto-ops-assistant.git
cd xiaohongshu-auto-ops-assistant

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
playwright install chromium

./scripts/build.sh
./scripts/test.sh

2. 生成内容包

Agent 可读取 content-workflow/SKILL.md。手工使用时:

# 保留模板与 tokens.css 的相对位置,避免样式链接失效
mkdir -p /path/to/project/assets/templates
cp assets/tokens.css /path/to/project/assets/tokens.css
cp assets/templates/card_generic.html /path/to/project/assets/templates/card_01.html
python3 assets/render.py /path/to/project/assets/templates/card_01.html /path/to/project/01_封面.png
python3 assets/sensitive_check.py scan /path/to/project/发布文案.md

图卡模板中的账号、系列和内容都是占位符,不含作者的真实账号或业务素材。

3. 登录并仅在本机启动 MCP

./scripts/login-local.sh

# 请使用密码管理器或安全的临时 shell 注入随机 Token,不要写入仓库
export AUTH_TOKEN='请替换为高熵随机值'
./scripts/start-local.sh

端点为 http://127.0.0.1:18060/mcp。客户端需要按 Bearer Token 鉴权方式传入同一 AUTH_TOKEN。服务本身会拒绝空 Token 与非回环监听地址;仍不要通过代理或隧道转发,用完按 Ctrl+C 停止。

4. 人工修订与冻结

准备一个只含目标账号公开标识的本地文件(不要提交仓库):

{"nickname":"目标昵称","user_id":"目标 user_id","red_id":"可选的小红书号"}

将最终标题、正文分别保存为 UTF-8 文本,然后生成初始 GENERATE_ONLY 审核单:

./tools/xhs-review init "/path/to/project/发布审核" \
  --review-id XHS-DEMO-001 \
  --account-file /private/path/account.json \
  --title-file /path/to/project/title.txt \
  --content-file /path/to/project/content.txt \
  --tag 读书笔记 --tag 社会科学 \
  --media /path/to/project/01_封面.png \
  --media /path/to/project/02_正文.png \
  --visibility 仅自己可见 \
  --ai-disclosure --ai-reason "含 AI 辅助生成图文,请真人完成平台声明"

--ai-reason 必填;即使判断不需要平台 AI 声明,也要留下明确理由,不能用默认占位值跳过判断。

再进入人工修订、冻结和验证:

./tools/xhs-review new "/path/to/发布审核/XHS-REVIEW-ID/manifest.json"
./tools/xhs-review serve "/path/to/发布编辑/XHS-DRAFT-ID"
./tools/xhs-review verify "/path/to/发布审核/XHS-NEW-ID/manifest.json"

只有用户在同一任务中明确说出审核单里的完整确认口令,Agent 流程才可发起一次发布调用。服务端还会在浏览器操作前再次强校验审核单。

安全设计的边界

  • SHA256 是完整性检查,不是数字签名;能改写项目文件的本机用户仍在信任边界内。
  • 页面 DOM 会随平台更新;可见范围会被显式选择并回读,但真实发布前仍应人工核对平台界面。
  • 精确确认口令由人机协作流程判断;Go 服务不解析聊天记录,它强制审核单、账号、参数和一次性消费。
  • AI 内容声明仍需真人在平台界面核对;is_original 只代表原创声明。
  • 平台成功响应暂不提供可靠的笔记 ID。失败或超时后不得自动重试,应先在 App/主页人工查重。
  • 当前不支持真正的平台草稿箱;商品绑定未纳入审核协议,因此发布门会拒绝带商品请求。
  • 视频发布器不支持原创声明,审核单若为视频且 is_original=true 会被拒绝。
  • 互动工具源自上游仍可见,但项目规则禁止无人值守评论、点赞、收藏和模拟真人互动。
  • 合规召回不是官方词库,也不能保证过审。项目不提供拆字、拼音或同形字等审核规避能力。

详见 SECURITY.mdAGENTS.md

目录结构

content-workflow/       Agent 内容生产工作流
assets/                 通用图卡、文案、渲染和只读风险召回
tools/xhs_review/       本地人工编辑台与测试
review_gate.go          Go 侧不可变审核门和一次性授权
xiaohongshu/            上游浏览器自动化及标签可靠性增强
scripts/                构建、测试、登录和 localhost 启动脚本
docs/                   审核协议与上游比较

测试

./scripts/test.sh

测试覆盖上游 Go 测试、审核单字段与哈希校验、父子版本链、并发定稿、一次性发布、媒体快照、标签验证,以及编辑台同源/Token/无发布路由约束。浏览器会话中的真实账号核对依赖平台页面,不在默认离线测试内;涉及真实平台 DOM 的集成测试可能受页面更新影响。

贡献

欢迎提交 Issue 和 Pull Request。请先阅读 CONTRIBUTING_CN.md。项目不接受绕过平台审核、无人值守批量互动、削弱人审门或带真实账号/素材的贡献。

许可证与致谢

本项目采用 Apache License 2.0。衍生自 xpzouying/xiaohongshu-mcp,感谢 xpzouying 和所有上游贡献者;详细来源与修改说明见 NOTICETHIRD_PARTY_NOTICES.md

“小红书”及相关商标归其权利人所有。本项目为非官方社区项目,与小红书及上游维护者不存在隶属、授权或背书关系。

MCP Server · Populars

MCP Server · New