我把开源项目托管给 AI 了:一句话提需求,AI 自己开发、自己测试、自己提 PR

0 阅读7分钟

MatrixMedia 是一款开源的多平台视频矩阵发布工具,Electron 写的,一键把视频/图文同步到抖音、快手、B站、头条、视频号、小红书、番茄等 8 个平台。GitHub 开源 7 个月,Star 1171,Fork 168。

v0.14.0 之后,这个项目进入了「AI 全面托管」状态:你一句话提个需求,AI 自己改代码、自己跑单测、自己上真实平台验证、自己修 bug,最后给你提一个带完整测试证据的 PR。整个过程不需要人写一行代码,也不需要人点一下鼠标。

这篇文章记录一下这个模式是怎么跑起来的,以及它实际跑出来的效果。

背景:AI 写代码已经不新鲜了,但 AI 测试还是人工的

这半年用 Cursor / Claude Code / WorkBuddy 写过代码的人都知道,AI 生成代码已经很流畅了。但有个环节一直没变:测试。

代码写完了,你得自己跑起来看看对不对。点个按钮、填个表单、等页面跳转、确认功能正常。如果不对,再跟 AI 说哪里不对,让它改,改完再测一遍。

MatrixMedia 做的是自媒体平台自动化发布,这个痛点更明显。比如我要加个「挂车」功能(视频挂商品链接),AI 可以帮我写 Puppeteer 脚本,但「挂车」按钮有没有点成功、商品有没有真的挂上去,AI 自己不知道——它只能告诉你「代码写完了,你试试」。

v0.14.0 解决的这个问题:让 AI 自己上真实平台验证。

v0.14.0 的核心:AI 自动 e2e 开发模式

这个版本加了一个 .agent/ 目录,里面是一套给 AI 编程智能体(Claude Code、Cursor、WorkBuddy、OpenClaw 等)准备的「自动开发测试工作流」。

工作流只有四步,但每一步都有硬约束:

改代码 → 单测(yarn test:*)→ e2e 真实平台验证 → 读证据 → 修 → 重跑 → 直至 PASS

关键在第三步:e2e 真实平台验证。

AI 改完代码后,不是跑个 mock 测试就交差,而是真实登录抖音/视频号/小红书,真实上传一个视频,真实点击「存草稿」,然后检查后台草稿箱里是否真的出现了这条草稿。

验证命令就一行:

node e2e/run.js -p dy --yes

-p 指定平台,--yes 是 AI 非交互模式。e2e 会自动构建、自动发布、自动采集证据(截图、日志、回执 JSON),然后生成一份报告。

AI 读报告,如果结果是 NEEDS_ATTENTION 或 FAIL,就自己分析原因、自己修代码、自己重跑。直到 draftVerified=true、退出码 0。

实战案例:10 轮 e2e,AI 自己修好了视频号「声明原创」

.agent/case-2026-10-31-video-draft-e2e.md 记录了一个完整案例:修复视频号「声明原创」勾选失败的问题。

任务指令只有一句:「视频号原创说明你自己 e2e 加修复一下」。

然后 AI 自己跑了 10 轮真实平台 e2e,中间放弃了两个「想当然」的方案,最终以「已保存」toast 为判据连续两轮 PASS 收敛。

每轮的迭代过程大概是:

轮次现象证据AI 的动作
1五平台全部退出码 2stderr:缺少 --phone自动从 cli accounts --json 取已登录账号填充
2视频号流程中断Node is either not clickable发现 wujie 影子树重渲染导致 ElementHandle 失效,改用 evaluate 实时查询
3存草稿未确认readPageText 返回空发现文本信号在 shadow root 里全盲,递归穿透 shadow DOM
4仍「请先选择」页面出现校验提示发现勾原创后必须选标注,补 --cs 参数
5仍「请先选择」截图:拍摄地点必填对话框改用 ai_generated 标注类型
6仍失败上下文证据与截图矛盾发现隐藏模板污染,加可见性三重过滤
7假阳性列表页 marker 命中但弹窗还压着发现验证手段本身制造了假证据,放弃导航核对方案
8抛错「保存草稿被平台拒绝」截图:绿色「已保存」toast发现保存一直是成功的,修复误报
9switchedDraftTab is not definedstderr清理死代码引用
10未确认列表页只有已发表视频终版方案:6 秒内轮询捕捉「已保存」toast
✅连续两轮 PASSdraftVerified=true收敛,提交

