Files

384 lines
33 KiB
Markdown
Raw Permalink Normal View History

# 1b 竞品分析 · 汇总对比体(内容工作台)
> 项目 slug:`content-workbench` | 原始目标:调研 5 个开源内容工作台项目并生成分析文档
> 本份是 1b 的**汇总对比体**,只做一件事:把 5 个竞品**放在一起比** —— 共识是什么、差异在哪、哪里没人做好、我们要先解决什么。主线是五问:用途 → 场景 → 功能 → 作用 → 优势。
> 单个竞品的完整形态 / 给谁用 / 干什么用、用户把事办成的过程、它自己的能力与机制,**在各家独立分析体里**(`证据附卷/` 5 份,写法判据见方法论 §11)。本份不重抄那部分,只保留横向对比需要的基线。
> 竞品池是 5 个开源项目,实际是 **4 条独立产品线 + 1 组同源双形态**(见 §2)。
> 证据分三级:**源码级**(结论来自仓库文件树、源码或官方文件)· **官方文档级**(只有官方自述与仓库元数据)· **界面级**(有官方界面截图)。本次**界面级只有 Easel 一家**(4 张官方工作台截图);**文档级只有文到 AI 一家**(无业务源码)。
> 原始证据在 `取证/`:`api/` · `api/fork/` · `easel/` · `opencreator/` · `wendao/`。取证时间见 §附 E。
> **改版说明(第二版,2026-10-07 22:3x)**:第一版 21:41 写就,早于 4 份新版独立体,边界要重核(详见文末「这一版跟上一版的实质差别」)。本版按方法论 §0.4 收紧为纯横向:逐家的能力详述、机制详述交回独立体,只留横向铺开与选型结论。
---
## 0. 怎么读这份
五问落在哪:用途看 §3,场景看 §4,功能和作用都在 §5,优势看 §7。§8 的矩阵和 §10 的结论负责收口。
**想知道「某一家具体长什么样、用户怎么用它」** —— 那不在本份,去读对应那家的独立分析体。本份只回答「摆在一起看,它们差在哪」。
文到 AI 的证据只到官方文档级,在本组不进源码级,凡引用处都已标注。它和另外 4 家的结论不同权。
许可、风险、取证冲突、缺口这四类工程与合规内容不进正文,统一放在 §附 A 到 §附 E。
---
## 1. 这次要回答什么
做一款**自有内容工作台**时,这 5 个项目各自把「用户的内容工作」做成了什么形态?哪些做法值得借鉴、哪些要避开、哪些还没被解决好?
竞品池见 §2。**不展开**的部分:用户量、下载量、营收、定价实测;行级代码 diff;各项目的真实运行验证(缺口见 §附 D)。
五问各自落在哪一节:
| 五问 | 关注点 | 落点 |
|---|---|---|
| 用途:是什么、给谁用、干什么用 | What / Who | §3 |
| 场景:用户在什么处境下用它 | When / Why | §4 |
| 功能:有哪些核心能力 | What | §5 |
| 作用:每项能力解决什么问题 | What for | §5 |
| 优势:相对谁、在哪些场景更强更弱 | vs Whom | §7 |
---
## 2. 选了哪些竞品
分三层:
1. **直接竞品(做内容)**:`ZJU-REAL/Easel`、`krillinai/OpenCreator`、`wendaoai/wendao-content-workbench`(文到 AI)。
2. **间接与替代方案(发内容)**:`gitroomhq/postiz-app`、`lumizone/postsider`。
3. **点名参考实装**:本次**没有**。原始目标只给了 5 个链接,所以全部按前两层收录。
为什么是这 5 个:用户要「把内容做出来」时,会在 Easel、OpenCreator、文到 AI 之间比,比的是**全链路 / 媒体工厂 / 单平台桌面**三条不同做法。用户要「把内容发出去、排期、接 Agent」时,两条路是**成熟生态**与 **Agent 桥**。
PostSider 是 `postiz-app` 的 fork —— 它的 `ATTRIBUTION.md` 里逐字写了这一点,两者同为 AGPL-3.0。所以这两个按**一条产品线、两个形态**处理;矩阵里分两列只为写清差异,同源关系回到 §附 C 第 3 条。
读的时候要带上一个前提:**这 5 个不在同一赛道。** 它们分属内容生产链的上游(做)和下游(发),这个分界后面每一节都要用到。
---
## 3. 用途基线(一行一家)
这一节只给「摆在一起比」需要的最小基线。各家完整的用途四行(形态 / 给谁用 / 干什么用 / 证据等级)在独立体 §2,本份不重抄。
| 竞品 | 形态 | 给谁用 | 用它干什么 |
|---|---|---|---|
| **Easel** | 开源社媒内容工作台,本地自托管(Web `:7860` + CLI) | 要一条龙做社媒内容的个人或小团队 | 一个 Agent 贯穿「发现热点 → 策划选题 → 创作图文音视频 → 多平台发布 → 归因回写画像」 |
| **OpenCreator** | 创作者 AI 工作台,Web 单前端 + Electron 壳,Codex 驱动 | 要批量做媒体的创作者 | 把 Agent 对话与可视化创作工具装在同一个本地 Runtime 上,批量生产视频、图像、语音、口播 |
| **文到 AI** | 本地优先的**公众号**写作 / 排版 / 配图**桌面工具**(Wails,三平台) | 只做公众号一条线、在意数据留本机的人 | 从选题、写稿、排版、配图到发布准备,全在桌面端本地完成 |
| **Postiz** | 社媒**排期**工具(Cloud SaaS + 开源自托管双形态) | 要稳定排期与协作的团队 | 30+ 平台排期、分析、团队协作,并接受 n8n / Make / Zapier 式自动化接入 |
| **PostSider** | Postiz 的 fork,改造成「Agent 桥」(Docker Compose,入口 `:4007`) | 要把发帖能力接给 AI Agent 的开发者 | 30+ 平台排期,加公开 REST API、Node SDK、MCP server(19 个工具) |
「内容工作台」这个词在本组里指两种东西:**做内容**的(Easel、OpenCreator、文到 AI)和**发内容**的(Postiz、PostSider)。
---
## 4. 使用场景横向对比
横切方式:按**内容生产链上的五个用户处境**铺开,看用户在这个处境下要办成什么、各竞品怎么让他办成。不按竞品逐个写。
| 用户处境 | Easel | 文到 AI(文档级) | OpenCreator | Postiz | PostSider |
|---|---|---|---|---|---|
| **① 我该做什么**(发现热点、定选题) | 有,热点雷达聚合 6 到 8 个平台 | 有,热点雷达加营销日历 | 弱,有视频下载,没有热点发现 | 弱,RSS 自动发 | 弱,无 |
| **② 选题怎么排成计划** | 有,策划技能成组 | 有,选题库、系列规划、能力库编排 | 弱,脚本和模板 | 无 | 无 |
| **③ 把东西做出来** | 有,技能库带可运行脚本 | 有,写作、排版、配图、卡片工坊 | 有,十项创作工具加 108 条模板(视频翻译覆盖 14 源语言到 101 目标语言) | 弱,AI Copilot 与图、视频、切片,要自带 Key | 无,主动移除了 AI 内容生成 |
| **④ 发出去** | 有,7 平台,靠浏览器自动化喂入 | 弱,发布助手插件只填充不代发 | 无,不做发布 | 有,30+ 平台,走官方 OAuth | 有,30+ 平台 |
| **⑤ 发完怎么复盘** | 有,归因结果回写账号画像 | 弱,公众号数据月度复盘 | 无 | 有,按渠道分析 | 有,分析和客户报告 |
⚠️ 文到 AI 那一列的证据只到官方文档级。它的「场景」在独立体 §3 里已写明**六行动作链里三行整行取不到**,本表的格子只是官方自述能支撑到的粒度,别当界面级事实读。
各自处境下「为什么这么做」(When / Why 这一层):
① 到 ② 是**做内容三家的主场**。它们把「该做什么」当成产品入口。两家排期产品不做选题,因为用户是带着已成稿的内容来的。
③ 是**分歧最大的一段**。OpenCreator 把这段做成媒体工厂,批量、多语言、模板化;Easel 做成技能库,技能就是可运行脚本,产物落盘;PostSider 反过来主动移除了 AI 生成,它只服务已经有稿子的人。
④ 是**产品边界的分水岭**。Easel 用浏览器自动化把「发」也纳入闭环,自己在 README 里承认有平台风控风险;Postiz 不自动化也不抓取;文到 AI 只填充不代发;OpenCreator 干脆不做。这背后是两种用户价值:把 ④ 做进产品省下一次搬运,代价是把不可逆的动作交给了自动化;不做 ④ 少一段风险,但用户要手动搬一次。
⑤ 只有 **Easel 做成了闭环**。归因结果回写账号画像,下一轮的 ①② 由此收敛。这是本组唯一一处「用得越久越懂你」的设计。
---
## 5. 功能横向对比
维度按内容链路层建,可增不可缺:能力面、Agent 可调用面、内容治理。**每项能力「解决什么问题 / 起什么作用」的完整写法在独立体 §4**,本节只做横向。
### 5.1 能力面(按链路层)
| 维度 | Easel | 文到 AI | OpenCreator | Postiz | PostSider |
|---|---|---|---|---|---|
| 发现 / 热点 | 强,多平台热榜聚合 | 中,热点雷达 | 弱,仅视频下载 | 弱,RSS | 弱,无 |
| 策划 / 选题 | 强,技能成组 | 中,选题库加系列规划 | 弱,脚本与模板 | 无 | 无 |
| 创作 | 强,技能库带脚本 | 中,写作 / 排版 / 配图 / 卡片工坊 | 最强,十项工具加 108 模板 | 中,自带 Key | 无,主动移除 |
| 发布 | 中,7 平台自动化 | 弱,只填充不代发 | 无 | 最强,30+ OAuth | 最强,30+ |
| 归因 | 强,回写画像 | 中,月度复盘 | 无 | 中,分析 | 中,分析 / 客户报告 |
横向看下来,能拉开差距的只有两段:**创作**(OpenCreator 最重)和**发布**(Postiz 与 PostSider 最全)。其余各段都有至少一家做得出,差异在深度不在有无。
### 5.2 Agent 可调用面
| 竞品 | 形态 | 解决什么问题 |
|---|---|---|
| Easel | OpenClaw Agent + MCP | 让技能能被 Agent 调起 |
| OpenCreator | MCP runtime 透传 Codex | 不自造 Agent 循环,省一半工期 |
| Postiz | MCP 嵌在后端 + CLI + 15 个 agent 连接器 | 让现成 Agent 接进来 |
| PostSider | 独立 MCP 包,19 工具(13 读 6 写) | 把「可调用面」做成独立产品件 |
| 文到 AI | 无 | — |
这一行的横向结论:**Agent 可调用面已经不是差异点。** 5 家里 4 家都有,两家排期产品还把 MCP / API / SDK 放进了每一个付费档,没当成加价项。它已经从卖点变成基础能力。
### 5.3 内容治理(发布前)
横向铺开四家的姿态:
- **Easel**:两道闸。`content_guard.py` 管敏感信息(API key、内部路径),fail-closed,退出码 7;`persona_gate.py` 管人设偏离,低于 80 分只告警。一道硬,一道软。
- **PostSider**:read-first / draft-first。Agent 可以准备、排期、送审,**发布仍然是人的动作**;急停恢复也只有人能做。
- **文到 AI**:只填充不代发,把最后一步留给人。
- **Postiz**:托管侧走平台官方 OAuth,不抓取、不自动化。
- **OpenCreator**:不做发布,所以这一段没有对应设计。
横向看下来分两派:**「硬拦 + 软劝」「只填充不代发」是产品内的闸门**;「不自动化平台」是产品外的合规姿态。两条不冲突,但见 §9.2 第 1 条 —— 同一条产品线里不能两头都抄。
---
## 6. 机制横向对比
§5 比的是「有什么」,本节比「同一个问题各家怎么解」。**各家的完整机制清单在独立体 §5**,本节只挑横向有分歧的几组。
**1. 记忆与上下文的作用域。**
- Easel:按**账号画像**分(六维画像,画像目录即记忆作用域,不写全局文件)。
- OpenCreator:按**通用三级**分(global / project / thread);文档说明它不会自动保存,只给「存为长期记忆」的建议。
- 文到 AI:单机本地 SQLite,没有账号维度。
- Postiz / PostSider:没有内容记忆这一层。
⇒ 这一组的分歧是「作用域的粒度」。做内容的三家里,只有 Easel 把粒度收到了**账号**;OpenCreator 收到**项目**;文到 AI 干脆不做多账号。
**2. 改稿与版本。**
- OpenCreator:修订产生新版本、不覆盖,带 `sourceArtifactIds` 溯源和 `stale` 标记。
- 文到 AI:版本可对比、可采用、可继续改。
- Easel:产物落 `outputs/<主题>/`,系统状态目录带 `_` 前缀。
⇒ **修订不覆盖是本组的共识**,两家独立出现同一条(OpenCreator、文到 AI)。Easel 走的是另一条路(按主题归档,不强调版本链)。
**3. Agent 与人的分工。**
- Easel:发布前分级闸门,硬的拦、软的劝。
- PostSider:read-first / draft-first,Agent 到「送审」为止,发布归人。
- 文到 AI:插件只填公众号编辑器,不登录、不存草稿、不点发布。
- Postiz:不自动化、不抓取。
⇒ 四家的落点不同,方向一致:**把不可逆的那一步留给人。** 这条在本组是共识,不是某一家的偏好。
**4. 能力怎么加载 / Agent 引擎从哪来。**
- Easel:自建技能运行时,三层加载(元数据常驻 / 指令触发 / 资源按需),`SKILL.md` 不超过 200 行。
- OpenCreator:不重写 Agent 引擎,全透传给 Codex,只做生命周期、事件归一化、持久化、调度与 UI。
- 文到 AI:能力库,把多步骤编排成一套「创作方案」。
⇒ 这是**唯一的真分歧**:自建运行时(Easel)对上透传上游(OpenCreator)。两种都能跑,代价不同,见 §7 与 §9.2 第 1 条。
---
## 7. 优势与不足
每条都写清「相对谁 / 什么场景 / 什么结果」。逐家的完整强弱清单(每条四行)在独立体 §6,本表只留横向判断。
| 竞品 | 优势 | 不足 |
|---|---|---|
| **Easel** | 相对另 4 家,**唯一**覆盖「发现到归因」全闭环;在「要让内容越做越贴账号」的场景下,归因回写画像,输出持续收敛 | 相对 Postiz,发布环节用浏览器自动化;在「账号安全优先」的场景下,有风控、限流、封号风险(README 自陈)。安装门槛也高(Node 版本窗口窄,还要 FFmpeg 和 Chromium) |
| **OpenCreator** | 相对另 4 家,**媒体生成能力最强**;在「批量做多语言视频」的场景下,十项工具加 108 模板,边际成本近零。工程治理也最重 | 相对自建引擎者,**上游强耦合** —— Codex 一次破坏性变更就可能整体不可用。另外它**不做发布**,用户得另找出口 |
| **文到 AI**(文档级) | 相对另 4 家,**单平台纵深最完整**;在「只做公众号、要在意数据留本机」的场景下,端到端本地完成。产品侧 13 天发了 11 版 | 相对开源同行,**闭源**(全仓 5 blob),用户无法自审、无法二开;GitHub 侧只发文档(3★),社区支持弱 |
| **Postiz** | 相对另 4 家,**生态最成熟、星标最高、迭代最快**;在「要稳定排期与协作」的场景下,30+ 平台走官方 OAuth,合规且省维护 | 相对 Easel,**不做内容生产**。相对自用者,AGPL-3.0 意味着一旦作对外网络服务就得开放源码 |
| **PostSider** | 相对 Postiz,**把 Agent 桥做成了独立件**(19 工具 MCP 加 API 加 SDK);在「要把发帖接给 Agent」的场景下,接入成本最低 | 相对 Postiz,**单人开发、10★、发布停在 v1.2.0**,且已放弃跟随上游。作设计样本有价值,作可依赖上游风险高 |
---
## 8. 竞品能力矩阵
```
能力 / 场景 Easel 文到AI OpenCreator Postiz PostSider 机会
① 发现热点 强 中 弱 弱 弱 ← 全组普遍弱
② 选题与计划 强 强 中 — — ← 生产侧已有解
③ 内容生产 强 中 最强 中 主动放弃 ← 差异化主战场
④ 多平台发布 中(自动化) 弱(半) 无 最强 最强 ← 合规路线二选一
⑤ 归因回写 强 中 无 中 中 ← 只有 Easel 成闭环
⑥ Agent 可调用面 中 无 中 强 最强 ← 已成基础能力
⑦ 发布安全闸门 强(分级) 中 无 强 强 ← 已成基础能力
⑧ 本地优先/免密钥 强 强 强 弱 弱 ← 做内容侧共识
```
这张矩阵能看出五件事:
**已经是基础能力、不再构成差异的**:⑥ Agent 可调用面、⑦ 发布安全闸门、⑧ 本地优先与免密钥。
**能拉开差距的**:③ 内容生产(OpenCreator 最强)、④ 多平台发布(Postiz 和 PostSider 最强)。
**某家独有的**:只有 Easel 做出了 ⑤ 归因回写闭环;只有 PostSider 把 MCP 做成了独立产品件。
**普遍做得不好的**:① 发现热点 —— 做内容的三家里两家只是「有」,发内容的两家几乎不管。
**还没被解决好的需求**:④ 的**合规自动化**。现在只有「浏览器自动化(有风险)」和「OAuth 或只填充(要人工)」两条路,没有第三条。
**取值口径**:本矩阵只保留能区分竞品的行。⑦⑧ 作为「共识能力」行列保留,用途是提示「不必在这里找差异」。
---
## 9. 可借鉴点与产品机会
三类分开写。**每条第 4 段「它现在怎么做」的完整版在独立体 §7**,本节做的是三类汇总,并追回 §4 / §5 / §7。
### 9.1 该借鉴(竞品已验证有效,且与自有目标一致)
**可以直接搬的工程做法**(成本低、边界清晰):
1. **技能 / 工具契约独立成包 + 版本常量**(OpenCreator)—— 三端同源最低成本的一步。
2. **状态机 + 版本号 + 幂等键三件套**(OpenCreator)—— 为「远端到底收没收」专设 `unknown_remote_acceptance` / `abandoned_unknown` 两态。
3. **工具契约独立成断言目标**(PostSider)—— 把「Agent 能看到哪些工具」写死成独立清单,静默增删改名会直接测试报红。
4. **每个工具显式声明四个风险注解**(PostSider)—— `readOnlyHint` / `destructiveHint` / `idempotentHint` / `openWorldHint`。
5. **换牌与二开闸门**(PostSider)—— `.rebrand-allowlist` + `rebrand-check.mjs`(CI `exit 1`)。
6. **迁移回滚按「演练先行 + 不变量 SQL + 幂等复验」做**(OpenCreator)—— 只建临时库,第二次修复必须 `repaired=0`。
7. **性能门禁写进 CI 并带硬阈值**(OpenCreator)—— 请求数、DOM 峰值、Long Task、gzip 预算。
8. **「技能文档与脚本参数」机器校验**(Easel)—— 防文档漂移。
9. **独立更新清单**(文到 AI)—— `stable.json`:`channel` / `publishedAt` / `supportedPlatforms` / 逐包 `sha256` / 升级策略三字段。
10. **可用版本回退的运行组件管理**(OpenCreator)—— 定期检查更新但永不自动安装,失败时保留当前可用版本。
**高价值的产品设计**:
11. **技能三层加载,`SKILL.md` 控制在 200 行内**(Easel)。
12. **发布前分级闸门:一道硬、一道软**(Easel)。
13. **出站内容安全要分级而不是全禁**(Easel)。
14. **「工作台」与「对话」共用同一状态机,修订产生新版本而非覆盖**(OpenCreator)。
15. **read-first / draft-first 的产品边界**(PostSider)。
16. **画像六维,记忆作用域收敛到画像目录**(Easel)。
17. **付费操作的前置协议**(Easel)—— 先给范围、计划、费用预估再请求。
18. **本地与免密钥 provider 作一等公民**(OpenCreator、文到 AI、Easel 共同)。
19. **技能市场的合规面**(OpenCreator)—— 每条带七项风险声明、给 Agent 的指令、给人的步骤、商业许可审查位。
20. **`AGENTS.md` 的分级验证铁律**(OpenCreator)—— 同时治「动不动跑全量测试」和「用没跑的验证暗示无回归」。
### 9.2 该避开(竞品存在明显问题,不照搬)
1. **同一条产品线里不能既自动发、又宣称合规。** Easel 走浏览器自动化(README 自陈风控风险),Postiz 走官方 OAuth、不抓取不自动化。两条是互斥的设计红线,选一条走到底。(追回 §4 ④、§5.3)
2. **不把「薄壳透传」当默认路线**(OpenCreator)—— 省工期的对价是上游一次破坏性变更就可能整体不可用。
3. **不让对外文档与发行状态脱钩**(文到 AI)—— README 停在「尚未发布」,实际已发 10 个版本。对外文档必须有「最后校准时间」。
4. **不留命名双轨**(OpenCreator)—— 产品改名了,内嵌 CLI、脚本、技能前缀还用旧名。
5. **不用未核实授权的素材**(OpenCreator 自述案例)—— 来源没复测的一律先设 `draft`。
### 9.3 可突破(需求真实存在,竞品解决得不够好)
1. **发现热点这一段普遍弱**(追溯 §5.1 ①、§8 ①)。三家「有」但不深,两家不管。机会在把「找题」做成真正的入口。
2. **合规的自动发布是空白**(追溯 §8 ④)。现有两条路是「有风险的自动化」和「要人工的半自动」,**第三条路**(平台侧可控通道加分级确认)还没人做好。
3. **做内容与发内容之间那段桥,还是空的**(追溯 §2、§4 ④)。用户要在两处搬一次。机会在只做中间那段可复用的桥,而不是再造一个全链路。
---
## 10. 结论(产品层)
1. **用户最核心的需求**是让「该做什么 → 做出来 → 发出去 → 知道效果」这条链跑通,并且越跑越顺,而不是买到某一项最强的功能。
2. **竞品共同解决了什么**:③ 内容生产(有模板或技能就够用)、④ 多平台发布(30+ 平台已是基础)、⑥ Agent 可调用面(已成基础能力,不再是卖点)。
3. **竞品共同存在什么问题**:① 发现热点普遍弱;④ 的合规自动化没人做好;⑤ 归因闭环只有一家做成。
4. **已经是基础能力的**:Agent 可调用面、发布安全闸门、本地优先与免密钥。
5. **还能形成差异的**:内容生产的批量化与本地化(OpenCreator 路线);归因回写形成复利(Easel 路线)。
6. **本产品应优先解决什么** —— 先立规范再堆能力。① 技能和工具先有规范且机器可校验;② 再立契约层,可版本化、可断言;③ 发布这类不可逆动作一律设分级闸门;④ 工程治理直接内化(分级验证铁律、把 `unknown` 当一等结论、迁移演练加幂等复验)。
7. **一句话**:本组没有对手,只有零件。Easel 给「技能即能力加治理闸门」的骨架,OpenCreator 给「契约化加治理铁律加迁移演练」的工程底座,Postiz 和 PostSider 给「分发中枢加 Agent 桥」的接口范式,文到 AI 给「单平台纵深加发布边界」的产品取舍。最划算的路径是:以 Easel 的技能体系为主干,以 OpenCreator 的契约与治理为工程底座,以 PostSider 的 read-first / draft-first 定发布边界,许可上只搬 Apache-2.0 那一侧的代码。
---
## 附 A. 许可与合规速查
要复用代码,只在 **Apache-2.0**(Easel、OpenCreator)里取。取 Easel 时先确认内联的 `gzh-design`(AGPL-3.0)是否在交付路径上。
只借鉴设计、不搬代码,这 5 项都能看。
要把 AGPL 项目(Postiz、PostSider)改后作网络服务对外,须开放对应源码;内部自用不受约束。
要复用官方文案、截图或品牌素材,**只有文到 AI 明确禁止**(proprietary,`NOTICE.md`);其余以各自 LICENSE 为准。
## 附 B. 风险总表
| 项目 | 风险 | 级别 | 依据 |
|---|---|---|---|
| Easel | 平台风控:自动化发布到小红书存在验证、限流、封号风险 | 高 | README 加 `skill-xhs-publisher` 风险段逐字(独立体 Easel §六 弱 2) |
| Easel | 许可混用:主体 Apache-2.0 但内联 `gzh-design` 是 AGPL-3.0 | 中 | 独立体 Easel 附录「仓库自述口径差异」 |
| Easel | 依赖重、安装门槛高(Node 版本窗口窄) | 中 | 独立体 Easel §六 弱 1 |
| 文到 AI | 无 LICENSE:文案、截图、品牌素材均不可复制 | 高 | `NOTICE.md` 逐字(独立体 文到 AI 附录「许可提醒」) |
| 文到 AI | 「免费」边界未核实(changelog 出现「商用绿色版」) | 中 | 独立体 文到 AI 附录「查不到 / 待核实」第 3 条 |
| 文到 AI | 闭源加静默更新(`allowSkip: true`) | 中 | 独立体 文到 AI §五 机制 3 |
| OpenCreator | 上游强耦合:Codex 一次破坏性变更就可能整体不可用 | 高 | 独立体 OpenCreator §六 弱 1 |
| OpenCreator | 素材与商标再分发许可未在仓内单独声明 | 中 | 独立体 OpenCreator §六 弱 4 |
| Postiz / PostSider | AGPL-3.0 网络服务义务加上游署名义务 | 高(若对外) | `ATTRIBUTION.md` 逐字(独立体 Postiz 与 PostSider §五 机制 8) |
| PostSider | 单点风险:单人、10★、发布停在 v1.2.0 | 高 | 独立体 Postiz 与 PostSider §六 弱 1 |
| 全组 | **平台合规路线二选一,不可混**:Easel 走浏览器自动化,Postiz 走官方 OAuth,文到 AI 只填充不代发 | 高(设计红线) | 独立体 Easel §六 弱 2、Postiz 与 PostSider §七 该避开 1 |
## 附 C. 取证一致性复核(冲突读数,以原始件为准)
1. **Easel 技能数 113 与 114 冲突,以 114 为准**。`easel.tree.stat.json` 里 `skills_openclaw_dir_count = 114`、`skillmd_count = 114`,用 `取证/api/easel.tree.json` 复算一致。113 是 README 旧徽章和能力地图的口径。
2. **Postiz 文件树「截断前」的措辞有误,实际未截断**。`_summary.json` 里 `tree_total_blobs = 1018`、`tree_truncated = false`。真正被截断的是 OpenCreator 的树,已用 11 份分片补全。
3. **PostSider 连接器 33 与 34 冲突**。34 是仓库里 `*.provider.ts` 的文件数(源码级),33 是 README 口径,30+ 是官网营销语,三者口径不同,引用时要标明。「活跃注册数」仍未逐条核对。
4. **OpenCreator 模板 108(79 / 28 / 1)**:`tree.stat.json` 的 `template_entries_by_category` 三档全为 0,该派生字段失真,须以原始分片 `tree_template.json` 为准,复算吻合。
5. **Postiz 版本口径不一**:`version.txt` 是 v1.47.0,releases 最新是 v2.25.0(2026-10-02),两处口径不一,原因查不到。
## 附 D. 已知取证缺口(照抄《目标执行状态.md》,不补编)
**全组共性**:五家的真实用户量、下载量、营收基本查不到(Postiz 自述「7M downloads」但没有口径)。**真实运行证据为零** —— 全程只做静态取证,未安装、未编译、未运行任何命令。
**Postiz 与 PostSider**:fork 点(GitHub 未标记 fork、无 parent 指针)与改动行数(tree API 只给 blob sha,行级 diff 需要 clone 两侧)都未取到。PostSider「33 个活跃连接器」的口径未逐条核对;是否有托管云服务查不到。
**Easel**:CI 称 38 条技能自带测试,实际只测到 6 个测试文件;114 技能的 `layer` 源码级分布没做;`SKILL-SPEC` 的 `test1.*` 约定整树零文件;`.env.example` 里 `xhs-maas` / `agnes` provider 的来源未核实。技能可用率没有实测。
**OpenCreator**:商业与规模证据全缺;技能市场「上架态」口径未核实;`docs/plans/` 10 份计划的落地率未核;火柴人、头像、音频的再分发许可未核;`runtime/`(183 个 blob,其中 `.go` 163 个)只做了结构级取证;语言构成是按文件数口径(与官方字节口径不可混)。
**文到 AI**:源码级面全部查不到;「商用绿色版」是什么查不到;`updates/versions/` 只到 0.0.115 而 `stable.json` 已到 0.0.123,原因查不到。
## 附 E. 来源与取证时间
五个对象仓库:
1. `https://github.com/ZJU-REAL/Easel`(`main`)
2. `https://github.com/wendaoai/wendao-content-workbench`(`main`;主页 `https://www.asfop.top/`)
3. `https://github.com/krillinai/OpenCreator`(`master`)
4. `https://github.com/gitroomhq/postiz-app`(`main`;官网 `https://postiz.com`)
5. `https://github.com/lumizone/postsider`(`main`;官网 `https://postsider.com`)
| 棒次 | 产物 / 证据 | 取证时间(CST) | 落点 |
|---|---|---|---|
| 第 1 棒 | 5 项目元数据、README、文件树 | 2026-10-07 16:13–16:17 | `取证/api/*.{repo.json,README.md,tree.json}` 加 `_summary.json` |
| 第 2 棒 | Postiz / PostSider 同源双形态,fork 差异 | 2026-10-07 16:40–17:05 | `取证/api/fork/`(19 件)加 `fork-diff.json` |
| 第 3 棒 | Easel 深度分析 | 2026-10-07 17:06–17:19 | `取证/easel/`(17 件)加 `easel.tree.stat.json` |
| 第 4 棒 | OpenCreator 深度分析 | 2026-10-07 17:37–17:56 | `取证/opencreator/`(76 件)加 `opencreator.tree.stat.json` |
| 第 5 棒 | 文到 AI 分析(文档级) | 2026-10-07 18:07–18:10 | `取证/wendao/`(20 件) |
| 第 6 棒 | 跨项目汇总对比(本份第一版前身) | 2026-10-07 18:31–18:5x | `归档-1b旧口径/1b-竞品分析-跨项目汇总对比__旧口径-20261007.md` |
| 第 7 棒 | 5 份独立分析体重写(产品视角七节) | 2026-10-07 21:40–22:01 | `证据附卷/`(5 份) |
| 第 8 棒 | 汇总对比体按新边界重排(本份) | 2026-10-07 22:3x | 本文件 |
---
## 这一版跟上一版的实质差别
上一版(21:41 写)已经按新方法论重排过一次,也过了「说人话」。但它**写在新版独立体之前** —— 4 份独立身体是 21:58 到 22:01 才落盘的。于是它对边界、对证据等级的分类都停在旧认识上。
这一版的实质差别,逐条列:
1. **证据等级从两级改成三级。** 上一版写「证据分两级:源码级 / 文档级,本次只有文到 AI 落在文档级」。新版独立体里 Easel 是「源码级 + 官方文档级 + **界面级**」(4 张官方截图),是本组唯一有界面级证据的一家。这一级是重写独立体时才补上的,上一版没有。
2. **§3 用途从「逐家细述」改成「一行一家的基线」。** 上一版 §3 用一张三列表把五家的形态、给谁用、干什么用逐格写满,和独立体 §2 的用途四行重复。这一版只留对比基线,明写「完整四行在独立体 §2」,不再重抄。
3. **§5.1 后半的六项能力详述删掉了。** 上一版在能力矩阵后面又挑了六项能力(技能即能力 / 创作模板体系 / 公开 API / 卡片工坊 / 能力库 / 画像记忆)逐条展开,那是逐家产品面,归独立体 §4。这一版只留矩阵加横向解读。
4. **§6 从「逐家机制罗列」改成「同一机制横向对比」。** 上一版 §6 六条里,四条是单家机制(OpenCreator 两投影状态机、Easel 三层加载与分级闸门、OpenCreator 透传 Codex、Easel 画像记忆),按 §0.4 归独立体。这一版换成四组横向:记忆作用域、改稿与版本、Agent 与人的分工、能力加载与引擎来源 —— 每组比的是「同一个问题各家怎么解」。
5. **§7 表加了指引,§9 明标「细节在独立体 §7」。** 优势不足表与三类汇总保留(它们是汇总体该写的),但都加了一行「完整清单在独立体 §6 / §7」,避免读者以为本份就是全量。
6. **清掉悬空的节号引用。** 上一版 附B 依据列写「第 2 棒 §八·4、第 3 棒 §十三·1」,上一版 附D 写「照抄《目标执行状态.md》§八」—— 这些指向的是旧棒次文档的编号,新版独立体早改成七节结构。这一版全部换成**指向新版独立体的节号**。
7. **§4 场景矩阵给文到 AI 那一列加了证据警示。** 上一版直接填格;新版独立体已明确文到 AI 的场景「六行里三行整行取不到」。这一版在表下加了警示行,说明那一列只到官方自述粒度。
8. **§4 处境的格子从「技能计数」改成「能力强弱」。** 上一版写「有,9 个热点技能加基础 6,共 15」「有,114 个技能」这类计数 —— 计数是独立体的事。这一版只留强弱与做法。
9. **附 E 补了第 7、8 两棒。** 上一版只到第 6 棒;这一版把「第 7 棒 独立体重写」「第 8 棒 汇总重排」补上,时间对得上。
**没变的部分**(事实一条没丢):竞品池分层与纳入理由、§8 能力矩阵的八行与五个判断、§9 的三类条目、§10 的七条结论、§附 A 到 §附 D 的许可、风险、冲突读数与缺口。
---
*本份是 1b 竞品分析的**汇总对比体**(第二版,2026-10-07 22:3x 按方法论 §0.4 收紧为纯横向)。**独立分析体**见 `证据附卷/`(5 份);原始证据见 `取证/`;旧口径原件见 `../归档-1b旧口径/`;本次改版前版本见 `../归档-说人话重写前-20261007/`。本版落在目标目录 `72111e` 内,⛔ 未覆盖 `research/1b-竞品分析.md`。*