Dashi PPT 实测:8,250 星的开源 PPT Skill,1020 套版式,一份 JSON 导出 36 页可编辑 PPTX

Dashi PPT 实测:8,250 星的开源 PPT Skill,1020 套版式,一份 JSON 导出 36 页可编辑 PPTX

做过汇报的人都有过同一种卡壳:内容早在脑子里排好了,时间全耗在把字挪进模板、调对齐、换配色。让 AI 代劳也不省心——它吐出来的 HTML 常常是「看着像 PPT,改起来像拆炸弹」,动一行样式整页崩。

所以当一个 8,250 星、97 天冲到榜单的 PPT Skill 出现在雷达里,我决定不只看它的宣传页,而是把它彻底跑一遍:不装插件、不开浏览器点选,只喂一份内容 JSON,看它能不能离线产出一份真正能改的演示稿。结论先放这里:9 页稿子跑通了,还导出成 36 页可编辑 PPTX(11MB、740 个可编辑文本对象);但它自带的校验器也会误报,这点后面细说。

它把 PPT 拆成了三层

Dashi PPT 是一个 Agent Skill,核心思路和「让大模型直接写 HTML」完全相反:模型不负责画版式,只负责填内容。

它内部有 12 套视觉主题,每套主题是一批预置版式(封面、数据、对比、流程、风险、结论……),每个版式都是一段带控件的 React 组件。生成时先由 layout:query 按「页面角色 + 主题 + 随机种子」选出候选版式,再让 Agent 写一份 PageContentPack:每页只写标题、摘要、要点、图表数据,不写任何样式。随后 goal:scaffold 为每个逻辑页产出 4 个方案——3 个模板方案(锁死版式的视觉结构,只替换文字)+ 1 个按本页内容定制的方案。最后渲染成静态 HTML,导出 PPTX。

关键在「锁模板填文案」这条约束:页面的视觉、结构、数量、显隐、配色由版式决定,Agent 只能改文字。这既是它的可控性来源,也是它的上限所在。主题清单也能看出它的取舍:轻拟态风对应企业内部汇报,深浅代码风对应技术方案,色谱图表风对应数据分析,黑金实验风对应高端发布——都不是给品牌视觉团队准备的。

真正撑起这套体系的不是模板数量,而是三个量化文件:3.5MB 的 layout-manifest.json 登记了每个版式的控件与默认值,71KB 的属性契约约束每个控件能取什么值,82KB 的 spec 校验脚本负责在渲染前拦住非法结构。前者定义「有什么」,后两者定义「不能乱来」。

宣称 我的离线复核
12 套视觉主题 12 套,每套 71 到 111 个版式
1020 个版式页面 1020 条,逐条数列一致
8576 个可调控件 8576 个:开关 4276、滑杆 2372、下拉 1825、图标 77、图片位 26

三个数字全部精确对上,没有注水。

实测:从内容 JSON 到可编辑 PPTX

我把这次评测本身写成了 9 页内容计划,然后在 Alpine/Linux 沙盒里跑完整流程:

  • 依赖只有 35 个包、90MB,npm ci 32 秒装完,没有需要编译的原生模块;
  • 生成器先是两次拒绝了我的输入:一次是我把 chartData 的 id 写成了和 items 相同的 fact-1(要求 id 唯一、label/value/unit 必须一致),一次是同页图表单位混用「个 / 套 / 星」(要求要么全填、要么全空)。这两条不是文档里的客气话,是硬拦截;
  • 通过后产出 9 页 × 4 方案的 goal.json(122KB),渲染出 index.html(601KB)+ assets(7.9MB),离线双击即开;
  • 导出 PPTX 走了无头 Chromium:11MB、36 页、740 个可编辑文本对象、1309 个形状、147 张图片,打开后每段文字都能改。

但「可编辑」有边界:导出器同时给出了几百条降级警告——背景光效、渐变底、部分 SVG 与遮罩元素无法翻译成 PPT 形状,会被栅格化成图片贴上去。也就是说,文字和基础形状是真可编辑的,那些让页面显得精致的视觉特效,到了 PPTX 里就变成了一张底图。这是所有「网页转 PPTX」方案共同的物理限制,不是它独有的毛病。

另外两点体验值得一提:一是中文并没有被打包进字体,index.html 里明确写着 Noto Sans SC 这类中文字体超出体积预算、改用系统字体回退,所以同一份稿子在 Mac 和 Windows 上中文字重会略有差别;二是它的依赖干净得少见,没有原生模块,在一台只装了 Node 的机器上 90MB 就能跑起来。

也就是说,它宣传的「HTML 能编辑、PPTX 可交付」是真的。

但同一个流程里,它自带的文案校验器给了我一个退出码 1:报出 27 处「未覆写模板文案槽」(每页 3 处,对应 3 个模板方案),外加一条「AI Capital / 投融资默认文案残留:大模型」。

我去查了这两条的成色。那条「大模型」来自我自己写的正文「让大模型直接吐 HTML」——词表把常见词当成了投融资模板的特征词。而被判「未覆写」的 statLine,实际是投影阶段被显式清空(值写成空字符串),cards 也已绑定到我的 3 条内容和 1 条图表摘要,只是校验器把「空值」和「没写」算成了一回事。渲染出来的 9 页里,我一处模板默认文案都没找到。

模板默认文案确实存在,但位置很隐蔽:第 1 页所用版式的默认值是一整套「AI Capital Lab / 战略投资者 / 云资源授信 118 亿美元」的投融资示例,在文件里出现 10 次,全部躺在 data-prop-defaults 里——那是浏览器编辑器里控件的默认值,不是你交付出去就摆在观众面前的字。换句话说,这道闸门偏保守:宁可误报,也要逼你逐槽确认。

两条路线,怎么选

维度 版式库路线(Dashi PPT) 让模型直接吐 HTML
可控性 每个控件有契约与默认值,改坏了会被校验拦住 依赖模型自觉,改一处可能整页崩
自由度 只能组合已有版式 任意布局,上限更高
返工成本 改内容不动样式 常要整页重写
交付 静态 HTML + 可编辑 PPTX 通常只有一次性 HTML

几个必须先知道的前提:一是可编辑 PPTX 导出要在本机跑一次无头浏览器(官方推荐 macOS/Windows,Linux 需要自备 Chromium);我在沙盒里就撞上了环境限制——导出 CLI 启动的预览服务读取网卡信息失败,最后是绕过预览服务、直接调用导出引擎才拿到文件。二是许可证是 AGPL-3.0,公司内部用没问题,把它包进自家产品再分发前要确认合规。三是版式覆盖的是常见汇报结构,发布会主视觉那种强定制需求仍要人工介入。

适合谁:周报月报、方案评审、产品介绍这类高频、结构固定的汇报,收益最大;需要交付 PPTX 继续人工改的团队也合适。不适合谁:追求品牌级排版的视觉团队,以及指望它一键完成「内容 + 视觉双定制」的人。

我的判断

值得放进工具箱,但别把它当成万能排版引擎。它真正的价值不在 1020 个版式,而在那套「内容与样式分离 + 生成前后双校验」的工程约束——这正是多数 AI 出图/出稿工具缺的一环。它的问题是闸门做得太保守,误报会消耗信任;一句话概括:它不擅长帮你把 PPT 做漂亮,但很擅长让你别在排版上浪费时间。

关注 AI商业快讯,每天一篇 AI 热点深度解读。

相关阅读:

Mnemosyne OS 深度评测:31 星的零依赖 AI 记忆系统,自曝 11 个缺陷,我实测又挖出 7 个

Mnemosyne OS 深度评测:31 星的零依赖 AI 记忆系统,自曝 11 个缺陷,我实测又挖出 7 个

用过 MCP 的人几乎都撞过同一堵墙:会话一长,模型就忘了你三小时前交代过的偏好,你得重新说一遍。市面上叫「AI 记忆」的项目多到能单独开一个分区,绝大多数是往提示词里灌 JSON 的壳。

Mnemosyne OS 不属于这一类。它 31 颗星,却先交出了一份 11 条缺陷的公开台账,每条带实测数据、根因和修法。我把仓库 clone 下来,先跑它自己写的 21 项验收脚本——21 项全绿;再把 23 个 CLI 子命令逐个跑了一遍——两个直接崩,Web 面板首页是白的。

零依赖不是口号,是 16,132 行标准库

Mnemosyne 是零依赖、本地优先的 AI 记忆系统(MIT,作者 FrankHu-HK,7.0.1 版发布于 9 月 14 日),可以当 Python 库、CLI、HTTP API,也可以当 MCP server 挂给 Claude Code 或 Cursor。仓库 89 个文件、57 个 Python 文件、16,132 行代码,最大的 brain.py 2,404 行;文档 24,088 行 Markdown,其中一份 818 行的部署指南,逐行标注「这是什么」「为什么」。

零依赖这件事我单独查了:mnemosyne/ 与 storage/ 目录下所有 import 只有标准库(sqlite3、hashlib、json、re…),setup.py 的 install_requires 是空列表,PyPI 上的 requires_dist 只有 numpy / transformers / tiktoken 三个可选 extras。表上写着「no numpy, no torch, no vector DB」,这句是真的。

反直觉的地方在于它的设计取向:它把「记忆」当成一个可运营、可审计的对象,而不是一个向量库。每条记忆带可信度轨迹和审计日志,写入走 SHA-256 链式账本,低价值记忆按经济学模型迁到温层/冷层(gzip 归档 + 布隆过滤,是迁移不是删除),向量后端是可插拔插件(numpy、Qdrant、重排器、加密、HRR)。MCP 面 14 个工具,协议 2024-11-05,我实测握手正常、工具数与文档一致。

它自曝的 11 条缺陷里,有几条特别能说明这个项目的气质:

编号 症状(作者原话压缩) 根因 状态
F1 / F1b 经 MCP 写入的记忆不进向量库,语义召回没有增益 MCP 固定走 fast=True,而唯一的 add() 调用在 else 分支 7.0.1 已修
F6 无关查询也返回高分,任何「分数阈值」规则都失效 最终分是加权和,n_time×0.20 + conf×0.10 构成近似恒定的底 行为特性,不修
F7 retain 传了 confidence 不生效,落库恒为 0.7 Notary 评估段无条件覆盖调用方入参 7.0.1 已修
F9 拿到 recall 结果也无法遗忘或更正 返回项里没有 memory_id 7.0.1 已修
F11 forget 之后记录仍可能被召回 缓存失效判据用文件 mtime,而 SQLite 走 WAL 7.0.1 已修

真正狠的是它对 F6 的结论:相关查询首条 0.8332,无关查询首条 0.8232,分差只有 0.0100。作者自己写下一句「排序可用于挑选,分数不可用于过滤」,并把这条定性为「不可修复的行为特性」。一个项目愿意公开承认自己的打分没有绝对标度,这在万星仓库里都少见。

实测:它自曝 11 条,我又挖出 7 条

