# AiToEarn 项目源码深度技术分析 > 项目:yikart/AiToEarn (20.5k stars, v2.4) > 仓库:https://github.com/yikart/AiToEarn > 官网:https://aitoearn.ai / https://aitoearn.cn > 语言:TypeScript > 许可证:MIT > 最后更新:2026-05-21 --- ## 1. 项目整体架构与目录结构 ### 1.1 顶层目录 ``` AiToEarn/ ├── project/ # ★ 核心代码 │ ├── aitoearn-backend/ # 后端 (Nx Monorepo + pnpm) │ │ ├── apps/ │ │ │ ├── aitoearn-ai/ # AI 服务 (Agent、Draft Generation、AI 模型集成) │ │ │ └── aitoearn-server/ # 主 API 服务 (平台对接、发布、互动、用户、MCP) │ │ └── libs/ # 共享库 │ │ ├── aitoearn-ai-client/ # AI 服务客户端 │ │ ├── aitoearn-ai-shared/ # AI 共享 DTO/VO │ │ ├── aitoearn-auth/ # 认证模块 (JWT + API Key) │ │ ├── aitoearn-queue/ # 消息队列 (BullMQ) │ │ ├── aitoearn-server-client/ # Server 客户端 │ │ ├── aitoearn-server-shared/ # Server 共享 DTO/VO │ │ ├── ali-oss/ # 阿里云 OSS │ │ ├── ali-sms/ # 阿里云短信 │ │ ├── assets/ # 资产存储 (S3/阿里OSS适配器) │ │ ├── aws-s3/ # AWS S3 │ │ ├── channel-db/ # 频道数据库 (OAuth凭证、互动记录) │ │ ├── common/ # 通用工具、异常、枚举、过滤器 │ │ ├── helpers/ # 辅助模块 (Credits、MaterialGroup) │ │ ├── mail/ # 邮件发送 │ │ ├── mongodb/ # MongoDB 数据层 (Repository/Schema) │ │ ├── nest-mcp/ # ★ 自研 MCP 协议框架 (@Tool 装饰器) │ │ ├── redis/ # Redis 服务 (Pub/Sub) │ │ └── redlock/ # 分布式锁 (Redlock) │ ├── aitoearn-web/ # Web 前端 (Next.js + pnpm) │ └── aitoearn-electron/ # Electron 桌面客户端 (React + Vite) ├── docker-compose.yml # ★ 一键 Docker 部署 ├── scripts/ # 初始化脚本 ├── nginx/ # Nginx 反向代理配置 ├── presentation/ # 宣传图/截图 ├── demo/ # 平台演示数据 (小红书、快手) ├── DOCKER_DEPLOYMENT_CN.md # 详细部署文档 ├── README.md / README_EN.md / README_JA.md ├── AGENTS.md # AI Agent(Codex)开发规则 └── LICENSE.txt ``` ### 1.2 后端技术栈 (aitoearn-backend) | 层级 | 技术 | |------|------| | 框架 | NestJS (Node.js 20.x, TypeScript) | | 构建 | Nx Monorepo + pnpm workspace | | 数据库 | MongoDB (Replica Set) | | 缓存/队列 | Redis + BullMQ | | 存储 | S3 兼容 (RustFS/MinIO/AliOSS/AWS S3) | | AI 模型 | OpenAI / Claude / Gemini / Grok / 火山引擎 / DashScope | | 认证 | JWT + API Key (SHA1 Hash) | | OAuth | 各平台 OAuth 2.0 / Relay 代理 | | 消息 | Redis Pub/Sub + BullMQ 队列 | | 部署 | Docker Compose (8 个容器) | ### 1.3 后端核心模块 (aitoearn-server) ``` apps/aitoearn-server/src/ ├── core/ │ ├── account/ # 账号管理、分组、MCP 控制器 │ ├── api-key/ # API Key 管理 │ ├── assets/ # 资产/文件管理 │ ├── channel/ # ★ 核心频道模块 │ │ ├── platforms/ # 各平台对接层 (13个平台) │ │ ├── publishing/ # 发布引擎 (队列 + Webhook + 定时) │ │ ├── engagement/ # 互动引擎 (自动点赞/评论/回复) │ │ ├── interact/ # 互动记录 │ │ ├── data-cube/ # 数据看板/分析 │ │ └── libs/ # 各平台 API 封装的 HTTP 客户端 │ ├── content/ # 内容管理 (素材、草稿、媒体) │ ├── unified-mcp/ # ★ MCP 协议统一入口 │ ├── relay/ # Relay 代理服务 │ ├── user/ # 用户管理 │ ├── notification/ # 通知系统 │ ├── publish-record/ # 发布记录 │ ├── short-link/ # 短链接 │ └── tools/ # 工具中心 ``` ### 1.4 AI 服务模块 (aitoearn-ai) ``` apps/aitoearn-ai/src/ ├── core/ │ ├── agent/ # ★ Agent 引擎 (Claude SDK + MCP Server) │ │ ├── services/ # Agent Runtime (内容生成任务调度) │ │ ├── mcp/ # AI 内部 MCP 工具集 │ │ └── claude-code-router/ # Claude Code 路由 │ ├── ai/ # AI 模型集成 │ │ ├── libs/ # OpenAI/Claude/Gemini/Grok/火山/DashScope │ │ ├── chat/ # AI 对话 │ │ ├── image/ # 图片生成 (DashScope, Gemini) │ │ ├── video/ # 视频生成 (Grok, Veo, OpenAI Sora, 火山) │ │ ├── aideo/ # 火山引擎视频编辑 │ │ ├── assets/ # AI 资产管理 │ │ ├── models-config/# 模型配置与定价 │ │ ├── logs/ # AI 日志 │ │ └── settlement/ # 结算 │ ├── draft-generation/ # ★ AI 草稿批量生成引擎 │ └── internal/ # 内部 API (给 Server 调用) ``` --- ## 2. 核心功能 —— 四大 Agent 能力 ### 2.1 💰 Monetize —— 内容赚钱 **核心目标**:帮助 OPC(一人公司)创作者通过内容变现。 结算模式: | 模式 | 含义 | 说明 | |------|------|------| | **CPS** | Cost Per Sale | 按成交额结算 | | **CPE** | Cost Per Engagement | 按互动量(点赞/评论/分享)结算 | | **CPM** | Cost Per Mille | 按播放量(千次曝光)结算 | **实现方式**: - 平台搭建内容交易市场(brand-promotion 模块) - 商家发布推广任务 → 创作者接单 → 发布内容 → 结果结算 - 线下商户推广:支持餐厅、零售店、民宿等线下业态转化为线上传播任务 - OpenClaw 集成:可在龙虾(OpenClaw)中直接接收并执行变现任务 ### 2.2 📢 Publish —— 内容发布 Agent **引擎架构**(`publishing/` 目录): ``` publishing.service.ts ← 主入口 ├── providers/ # 各平台发布 Provider 实现 │ ├── base.service.ts # 抽象基类 │ ├── bilibili.service.ts │ ├── douyin.service.ts │ ├── tiktok.service.ts │ └── ... (各平台) ├── consumers/ # BullMQ 队列消费者 │ ├── immediate-publish.consumer.ts # 立即发布 │ └── scheduled-publish.consumer.ts # 定时发布 ├── scheduler/ # 定时调度器 └── bilibili-webhook.dto.ts douyin-webhook.dto.ts tiktok-webhook.dto.ts # 各平台 Webhook 回调 ``` **发布流程**: 1. `createPublishingTask()` 创建任务 → 参数校验 2. 队列入队(`queueService.add()`) 3. 消费者出队 → 调用平台 Provider 的 `publish()` 方法 4. Webhook 回调更新状态 5. 支持定时发布(日历排期) **支持的发布方式**: - 立即发布 - 定时/排期发布(日历排期统一管理) - 批量发布(矩阵账号运营) ### 2.3 💬 Engage —— 内容互动 Agent **引擎架构**(`engagement/` 目录): ``` engagement.service.ts ← 主入口 ├── providers/ # 各平台互动 Provider │ ├── facebook.provider.ts │ ├── instagram.provider.ts │ ├── threads.provider.ts │ └── youtube.provider.ts ├── workers/ # BullMQ Worker │ ├── distribute-engagement-task.consumer.ts # 互动任务分发 │ └── reply-to-comment.consumer.ts # AI 评论回复 ├── engagement.record.service.ts # 互动记录 └── ai.dto.ts # AI 回复生成 ``` **核心功能**: - **自动点赞/收藏/关注**:通过 Electron 插件 + 浏览器自动化 - **AI 智能回复**:调用大模型为每条评论生成针对性回复 - **评论挖掘**:识别"求链接""怎么购买"等高转化信号 - **品牌监测**:实时追踪品牌相关讨论 ### 2.4 🎨 Create —— 内容创作 Agent **Agent 引擎**(`agent/` 目录): ``` agent.service.ts ← Agent 主服务 ├── agent-runtime.service.ts # ★ 核心运行时 (封装 Claude SDK) ├── claude-code-router/ # Claude Code 进程路由 ├── skill-init.service.ts # 技能初始化 ├── mcp/ # 对内 MCP 工具集 │ ├── media.mcp.ts # 媒体生成 │ ├── image-edit.mcp.ts # 图片编辑 │ ├── video-utils.mcp.ts # 视频工具 │ ├── subtitle.mcp.ts # 字幕 │ ├── util.mcp.ts # 通用工具 │ └── volcengine/ # 火山引擎工具 │ ├── aideo.mcp.ts │ ├── drama-recap.mcp.ts │ ├── style-transfer.mcp.ts │ └── video-edit.mcp.ts ├── agent.constants.ts # ★ 完整 System Prompt (453行) └── agent.utils.ts ``` **Agent 工作流**(定义在 `agent.constants.ts` 的 System Prompt 中): ``` Step 0: 理解需求 (内容类型/发布需求/目标平台) ↓ Step 1: 分析并加载技能 (skill-analyzer → Skill 工具) ↓ Step 2: 展示执行计划 (强制步骤) ↓ Step 3: 生成内容元数据 (title/description/tags) ↓ Step 4: 媒体生成 (视频/图片,多模型支持) ↓ Step 4.5: 生成后跟进 ↓ Step 5: 异步任务轮询 (长期任务如 Veo/Grok/Aideo) ↓ Step 6: 内容保存 (自动保存到草稿) ↓ Step 7: 发布 (检查账号 → 调用对应平台的发布工具) ``` **支持的 AI 模型**: - **视频生成**:Grok、Veo 3.1、Seedance 2.0、HappyHorse 1.0、火山引擎 - **图片生成**:Gemini、Nano Banana Pro、DashScope - **LLM**:OpenAI、Claude、DeepSeek(火山引擎) - **其他**:火山引擎视频编辑、风格迁移、剧情解说生成 **草稿批量生成**(`draft-generation/`): - 支持批量下发创作任务 - Agent 可并行生成多条内容 - 适合矩阵账号运营和大规模内容分发 --- ## 3. 平台支持与对接方式 ### 3.1 全部 13 个平台 | # | 平台 | AccountType | 国内 | 发布 | 互动 | OAuth对接方式 | |---|------|-------------|------|------|------|-------------| | 1 | 抖音 Douyin | `Douyin` | 🇨🇳 | ✅ (API+QR) | ❌ | 抖音开放平台 | | 2 | 小红书 Xhs | `Xhs` | 🇨🇳 | ❌(手动) | ❌ | 通过 Electron 插件 | | 3 | 快手 Kwai | `KWAI` | 🇨🇳 | ✅ | ❌ | 快手开放平台 | | 4 | 哔哩哔哩 Bilibili | `BILIBILI` | 🇨🇳 | ✅ | ❌ | B站开放平台 | | 5 | 视频号 Weixin | `WxSph` | 🇨🇳 | ✅ | ❌ | 微信开放平台 | | 6 | 微信公众号 | `WxGzh` | 🇨🇳 | ✅ | ❌ | 微信公众平台 | | 7 | TikTok | `TIKTOK` | 🌍 | ✅ | ❌ | TikTok OAuth | | 8 | YouTube | `YOUTUBE` | 🌍 | ✅ | ✅ | Google OAuth | | 9 | Facebook | `FACEBOOK` | 🌍 | ✅ | ✅ | Meta OAuth | | 10 | Instagram | `INSTAGRAM` | 🌍 | ✅ | ✅ | Meta OAuth | | 11 | Threads | `THREADS` | 🌍 | ✅ | ✅ | Meta OAuth | | 12 | Twitter/X | `TWITTER` | 🌍 | ✅ | ✅ | Twitter OAuth 2.0 | | 13 | Pinterest | `PINTEREST` | 🌍 | ✅ | ❌ | Pinterest OAuth | | 14 | LinkedIn | `LINKEDIN` | 🌍 | ✅ | ❌ | LinkedIn OAuth | | 15 | Google商家 | `GOOGLE_BUSINESS` | 🌍 | ✅ | ❌ | Google Business | > 注:小红书的发布通过 Electron 桌面客户端的浏览器自动化插件实现,而非标准 API。抖音也提供扫码发布(临时链接 + 手机扫码)。 ### 3.2 平台对接架构 **代码结构**:每平台分三层 ``` channel/ ├── platforms/ # 平台 OAuth + 账号管理 │ ├── douyin/ # 抖音 (controller, service, dto, module) │ ├── xiaohongshu/ # 小红书 │ ├── bilibili/ # B站 │ ├── kwai/ # 快手 │ ├── tiktok/ # TikTok │ ├── twitter/ # Twitter/X │ ├── meta/ # Facebook + Instagram + Threads + LinkedIn (共用) │ ├── pinterest/ # Pinterest │ ├── youtube/ # YouTube │ ├── wx-plat/ # 微信平台 │ └── google-business/ # Google 商家 ├── libs/ # 各平台 API 的 HTTP 请求封装 │ ├── douyin/ │ ├── bilibili/ │ ├── tiktok/ │ └── ... └── publishing/ └── providers/ # 各平台发布 Provider ├── base.service.ts # 抽象基类 (validatePublishParams, publish) ├── bilibili.service.ts ├── douyin.service.ts ├── tiktok.service.ts └── ... ``` **关键设计模式**: - **Provider 模式**:`PlatformModule` 通过工厂方法将所有平台的服务注册到 `CHANNEL_PROVIDERS` Map 中,键为 `AccountType` 枚举。 - **抽象基类**:`PlatformBaseService` 定义 `getAccessTokenStatus()`、`getWorkLinkInfo()` 等抽象方法。 - **Relay 代理**:自部署用户无需在每平台注册开发者账号,可通过 Relay 借用官方凭据完成 OAuth。 ### 3.3 各平台 OAuth 环境变量 从 `docker-compose.yml` 可见,每个平台需要配置 CLIENT_ID 和 CLIENT_SECRET: ``` BILIBILI_CLIENT_ID / BILIBILI_CLIENT_SECRET DOYIN_CLIENT_ID / DOYIN_CLIENT_SECRET GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET (YouTube) KWAI_CLIENT_ID / KWAI_CLIENT_SECRET PINTEREST_CLIENT_ID / PINTEREST_CLIENT_SECRET TIKTOK_CLIENT_ID / TIKTOK_CLIENT_SECRET TWITTER_CLIENT_ID / TWITTER_CLIENT_SECRET FACEBOOK_CLIENT_ID / FACEBOOK_CLIENT_SECRET (含 Instagram/Threads) LINKEDIN_CLIENT_ID / LINKEDIN_CLIENT_SECRET WXPLAT_APP_ID / WXPLAT_APP_SECRET (微信公众号/视频号) ``` --- ## 4. MCP 协议支持方式 ### 4.1 整体架构 AiToEarn 采用 **自研的 `@yikart/nest-mcp` 库** 实现 MCP 协议支持,完全融入 NestJS 框架。 ``` Claude Desktop / Cursor / 其他 AI 助手 │ │ MCP协议 (SSE / Streamable HTTP / STDIO) ▼ ┌─────────────────────────────────┐ │ UnifiedMcpModule │ │ (统一 MCP 入口,apiPrefix='unified') │ │ │ │ AccountMcpController.java ← @Tool('getAccountGroupList') │ PublishMcpController.java ← @Tool('publishPostToBilibili', 等10个) │ ContentMcpController.java ← @Tool('createDraft', 等11个) │ DraftGenerationMcpController ← @Tool('createVideoDraft', 等3个) │ │ │ McpModule (nest-mcp 框架) │ │ ├── McpRegistryService │ │ ├── McpExecutorService │ │ ├── McpSseService │ │ └── McpStreamableHttpService │ └─────────────────────────────────┘ ``` ### 4.2 暴露的 MCP 端点 | 端点 | 协议 | 说明 | |------|------|------| | `https://aitoearn.ai/api/unified/mcp` | MCP (Streamable HTTP) | 标准 MCP 工具调用 | | `https://aitoearn.ai/api/unified/sse` | SSE (Server-Sent Events) | 长连接推送 | | `https://aitoearn.ai/api/unified/messages` | Messages | SSE 消息端点 | 中国版:`aitoearn.cn` 替换 `aitoearn.ai` ### 4.3 暴露的 MCP 工具清单 **账号管理 (AccountMcpController)**: - `getAccountGroupList` — 获取账号分组 - `getAccountListByGroupId` — 按分组列出账号 - `getAllAccounts` — 获取所有账号 - `getAccountDetail` — 获取账号详情 **内容发布 (PublishMcpController)** — 12 个工具: - `getPublishingTaskStatus` — 发布任务状态查询 - `publishRestrictions` — 各平台发布限制查询 - `publishPostToBilibili` — B站发布 - `publishPostToYoutube` — YouTube发布 - `publishPostToTiktok` — TikTok发布 - `publishPostToFacebook` — Facebook发布 - `publishPostToInstagram` — Instagram发布 - `publishPostToTwitter` — Twitter发布 - `publishPostToThreads` — Threads发布 - `publishPostToPinterest` — Pinterest发布 - `publishPostToKwai` — 快手发布 - `publishPostToWxGzh` — 微信公众号发布 **内容管理 (ContentMcpController)** — 11 个工具: - `getMediaGroupInfoByName` / `createMedia` / `listMedia` / `listMediaGroups` - `getDraftGroupInfoByName` / `createDraft` / `listDrafts` / `getDraftDetail` / `deleteDraft` / `listDraftGroups` **草稿生成 (DraftGenerationMcpController)** — 3 个工具: - `createVideoDraft` — AI 视频草稿生成 - `createImageTextDraft` — AI 图文草稿生成 - `getDraftTaskStatus` — 草稿任务状态查询 - `getDraftGenerationPricing` — 模型定价查询 **总计:约 30+ 个 MCP 工具** ### 4.4 MCP 认证方式 通过 HTTP Header 传递 API Key: ``` x-api-key: 你的API-Key ``` ### 4.5 @yikart/nest-mcp 库实现 自定义 NestJS 库,核心设计: ``` @Tool({ # 装饰器标记工具 name: 'publishPostToBilibili', description: '...', parameters: ZodSchema, # Zod 校验参数 }) async publishPostToBilibili(data) { ... } ``` - **传输协议**:SSE(Server-Sent Events)、Streamable HTTP、STDIO 三种 - **路由发现**:通过 NestJS `DiscoveryModule` 自动注册 @Tool 装饰器 - **参数校验**:Zod Schema 自动生成 JSON Schema - **认证集成**:复用 NestJS Guard 机制 - **监控**:提供 `MCP_TOOL_MONITOR` 接口追踪工具调用 ### 4.6 AI Agent 内部 MCP Server 在 Agent 运行时中(aitoearn-ai),通过 `@anthropic-ai/claude-agent-sdk` 启动子 MCP Server 提供内部技能工具: | MCP Server | 用途 | |------------|------| | `mediaGeneration` | 媒体生成 (图片/视频) | | `database` | 数据库查询 | | `util` | 通用工具 (时间/等待) | | `aideo` | 火山引擎视频编辑 | | `videoEdit` | 视频编辑 | | `videoUtils` | 视频工具 | | `dramaRecap` | 剧情解说生成 | | `styleTransfer` | 风格迁移 | | `imageEdit` | 图片编辑 | | `subtitle` | 字幕处理 | --- ## 5. 部署方式 ### 5.1 Docker 一键部署 ```bash git clone https://github.com/yikart/AiToEarn.git cd AiToEarn docker compose up -d ``` **8 个容器组件**: | 服务 | 镜像 | 端口 | 说明 | |------|------|------|------| | mongodb | mongo:latest | 27017 | MongoDB 副本集 | | mongodb-rs-init | mongo:latest | — | 初始化副本集(一次性) | | redis | redis:latest | 6379 | Redis 缓存/队列 | | rustfs | rustfs/rustfs:latest | 9001 | S3 兼容对象存储 | | aitoearn-init | node:lts-alpine | — | 初始化数据库(一次性) | | rustfs-init | minio/mc:latest | — | 初始化存储桶(一次性) | | aitoearn-ai | aitoearn/aitoearn-ai | 3010 | AI 服务 | | aitoearn-server | aitoearn/aitoearn-server | 3002 | 主 API 服务 | | aitoearn-web | aitoearn/aitoearn-web | 3000 | Web 前端 | | nginx | nginx:alpine | **8080**/9000 | 反向代理/OSS | **Relay 配置**(强烈推荐,免去各平台注册开发者账号): ```yaml RELAY_SERVER_URL: https://aitoearn.ai/api RELAY_API_KEY: 你的API-Key RELAY_CALLBACK_URL: http://localhost:8080/api/plat/relay-callback ``` ### 5.2 源码开发 ```bash # 后端 cd project/aitoearn-backend pnpm install pnpm nx serve aitoearn-ai # AI 服务 (端口 3010) pnpm nx serve aitoearn-server # 主服务 (端口 3002) # Web 前端 cd project/aitoearn-web pnpm install pnpm run dev # Electron 桌面 cd project/aitoearn-electron npm install npm run dev ``` ### 5.3 5 种使用方式 | 方式 | 说明 | |------|------| | ① 直接访问官网 | aitoearn.ai / aitoearn.cn | | ② 在 OpenClaw 中 | `npx -y @aitoearn/openclaw-plugin-cli` | | ③ 在 AI 助手中 | 通过 MCP 协议,支持 Claude/Cursor 等 | | ④ Docker 自部署 | 私有化部署到自有服务器 | | ⑤ 源码开发 | 本地开发调试 | ### 5.4 所需环境变量 关键配置项: - **AI 服务**:`OPENAI_API_KEY`、`ANTHROPIC_API_KEY`、`GROK_API_KEY`、`GEMINI_API_KEY`、`VOLCENGINE_*` - **数据库**:MongoDB、Redis 连接信息 - **存储**:`ASSETS_CONFIG`(S3/OSS) - **各平台 OAuth**:每个平台的 Client ID/Secret - **JWT/安全**:`JWT_SECRET`、`INTERNAL_TOKEN` --- ## 6. 与我们内容流水线的对比和可借鉴点 ### 6.1 架构对比 | 维度 | AiToEarn | 我们的内容流水线 | |------|----------|----------------| | 语言/框架 | TypeScript, NestJS, Next.js | — | | 数据库 | MongoDB (Replica Set) | — | | 消息队列 | BullMQ (Redis) | — | | 存储 | S3 兼容 (RustFS/MinIO) | — | | AI 引擎 | Claude SDK (+ 多模型调用) | — | | 平台对接 | 15 个平台,统一 Provider 模式 | — | | 部署 | Docker Compose + 镜像 | — | | 对外接口 | MCP 协议 (自研 nest-mcp 库) | — | | 前端 | Web + Electron 桌面客户端 | — | | 项目结构 | Nx Monorepo (pnpm) | — | ### 6.2 可借鉴点 #### 🔥 高优先级借鉴 **1. MCP 协议封装 (`@yikart/nest-mcp`)** - 自研的 NestJS MCP 集成库,通过 `@Tool()` 装饰器即可暴露工具 - 支持 SSE / Streamable HTTP / STDIO 三种传输 - 与 NestJS Guard、Zod 校验深度集成 - 这是我们最值得直接参考的组件 **2. 平台对接的 Provider 模式** - 统一的 `PlatformBaseService` 抽象基类 - 工厂模式将所有平台注册到 Map - 每个平台独立模块(controller + service + dto + module) - 新平台接入只需实现接口 + 注册到工厂 **3. 发布引擎设计** - 统一 `PublishingService` 入口 - 队列异步化(BullMQ)避免阻塞 - Webhook 回调更新状态 - 支持立即/定时发布 - 各平台 Provider 实现统一接口 **4. Agent System Prompt 工程** - 453 行 system prompt,完整定义了 Agent 工作流 - 包含:技能分析 → 执行计划 → 媒体生成 → 发布 - 子 Agent 分配(skill-analyzer, polling-task) - 错误处理、重试逻辑 **5. Relay 代理机制** - 自部署用户通过 Relay 借用官方 OAuth 凭据 - 解决了"私有化部署但需各平台开发者账号"的矛盾 - 架构上优雅:本地无凭据时透明转发到 Relay Server #### 📋 中等优先级借鉴 **6. Electron 桌面客户端** - 解决 Web 无法直接操作浏览器的限制 - 通过内置 Chrome 驱动实现自动化互动(点赞/评论) - 本地 SQLite 缓存 + 系统托盘 **7. 批量草稿生成引擎** - 支持并行生成多条内容 - 平台兼容性检查(按平台限制过滤兼容平台) - 支持参考图片/视频 **8. 结算系统** - CPS/CPE/CPM 三种结算模式 - Credits 积分 + 按用量计费 - AI 任务退款消费者 **9. 双环境设计 (中国版/国际版)** - `.ai` 国际版 vs `.cn` 中国版 - 两套 OAuth 凭据、两套 API Key - 使用体验一致,后端逻辑复用 #### 💡 低优先级参考 **10. 国际化** - 支持中/英/日/韩/法/德等多语言 - i18n 目录结构清晰 **11. Nx Monorepo 组织** - 应用层 (apps) + 共享库 (libs) 分离 - 共享 DTO/VO/Schema 在 libs 中统一管理 - pnpm workspace 依赖管理 **12. 自动化工作流** - GitHub Actions:backend-build, web-build, PR check - Claude 开发规则 (AGENTS.md, .claude/instincts) ### 6.3 关键差距 | 能力 | AiToEarn 有 | 我们没有 | |------|------------|---------| | MCP 协议标准接口 | ✅ 30+ 工具 | — | | 13+ 平台统一对接 | ✅ 含国内海外 | — | | OAuth Relay 代理 | ✅ 解决私有化部署痛点 | — | | Electron 桌面端 | ✅ 浏览器自动化 | — | | 内容交易市场 | ✅ Monetize 功能 | — | | Agent 驱动的端到端创作 | ✅ 创意→生成→保存→发布 | — | | 多 AI 模型编排 | ✅ 7+ 视频模型 | — | --- ## 附录 ### A. 关键文件索引 | 文件 | 说明 | |------|------| | `project/aitoearn-server/src/core/unified-mcp/` | MCP 统一入口模块 | | `project/aitoearn-server/src/core/channel/publishing/` | 发布引擎 | | `project/aitoearn-server/src/core/channel/platforms/` | 平台对接层 | | `project/aitoearn-server/src/core/channel/engagement/` | 互动引擎 | | `project/aitoearn-ai/src/core/agent/agent.constants.ts` | Agent System Prompt | | `project/aitoearn-ai/src/core/agent/agent-runtime.service.ts` | Agent 运行时 | | `project/aitoearn-ai/src/core/draft-generation/` | 批量草稿生成 | | `libs/nest-mcp/` | 自研 MCP 框架 | | `libs/mongodb/src/schemas/` | 所有数据模型 Schema | | `libs/common/src/enums/` | 全局枚举定义 | | `docker-compose.yml` | 完整部署配置 | | `scripts/init.mjs` | 数据库初始化脚本 | ### B. 核心依赖 | 依赖 | 用途 | |------|------| | `@anthropic-ai/claude-agent-sdk` | Agent 运行时核心 | | `@anthropic-ai/sdk` | Claude API | | `@nestjs/*` | 后端框架 | | `bullmq` | 消息队列 | | `mongoose` | MongoDB ODM | | `ioredis` | Redis 客户端 | | `googleapis` | YouTube/Google API | | `openai` | OpenAI API | | `next` | Web 前端 | | `antd` | UI 组件库 | | `zustand` | 前端状态管理 | ### C. 版本历史 | 版本 | 日期 | 要点 | |------|------|------| | v2.4 | 2026-05-21 | 草稿生成新增 HappyHorse 1.0 / Seedance 2.0;增强 Twitter 探索互动 | | v2.1 | 2026-03-26 | 内容交易市场上线;OpenClaw 支持;MCP 协议支持 | | v1.8 | 2026-02-07 | 线下商户推广解决方案 | | v1.4.3 | 2025-12-15 | "All In Agent" — AI Agent 自动内容生成与发布 | | v1.4.0 | 2025-11-28 | 应用内自动更新;AI 创作功能增强;Nano Banana Pro | | v1.3.2 | 2025-11-12 | 首个开源可用版本 | | v1.0.18 | 2025-09-16 | 出海版本,Facebook/Instagram/Threads/Twitter/YouTube/TikTok/Pinterest | | v0.1.1 | 2025-02-26 | 首个开源版本,小红书/抖音/快手/视频号一键发布 |