整个过程人没有参与。AI 自己读截图、自己分析日志、自己否定自己的方案、自己换思路。最后 commit 7711e65 合入。

这个案例的完整记录(每轮的截图、诊断行、决策依据)都在 .agent/case-2026-10-31-video-draft-e2e.md 里,推荐精读——它可能是目前开源项目里最完整的「AI 自主迭代」实录。

对没有编程基础的人:一句话就能开发新功能

这个模式最大的价值,是让没有编程基础的人也能给 MatrixMedia 提需求、加功能。

以前你要加一个平台支持(比如「挂车」),得:懂 Electron、懂 Puppeteer、懂目标平台的页面结构、会调选择器、会处理弹窗、会写测试。

现在你只需要:

  1. 打开 WorkBuddy(或 Cursor / Claude Code),把 MatrixMedia 仓库丢给它
  2. 说一句话:「给抖音加挂车功能,先登录有挂车权限的账号」
  3. 等 AI 跑完:它会自己分析页面结构、写代码、跑单测、上真实平台验证、修 bug,最后给你一个 PR

前提条件只有两个:

  • AI 模型支持图片识别:AI 需要截图对比需求(比如「挂车按钮长什么样」)
  • 账号已登录:如果是媒体平台内容开发(如挂车、原创声明),需要先登录有对应权限的账号(e2e 会自动跳过未登录平台)

WorkBuddy 是字节的 AI 编程工具,国内可直接用,支持 MCP。MatrixMedia 的 MCP Server 在 mcp/ 目录,WorkBuddy 可以直接接入。接入后,WorkBuddy 不仅能帮你写代码,还能直接调用 MatrixMedia 的发布能力——写完挂车功能,顺手就把视频发出去了。

这不是「低代码」,这是「无代码」

有人可能会说:这不就是低代码平台吗?

不一样。低代码平台是给你一套可视化界面,让你拖拽组件。MatrixMedia 的 AI 托管模式是你直接说需求,AI 给你写真实的、可维护的、有测试覆盖的代码。

生成的代码是真实的 JavaScript,走真实的 Git 流程,有真实的单测和 e2e 测试。你可以 review、可以修改、可以合并。AI 不是替代开发者,是替代「开发 + 测试」这个环节。

而且这套模式是开源的。.agent/README.md、e2e/run.js、AGENTS.md 里的规则,全部公开。你可以fork 这套工作流到你自己的项目里。

项目现状:维护模式 + AI 托管

MatrixMedia 目前处于维护模式:只修 bug、做平台反爬适配,不加新功能。但「AI 自动 e2e 开发模式」是个例外——它是维护模式的基础设施,让 AI 能自己修 bug、自己做反爬适配。

从 v0.14.0 开始,所有发布主链路的 PR(不管是人提的还是 AI 提的)都必须过 e2e 验证。AGENTS.md 里写得很清楚:

发布主链路改动必须由 AI(或人类)走完 e2e 真实平台验证,收敛标准为目标平台 draftVerified=true / 退出码 0。

这意味着 MatrixMedia 的质量门槛没有因为 AI 参与而降低,反而提高了——以前人写的 PR 可能只跑单测,现在 AI 写的 PR 必须上真实平台验证。

结尾

MatrixMedia 的 GitHub 仓库:github.com/hanliang97/…

如果你在做自媒体矩阵,或者对「AI 自主开发」感兴趣,欢迎 Star、Fork、提 Issue。置顶 Issue #35「全民找茬」长期开放,人和 AI 同一套规则。

如果你也想给自己的开源项目加一套 AI 自动 e2e 模式,.agent/ 和 e2e/ 目录下的所有文档和代码都可以直接参考。


这是 MatrixMedia 系列的第 15 篇,也是最后一篇。项目已进入 AI 托管状态,后续的功能迭代、bug 修复、反爬适配,都会由 AI 自主完成。人只需要提供账号,以及一句话的需求。