# AiToEarn 拆解报告 — 可复用的发布技巧与绕过模式 > 工具:`yikart/AiToEarn`(20.5k⭐) > 拆解时间:2026-06-11 > 核心理念:学思路不照抄,平台会封杀公开方案 --- ## 一、一句话核心 AiToEarn 是一个**一人公司(OPC)的AI内容营销平台**。它通过统一的Provider模式对接13个平台(国内外),用AI Agent自动完成内容创作→发布→互动→变现全链路。 **和我们最大区别:** 它走官方API/OAuth发布(稳定),我们走CDP浏览器模拟(通用但容易被封)。 --- ## 二、技术亮点清单(可复用的技术模式) ### 🔑 模式1:统一的平台Provider接口(最有价值) **它怎么做的:** 每个平台都实现同一个 `ChannelProvider` 接口: ``` interface ChannelProvider { login(credentials): AuthToken // 登录/授权 publish(content): PublishResult // 发布 uploadMedia(file): MediaUrl // 上传媒体 getStats(postId): Analytics // 获取数据 interact(action): void // 互动 } ``` 每个平台一个独立Provider文件,互不干扰。新增平台只需实现这个接口。 **我们的情况:** 当前每个平台的发布脚本都是独立的(xiaohongshu/boss/douyin各自一套),没有统一抽象。 **可复用度:⭐⭐⭐⭐⭐ — 完全可以自己造一个** ### 🔑 模式2:OAuth Relay代理(解决私有化部署痛点) **它怎么做的:** 私有化部署的用户没有公网回调地址,OAuth难做。AiToEarn 提供一个Relay代理服务器: ``` 用户服务器 → Relay服务器(公网) → 平台OAuth ↓ 回调到Relay → Relay转发给用户服务器 ``` **我们的情况:** 4号机和1号机都没有公网域名,这个模式对我们也有用。 ### 🔑 模式3:MCP协议层暴露内部能力 **它怎么做的:** 用 `@Tool()` 装饰器自动把内部方法暴露成MCP工具,Claude/Cursor/Codex可以直接调用: ```typescript @Tool("publish_to_douyin", "发布内容到抖音") async publishToDouyin(content: string, media: string[]) { ... } ``` 一共30+个MCP工具。这意味着**任何支持MCP的AI工具都能操控它的发布能力**。 **我们的情况:** Hermes Agent 也支持MCP,但我们的内部工具没有暴露成MCP。 ### 🔑 模式4:草稿批量生成+多模型选择 **它怎么做的:** 支持多个AI模型生成草稿(HappyHorse/Seedance/自研Agent),用户选平台→AI生成适配该平台的文案+配图→预览→批量发布。 **可复用度:⭐⭐⭐ — 我们的影子体系已经在做类似事情** ### 🔑 模式5:四大Agent拆分(Create/Publish/Engage/Monetize) **它怎么做的:** 把内容营销拆成4个独立但可串联的Agent,每个专注一件事: ``` Create(创作)→ Publish(发布)→ Engage(互动)→ Monetize(变现) ``` 每个Agent有自己的System Prompt和工作流,可以单独运行也可以串联。 **我们的情况:** 我们的影子体系是混合的(一个影子干所有事),拆成多个专业化Agent可能更清晰。 --- ## 三、平台发布策略分析(最值钱的部分) ### 国内平台(和我们直接相关) | 平台 | AiToEarn的做法 | 我们当前做法 | 可借鉴 | |------|--------------|------------|--------| | **抖音** | 走官方API(需认证) | CDP浏览器模拟 | 长期应该API,但短期CDP更灵活 | | **小红书** | 走官方API发布 | CDP填内容+API提交 | 它有我们没搞定的发布按钮方案 | | **B站** | OAuth + API发布 | 无发布能力 | 可以学它的B站API对接方式 | | **微信视频号** | 官方API | 无自动发布 | 微信API文档哪里找 | ### 国外平台(目前用不上,但模式可学) | 平台 | 技术方案 | |------|---------| | TikTok | OAuth + 官方API + 无头浏览器兜底 | | YouTube | OAuth2 + YouTube Data API v3(稳定) | | X/Twitter | OAuth2 + v2 API | | Instagram | Graph API | | LinkedIn | OAuth2 + Share API | **可复用的模式:** 所有平台都是「优先API → 无API的走浏览器模拟 → 模拟失败的人工介入」三层兜底。 --- ## 四、必然会被封杀的环节(不能照抄) | 环节 | 问题 | 封杀方式 | |------|------|---------| | CDP浏览器模拟 | 抖音/小红书会检测 `navigator.webdriver` | 返回验证码/封号 | | 固定坐标点击 | 页面改版或A/B测试 | 点不到按钮/点错 | | user-agent指纹 | 服务器端检测TLS指纹 | 返回403/412 | | 批量同IP操作 | 风控系统检测IP行为模式 | 限制访问/封IP | | 自动化时间规律 | 检测发布时间间隔 | 判定为机器操作 | **核心原则:** 任何依赖「模拟真人操作」的实现,都需要定期维护。走官方API是唯一稳定的长期方案。 --- ## 五、我们可以直接用的思路 1. **统一Provider接口** — 把小红书/抖音/B站/微信的发布脚本都统一成一个接口 2. **MCP暴露内部能力** — 把我们已有的视频转写/内容发布等能力暴露成MCP工具 3. **三层兜底发布策略** — API→浏览器模拟→人工介入,每层不互相依赖 4. **Agent职责拆分** — 内容创作Agent、发布Agent、互动Agent分开,方便单独维护 --- ## 六、完整源码架构(参考用) > 以下仅供理解其工程规模,不需要部署。 ``` aitoearn/ ├── aitoearn-backend/ # NestJS后端(核心) │ ├── src/ │ │ ├── channel/ # 平台Provider(每个平台一个文件) │ │ │ └── platforms/ # 15个平台的具体实现 │ │ ├── publishing/ # 发布引擎 │ │ ├── engagement/ # 互动引擎 │ │ ├── agent/ # AI Agent(453行System Prompt) │ │ ├── draft-generation/# 草稿批量生成 │ │ └── unified-mcp/ # MCP协议层(自研 @yikart/nest-mcp) │ ├── docker-compose.yml # 8容器编排: MongoDB + Redis + BullMQ + ... │ └── Dockerfile ├── aitoearn-web/ # React前端 └── aitoearn-electron/ # Electron桌面客户端 ```