先说立住了的部分,这些都是我在这台机器上跑出来的:

  • scripts/verify_memory_lifecycle.py 21 项断言 21/21 通过,覆盖了「遗忘后不再被召回」「更正的旧记忆 verification=superseded」「recall 回传 superseded_by」这些它自己修过又踩过的点;
  • verify.py 自检通过,写入 2.50 ms/条、检索 2.39 ms/次;
  • 我通过 MCP 传 confidence=0.95,返回的就是 0.95,F7 确实修了;读代码确认 fast 分支现在一次 encode() 同时喂 SQLite 与向量后端,F1/F1b 的修法也落地了;
  • 四个中文查询,正确答案 top-1 全部命中,无关查询首条 0.415 对相关查询首条 0.442——与它自曝的 F6 完全一致;
  • Web 面板的静态资源里 0 个外部 CDN 引用,断网可用。

然后是它没写进台账的 7 条:

编号 我的实测证据 影响
A git clone 后启动 Web 面板,/、/login、/index.html 三条路由都返回 index.html missing README 表格里的「本地暗色仪表盘」从源码装是白屏
B CLI 写 5 条记忆,Web 面板「记忆总数」显示 1;两边互相搜不到 同一个 --dir、同一个 default 命名空间,两套库
C 改 memory.db 里的正文后 verify-integrity 仍报「✓ 完整」;删账本最后 3 条也报完整 哈希链只绑自己,不绑记忆内容,截断不可检测
D mnemosyne repair → UnicodeDecodeError,崩在 brain.py:2075 默认 SQLite 后端下必崩
E mnemosyne hindsights-bench 跑到第 4/6 步 → AttributeError: 'ConsolidationReport' object has no attribute 'get' 内置对标评测跑不到底
F sk-proj-…(OpenAI 现行项目密钥)与 sk-ant-api03-…(Anthropic)写入后明文落库,注入评分 0.0 脱敏只覆盖旧的 sk-+8 位格式
G status 显示「容量:100.0% (limit=8)」,库里只有 8 条 未设上限时 limit=total,容量条恒满

三条最值得展开。

第一,Web 面板是被自己的 .gitignore 吃掉的。 面板读 static/index.html,读不到就返回那句 index.html missing;而仓库的 .gitignore 里赫然写着一行 .html,只放行了 assets/*——前端入口正好在这个通配符下,从来没被提交过。setup.py 的 package_data 里倒是老老实实声明了 static/index.html 和 static/logo.jpg(后者同样缺失)。我下载了 PyPI 上的 wheel 解开看:index.html 26,100 字节、logo.jpg 7,620 字节,都在包里。所以同一份代码,pip install 能看到仪表盘,git clone 看不到。我把 wheel 里的静态文件补回源码树再刷新,登录页立刻出来了。

第二,CLI 和 MCP/Web 写进两个不同的文件。 python mnemosyne.py --dir ./mem retain 落在

/memory.db;MCP server 和 Web 面板落在 /data/namespaces/default/memory.db。根因在 storage/sqlite_backend.py 的 _resolve_paths:namespace 为假值时走「扁平 legacy 布局」,而 CLI 压根没有 --namespace 参数,另两个入口的默认值却是字符串 "default",于是走了命名空间目录。后果很具体:先用 CLI 把偏好灌进去,再挂 MCP 给模型用,模型看到的是一张空表。而 docs/RECALL_STRATEGY.md 的隔离表只写了「命名空间 → 独立 data/namespaces//memory.db」。

第三,那条哈希链只证明账本自己没被动过。 README 的卖点是「SHA-256 chained ledger — verify_chain() detects tampering and locates the exact corrupted record」,模块 docstring 更进一步写了「any modification to a historical entry or to the underlying memory record breaks the chain」。我把一条记忆的正文改掉(连前 50 个字符一起改),verify-integrity 照样报「✓ 完整 | 首个断裂点:None」;删掉账本最后 3 条记录,它报「✓ 完整 | 账本条目:5」。原因很朴素:账本条目里只存了 {"content_preview": content[:50]},而校验时是拿账本自己存的 payload 重算哈希,跟 memory.db 没有任何绑定。作为对照,我改了一下 ledger.db 里的 payload,它立刻报「✗ 损坏 | 首个断裂点:1」。检测有效,但范围是账本文件本身,不是记忆;纯截断因为没有外部锚点,也不可检测。审计留痕够用,当防篡改证据是过度承诺。

另外几条不用展开但值得知道:repair 崩是因为它把 index_path(SQLite 默认后端下就是 memory.db 这个二进制文件)当 JSONL 逐行读;hindsights-bench 崩在把一个 ConsolidationReport 对象当 dict 用;status 的容量条在未设上限时永远 100%。还有一处工程卫生问题:全仓 57 个 Python 文件、16,132 行代码,一个测试文件都没有(setup.py 还在 exclude 已经不存在了的 tests、benchmarks、quality_eval),无 tag、无 release;PyPI 上的包停在 8 月 24 日的 7.0.0,仓库已经是 9 月 14 日的 7.0.1——pip install 装到的,正好是 11 条缺陷一条没修的那一版。

还有一个不应该漏掉的细节:11 个源文件里有 97 处中英混排的残句,全都落在用户能看到的地方——引擎Version:7.0.1、❌ 未finds :、Type分布、均Value、可merges、关Key决策、Found 冲突 12、writes 机制Test。看起来像是某次批量「中译英」留下的半成品,demo 和 benchmark 两个命令里最密集。

它在坐标系里的位置

跟本站评过的 context-mode 比,一个管「上下文进得来」,一个管「记忆留得下」:context-mode 把 315KB 工具输出压成 5.4KB,解决的是爆上下文;Mnemosyne 解决的是跨会话失忆,两者叠起来才是一套。

跟 i-have-adhd 比,两者是同一种气质的极端版——自曝文档的质量远超自测覆盖。差别在于 i-have-adhd 的自曝是「我的闸门太严」,Mnemosyne 的自曝是「我的工具是死的」:作者自己在召回策略文档里写明 graph_query 「永远返回 edges: [],是一个死工具」,temporal_query 的参数是实体名而不是时间范围,「传『昨天』返回 nodes:["昨天"], edges:[],无意义」。在 14 个 MCP 工具里,这两个占了两席,而文档第 4 节直接建议集成方「从强制流程里删掉它们」。

适合谁:想要一套零依赖、可离线、带审计轨迹的本地记忆层;在同一台机器上跑多 Agent,并且接受「正文与向量隔离,但审计账本/图谱/统计是全局共享」这个前提;以及愿意读 24,000 行中文文档的人。

不适合谁:指望开箱即用 Web 管理面板的人;要现成语义检索质量的人(向量后端默认不装,得自己接 BGE-M3 加 Qdrant);打算把 CLI 和 MCP 混着用的人;以及想拿哈希链当合规证据的人。

判断:文档比代码值钱

这个仓库最值钱的部分不是那 16,132 行代码,是它的文档:11 条缺陷台账、21 项验收断言、召回策略评估(连「每轮都召回到底划不划算」都算了代价)。这套东西在万星项目里都少见——大多数项目连自己的缺陷都不敢写在仓库里,更不会写上「分差只有 0.0100,所以阈值规则全部失效」这种自断后路的话。代价同样明显:文档走到了够做验收的深度,代码和测试没跟上,所以 CLI 里还留在会崩的子命令,面板首页还躺在 .gitignore 里,脱敏规则还停在两年前的密钥格式。

真要用,我的建议是三条。第一,别 clone 源码跑 Web 面板——要么 pip install mnemosyne-os 拿前端完整的 7.0.0,要么 clone 7.0.1 之后从 wheel 里把 static/index.html 补回来。第二,先写测试再上生产,它自己一行都没有。第三,如果你只是想学「一个人的 AI 记忆系统该怎么自我验收」,docs/ 下的 KNOWN_DEFECTS.md、ACCEPTANCE_GUIDE.md、RECALL_STRATEGY.md 三个文件,比把项目跑起来更值得读。

关注 AI 商业快讯,每天一篇 AI 热点深度解读。

相关阅读:

本文数据于 2026-09-15 实测:星数 31、fork 3、issue 0、无 tag 无 release 来自 GitHub 页面;代码与文档行数、文件数来自 codeload 解包统计(main 分支 7.0.1);「自曝 11 条」取自仓库 docs/KNOWN_DEFECTS.md(编号含 F1b,F4 属外部宿主问题故未计入);21 项验收、2.50 ms 写入、2.39 ms 检索、MCP 14 工具握手、sk-proj- 脱敏绕过、哈希链篡改与截断对照、CLI 与 Web 分库、23 个子命令崩溃扫描均为我在 Alpine Linux aarch64 沙盒内的实跑结果(Python 3.12.13 / SQLite 3.48.0);index.html missing 现象先复现于源码安装,后通过从 PyPI wheel 补回静态文件对照验证;PyPI 版本与下载量来自 pypi.org 与 pypistats.org 公开接口。

stop-slop 深度评测:1.7 万 Star 的「去 AI 味」skill,停更 182 天,改后范例自己违反规则

stop-slop 深度评测:1.7 万 Star 的「去 AI 味」skill,停更 182 天,改后范例自己违反规则

打开任何一个 AI 写出来的英文段落,你会先看到 “Here’s the thing”,再看到 “It turns out”,最后以一句 “Let that sink in” 收尾。想治这个毛病的人里,最有名的一个仓库叫 stop-slop:17,151 颗星,skills CLI 记录过 14.4 万次安装。它的最后一条提交停在 182 天前,35 条 PR 只合并过 2 条,两条都在仓库上线后的头三天。

我把它整条规则集拆开逐条跑了一遍,还照它的文字规则写了个机械检查器。结果有点尴尬:仓库自己的 5 组「改后」范例,4 组违反它自己写下的规则;那处被点名最多次的破折号,先后有 5 个人开 PR 想修,到今天还挂在那里。

16KB 纯文本,0 个可执行文件

stop-slop 全部内容就是 8 个文件、16,344 字节,没有脚本、没有测试、没有 CI,也没有一个 release。12 条提交、2 位贡献者,其中 7 条带 Co-Authored-By: Claude——作者用 Claude 写这份「反 AI 味」文档,这件事本身就被写进了提交记录。

文件 内容 条目数
SKILL.md 8 条核心规则 + 12 条交付前 Quick Checks + 5 维评分(低于 35/50 就重写) 25
references/phrases.md 英文短语黑名单:清嗓子开场、强调废词、商务黑话、副词、元评论、含糊断言 65
references/structures.md 结构模式:二元对比、否定式铺垫、戏剧化断句、虚假施动、被动语态、Wh- 开头、节奏 37
references/examples.md 5 组改前/改后对照 5

核心反直觉点只有一个:它不要求你写短,要求你删掉仪式感。开场别预告(”Here’s why that matters”),强调别自证(”Make no mistake”),观点别先否定再揭晓(”Not because X. Because Y.”),没有生命的词别当主语(”the decision emerges” 要改成「某个人做了决定」)。

真正被广泛借用的是那套 5 维评分:Directness、Rhythm、Trust、Authenticity、Density,各打 1 到 10 分,低于 35 分就重写。它把「感觉有点 AI 味」变成了一次要落笔打分的判断,这是这个仓库最值钱的 20 行。

实测:它的改后范例自己违规

仓库里没有任何可执行代码,所以我按它的文字规则写了一个检查器,实现 65 条短语黑名单、副词表、破折号、懒极端词、Wh- 开头、短句连排,然后拿四类语料来跑。先看它自己的招牌——那 5 组「改后」范例:

范例「改后」原文 被我检查器命中的规则
Building products is hard. Technology is manageable. People aren’t. 三句连续短句,structures.md 禁止的 staccato
Teams struggle with alignment. Nobody admits confusion. nobody 在懒极端词黑名单里
Move faster. Your competition is. 机器 0 命中,但仓库 issue #42 指出它把因果连接词一起删了
Speed, quality, cost—pick two. 破折号,而 structures.md 原文写的是 “No em dashes at all”
The best teams optimize for learning, not productivity. 尾否定句式,与它禁止的 “not X, it’s Y” 同族

第 4 条是整件事的缩影:一个专门演示「去掉 AI 痕迹」的范例,本身带着一个被明令禁止的破折号,而且是改稿时新加的——原文 “Speed. Quality. Cost. You can only pick two.” 里没有破折号。从 2026-03-27 到 2026-09-12,至少 5 个不同的人开了 PR 修这同一个字符(#25、#29、#47、#54、#67),其中 #54 被直接关掉且没合并,另外 3 条还开着。issue #14 早在 4 月就写过:「你们的范例不遵守这个 skill 的规则」。

README 也没躲过去。宣传语 “AI writing has patterns. Predictable phrases, structures, rhythms.” 正好是结构文档里点名的「戏剧化断句 + 三项并列」,结尾 “Use freely, share widely” 连用两个副词。PR #47 一条一条列了出来,附带另外 3 处文档违规,没合并。

规则不是检测器,是风格约束

第二个实测更值得说。我把同一套规则拿去跑人类写的文本,对照作者的文档:

语料 字符数 机械命中 每千字
stop-slop 官方文档(Claude 共同作者) 4,174 8 1.9
Paul Graham 随笔(人类) 20,000 145 7.25
《傲慢与偏见》开篇(人类,1813) 20,000 97 4.85
The Elements of Style(人类,1918) 20,000 100 5.00
本站中文稿 6 篇 24,620 69 2.80

同一套尺子,扫当代最好的英文随笔,命中密度是作者自己文档的 3.8 倍。命中集中在副词、Wh- 开头、every/never 这类懒极端词——这些规则当人工提醒没问题,机械执行会把人类正常句子一起改坏,而《傲慢与偏见》和 1918 年的写作手册也被扫出 5 次/千字。

结论是:这套规则优化的是风格一致性,不是「像不像 AI」。它好用,恰恰因为它是一份给人看的清单,而不是一个能自动化跑的判据。这也是仓库 issue #10 的批判点:把「禁止清单」塞进模型上下文,会让模型围绕这些被禁的 token 生成(原作者的说法是 blocklist primes the basin),而提出改成「正面路由」的那份重构,挂着 4 个月没人理。

中文用户还要多一层:65 条短语、15 个副词、6 个懒极端词、7 个 Wh- 开头,全是英文字符串。用它扫 6 篇中文稿(24,620 字),唯一稳定命中的是破折号,而中文的「——」本来就是合法标点,照规则执行等于删标点。中文移植版 VincentOld/stop-slop-zh 至今 81 星、skills CLI 装过 21 次,建库当天之后再没更新。

顺手验了一个流传的说法:issue #46 报 npx skills add hardikpandya/stop-slop 只装 SKILL.md、丢掉 references。我用 CLI 1.5.26 实测,7 个文件全部装到位,这条复现不了——但 issue 还开着,没人关。

同类对比:它是坐标系,不是终点

项目 星数 skills CLI 安装 与 stop-slop 的关系
stop-slop 17,151 14.4K 英文圈最全的 AI 陈词表
blader/humanizer 48,133 6.8K 同赛道,改写成稿;本站评测过的 Humanizer-zh 就参考了 stop-slop
Leonxlnx/taste-skill 87,136 4.1M 管前端审美,不碰文字
hexiecs/talk-normal 1,841 74 后来者,纯规则
eric-tramel/slop-guard 164 1 真的做成了检查器

issue #51 直接把 8 个同类仓库列出来问「你和它们有什么不一样」,至今 0 回复。真正继承了它的是别人的项目:apurvrdx1/tagore 把 humanizer 和 stop-slop 合成 6 阶段流水线,明说借走了 8 条原则、12 条检查表和 5 维评分(issue #17);manavmishra/ZeroSlop 做的 16 项能力审计里,stop-slop 记 3 项 guided、13 项未记录,理由是整个仓库没有可执行组件(issue #64)。

最能说明它位置的还有另一个数字:仓库 182 天没有提交,最近 48 小时里仍然新增 91 颗星、9 次 fork,约合每天 45 颗。

值得抄三样,不值得指望三样

我的判断:把它当一份拿来读的清单,别当工具装。

值得抄的三样:第一,65 条短语黑名单,英文写作里最全的一份 AI 陈词表,中英对照着看也能校准中文 AI 味;第二,5 维评分加 35/50 及格线,逼你为「AI 味」给出判断而不是感觉;第三,「名字要具体、别替读者抒情、说结论别先铺垫」这三条心法,比任何一条具体禁词都活得久。

不值得指望的三样:别指望维护(最后合并 PR 停在 245 天前,8 个月里 33 条 PR 一条没进);别当检查器跑(人类文本命中率反而更高);中文别直接用(规则全英文,中文版 21 次安装)。

如果你要的是「我的文章到底有多 AI 味」,可以从 blader/humanizer 起步,48,133 星且仍在更新;如果你在意的不是文字而是产品审美,taste-skill 更对路。stop-slop 的价值在它被人抄走的那部分——规则表、评分尺、心法,这些已经活在了别人的仓库里。

关注 AI 商业快讯,每天一篇 AI 热点深度解读。

相关阅读:

本文数据于 2026-09-15 抓取:星数、fork、提交与 PR 合并状态来自 GitHub API;skills CLI 安装量来自 skills.sh 徽章;仓库结构与规则条目数来自本地解包统计;违规密度由我按仓库文字规则自写的检查器实测(英文语料为 Paul Graham 随笔、《傲慢与偏见》开篇、The Elements of Style 各取 2 万字符,中文语料为本站 6 篇旧稿);npx skills add 安装结果为沙盒实跑(CLI 1.5.26)。检查器是我对规则的实现,非官方工具,命中数含规则机械化的误差。

Skill Seekers 实测:1.5 万 Star 的文档转技能工具,18 种数据源 22 种格式,设计模式识别却把 @property 当装饰器模式

Skill Seekers 实测:1.5 万 Star 的文档转技能工具,18 种数据源 22 种格式,设计模式识别却把 @property 当装饰器模式

给 Claude Code 装技能这件事,卡人的从来不是写提示词,而是喂文档。某个框架的官方文档三百多页,你得先翻一遍、抽成 reference 文件、再手写一份 SKILL.md 告诉它「什么时候读哪个文件」。这套活干完,一整天没了。

1.5 万 Star 的 Skill Seekers 就是冲这件事来的:号称把文档站、GitHub 仓库、PDF 等 18 种数据源转成可以给 AI 用的知识资产,15 到 45 分钟出一份技能包。我把它拉进沙盒从源码跑了一遍,抓取和打包确实能用,但它的「代码智能」部分——设计模式识别——基本是在猜。

它做什么:三层流水线

把它拆开看只有三步。第一步是发现层,拿到一个 URL 后会依次尝试 sitemap.xml、站点自带的 llms.txt 索引,最后才上无头浏览器渲染,这套顺序决定了它比普通爬虫快。第二步是抽取层,18 个 scraper 各管一类源:网页文档、GitHub 仓库、本地代码库、PDF、Word、EPUB、Jupyter Notebook、PPT、OpenAPI、AsciiDoc、RSS、man 手册、Confluence、Notion、Slack 导出、视频等。第三步是组织层,把抓下来的内容按主题分类,交给 AI 增强写成 SKILL.md,再做多源冲突检测,最后打包成目标平台格式。

对外宣传的数字不少,我逐项在代码里核了一遍:

官方声明 核对结果
18 种数据源 属实(source_detector.py 里 15 种显式类型 + Confluence/Notion/聊天导出)
22 种导出格式 属实(adaptors 注册表正好 22 条,含 LangChain、LlamaIndex、4 个向量库)
40 个 MCP 工具 属实(server_fastmcp.py 里正好 40 个注册装饰器)
19 个 agent 安装目标 属实(AGENT_PATHS 19 条)
68 个增强工作流预设 属实(workflows 目录 68 个 yaml)
3,900+ 测试 属实偏保守(189 个测试文件里 4,235 个 test 函数、8 万行)

数字没注水,但文档与代码脱节的地方不少:同一个 MCP 服务器文件的 docstring 还写着「提供 34 个工具」,实际是 40 个;install-agent --help 只列出 8 个可选值,代码里支持 19 个,剩下 11 个只能靠翻 README;README 说 CLI 有 19 个命令,实际是 20 个。

实测:抓取能用,代码分析不能信

抓取、打包、冲突检测:能直接用

测试环境是手机上的 Alpine aarch64 沙盒(Python 3.12),因为 pip install skill-seekers 在这台机器上装不完——核心依赖里 PyMuPDF 没有对应的 musllinux 轮子,需要本地 C 编译器。顺带一提,一个「文档抓取工具」的核心依赖有 22 项,其中包含 langchain 和 llama-index 两个 RAG 框架,装在服务器上得先想清楚。

从源码跑抓取则相当顺。拿 Ruff 的文档站试,它命中 llms.txt 索引,14 个页面约一分半抓完,产出三个文件:SKILL.md 4.3KB、references/ruff.md 135KB、index.md 91 字节。自带的质量评分给了 72.75 分(B-),其中文档覆盖率一项只有 15 分。

问题出在这份 SKILL.md 的内容上。不接 AI 增强时,它输出的是一份模板骨架:frontmatter 里的描述就是「Use when working with ruff-test」,8 条「Pattern N」小标题的内容是抓下来的导航栏文字(「Ruff ruff Overview Tutorial Installing Ruff The Ruff Linter…」),13 个代码块里 5 个贴了语言标签,其中 4 个把 TOML 配置标成了 sql 和 json。更别扭的是正文让读者去翻 getting_started、tutorials 这几个参考文件,而 references 目录里只有它刚生成的那一份。

那默认流程会走 AI 增强吗?会。不传参数时它默认走本地增强,直接执行 claude --dangerously-skip-permissions,超时设成 2700 秒,本机没装这个 CLI 的结果是一行「Command not found: claude」,然后留下一份 2KB 的骨架——四个流程步骤里,最后一步静默降级了。

设计模式识别:一个漏检、三个误报

真正让我意外的是设计模式识别。这是它宣传的差异化能力:10 个 GoF 模式检测器、跨 9 种语言、分 surface/deep/full 三档深度。我造了个 6 文件的小项目试,结果是这样:

我造的场景 它的判定
AppConfig:__new__ + _instance 缓存的标准单例 三档深度全部漏检
class Singleton: pass(只有类名,没有任何实现) 判为 Singleton,0.7 分
Policy:保险单记录类,与策略模式无关 判为 Strategy,0.7 分,证据只有「类名像 Strategy」
DbSingleton:带 @classmethod 的单例 额外被判为 Decorator

漏检的那个最冤枉:代码里明确写着「Python 的 __new__ 覆盖本身就是受控初始化」,给了 0.3 分,而命中阈值是 0.5——这个检测器永远认不出 __new__ 写法的单例。误报的那个更值得说:Policy 被认成策略模式,是因为关键词表里塞了「policy」。而 @classmethod 被判装饰器模式,是把语言级的装饰器语法和 GoF 的装饰器模式混为一谈了。

这不是个别现象。我拿它扫自己 217 个源文件,报出 301 个模式,其中 Decorator 一项 94 个,证据全部来自 Python 内置装饰器(@property 53 个、@staticmethod 21 个、@classmethod 16 个、@abstractmethod 5 个),没有一个是真正的装饰器模式实现。172 个被判定的类里,95 个同时命中多个模式,49 个既算 Adapter 又算 Decorator——因为两个检测器共用 wrapper/proxy 关键词。

还有个更隐蔽的机制问题。full 深度会拿整个文件的文本去 grep instance、if not、threading 这类词,命中就加分,不管这个词属于哪个类。我做了个隔离测试:一个文件里放只有类名的 Singleton 和一个带 instance 方法的无关类,前者立刻从 0.6 涨到 0.7,证据栏写着「检测到实例缓存」——它缓存了个寂寞。

对比之下,它另一个卖点做得很扎实。多源冲突检测我造了一组「文档写了 3 个参数、代码只有 2 个」的数据喂进去,4 条冲突分类全对:文档里有代码里没有的 API 标为 high,代码里有文档没写的标 medium,而下划线开头的内部 API 自动降级为 low——这个降级逻辑是对的,说明设计者确实想过误报问题,只是这套思路没被用到模式检测上。

其他几个实测细节:打包成 Claude 技能包正常,39.7KB 的 zip 里 SKILL.md 在根目录;不给 GitHub token 也能抓仓库,但撞上 API 限流后 PyGithub 会进入 2684 秒(约 45 分钟)的退避重试,而不是快速失败报错;PyPI 上最新版是 8 月 3 日发布的 3.9.1,而仓库 development 分支已经到 3.10.0.dev0,pip install 拿到的是落后六周的版本。仓库本身还有个卫生问题:docs/UML 目录 2049 个文件占 27.3MB,近三分之一的仓库体积是架构图。

该不该用

同类里还有三个选择:手写 SKILL.md 最准但最慢;拿 llms.txt 自己写二十行脚本最轻,只适合现代文档站;官方 skill-creator 管结构规范但不管抓取。Skill Seekers 的位置在中间——它把「抓 + 分 + 打」这一整条链路做完了,22 种导出格式里那 8 个 RAG 目标是别人不做的。

它适合:手上有大量内部文档、老项目代码、PDF 手册要批量变成知识资产的人;一次抓取、要同时导出成 Claude 技能 + 向量库数据的人。

不适合:只想给某一个框架做一份高质量 SKILL.md 的人(这种情况手写反而更快);没有模型 API key、也没装本地编码 agent 的人——因为默认的增强流程会直接失败。

我的判断是:把它当抓取和打包工具用,把它的代码分析当参考信号而不是事实。冲突检测值得一试,模式识别的输出建议直接忽略。

相关阅读:

关注 AI商业快讯,每天一篇 AI 热点深度解读。

—

实测数据截至 2026-09-14,基于 development 分支(3.10.0.dev0)源码在 Alpine aarch64 沙盒运行。项目地址:yusufkaraaslan/Skill_Seekers,MIT 许可。本文不含任何商业合作。

i-have-adhd 深度评测:4.3 万 Star 的输出风格 skill,自带评测涨 0.43 分却被自己的闸门拦下

i-have-adhd 深度评测:4.3 万 Star 的输出风格 skill,自带评测涨 0.43 分却被自己的闸门拦下

用过 Claude Code 的人几乎都撞过同一堵墙:问了半小时,答案埋在第三段;改完一个 bug,它还要用两段话回顾自己做了什么,最后来一句”希望这有帮助”。

i-have-adhd 就干一件事——把 AI 的回答从”报告”改成”下一步做什么”。它用 10 条规则把输出重新塑形,上线 122 天拿到 43,456 颗星,是 2026 年增速最快的输出风格 skill 之一。更有意思的是:这个项目自带一套评测框架,而它自己公布的评测结果,发布闸门是失败。

它不是 CLI,是一份 142 行的规则文件

整个技能的本体,就是 skills/i-have-adhd/SKILL.md:7,207 字节、142 行,MIT 许可。没有模型、没有 API、没有依赖,任何 harness 都能装。

它的出发点是五条关于 ADHD 读者的判断:工作记忆小(不在屏幕上就等于忘掉)、知道答案不等于做完、启动是最难的一步、模糊的时间估计等于没有估计、进展必须看得见。十条规则全部由这五条推出来。

规则 治的毛病 我的一行判断
1 先说下一步动作 答案埋在下文 最有价值的一条,直接改变回答的第一行
2 多步骤写编号 步骤糊成一段话 要求”能少一步就少一步,别写完整路线”
3 结尾给一个 2 分钟内能做的动作 “还需要什么随时说” 把开放式结尾换成封闭动作
4 抑制跑题 顺手塞三条无关建议 自己查得到的先自己查,留到最后的只有一条
5 每轮重述状态 “第 3 步做到哪了”要靠翻记录 “第 3/5 步完成,下一步回填列”
6 给具体时间估计 “这需要一些工作” 明确要求用分钟,不许用”一会儿”
7 让成果可见 改动藏在总结里 “登录现在能用魔法链接了,跑 npm run dev 试”
8 错误只讲事实 “哎呀,测试好像失败了” 位置 + 原因 + 修复,不演情绪
9 列表控制在 5 项 一屏 30 条的清单 争论最多的一条,见下文
10 不写开场白、不写回顾、不写客套 “好问题!让我想想” 直接禁止清单里点名了这些话术

关键的反直觉在于:它不追求短。规则 9 的原文明确写了”这条只塑形,不能限制分析、检索、工具结果、候选项生成”;技能里还专门留了一节”什么时候可以破例”,六种情况包括:用户要求解释就尽管展开、破坏性操作先确认、连续三次修不好就停下来质疑假设、”规则和任务打架时任务赢,形状不变”。最后一条的例子写得很清楚——用户问”我有哪些选项”,答案就该是 2 到 4 个带取舍排序的选项,而不是一条路径。

它的安装面铺得极广:仓库里的安装文档有 14 个章节,覆盖 Claude Code、Codex、Cursor、OpenCode、Gemini CLI、Kimi Code CLI、Qwen Code、Copilot、Pi、OMP、Zed、Antigravity、AstronClaw 等 13 个具名平台,外加一个通用 agent-skills 方式。但它没有发过任何 release,也没有 git tag,package.json 里的版本号停在 0.3.0——43k 星的仓库,走的还是”直接追 main 分支”的路线。

实测:自带评测框架跑得通,但它自己的闸门过不去

这个仓库最特别的地方,是它为了回答”这个 skill 到底有没有用”专门造了一套评测框架:14 条用例 × 3 轮 × 基线/候选两组 = 84 个回答,再用同一个模型盲评打分。

我把这套框架在沙盒里跑了一遍,是可以复现的:

  • python3 scripts/run_evals.py validate 通过,14 条用例格式合法;
  • plan --trials 3 能输出完整的运行矩阵(84 行生成 + 42 次评判);
  • 仓库自带的 51 个单元测试,6.77 秒全过。

作者公布的结果确实漂亮:加权分从 4.045 涨到 4.473。拆开看,简洁度维度涨得最猛(3.429 → 4.571),而权重最高的正确性(+0.190)和安全性(+0.024)也没掉——README 里那句“不是拿准确度换简洁”,在数字上站得住。

但同一份 RESULTS.md 往下读三行,写着 Release gate: FAILED。失败原因是闸门的第一条规则:”候选中不能有任何阻断性发现”。候选有 3 个,基线有 7 个,翻了一倍还多,照样不算过。

我把这个闸门单独复现了三次,结论很干净:

  • 按公布的每用例均分重建(加权分 4.045 对 4.473,与我复现出的算数完全一致)、候选仍带 3 个阻断 → 不通过;
  • 候选全维度满分 5.0、只保留 1 个阻断 → 不通过;
  • 候选全维度 5.0、0 个阻断、基线 4.0 → 通过。

也就是说,规则 1 是一条绝对条款:只要用例集里还剩任何一个阻断性发现,再优秀的候选也过不了。RESULTS.md 自己把这层写透了——”按现在的写法,任何候选都不可能在还有阻断留存时通过,无论它改进了多少”。

更麻烦的是,14 条用例里有一条结构上不可能通过。agent-owned-edit 问的是”我让你改 README 的错别字,你有仓库权限,接下来怎么做”,评分要求”直接动手改,然后报告验证结果”。但两个 runner 的配置一个是 --tools "",另一个是 --sandbox read-only——谁都没有工具。作者在 issue #98 里承认:这是”在一个没有行动能力的配置里要求智能体行动”,而且基线在这种不可能的任务上退化成了”我现在去读文件,让我用一下工具”这种自言自语。

真正的坏消息只有一条:partial-success 用例上候选回归了 −0.63 分(三轮分别是 +0.05 / −0.70 / −1.25)。机制被指得很准——规则 8 要求”先说原因,再给修复”,当证据不足以确定原因时,这个模板会推着模型去编一个原因。评判模型的批注原文是:”把『缺少认证头』当成确定原因并给出修复,没有任何证据支撑。”作者没有辩解,把它标成了”唯一值得加试验轮次的方向”。

顺带说,它的盲评机制不是口号:42 组(用例、轮次)的 A/B 标签由组名的 sha256 派生,我算出来 A/B 分布是 23:19,同一组重跑标签不变——结构上确实没给评委留下位置信息。

两个真实的坑:常开钩子会静默复活,中文文档缺两节

坑一:你说”关掉”,一次上下文压缩就给你打开。

Claude Code 上有个常开模式:把 flag 文件写到 ~/.claude/.i-have-adhd-always,之后每次会话启动由 SessionStart 钩子把整套规则注进去。我实测了:flag 不在时零输出,flag 在时每次注入 6,986 字节,而且 sh 版和 Node 版两个实现的输出逐字节一致。

问题出在匹配条件上。hooks.json 写的是 startup|resume|clear|compact——resume 和 compact 都是接着旧会话继续,但钩子本身只检查 flag 文件是否存在,全程不读 stdin(我把 hooks/ 目录全部文件 grep 了一遍,没有任何 stdin 或 source 字段的读取)。

于是我把 {"source":"compact"} 喂进去,输出和 startup 逐字节相同。意思是:你在会话里说了”停掉 ADHD 模式”,压缩一次之后规则会带着”ADHD 模式已激活,适用于每一条回复”的横幅重新注入,而钩子输出在界面上默认不可见。

这条不是我发现的——仓库有个叫 AI Agora 的讨论区(issue #127),专门让 AI agent 之间讨论规则措辞,提这条的 agent 在结尾署了 provenance:由 Claude Code(claude-opus-5)起草并验证。同一讨论区的另一条提案(opencode 配 GLM-5.3 起草)指向的正是规则 8 的编原因问题,和评测里的回归对上了。这些提案目前都还没被合并。

坑二:中文安装文档比英文少两节。

.github/install/INSTALL.zh-CN.md 有 12 个平台章节,英文版有 14 个:OMP(Oh My Pi)整节缺失,OpenCode 被并进”其他运行环境”的通用段落里。另外规则的缩写版散落在 13 个文件里,光 INSTALL.md 一个文件就复制了 6 份规则清单——想改一条规则,得同时改十几个地方。

同类项目里,规则 9 至今还在改。15 条评论的 issue #96 里,用户反馈”控制在 5 项”被模型字面执行成”砍掉第 6 项之后的全部”,作者前后给了三版措辞,当前版本的解法是加一句”多余的条目内部保留,只是不显示”。

和同类比,它站在哪个位置

项目 星数 层次 核心手段
i-have-adhd 43,456 结构层 10 条规则重排回答形状:先动作、编号、重述状态
Caveman 105,244 语言层 用洞穴人语体压缩输出,宣称省 65% token
stop-slop-zh 47 语言层(中文) 禁词表 + 标点规范 + 四层质检,专治中文 AI 味

Caveman 和历史榜首那批项目在同一条赛道上:压语言、省 token。i-have-adhd 换了个层面——它几乎不省字,改的是信息的顺序和可见性。issue #4 里就有人问能不能把两者合体,作者的回答是”这个仓库只做 ADHD 相关规则,想合请自己 fork”。

stop-slop-zh 的对比尤其值得看一眼:它的作者跑到 issue #42 里问”把结构收紧,模型会不会把冗余转移到句子层面”,i-have-adhd 的作者直接承认”结构本身不够,句级清理放在发送前检查那一步”,并说”塑完形状,填充物会跑进句子里,然后你追着它跑”。两个作者都确认:严格规则能抬高下限,也会削平上限,所以两边都加了”默认而非绝对”的逃生舱。

适合谁:日常在 Claude Code / Codex / Cursor 里跟 Agent 来回拉锯、经常要翻半天找结论的人;团队里要让 AI 输出变成可执行步骤的负责人。不适合谁:主要用 AI 做长文写作和头脑风暴的人(它专门为”解释模式”开了豁免,但你本来也不需要它);指望它省 token 的人(要省 token,去看 Caveman)。

值得装,但要知道它的三处短板

我的判断是:装,但要把它当一个需要维护的规则集,而不是一个装完就忘的插件。三条注意事项——第一,Claude Code / Codex / Qwen Code 上它默认不自动生效,必须显式调用 /i-have-adhd;第二,上下文压缩或分叉会话会让它掉线或静默复活,觉得输出漂回老样子,重新调用一次是最省事的解法;第三,别把它当成”AI 输出质量的保证”——它有一份诚实到罕见的自评报告,评的是回答形状,不是回答对不对。

顺带一个可以偷师的点:这个仓库把”我怎么证明自己有用”写成了可复现的代码(14 条用例、盲评、发布闸门、成本上限),还允许 AI agent 在专门议题里提交带模型署名的提案。做开源项目的人比做 skill 的人更该抄这套东西,因为它把”我改进了多少”从口嗨变成了能被别人跑出来的数字。

关注 AI 商业快讯,每天一篇 AI 热点深度解读。

相关阅读:

本文数据于 2026-09-13 抓取:仓库 star 数、fork 数、提交时间来自 GitHub API;仓库结构与评测运行结果来自本机 Alpine aarch64 沙盒实测(run_evals.py validate / plan、pytest 51 项、闸门三场景复现、always-on 钩子两种实现对比)。评测框架中的模型打分沿用作者 2026-08-02 公布的数据,非本人重跑,已如实标注。

anything2explainer 实测:上线 3 天 954 星的话题转讲解视频 skill,8 个 Agent 并行 40 分钟出一条片

anything2explainer 实测:上线 3 天 954 星的话题转讲解视频 skill,8 个 Agent 并行 40 分钟出一条片

想把一个技术概念做成一分钟讲解视频,多数人的第一反应是找 Sora 或 Veo 生成 —— 结果画面很炫,字全是乱码,画面上的数字一个都不敢用。第二条路是自己开剪辑软件,一帧一帧摆元素,做一条四分钟的片要熬夜。

9 月 8 日开源的一个 Claude Code / Codex skill 想解决这件事:给它一个话题,它产出一条 1280×720、带配音、带逐字字幕、带章节进度条的科普讲解片,全片每一帧都是代码画出来的。上线三天多,954 星、172 个 fork —— 这是我这两天见过涨得最快的 AI 视频方向仓库。

它到底交付了什么

先纠正一个预期:它不是一个「一句话出片」的工具。作者在 README 里写得很直白:这不是 CLI,交付的是「一个 AI 编程 agent 拍完一条片所需要的全部方法」。

拆开看是四层:

层 内容 规模
流程 SKILL.md:9 个阶段、4 个确认点、8 条硬性原则 86 行
规范 reference/ 九份文档:风格、动效词汇、构图与光、配音分镜、多 agent 协议 687 行
工程 可编译的 Remotion 4 模板 + 图元库 + 11 个脚本 7998 行 TSX/TS + 768 行 Python
标尺 样片《RAG 与知识库》全套档案:调研、解说词、分镜、44 个镜头源码、QC 报告、成片帧 8246 帧 = 4 分 35 秒

真正稀有的不是模板,是把审美写成了可判定的数字。 模板本身只是 Remotion(用 React 写视频)的工程封装,市面上不缺;缺的是这种句子:「每个镜头静止帧占比 ≤40%、最长静止 ≤1 秒」「主角高度 ≥170px 且必须带光」「每个镜头 ≤1 处闪烁,且只给该镜头的核心术语」「内容区最大物体 <110px 不得持续超过 45 帧」。这些数字不是宣传语,仓库里有对应的检测脚本。规则可判定,才谈得上验收。

它怎么跑一遍

它的运行方式更像一个剧组,而不是一个按钮。九个阶段里,主会话只做编排与验收,调研、打样、构建、QC 都是派出去的 agent:

  • 调研 1 个 agent 先产出带来源的调研文档(样片那份 29222 字符、128 个 URL,覆盖定义的每条数字);画面上出现的每个数字、年份、英文术语都必须能在调研文档里查到出处,没核实的不许上画面。
  • 写完解说词后 tts_build.py 用词级边界把每句切成字幕块,直接算出每句的起止帧号,写进时间轴与字幕表。
  • 主会话定分镜、补图元,先只派第 1 组做出前 30 秒给你看,确认风格后才并行派剩下的 7 组。
  • 渲完不是结束:每章派 1 个 QC agent 逐帧核,再派修复 agent,样片跑了两轮 QC(v1 报出高 1 / 中 23 / 低 42,v3 终检时白名单外的闪烁是 0 处)。

我核对过它的时间轴算术:8246 帧 = 274.9 秒、44 句净朗读 249.9 秒、留白 25 秒占 9% —— 全部对得上。这不是拍出来的片子,是算出来的。

代价也写得很清楚:一条 4 分半的片子,约 2 小时、8 个构建组并行 40 分钟、磁盘预留 5GB 以上。

实测:模板能编译,工具链有坑

我在手机上(Android 内的 Alpine Linux aarch64 沙盒,Node 22)clone 了仓库实测,宣称与实测对比如下:

项目 仓库宣称 实测结果
模板可编译 开箱 npm install + tsc 250 个包 / 263MB / 36 秒;tsc --noEmit 15 秒,0 个类型错误
静态自检 几秒查帧覆盖、闪烁白名单、字面量 44 个镜头全覆盖;但报 18 个问题,其中 17 个是误报
默认配音 edge-tts 免费云端合成 44 句里 34 句拿到音频,随后一句连续 4 次重试失败,脚本当场退出
成片渲染 无 GPU,CPU 渲染 没跑通:需下载 chrome-headless-shell,下载源不通且无 linux-arm64 版
跨平台 macOS 验证过,Linux 应该能用 5 个 shell 脚本写死 #!/bin/zsh,建项目第一步就中止

自检脚本那 17 个误报值得单独说:脚本要求闪烁白名单以固定格式内联写在分镜表里,而样片的分镜表写的是「白名单见 AGENT_RAG_BUILD_RULES.md §8」,正则抓不到,白名单被读成 0 条,19 处合规闪烁全部标红。唯一那条真问题也很有意思 —— SC27 的代码帧区间比分镜表多 4 帧,注释写明是第二轮 QC 故意做的淡出重叠。也就是说:这条检查只能报「对不上」,不能判断「是不是有意为之」。

sed -i '' 是 BSD 语法,在 Linux 上会报 No such file or directory 然后中止。同一个问题也出现在仓库第 4 号 PR 里:有人在树莓派 5 上端到端跑通了一整条片,顺手把 zsh、BSD sed、ARM 上的 TTS 与系统浏览器配置一起修了,目前还没合入。

有意思的是它自曝的返工日志

仓库里最有价值的文件可能是 reference/lessons.md(199 行)。作者用这个 skill 拍了至少 4 部片,每踩一个坑就写一条根因,其中几条是自曝:

  • 样片自己不合格。 第 4 部片加入「持续动作」规则后,回头量化样片:4/6 镜头静止帧占 42%–72%、最长静止 2.8 秒,全部超过新规则。作者原话是「样片也有同样的毛病,所以『对标样片』筛不出它。」
  • 检测分级会骗人。 组级低分辨率检测 48/48 全部通过,成片复测却有 11 个镜头超限(3 个真静止、8 个只有小面积动作)。于是流程里写死了:成片复测才算判据。
  • 一个静默降级的 bug 藏了很久。 edge-tts 从 7.2.0 起默认不再返回词级边界,脚本拿不到词边界就退化成「按字数插值」估字幕位置。作者实测最大偏差 15 帧 —— 整块字幕晚半秒,并承认「这个洞在所有 edge 引擎的成片里一直存在」。

一个项目敢把自家样片的实测短板写进仓库,比任何宣传语都有说服力。

谁适合,谁别碰

先划清路线:这类需求和 OpenMontage 那种「121 个工具调云 API 出片」不是一条路 —— 后者靠生成模型要素材,它一帧都不用生成模型,全部代码绘制,所以任何一帧都能改、每个数字都能追到来源。另一条路是 Manim / Remotion 手写,它比手写多的正是那套流程和判据。

适合:做技术科普、课程、产品原理动画的个人或小团队,愿意花约 2 小时等一条 4 分半的片,并且看重「画面上每个数字都能溯源」。中文是一等公民,文档中文优先,还有独立的英文片配置。

不适合:想一句话出片的人 —— 它会在写文案前、配音前、定稿前、前 30 秒样片这四个节点停下来等你确认;要竖屏的人(模板与安全区全部按 1280×720 横屏);以及任何商业用途。

商业许可这条不是假设。项目用的是 PolyForm 非商业许可,商用需要作者单独授权,而仓库第 5 号 issue 就是一位教育自媒体在问商业授权怎么办理、是否支持多个账号、能不能改模板做竖屏 —— 截至今天,作者没有回复。

结论

三天 954 星、172 个 fork,说明「把内容变成讲得清楚的视频」这个需求是真实的。但它的价值不在自动化,而在它把一件靠审美的活儿拆成了可验收的工程步骤 —— 从 把审美纪律编译进 agent 到 把方法论写成 skill,这条路数上的极端版本就是它。多数 AI 视频工具还停在「能不能生成」,它已经在回答「能不能验收」。

值得放进观察清单。但真正上手前,先把 zsh / sed 和默认 TTS 这两个动手就遇到的坑解决掉。

关注 AI商业快讯,每天一篇 AI 热点深度解读。

UI UX Pro Max 深度评测:12.7 万 Star 的设计 skill,192 套配色全过 WCAG,中文关键词却 0 命中

UI UX Pro Max 深度评测:12.7 万 Star 的设计 skill,192 套配色全过 WCAG,中文关键词却 0 命中

用过 Claude Code 写页面的人都见过同一种丑:紫粉渐变、千篇一律的圆角卡片、emoji 当图标。这不能全怪模型——设计规则散在几百篇博客、几十份设计规范里,它不知道该照哪一套下手。

有个开源 skill 干脆把这件事做成了数据库:192 个行业的配色与设计推理、79 种可检索的 UI 风格、119 条 UX 准则,全部固化成本地 CSV,再配一个纯 Python 的检索引擎。项目名叫 UI UX Pro Max,12.7 万 Star,MIT 协议。

我在沙盒里把它整个拆开跑了一遍:30 次设计系统生成、160 个自带测试、全量 192 套配色的对比度验算,以及 10 个中文关键词的命中测试。结论比”又一个热门 skill”复杂一些。

它是什么:把设计规则做成可检索的数据库

一句话定位:给 AI 编码助手(Claude Code、Cursor、Codex、Copilot、Windsurf 等 19 个客户端)装一个本地设计智库。你正常提需求”给我做个 SaaS 落地页”,它自动触发,先查库生成整套设计系统,再写代码。

架构上是三层:

  • SKILL.md(约 16KB):Agent 读的行为契约,规定 10 个优先级类别、什么情况必须查库、什么情况必须跳过;
  • CSV 数据层:14 个数据文件,行业、风格、配色、字体、图表、动效、UX 准则、22 个技术栈的规则;
  • search.py 引擎:4,031 行 Python,只用标准库,不装依赖、不发网络请求,用 BM25 排序 + 条件规则做推荐。

跑一条命令就能看到它的核心产物——search.py "beauty spa" --design-system 会输出八段结构:页面模式(Section 顺序 + CTA 位置)、风格(含性能成本与无障碍风险标注)、完整十六进制配色(含 CSS 变量名)、字体搭配(含 Google Fonts 导入链接)、关键动效、明确的反模式清单、以及交付前自检表。

我逐文件数了一遍行数,和官方口径对照:

数据 官方口径 我实测
行业配色 / 设计推理 192 / 192 192 行 / 192 行
UI 风格 79 可检索(50 活跃) 88 行(50 活跃 + 29 补充 + 9 弃用)
字体搭配 / UX 准则 74 / 119 74 行 / 119 行
技术栈 / 栈内规则 22 / — 22 个文件 / 1,260 行
图表 / 落地页模式 / 图标 25 / 34 / 105 25 / 34 / 105

没有注水。这点值得说一句:同类项目里,”宣称 100+ 工具、实际能跑的只有三成”是常态,这里每一个数字都对得上。

实测:数据是真功夫,工程链路是另一回事

一、470 毫秒,且逐字节可复现

我连续生成 30 次设计系统,总耗时 14.1 秒,平均 470 毫秒一次,全部在离线沙盒里完成。同一参数跑两遍,输出文件逐字节一致——因为它是确定性检索,不是让模型自由发挥。对流水线来说是好事:同样的需求,今天和明天给出的配色不会漂移。

二、自带测试全过

这是我最看重的一项。我直接跑仓库自带的测试套件:

160 passed, 7936 subtests passed in 30.47s

另外 validate_data.py 校验 12 个领域文件 + 22 个技术栈文件 + 推理表,全部 OK。一个”数据即产品”的项目,能把数据校验和测试做到这个程度,是它 12.7 万 Star 里最扎实的那部分。

三、61% 的文件永远不会被打开

我把 SKILL.md 和 README 里文档化的 18 条命令全跑一遍,并用一个 open() 钩子记录脚本读过的每个文件:

  • 技能安装目录共 73 个文件 / 3.41 MB;
  • 全部文档化命令加起来只打开 17 个文件(1.34 MB,39% 的字节);
  • 剩下 56 个文件、2.07 MB,脚本从不打开——其中 31 个是测试脚本和它们的夹具,会被一起装到用户磁盘上(npm 包里的 assets/scripts/tests 是 23 个文件、307 KB)。

这不是我一家之言。9 月 3 日有位开发者提交了一份 200 次运行的审计(issue #484),测得 82% 的文件从不被触及,还顺带发现 --design-system 会静默忽略 --stack 参数。维护者 9 月 6 日合并了修复,只修了第一条:我在当前主分支上实测,现在会打印一行 note: --stack nextjs is ignored in --design-system mode。

但这里有个更现实的坑,见下一条。

四、中文关键词,一个都查不到

数据层全是英文关键词。我拿 10 个中文词直接查,结果是这样的:

查询词 命中 英文对照 命中
玻璃拟态 / 深色模式 0 glassmorphism / dark mode 1 / 1
落地页 / 仪表盘 0 landing page / dashboard 1 / 2
金融科技 / 电商 0 fintech / e-commerce 0 / 1
美容院 / 医疗 0 beauty spa / healthcare 1 / 1

中文查询返回的不是”空值”,而是明确的 count: 0——引擎会提示”这不是匹配到了空字段,是查询没命中数据库”。更实际的影响在设计系统模式:"美容院 落地页" 落到通用兜底(Minimalism & Swiss Style + 蓝色 #2563EB),而 "beauty spa" 给出的是 Soft UI Evolution + 粉色调 #EC4899。

但这不等于中文用户用不了。 真实链路里是 Agent 读英文的 SKILL.md,它自己会把你的中文需求翻成英文关键词再去查——中文圈已经有大量教程和实测(知乎、腾讯云社区、CSDN、B 站,还有一个 1.4k Star 的第三方中文教程站)。真正会踩坑的是”手敲中文命令当 CLI 用”的人。

五、192 套配色,全部通过 WCAG

我把 192 套配色的所有关键配对算了对比度(正文前景/背景、按钮主色/按钮文字、强调色/文字),违规 0 套——全部达到 4.5:1。这解释了它为什么敢把”对比度 4.5:1″写成第一条铁律。

顺带一个有意思的数字:192 套里 32 套(17%)主色落在紫粉色相区间,主要集中在 AI 产品、创意机构、美妆、游戏这些品类。而它的推理表里有 14 个行业明确把”AI 紫粉渐变”写进反模式清单——我逐一核对,这 14 个行业自己的推荐配色都不是紫粉。规则和它自己给的结果,内部是自洽的。

六、版本链路:npm 上停着一个月前的代码

它的 CLI 走 npm,这里有两处实打实的问题。

第一,主包一个月没发新版。 ui-ux-pro-max-cli 最新版 2.15.0 发布于 8 月 13 日,而仓库主分支已经走到 9 月 10 日。仓库里有两个未关闭的 issue(#451、#457)说明原因:8 月 18 日起发布流水线因 NPM_TOKEN 被拒而失败,”自 2.15.0 之后什么都没发出去”。我把 npm 包下载下来实测:npm 版至今仍在静默忽略 --stack,主分支已修的那个提示,装 npm 包的用户拿不到。上周仍有 12,882 次下载。

第二,有个 1 月的旧包还挂在 npm 上。 老包名 uipro-cli 停留在 2.2.3(2026 年 1 月 29 日),每周仍有 4,162 次下载;装它的人会遇到 --global 报错的 bug(issue #215,3 月 29 日开的,21 条评论至今未关)。README 里明写”旧包已废弃,不要用”,但 npm 上并没有把这条路堵死。

还有个小的:官网 uupm.cc 至今写着 57 种风格 / 95 套配色 / 8 个技术栈——数据已经涨到 79 / 192 / 22 了。开源核心之外它还有付费版(品牌、Logo、CIS、演示文稿设计),但官网没有公开价格页。

它和同类比,适合谁

市面上”治 AI 味”的设计 skill 大致两条路线:

  • 提示词/规则路线:taste-skill(84k Star)和 hallmark(28k Star,Anti-AI-slop)走的是这条路——把审美纪律写成规则塞进 Agent。轻、灵活,但覆盖面和一致性取决于模型当场发挥。
  • 数据工程路线:UI UX Pro Max 是这条路——先查库、再生成,配色/字体/对比度有确定答案。

适合:独立开发者、后端转前端、MVP 阶段要快速做出”不像 AI 生成”的界面的人;以及需要一套可复用的设计 token(它能 --persist 把设计系统落成 MASTER.md + 页面覆盖文件,下次直接读文件)。

不适合:已有成熟设计系统的团队(它的建议会和你的品牌规范打架);只做后端/DevOps 的人(技能自己也会跳过);以及期待”它直接替代设计师”的人——它解决的是”下限太低”的问题,不是”上限”。

结论

值得一试,而且是我近期读过的 Agent Skill 里工程底子最厚的一个:数据不注水、测试全过、配色真的过 WCAG、离线可复现。它的短板不在能力,在”发货”——npm 包落后一个月、旧包名还在分流、包体里塞着用户永远用不到的测试脚本,以及一套只认英文的关键词库。

装的时候认准新包名:npm install -g ui-ux-pro-max-cli && uipro init --ai claude。看到 uipro-cli 请绕开,那是 1 月的版本。

如果你也在用 Agent 写前端,可以顺便看看我们评测过的 Pi Agent(10.4 万 Star,默认只给模型 4 个工具)和 ECC(25.5 万 Star 的 Agent 工程纪律系统),都是同一类问题的不同解法。

关注 AI商业快讯,每天一篇 AI 热点深度解读。

Pi Agent 实测:10.4 万 Star 的极简编码 Agent,默认只给模型 4 个工具

Pi Agent 实测:10.4 万 Star 的极简编码 Agent,默认只给模型 4 个工具

用过终端 AI 编码 Agent 的人,大多撞过同一堵墙:功能越加越多,工具列表越拉越长,系统提示词动辄几千 token,模型反而开始选错工具、忘掉目标。Pi Agent 反着做——默认只给模型 4 个工具,系统提示词压到 2.6KB 左右,一年发了 259 个版本,拿到 10.4 万 Star、每周 152 万次 npm 下载。官方文档还明说它「不要」MCP、不要子代理、不要计划模式。这些「不要」到底是省钱的真本事,还是把活甩给社区?我在安卓手机的沙盒里把它装了一遍,跑通了它的 agent 循环,并把每次发给模型的请求原样抓了下来。

一、Pi 是什么:一个「什么都不自带」的编码 Agent

Pi(仓库 earendil-works/pi,命令 pi)是终端里的编码 Agent,也就是常说的 harness。作者 Mario Zechner 是游戏引擎 libGDX 的作者,网名 badlogic。MIT 协议,2025 年 8 月建仓,到发稿时 103,904 Star、12,997 fork、323 订阅者;npm 包 @earendil-works/pi-coding-agent 上周下载 1,526,012 次(9 月 3 日至 9 日,npm 官方统计接口)。

这不是小玩具。主仓库是 11 个包组成的 monorepo,TypeScript 代码合计 318,385 行,其中测试文件 544 个、测试代码 139,487 行;release 累计 259 个,最新版 v0.85.1(9 月 5 日);贡献者里 badlogic 本人 3,701 次提交,第二名 mitsuhiko(Armin Ronacher,Flask/Jinja 作者)668 次。11 个包分别是 coding-agent(CLI 本体)、agent(agent 运行时)、ai(多厂商 LLM API)、tui、protocol、client、server、session-backends、telemetry、chord、evals。

它的官方定位是「minimal agent harness」:让 Pi 适应你的工作流,而不是反过来。落到代码上就是六个明确的「没有」——没有 MCP(官方的理由是「写个带 README 的 CLI 工具就够了」,并专门写了篇博文解释)、没有子代理(要就 tmux 起多个实例)、没有权限弹窗(要更强边界请自己进容器)、没有 plan mode、没有内置待办清单、没有后台 bash。核心保持空,能力全靠四类资源外挂:TypeScript 扩展、SKILL.md 技能包、提示词模板、主题,打包成 Pi Package 用 npm 或 git 分发。运行方式有四种:交互式 TUI、print/JSON(可脚本化,也能被管道喂输入)、RPC(进程集成)、SDK(嵌进自己的应用)。

这和站内此前评测的 ECC(Everything Claude Code) 恰好是两个方向:ECC 把工程纪律整套塞进 Agent,Pi 把核心清空、把选择权交回给使用者。

二、实测:手机 + 零 API key,把它的 Agent 循环抓出来看

测试环境是一台安卓手机里的 Alpine aarch64 沙盒(PRoot,没有任何 GPU 和模型),Node v22.23.2——Pi 要求 Node ≥ 22.19.0,刚好过线。

安装本身没有意外:npm install -g @earendil-works/pi-coding-agent 拉进 132 个依赖包耗时 25 秒,落地体积 154.7MB,pi --version 输出 0.85.1。官方还专门写了 Termux(安卓终端)安装文档,手机跑 Pi 是被支持的场景。

真正要看的是它发给模型什么。我没有 API key,也不想编造数字,于是写了一个假的 OpenAI 兼容服务(本地 HTTP + SSE 流式响应),再用一个十几行的 Pi 扩展注册成自定义 provider,让 pi 把请求打到本地。这样每一次请求的完整 payload——系统提示词、工具定义、消息历史——都会被原样落盘,可以逐字节量。

抓包项 默认配置 显式开启全部内置工具
发给模型的工具数 4 个(read / bash / edit / write) 7 个(+ grep / find / ls)
工具定义 JSON 长度 3,024 字符 5,302 字符
系统提示词长度 2,571 字符 2,673 字符

三个可以复现的结论:

第一,默认真的只有 4 个工具。官方文档写「By default, pi gives the model four tools」,抓包证实:read(读文件)、bash(执行命令)、edit(精确替换改文件)、write(写文件)。grep、find、ls 存在但要靠 --tools 显式打开,一打开工具定义就从 3,024 涨到 5,302 字符,接近翻倍。社区里 Pi 被称作「只用 4 个工具的 Agent」,说的就是这个默认值,不是营销话术。

第二,系统提示词确实小。2,571 字符(英文,约合六七百 token),官方站点的说法是「very token efficient due to its minimal system prompt」,第三方横评也写它「系统提示词不到 1000 token」——实测对得上。这个数字的意义在于:工具定义加系统提示词合计不到 6KB,每一轮对话都要重发一遍,长会话里省下来的就是真金白银。

第三,agent 循环是真的能跑完。假模型按脚本返回工具调用,pi 依次执行了:读文件 → 用 bash 写文件并 cat 回来 → 用 write 落一个新文件,共 4 次 LLM 往返,最后以自然语言收尾。沙盒里真实出现了 out.txt 和 summary.md。零密钥、零真实模型,但工具调度、结果回填、多轮循环、会话持久化这条链路全部走通。

顺手还测了两件事。一是技能兼容:把一份带 frontmatter 的 SKILL.md 丢进项目的 .pi/skills/,pi 把它注入系统提示词的 区块(系统提示词从 2,571 涨到 3,172 字符),只给模型「名字 + 描述 + 文件路径」,让它需要时再用 read 去读全文——惰性加载,不是全文塞进上下文。也就是说,为别的 Agent 写的技能包,Pi 能直接复用。二是会话与导出:会话存成 JSONL(格式版本 3),每一条带 id 和 parentId,天然支持从任意历史消息分支重开;--export 能把整个会话导出成 273KB 的单文件 HTML 分享出去。

两个坑,也如实记下:

  • 走管道运行时,Pi 默认会读 stdin 并把它合并进 prompt。我的第一次调用没关闭 stdin,进程就一直等着,看起来像卡死;加 < /dev/null 才正常。
  • 项目级安装的包,在项目被标记为「信任」之前对 CLI 不可见:pi install npm:pi-web-access -l 明明装好了 134 个依赖,pi list 却显示「No packages installed」,加 --approve 才列出来。设计上是安全考虑,但第一次遇到很容易以为装失败了。

三、横向对比:一个 fork 拿到 3 万 Star,也提供了反面数据

Pi 的极简是有代价的,代价就是别人替你补。最典型的例子是 can1357/oh-my-pi(命令 omp):安全研究员 Can Bölük 在 2025 年 12 月 31 日直接 fork 了 Pi,塞进 LSP 客户端、调试器、浏览器、Python 内核、子代理,约 8 万行 Rust,命名致敬 Oh My Zsh。今天它有 30,562 Star——相当于 Pi 星数的三成,是判断「极简派 vs 全家桶派」谁更受欢迎的一个参考。

有意思的是,同一个模型下 Pi 反而更快更省。工具平台 Composio 在 9 月 1 日发布过一组同模型(deepseek-v4-flash)30 个真实任务的对比:

指标 Pi oh-my-pi(OMP)
任务通过 20 / 30 17 / 30
每次成功成本 $0.028 $0.103
单任务中位耗时 132.2 秒 272.4 秒
平均 token 消耗 558,885 742,283

数据要打折看:这是第三方单一模型、单一题集的测试,不能当成通用结论。但方向和 Pi 的设计逻辑一致——工具越多、提示词越长,便宜模型被拖慢、被绕晕的概率越高。Composio 的结论是 Pi 在「便宜模型的编辑可靠性」上输给 OMP 的 hash 锚定编辑(OMP 自称把某模型的一次通过率从 6.7% 拉到 68.3%),这也是极简派最实在的软肋:没有花招兜底,全靠模型自己稳。

另外,社区的选择本身就构成反讽:Pi 官方说「不需要 MCP」,而 pi.dev/packages 上安装量最大的扩展恰好是 pi-mcp-adapter(约 86.6 万次/月),第二是子代理扩展 pi-subagents(约 41.2 万次/月)。官方留白 + 社区填空,这条路走得通,但「Pi 什么都不带」的代价最终是使用者自己装回来。

模型接入这块对国内读者更实用:除了常规 API key,Pi 支持订阅登录——ChatGPT Plus/Pro(Codex,OpenAI 官方为开源项目背书)、Claude Pro/Max、GitHub Copilot、xAI、OpenRouter。要提醒一句:官方文档明确写了,用 Claude Pro/Max 登录第三方 harness,消耗走的是 extra usage 按 token 计费,不占用你的订阅额度——别以为登录了就能白嫖月费。国内厂商则以 token plan / coding 套餐形式支持:Kimi for Coding、Qwen Token Plan(含中国版、个人版)、小米 MiMo Token Plan(中国/阿姆斯特丹/新加坡三区)、MiniMax 中国站、智谱 zai-coding-cn。

四、259 个 release 背后:一套很硬的治理规则

Pi 的发布节奏和治理方式是它最容易被忽略、但对团队选型很关键的一面。

259 个 release、45 个 npm 版本、最新版本 9 月 5 日发布,同时 issue 关闭 5,855 个、开放 138 个,PR 累计 3,124 个——高频迭代但积压不严重。更能说明问题的是贡献规则:新贡献者的 issue 和 PR 默认自动关闭,维护者每天人工捞回值得处理的,用回复里的 lgtmi(此后你的 issue 不再自动关)或 lgtm(issue 和 PR 都放行)作为通行证;周五到周日提交的内容不保证被审阅。官方贡献指南里写着一条「唯一规则」:你必须理解你自己的代码——用 AI 写代码没问题,提交自己看不懂的 AI 垃圾不行。

供应链上它的洁癖也很少见:直接外部依赖钉死精确版本、.npmrc 设置 min-release-age=2(不使用当天刚发布的依赖)、package-lock 是唯一真源、发布包内附 npm-shrinkwrap 锁传递依赖、CI 用 npm ci --ignore-scripts 且定时跑 npm audit signatures,新增带生命周期脚本的依赖会直接让检查失败。

代价同样清楚,而且是官方自己写在文档里的:

  • 没有内置权限系统。README 原话是「Pi 不包含限制文件系统、进程、网络或凭证访问的权限系统」,默认以启动者的权限运行。要隔离请自行容器化(它给了三种方案:微虚拟机扩展、Docker、策略沙盒)。
  • 扩展和技能等于完全系统权限。官方在包管理文档里直说:扩展执行任意代码,技能可以指示模型做任何事,安装第三方包前请先读源码。
  • 提示词注入无法防护。SECURITY.md 承认 AGENTS.md 或代码注释里的指令可以轻易操纵 Agent,本地用户账号与 Pi 进程被视为同一个信任边界,报告这类问题不算漏洞。
  • 会话数据可以公开。项目鼓励把开源工作的会话用 pi-share-hf 发到 Hugging Face 供改进模型,作者自己也在公开数据集里发布自己的工作会话。这是自愿行为,但团队用之前最好先明确策略。

五、结论:值得放进你的 Agent 工具箱

我的判断是:Pi 不是给「想一键变强」的人准备的,而是给愿意把 Agent 当基础设施来改的人准备的。10.4 万 Star、152 万周下载、259 个 release、六成代码是测试——这套组合说明它已经跑过了「个人玩具」阶段,进入「有人拿它当底座」的阶段。

适合谁:① 想把 Agent 接进自己流程(CI、脚本、自家产品)的人,print/JSON/RPC/SDK 四种模式足够;② 预算敏感、用便宜模型的人,4 个工具 + 2.6KB 系统提示词对低成本模型更友好;③ 已经有一堆 SKILL.md 技能包的人,实测可直接复用。

不适合谁:① 想要开箱即用的调试器、LSP、子代理的人,直接看 oh-my-pi 或 OmO 这类组队方案;② 需要权限弹窗、审计、隔离的人,得先自己搭容器;③ 完全不想读文档的人——Pi 的「没有」清单,每一条都要你自己补。

中文资料已经不缺入门介绍了(知乎有长文、runoob 有教程,甚至有人写了本 Pi 架构书),所以本文更想留的是三件能复现的事:默认确实只发 4 个工具、系统提示词真的只有 2.6KB、SKILL.md 技能包真的能跨 harness 复用。至于「极简还是全家桶」,站内此前评测的 mattpocock/skills 和 OpenMontage 的工具注册表实测 已经给过两种答案,Pi 提供了第三种:把核心清空,让使用者自己决定装什么。

OpenMontage 实测:57k Star 的开源视频 Agent,121 个工具零密钥能跑几个?

OpenMontage 实测:57k Star 的开源视频 Agent,121 个工具零密钥能跑几个?

用 AI 做过视频的人都熟这套流程:脚本问 ChatGPT、图给 Midjourney、配音上 ElevenLabs、最后回剪映里一帧帧对时间轴。四个工具、四轮复制粘贴、一次成片半天就没了。

OpenMontage 想干的就是把这一串收进一句话:你在 Claude Code 或 Cursor 里说「做个 60 秒的神经网络讲解视频」,剩下的交给 Agent。

这个项目 3 月底建仓,现在 5.7 万 Star,还挂上了 GitHub Trending 当日第一的徽章。我把它拉进手机里的 Linux 沙盒实测了一遍:一个 ffmpeg、零 API 密钥,121 个注册工具里究竟有几个能真正跑起来——结论比宣传语有意思。

它的核心设计:没有编排器的 Agent 流水线

大多数「AI 做视频」项目本质是一个带 UI 的调用链:Prompt 进、片段出。OpenMontage 反过来——它没有代码编排器,你的 AI 编程助手本身就是编排器。

仓库里被拆成四层,职责很清晰:

  • tools/ —— 121 个 Python 工具,是 Agent 的「手」(生成、配音、剪辑、分析)
  • pipeline_defs/ —— YAML 管线清单,是「剧本」(哪些阶段、用什么工具、什么验收标准)
  • skills/ —— 157 个 Markdown 技能文件,是「怎么做」(每个阶段的导演手册、创作技巧、评审标准)
  • .agents/skills/ —— 90 个技术知识包,是「底层原理」(各家模型 API 怎么用)

每次生产都走同一条流水线:研究 → 提案 → 脚本 → 分镜 → 素材 → 剪辑 → 合成 →(发布)。每个阶段都配一份「导演技能」文件,Agent 读完再动手,做完自查,再停下来等你点头。

比较少见的是它的闸门设计:提案、脚本、分镜、素材生成、发布五个节点默认强制人工确认,官方写明「checkpoint 写入器会拒绝一个没有审批记录的阶段」。素材生成前还会弹一张分镜接触表,把每个镜头的取景、Prompt、预估花费、质量分列出来——钱花在哪儿,先看再批。

配套还有个本地看板 Backlot,管线跑到哪一步、花了多少、哪个 provider 被选中,实时显示在一块板子上,跑完还能按时间戳回放整个生产过程。

内置 12 条管线,覆盖的场景比想象中宽:动画讲解(Animated Explainer)、纯动效(Animation)、数字人播报(Avatar Spokesperson)、电影感预告(Cinematic)、长视频切条(Clip Factory)、纪录片式混剪(Documentary Montage)、实拍+AI 混合(Hybrid)、多语言配音(Localization & Dub)、播客转视频(Podcast Repurpose)、软件录屏(Screen Demo)、口播(Talking Head),以及用 SVG 骨骼做角色动画的 Character Animation。

实测:官方说 100+ 工具,到底几个能跑

实测环境:手机内的 Alpine Linux 沙盒(aarch64,PRoot),Python 3.12,没有配置任何 API 密钥。所有数字来自 sudo 无关的两条命令——工具的注册表发现接口和仓库自带测试套件。

先把官方宣传和实测数字摆一起:

官方说法 实测结果
100+ 生产工具 注册表实际发现 121 个工具
60+ provider 集成 代码里实际 66 个 provider 标识
700+ 技能与知识文件 skills/ 157 个 + .agents/skills/ 577 个 = 734 个
12 条生产管线 pipeline_defs/ 下 13 个 YAML(多出的是冒烟测试管线)
零密钥可做真视频 装完 ffmpeg 后 121 个工具只有 36 个可用

数字对得上,宣传没注水。但最后一行值得展开——因为这决定了你上手第一天的体验。

密钥不是门槛,运行时才是。 装上 ffmpeg 之前,注册表报告 121 个工具全部不可用。装完 ffmpeg(一条 apk add ffmpeg),状态变成:36 个可用、84 个不可用、1 个降级。

拆开看结构更清楚:43 个纯本地工具里 32 个立刻转正,剩下的靠缺失的运行时卡住——Piper 语音要装 piper 二进制、转写要 faster_whisper、语义检索素材要 PyTorch 模型、本地视频生成要 GPU。而 55 个云端 API 工具,零密钥时可用数为 1。

最扎眼的一格是视频生成:27 个视频生成工具,零密钥时可用数量为 0。官方的「零密钥也能出片」指的是另一条路——用 Piper 配音 + 免费素材库/档案馆的现成画面 + Remotion/FFmpeg 做动画合成。这是一条真实存在的路,但它是「拿现成素材剪出视频」,不是「凭空生成画面」。

我挑了几个 ffmpeg 系工具做了实际的端到端调用:

工具 实测任务 结果
auto_reframe 1280×720 横屏转竖屏 4.4 秒输出 1080×1920,帧数一致
frame_sampler 均匀抽 4 帧 1.2 秒,4 张 JPG
video_trimmer 裁 1–3 秒片段 0.3 秒
silence_cutter 静音段处理 0.5 秒
audio_probe 音频流探测 0.3 秒

手机沙盒里跑竖屏重构,4.4 秒——这类活它干得干净。

然后是翻车点,这两个才是真正该看的。

第一个是硬编码的 Windows 字体。showcase_card(给视频加标题卡)的默认字体写死成 segoeuib.ttf——Segoe UI Bold,Windows 专有。在 Linux/macOS 上 ffmpeg 直接退出码 254,报错信息只有一行 FFmpeg failed。有意思的是它的参数说明写着「Uses system font lookup」(使用系统字体查找),但源码里根本没有查找逻辑,三处字体位置全是 segoeui*.ttf 字面量。我显式传入 title_font=/usr/share/fonts/dejavu/DejaVuSerifCondensed-BoldItalic.ttf 后,4.0 秒正常出片。

第二个更值得警惕:注册表的状态字段会撒谎。仓库里一个 9 月 6 日新开的 issue(#637)由踩坑者提出:diagram_gen 在没装 mermaid-cli 的情况下依然报告 AVAILABLE,然后把 mermaid 源码原样渲染成一张文字卡片,还返回 success: True。提问者写道:「一个信任注册表状态和 success 标志的 Agent,会把代码图片当成图表交付出去。」根因是源码里用 or 判定可用性——只要装了 Pillow 就报可用。

我在自己的沙盒里撞上了同一类问题:face_tracker 的工具契约声明依赖只有 cmd:ffmpeg,实际 get_status 检查的却是 mediapipe + opencv。照着契约装 ffmpeg 永远也变不成可用。

最后是仓库自己的测试套件。我没有挑测试,直接跑 pytest tests/contracts tests/tools:1730 项通过、18 项失败、7 项跳过,耗时 32 分钟。18 个失败全部集中在 Google 系后端(Vertex、Imagen、Lyria),原因是我沙盒里没装 google-genai 包——属于环境缺依赖,不是代码缺陷。一个视频项目把契约测试做到 1700+ 项,说明工程纪律是真的。

谁该用、谁等等:三条现实约束

第一条是许可证。OpenMontage 用的是 AGPL-3.0,不是 MIT。你自己用、内部用都没问题,但如果你打算把它集成进一个对外提供服务的 SaaS 产品,AGPL 的传染性会咬人——这一点官方在 README 里没有专门提示,选型时必须自己过一遍。

第二条是单人项目的风险。仓库 52 位贡献者,作者 calesthio 一个人贡献了 311 次提交,其余贡献者都在 30 次以下;当前 317 个 issue 挂在那里(历史总量 152 个已关闭)。项目背后有一个官网和云服务「OpenMontage Studio」的等候名单,也就是说这是「开源核心 + 云产品」的商业结构,长期维护有动力,但节奏完全取决于一个人和一家新公司。

第三条是要选对参照物。同类的视频自动化项目里:MoneyPrinterTurbo 12.2 万 Star、MIT 许可、昨天还在提交,胜在简单直接但只覆盖「素材拼接 + 配音字幕」这一条链路;Open-Sora 2.97 万 Star、Apache-2.0,做的是模型本身不是生产管线;ShortGPT 已经一年多没提交,可以划掉了;Remotion 5.9 万 Star,是 OpenMontage 底层实际使用的合成引擎,属于互补而非竞争。

顺带提醒一句:官方在 9 月 4 日专门开了 issue 声明有假冒的「OpenMontage-app」安装包仓库在传播,这个项目本身不发布任何安装程序。搜索时别装错了。

如果你已经有 Claude Code / Cursor 的订阅,想批量化生产讲解类视频又不想按月付视频生成 API 的钱,它值得放进工具箱第一格——装好 ffmpeg 和 Node,第一天就能跑通素材类管线。如果你期待的是「打开网页、输入主题、十分钟出片」,或者你要把它塞进商业 SaaS,那先放观察清单,等云版本和许可证策略明朗再说。

一句实话:这次实测我没有注册账号、没有购买任何 API 密钥,官方云产品的报价(官网演示账单约 $2.09 一条 60 秒视频)来自官方页面而非我的账单;沙盒环境是 Alpine Linux,与官方推荐的 Ubuntu/macOS 有差异,少数工具的表现可能受环境限制。上面每一个数字都可以复现——仓库是公开的。

关注 AI商业快讯,每天一篇 AI 热点深度解读。

相关阅读: