UZI-Skill 深度评测:7,602 Star 的 66 位投资大佬评审团,989 项测试全绿,A 股跑得通、美股会崩

UZI-Skill 深度评测:7,602 Star 的 66 位投资大佬评审团,989 项测试全绿,A 股跑得通、美股会崩

想知道手里那只票到底行不行,很多人第一反应是丢给 AI 问一句。回答通常是一段”综合来看,估值合理,注意风险”——听着都对,读完什么也没多知道。

今天要评的 UZI-Skill,就是冲着这个痛点来的:它不让一个 AI 给你一段话,而是让 66 个”投资大佬”各自打分投票。7,602 星、开源许可、11 月 11 日还在提交。我把它拉下来按它自己的流程跑了一只票,结果是:一份 750KB 的报告,66 位评委里 29 位直接弃权。

弃权不是失败。恰恰相反,这是这个项目里最有意思的设计。这一篇讲的是它到底怎么做到”66 个人各说各的”,以及这套玩法在哪些地方站得住、哪些地方站不住。

它到底是个什么东西

先说一个容易被误导的地方。它在 GitHub 上看起来是一个 skill(技能,也就是给 AI 助手读的一份操作手册),根目录那份说明文件只有 2,417 字节,短得像一张便签。那不是它的全部。

那份便签只做一件事:告诉 AI”你要干什么,就去看哪份文档”。真正的活在 skills 下面的四个子技能里,其中主流程那一份有 57,898 字节,是根文件的 24 倍。

四个子技能分工很明确:主流程那份(deep-analysis)管抓数据、算分、建模、出报告,57,898 字节;评审团那份管让 66 位投资人各自打分,4,431 字节;龙虎榜那份管认游资席位、判断谁在买,只有 1,745 字节;杀猪盘检测那份列了 8 个信号、四档风险评级,3,054 字节。最小的一份只有主流程的三十三分之一——这个落差本身就说明,真正的工程量都压在数据那一头。

而”技能”这个词在这里也名不副实。我把仓库整个数了一遍:251 个 Python 文件、53,460 行代码,其中光是抓数据的脚本就有 22 个、合计 5,364 行。说白了,这不是一份提示词,这是一个打分引擎,只是碰巧用技能的形式分发。

它的核心思路值得单独讲一句:它不预测涨跌。它做的事是把同一份数据,用 66 种不同的偏见各看一遍,然后把分歧摆出来。巴菲特看的是”ROE(也就是净资产收益率)连续五年超过 15%”和”生意别人难以复制”,格雷厄姆只看”市盈率低于 15″,游资看的是”近 30 天龙虎榜有没有热度”。同一只票,这几个人给出的结论本来就该不一样——这个项目最诚实的地方,是它把这件事实做成了产品。

我自己跑了一遍

第一条证据,它自带的测试是真的能跑通的。我按它官方持续集成(也就是每次提交代码自动跑的那套检查)的口径,在隔离环境里装依赖、跑全量测试:989 个通过、1 个跳过、0 失败,耗时 10.5 秒。

这里要说明一处对不上的地方:它项目首页写的是”离线回归 948 passed、1 skipped”。我跑出来是 989,比它自己的数字多 41 个。多半是文档更新滞后于测试增量,不是坏事,但一个把”证据”当卖点的项目,自己首页的数字应该跟得上。

另外两道官方闸门也过了:一道检查仓库里有没有误传真实交易数据,输出检查通过;一道检查依赖有没有版本冲突,输出无冲突。

顺带把”22 维数据”这句也对了一遍:代码里正经的维度校验表是 20 项,另外两项是基金持仓和相似股——它们不参与打分,只负责在报告里补两张卡片,代码注释写明任何档位都必须照跑。所以 22 是”20 个打分维度 + 2 张附加卡片”,宣传上凑了个整,不算虚报,但读者会以为有 22 个维度参与评分。

第二条证据,规则数它自己说了三个版本。项目首页开头写”242 条量化(也就是可判定真假的条件)规则”,正文另一处写”共 236 条”,发布记录里又留着”180 条”。我去源码里数了一遍:规则表里确实是 66 位评委、合计 242 条,所以 242 这个数字站得住。但还有个它没说的:这 242 条规则只对应 178 个不同的规则编号,有 10 个编号被多人共用,重复引用占了全部规则的三成——”热度高””处在上升趋势””龙虎榜活跃”这类判断,在游资派里被十几二十个人各引用一次。

第三条证据,也是我觉得最值得写的一条:66 这个数字,三处对不上。

我数的地方 数字 说明
评委名单(源码里的名单表) 66 与宣传一致,代码里还有一句断言把它锁死
persona 档案(每位评委的人物设定文件) 51 其中 12 个手写、39 个是自动生成的空壳
头像文件 66 每个评委一个,不缺

也就是说:51 份档案里,12 份是手写的完整方法论,另外 39 份是脚本生成的空壳;剩下 15 位评委连空壳都没有,只有一个头像和一串”他该看哪几个数据维度”的字段清单。它自己的文档写得很坦白——12 个是”旗舰”,39 个是自动生成的空壳,最新加入的 13 位”暂无档案,按其公开言论风格演绎即可”。

说白了,宣传语里”66 位投资大佬帮你看盘”,实际是12 位有完整方法论,其余 54 位靠一套共用的规则表加头像撑场面。这不一定是骗人——规则表是实打实写的,每条都有明确的判定逻辑——但”66 个人格”和”12 个人格 + 54 个标签”是两件事。

第四条证据,评审团跑起来会大面积弃权。我用一只白酒龙头跑了一遍完整流程,66 位评委的结果是:29 人弃权、17 人看空、14 人看多、6 人中立。弃权的理由分三类——22 位游资嫌它市值太大”不在射程”、几位评委的规则判定”没有可核验的数据”、还有一位的方法论干脆被标注为”尚未实现”。

这个结果我认为是对的:让打板的游资去评价一只一万七千亿市值的票,本来就是错配。但对读者来说,这意味着”66 位评审团”在真实标的上普遍只有三十几位真正投票——你看到的共识度,是这三十几位的共识。

第五条证据,一次性印证了它的天花板和地板。同一套代码跑美股时直接崩了:在生成报告摘要的一段里,代码拿”资产负债率”去做大小比较,而这个字段在美股数据里是空的,程序抛出一个类型错误,整条流程中断。A 股跑得通,美股跑挂了——原因不是模型不行,是它默认某些财务字段一定存在。

第六条证据,数据源在海外到底通不通。这是读者最关心的现实问题。它的依赖清单里三个行情源都是免费、不用申请密钥的,我在有网的隔离环境里实测:

实测对象 结果
东方财富行情接口 连测 6 次全部成功,每次 1.6–1.9 秒
腾讯行情接口 一次成功,0.67 秒
美股数据源 取 5 个交易日收盘价,0.79 秒
A 股数据源库单独调用 被对方限流,报错原文写明”当前 IP 被临时限流,首次约 5 分钟后恢复”

所以”海外机器能不能用”这个问题,答案是能,但要看运气:直连两个行情接口很稳,走那个汇总库则随时可能被限流,而它的抓取脚本大量走后者。文件里那个可选的付费密钥,缺了它少的是两项增强——中文名纠错和更稳的行情快照——不影响主流程。

工程质量这一面

挑完毛病得说公道话,这个项目的自律程度超出预期。

86 个测试文件、13,729 行测试代码,比很多同体量项目的业务代码还多。它的持续集成里有一条很罕见的检查:扫描仓库索引,确认没有误传真实交易数据——一个做股票分析的项目,主动给自己上了这道锁。文档里还留着一条 2026 年 6 月的记录:有个功能在某个接口上会卡将近两小时,他们改成直连并加了 15 秒硬超时。这种”记录卡在哪、怎么修的”的日志,比功能列表有说服力得多。

局限同样明确。第一个是数据:所有结论都建立在免费数据源上,这些源没有服务承诺,限流、改接口、字段缺失都是常态,上面那个美股崩溃就是字段缺失直接炸的。第二个是可复现性:评分结果对同一份输入是稳定的(我连跑两次分数完全一致),但它对”口径”很敏感——我试过同一组财务数字用两种常见写法喂进去,有一位评委的结论直接从看多翻成看空。也就是说,它能复现,但前提是你喂进去的数值得按它默认的口径来。第三个是角色扮演部分:那 12 位有档案的评委会引用具体的历史言论和比喻,另外 54 位只能靠规则表说话,读者很容易把两者当成同一种东西。

最后一句必须写清楚:这个项目所有的输出,都不构成投资建议。它是一台把公开数据按不同流派切成不同结论的机器,不是一只会看盘的脑子。

放进坐标系里看

站内评过两篇股票类项目,值得对照。10 月底那篇多市场股票分析系统 讲的是多市场分析系统的管道和熔断;11 月初那篇 a-stock-data 讲的是数据接口的可用性。这两篇问的是”数据准不准、跑不跑得动”。

UZI-Skill 问的是另一个问题:同一份数据,不同的钱会怎么想。它把”分歧”做成了产品,这个角度在站内还是头一份。

适合谁:想快速看到一只股票在不同流派眼里的分歧点、又不满足于一句话结论的人;想研究”人格化投票”这套玩法怎么落地的人。

不适合谁:想要买卖信号的人——它明确不给;做美股的人——这条流程我实测是崩的;以及任何打算把输出直接当决策依据的人。

值得一试,但别当预言机

我的判断是:这是一个值得装进观察清单的项目,不是因为它能预测什么,而是因为它是目前少见的把”多方偏见”工程化的样本。989 个测试全绿、242 条规则可数、66 个评委里 29 个敢说自己不适用——这几件事加在一起,比任何一句”AI 帮你看盘”都可信。

真正要盯的是它自己承认的那部分:54 位评委还没长出人格、美股流程会崩、数据源随时可能被限流。这三件事补上之前,它是一台很好的”分歧展示机”,还不是分析师。

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

gentle-ai 深度评测:8987 Star 的编码代理配置器,一次写进 18 个助手的规矩文件

gentle-ai 深度评测:8987 Star 的编码代理配置器,一次写进 18 个助手的规矩文件

用 Claude Code 写代码的人,多半都干过同一件蠢事:把「提交信息用中文、别加 AI 署名、改完必须跑测试」这几条规矩,一遍遍贴进每个新项目。换台电脑要重贴,换个工具还要再贴一遍,写成什么样全凭当天心情。

gentle-ai 想一次解决这件事。它不造新的 AI 助手,而是给你已经在用的那个「装规矩」:把记忆、工作流、技能库、代码审查这一套,一次写进 18 种不同编码助手的配置文件里。项目 8,987 星,MIT 许可,Go 写成,最近一次提交就在今天。

我把它装进一个隔离的空账户里跑了一遍。结论先说:它确实一次配好了,代价是往你电脑里塞进近一千二百个文件,还把一份用不上的 43MB 仓库副本一起带了进来。

它到底替你做了什么

「支持 18 个助手」这句宣传,我先去代码里数了一遍。决定「选哪个助手、走哪套适配」的那个文件里,正好 18 个分支,对应的都是主流编码助手,从 Claude Code、Cursor 到 Codex、OpenCode,再到 Gemini CLI 这一档。

通俗讲,它是一把万能转换插头:你手里是哪个牌子的充电器,它就换出哪个牌子的插孔,插座本身不用动。

装的时候你不用一件件挑,它按一个叫「预设」的清单一次性铺开:

装了什么 干的什么活 落到你电脑的哪儿
人设与规则 一段几万字的开发规矩,写进助手的全局指令文件 ~/.claude/CLAUDE.md
技能库 8 个可复用技能,比如「一个提交只做一件事」 ~/.claude/skills/
记忆 一个叫 Engram 的独立程序,跨会话记住项目决策 ~/.local/bin/engram
提交前审查 一个叫 GGA 的脚本,commit 前让 AI 看一眼改动 ~/.local/bin/gga
审查引擎 项目自己的一套代码审查流程,可开关 写进助手的钩子系统

我装了一遍,三个数字值得记

装的过程很顺。我把「家目录」指向一个空文件夹,等于给它在沙漠里盖了间房,装完对真机零影响。全程两百多秒,最后一步打印「25 项自检通过,0 失败」。

但清点成果时,有三个数字值得记下来。

第一个:1,188 个文件。 这是它在你账户下新建的文件总数,其中 1,171 个都在 .claude 这一个目录里。真正有内容的是几百个,剩下的是那份记忆程序仓库的完整副本。

第二个:43MB。 这是 .claude 目录里那块「插件市场」缓存的大小,其中 15MB 是版本历史。为了让你多一个记忆功能,它在配置目录里留了一整个项目的源码。对 20G 硬盘不算什么,但对「只想配个规矩」的人来说,这个体积来得莫名其妙。

第三个:8 个技能,索引里只登记 7 个。 装完的技能目录里有 8 份说明书,但项目自带的技能索引只列出 7 条。少掉的不是出错,是它主动跳过了一个共享文件夹,和「管理索引的那个技能」本身。这个逻辑说得通,只是你按「9 个」去数会对不上。

32 万行测试守着 20 万行实现

对一个「配置文件生成器」来说,这个仓库的体量是反常的。

去掉测试,它的 Go 代码有 19.7 万行;测试代码 32.5 万行,比实现还多 65%,相当于每写 1 行逻辑就有 1.65 行测试盯着。测试函数 7,602 个,分在 95 个包里。我随手跑了其中四组(代理适配、技能索引、数据模型、遥测),二十多个子包全部通过,最慢的一组用了 7 秒。

这个比例意味着什么?意味着作者把「配置写错一个字符就可能弄坏别人电脑」当成了头号风险。它也解释了另一个数字:仓库里有 60 份 JSON 格式的接口契约,合计近 1.1 万行,专门规定审查流程的每一步该传什么、返回什么。这是「先定合同再写代码」的写法。

我自己也跑了一遍它最核心的审查功能。拿一个假的 Git 仓库,改一行 Go 代码,它判断风险为「中」,要求跑 1 项检查;改成只动 Markdown 文档,它直接判定低风险、无需审查。这个分寸是对的,不是一律拦下,也不是一律放行。

三个坑,写在这儿免得你自己踩

坑一:遥测默认开着。 装完我第一件事就是查状态,显示「已启用(默认)」,还带一个安装编号。安装日志写明了发送什么:版本号、操作系统、装了哪些助手、各类计数;某些集成下还包括用的是什么模型、消耗多少 token、耗时、错误类别。它给了关闭命令,也没藏着掖着,但默认开着这件事,介意的人得自己动手。

坑二:仓库根目录那份基准成绩,是事故留下的。 仓库里有个文件记着自动化测试的成绩,打开一看只有 1 条记录,状态还是「失败」,失败原因写着「不是一个 Git 仓库」。更奇怪的是里面记的可执行文件路径,指向一个临时目录。

我去翻了项目自己的复盘文档,找到了答案:这份文件是从开发机的工作目录里被顺手 git add 扫进去的,作者把它列进「工具层面的意外」。真正完整的那份在另一个目录,64 条记录全部完成。这条不影响你使用,但它说明一件事:连这个项目自己,也会被「顺手一把梭」坑到。

坑三:被拦下时,近六成不告诉你下一步。 仓库自带一份衡量「AI 助手操作体验」的基准测试,64 个场景里共有 69 次拦截。其中 29 次给出了可直接复制的下一步命令,另外 39 次只说「不行」,不告诉你该敲什么。项目自己的说法是,这 39 次里有些确实给不出命令(比如「你得自己去改代码」),属设计如此,但比例仍然偏高。

谁该装,谁别急

和它同一赛道的东西大致三类。一类是各家助手自己的规矩文件,最省事,但换工具就得重写;一类是技能包合集,管「装什么能力」不管「写代码的规矩」;第三类就是它这种总配置器,一次覆盖多个助手。

如果你同时在用两种以上编码助手,或者经常换机器,它的价值是实的:一次配置,十八个工具通用。如果你只用其中一家、且已经有自己的规矩文件,装它是拿 43MB 磁盘和一整套新概念去换一点便利,不划算。

还有一点要有心理准备:它不是一个装完就忘的工具。审查流程会插进你每次提交的动作里,第一周大概率会被它拦几次。要不要留,取决于你愿不愿意为「提交前有个机器看一眼」多花那几十秒。

我的判断是:放进观察清单,用它解决「多工具配置漂移」这个真问题;装之前先把遥测关掉,并且别指望它小。它是个认真过头的工程品,不是一片创可贴。

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

Papermorph 深度评测:1,583 Star 的教学技能,把教材 PDF 变成 68 章能点能听的网页课

Papermorph 深度评测:1,583 Star 的教学技能,把教材 PDF 变成 68 章能点能听的网页课

你手上有本教材的 PDF,想让 AI 把它变成课。现在能拿到的基本是两种东西:一份排版整齐的讲稿,或者一堆散装幻灯片。两者有个共同毛病——还得学生自己读。没人念给他听,图不会跟着讲解一步步长出来,学没学会也没人知道。

Papermorph 交出来的东西不是文档,是一本能在浏览器里点、能听、能暂停回退的书。仓库里摆着 68 章的《初等代数》、40 章的《线性代数》,还有纸偶绘本动画和十分钟的纪录片。它 40 天拿到 1,583 颗星。我把整个仓库拉进隔离沙箱,把它自带的检查跑了一遍:自检确实抓得住错误,但这条流水线的代价比我预想的重。

一、它交出来的是什么:一本能点的书,不是一份讲稿

按作者自己的分法,这技能会做三种书。

第一种是课,从教材 PDF 来。公式、图形、场景随讲解一步一步变,中间插随堂小题,章节练习评判的是数学答案对不对,不是字符串像不像。

第二种是绘本,从一个故事、一个笑话或一则童话来。纸偶站在布景前,有配音、字幕、音效、配乐和镜头调度。给还不识字的孩子还留了一手:片子会停下来变成找一找的游戏,角色一次只提一样东西,孩子在图里点出来,点错了也不算错。

第三种是片:把一本书或一个想法做成配旁白的纪录片,或者切成竖屏短片。再往外还有可探索的地图和滚动叙事长页——跟着滚轮走,画面一年一年地变。

这些成品全是静态网页:没有服务器、没有数据库、没有账号。一本书就是一个文件夹,丢到任何静态托管上就能播。我随手取了一页线上成品,一个 4 KB 的网页加一堆本地素材,浏览器里就是能播的片子。

二、怎么做到的:先把书排出来,再让每句话对准一个时间点

这里有个关键概念叫 beat(节拍)。说白了,一个 beat 就是「一句旁白加一组定时动作」:配音生成后,每个词都拿到一个时间戳,画面就按这些时间点去动。所以画面不是猜出来的,是跟着声音算出来的。

这也解释了它为什么能导出视频——既然每一帧都只由时间决定,那逐帧截下来拼成 MP4 就是顺理成章的事。

做书的顺序是先规划再画:先定章节或场景,再写脚本,再画分镜。风格不靠感觉统一,靠一份写进书里的设置文件:用户的话、选的样子、用的嗓音、哪一步用哪个模型,全存在里面,后面每一章都拿它对照。

规模大的章节交给一组子智能体(能自己多步干活的 AI 程序)分工做,每步可以用不同的模型。做完之后模型还得看自己的产出:把多帧缩略图排成一张大图一次看、查画面重叠、查空帧、跑端到端测试,再加一轮「导演审片」,对照已通过的样书挑毛病,然后自己修。

这套思路是它最值钱的地方,也是它最贵的地方——后面我会算这笔账。

三、实证:我把它关进沙箱数了一遍

先交代环境。仓库 816 MB,全量拉会很久,我用了稀疏检出(只下载指定路径的文件)的办法,把技能本体、绘图引擎和四本样书取了下来。沙箱里没有网络时,它那两个不依赖浏览器的检查照样能跑。

体量上,它确实不是一份提示词:

部件 我数出来的数 意味着什么
技能说明 12,167 字节,92 行 它很短,只做分派:按你带来的东西指向参考文档
参考文档 27 篇,26.7 万字节,分 5 类 真正的知识在这里,模型按需去翻
脚本 45 个 Python 文件,50.4 万字节 最大的音效脚本 36.9 KB,音乐脚本 34.6 KB,导出脚本 30.1 KB
模板与素材 68 个文件,1.1 MB 新书是从模板复制出来的,不是凭空生成
成品书 22 本,各自带一份绘图引擎 见下一节

自带的静态检查真能跑,也真能抓错。68 章那本《初等代数》全量检查 2.1 秒跑完,结果是 0 个错误、68 个警告。警告全是同一句:找不到旁白原文,所以旁白这一项没核对。这是我把作者的私有目录一起略过的结果,不算它的问题。

为了确认检查不是摆设,我往一本样书的页面里注了两处故障。第一处让页面自己声明两个和引擎撞名的全局变量,检查报出 4 行「重复声明」,最后汇总 8 个错误。第二处塞进一个没闭合的花括号,检查给出原文:SyntaxError,Unexpected end of input,后面还补了一句「浏览器会把整段脚本停在这里不执行」。两次都准确命中,改回原样后归零。

仓库里还有两层自检:一层查文档与代码对不对得上,跑出来是「31 篇文档、0 个问题」;一层专查旁白文本规则,也是通过。文档里点名的那些脚本——导出视频、打包成课程平台能吃的包、把引擎同步进每本书、本地起一个预览服务——我逐个查了,全部存在,没有一个是文档吹出来的。

四、代价这一面:引擎复制 22 份,依赖链断一环就少一半能力

先说引擎。所有书共用同一个播放器,但每本书里都存了一份副本。这个选择很有道理:一本书坏了,引擎不跟着坏;改引擎也不会顺手把二十本书一起改坏。代价是重复,引擎核心那九个文件 26 万字节,乘上 22 本书就是 5.7 MB 的同一份代码躺在仓库里。我抽查了五本书的核心文件,逐份算校验值,结果完全一致,也都等于引擎源目录里那份;跑一遍同步工具,它回「没有要更新的」。这不是偷懒,是拿体积换稳定,而且换得挺值。

真正让人皱眉的是外部依赖。作者在说明里写了要什么,我把本机当成一台普通开发机来验:

依赖 本机状态 缺了会怎样
uv(Python 依赖的运行器) 有 —
Node.js 有,但默认路径里找不到,要手动指路 不指路,语法检查直接跳过,只留一句「没装 Node,脚本没被解析」
ffmpeg(音视频处理工具) 没有 配音拿不到时长、音频合成不了、导不出 MP4
Playwright 浏览器 没有 检查页面、截图、导出视频、做纸偶动画全废
numpy 没有 导出视频的脚本连启动都做不到

最硬的一条:我直接问导出脚本要用法,它连帮助都没打印出来,就报找不到 numpy 然后退出了。四个引擎自带的页面检查脚本,全都卡在同一句「找不到 playwright」。配音脚本倒是能打印帮助,但它的说明里写着两个配音引擎都需要 ffmpeg,所以也只是能启动、跑不了。

再说一个我自己撞出来的真问题。打包课程平台格式那一步,是这条流水线上少数不依赖浏览器、我本机真跑通的部分:一本样书打出一个 2.3 MB 的压缩包,46 个条目,格式标着 SCORM 2004(教学平台通用的一种课程打包规范)。但它同时吐了两行警告——封面页引用了书文件夹外面的样式表,那个文件不会进包。我去线上核对:那份样式表在站点根目录是正常返回,换成书目录下的路径就是 404。也就是说这本样书的封面页在线上一直缺样式,只是缺得不明显。自检工具会说话,但没人听它说话,小毛病就一直挂着。

最后是钱。作者给了两个数:一本带插图的物理章节,模型开销约 10 到 18 美元;最新的绘本每本配音不到 0.45 美元。按 68 章那本算,光模型费就是四位数美元的量级。这不叫贵得离谱,一个章节的人工课件制作远不止这个数。但它把这件事的性质说清楚了:这不是一个人一天做一本书的工具,是一个团队一周做一本书的流水线。

五、判断:现在该试的是哪种人

拿来跟站内评过的同类比,坐标系就清楚了。之前评过的开源视频流水线(OpenMontage 那类)走的是「很多小技能拼装」,出图技能(visual-explainer 那类)走的是「一个好看的静态页」。Papermorph 站的位置不一样:它要的是成套的、风格一致的、能连续做几十章的课程,而且必须能脱离平台自己托管。这三条同时成立的项目,我目前没见到第二个。

所以:

适合现在就试的——你手上有自己有权使用的教材 PDF,而且要做的是十几章以上的连续课程;你的机器上已经有 ffmpeg 和 Node;你愿意接受第一章要花二三十美元试错。

建议先别碰的——只想把一份文档做得好看点的;没有命令行经验、指望一条命令出成品的;以及想拿它批量处理别人的版权教材的。作者自己在文档里划了线,这个锅他不背。

如果你只是好奇它到底能做到什么程度,不用装:仓库里的成品书就是纯静态页,打开就能看,那是它最好的说明。

相关阅读:AI 时代的教育革命:5 个必装的 AI 教学技能 · AI Skill 生态全景:从 1000+ 仓库精选 10 个必装技能 · OpenMontage 深度评测:6.89 万 Star 的开源视频流水线

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

baoyu-design 深度评测:6369 Star 的本地设计技能包,66% 体积是重复副本,自检却放过编号错误

baoyu-design 深度评测:6369 Star 的本地设计技能包,66% 体积是重复副本,自检却放过编号错误

六千多星的项目,我克隆下来一称:一百六十六兆,这还没算版本历史。把里面一模一样的文件挑掉之后,只剩五十六兆。也就是说,这个仓库里有六成六的体积,是同一批东西原样抄了三遍。

这个项目叫 baoyu-design,作者是宝玉(Jim Liu),半个月前还在日更版本,现在六千三百六十九星、五百零六个 fork。它的卖点很实在:把 claude.ai 上那几种「作品」——幻灯片、设计画布、设计系统、数据仪表盘、动画影片、白板——搬到你自己电脑的 AI 助手里跑,每一种配一个本地编辑器。

先说结论:东西是真能用,我跑起来了;但那六成六的赘肉也是真的,你今天要装它,得先为这部分付下载和磁盘的账。

它到底在做什么

claude.ai 有个设计功能,能让 AI 直接产出可编辑的幻灯片、设计稿、仪表盘。问题是你得在网站上用,产物在云端,导出来就死了。

baoyu-design 的做法是把这套东西整包搬到本地。它的产出全是普通文件:一个文件夹里放一个索引文件记着页序,每页一个网页文件。AI 往这个文件夹里写字,你电脑上跑着的一个网页编辑器立刻显示出来;你在编辑器里改,改动也写回同一批文件。两边轮流改,谁都不覆盖谁。

大致分工是这样:

技能 你拿到什么 打开后能干什么
claude-slides 幻灯片:一个索引加每页一个网页文件 放映、改字、拖动,导出 PDF / PPTX
claude-design 一块画布上并排多个画板 当原型播放、调文案、导出 Figma 可接的网页
claude-design-system 一套设计系统:颜色、字体、组件 浏览和改样式变量,给幻灯片和画布装上
claude-data 数据仪表盘:数据集加图表页 实时图表,每个数字能追回原始那一行
claude-motion 动画影片,一段段代码写出来 改台词、拖场景长度、导出 MP4
claude-whiteboard 白板:方块、箭头、便签 拖动、画、贴便签、局域网协作

另外还有两个不出编辑器的:一个当影片导演,负责想清楚要说什么、写旁白、配音;一个是图表规范,AI 画图之前先读它。八个技能加起来,说明文档二十四万字节。

这东西的价值不在于「又一个 AI 画图工具」,而在于产物是你的文件。放在你自己的文件夹里,能进版本库,能拷走,能拿编辑器当普通项目打开。云端工具做不到这一点,这是它最硬的一条。

实测一:一百六十六兆里,六成六是重复

我在隔离环境里克隆了一份,量出来:

指标 实测值
工作区文件数 804 个(不含版本历史)
工作区体积 165.8 MB
按文件内容去重后 56.5 MB
重复部分 109.3 MB,占 65.9%
另:版本历史目录 15.8 MB

为什么重复:仓库里有三个目录,分别是给普通 AI 助手、ChatGPT/Codex、以及 DeepSeek Harness(也就是一个能装插件的本地 AI 应用)这三种宿主准备的版本。我随手挑了三个目录下同一个编译器文件比对,三份的指纹完全一致;整个脚本目录逐字节比对,零差异。也就是说,为适配三种宿主,同一份两万四千行技能文档和一整套编辑器被复制了三份。

落到单个技能上更疼。只装幻灯片这一个技能,目录十八兆,其中十一兆是一个编译器文件;设计画布十五兆。你要是八个全装,光脚本就五十多兆,还没算你做的作品。

这意味着什么:这不是「下载慢一点」的问题。它决定了你怎么装。官方推荐用现成的技能安装器按名字装单个技能,别整个仓库克隆——克隆一次,等于把另外两份你永远用不到的副本一起搬回家。而如果哪天作者忘了同步三处,你本地那份和插件市场上的那份就会跑出两种行为。

实测二:编辑器真能跑,自检也真会放过错

光看文档没用,我建了个最小幻灯片试了一遍。

第一步是自检命令。我照文档写了个只含一页的幻灯片索引,运行检查,脚本直接崩了——报错说「无法把空值转成对象」。原因是我漏了「章节」这个字段,而它没做兜底,直接踩空。补齐之后,检查通过,问题数为零。

第二步是打开编辑器。命令返回一个本机网址,我抓了一下:网页正常返回,说明本地服务确实起着,不是文档里画的大饼。这一步给好评,很多同类项目的「编辑器」只存在于说明文档里。

第三步我动了点坏心思,想看它的检查能拦什么:

  • 把某一页文件名写成 cover,而网页里那段的编号我故意改成 wrong-id。检查仍然报零个问题。 它自己的说明里也承认:文件名的编号和网页里的是否一致、图片路径是否存在,它都不验。
  • 再放一张指向不存在图片的图。这次抓住了,报一个错误,还附了修法。
  • 给网页加一个它不认识的排版属性。它不报错,只在提示里说「这个属性不属于本格式,已丢弃」。

这意味着什么:它的自检是一道格式闸门,不是正确性闸门。能拦住「你引用的图片没导入」,拦不住「你这一页的编号写错了」。后者恰恰是让编辑器打开空白页的原因。作者把边界写在说明里了,算诚实,但你要是照文档说「跑过检查就行」,会栽在这条缝上。

顺手挖到一件真东西

八个技能里最不起眼的是那个图表规范,一百一十二千字节,最小。但它带了一个调色板校验脚本,我拿四组颜色实测:

  • 亮度区间:四色全在合格带内
  • 饱和度下限:四色全部通过
  • 色盲可分辨度:一对黄褐和墨绿在红色盲模拟下只差 7.1(阈值带是 6 到 8),判为警告,并且提示「只有在加上直接标注或纹理这类第二重编码时才合法」
  • 与背景的对比度:四色全部达标

这是整个仓库里唯一一处能给出可核对数字、并且会主动报警的地方。它没吹自己懂设计,而是把「这组颜色色盲读者分不分得开」算给你看。做数据图的人,光这一个脚本就值得来一趟。

一件必须先看清楚的事:许可

这个仓库的许可证在 GitHub 上显示为「未识别」。别误会成「没许可」,真相更麻烦一点——它是分层授权,官方特意写了一份说明文件:

  • 作者自己写的部分(本地命令行、编辑器服务、本地评论、三种宿主插件的代码、文档):MIT,商用随便。
  • 从 Anthropic 搬来的部分(技能说明、参考文档、图表规范、整套编辑器界面、图标字体、归档里的系统提示词):权利归 Anthropic,本项目不授予任何许可。
  • 第三方开源库(React、d3、导出 PPTX 的库等):各自原有许可。

这意味着什么:你自己拿来用、拿来改,没问题;但如果你想把「编辑器那部分界面」抠出来放进自家产品对外卖,那就踩在了不授予许可的地界上。作者提醒得很清楚,别跳过那段说明。

谁该用,谁别用

值得用的:需要反复产出幻灯片、设计稿、数据仪表盘的独立开发者和小团队。你的痛点是「AI 产出的东西导出来就死、改一次要重生成一遍」,这个项目的文件式设计正好治这个病。做数据图的,先单独试那个调色板校验脚本,成本极低。

别急着用的:只想让 AI 出一张图、一份一次性 PPT 的人。装一个技能要吃掉十几兆、还得有 Node 环境、还得让本地服务能开端口——为一个一次性需求付这些,不值。

装之前记住两条:按名字装单个技能,别克隆整个仓库;跑完自检不等于没问题,编号和图片路径它不查,自己扫一眼。

顺便说一句,它要求配 Claude 里最强的那个模型效果最好,也就是说这东西的质量上限,很大程度取决于你给的上下文——截图、现成的设计系统、真实代码库。不给上下文,它再强也只能凭空编。这一点和前面评测过的 pstack-claude 是同一个道理:技能是壳,喂进去的真实材料才是肉。

仓库地址:github.com/JimLiu/baoyu-design,作者署名 Jim Liu 宝玉。本月已发二十个版本,更新很勤,我看到的这些数字随时会变——尤其是那六成六,希望作者哪天把三份副本收成一份加上构建脚本。

Impeccable 深度评测:10.7 万 Star 的设计词表,62 条 slop 规则我实测只响 43 条

Impeccable 深度评测:10.7 万 Star 的设计词表,62 条 slop 规则我实测只响 43 条

你把一个页面丢给 AI,说「做得好看点」。出来的东西几乎总是同一张脸:奶油色背景、一根细衬线大标题配斜体点缀、紫蓝渐变、卡片左边一道彩色竖杠。这不是审美口味问题,是可数的、会反复出现的模式。Impeccable 干的事就是把这些模式写成 62 条确定性规则(deterministic,意思是不调用任何模型、同样的输入永远同样的输出),让 coding agent(替你写代码的那个 AI 助手)在交活之前先自己照一遍镜子。

它现在是 10.7 万星、Apache-2.0 协议、作者是前 Google 开发者布道师 Paul Bakaus。我把它整个拉进隔离沙箱,从源码编译出引擎,跑了两套测试,再用仓库自带的 269 个测试样本全量扫了一遍。结论先给:62 条规则里只有 43 条在这条路径上响过,剩下 19 条一次都没触发——这不是缺陷清单,但它划出了这东西真正的适用边界。

一、它是什么:一本设计词典,外加一个独立运行的扫描器

说人话,它由两块拼起来。

第一块是命令。装好之后,你的 AI 助手里多出 24 个斜杠命令,按用途分四组:调风格(让保守的更大胆、让吵闹的更安静、去掉多余、补上配色、重整排版)、做评审(打分的体验检查、技术质量报告)、收尾(上线前打磨、补边界情况、改文案、适配屏幕、优化加载),以及写新页面时的规划。

你用「把定价卡做得更响亮一点」这种话吩咐它,背后加载的是一份专为这个动作写的操作手册。区别于随便一句「好看点」,它知道这个动作要做到什么程度算完。

第二块是一个能脱离 AI 单独跑的扫描器。一条命令扫源码目录,同一条命令换成网址就扫线上页面;加一个开关输出机器可读的结果,再加一个开关直接写成 GitHub 的代码批注。

它有没有发现问题,只用退出码回答你:零是干净、二是有发现、一是连扫都扫不了。这一条对做持续集成的人很关键——它天然就能当闸门用,不用解析输出文字。命令行细节放在下面的表格里。

两块都指向同一个卖点:把「感觉不对」翻译成「第 12 行左边那条 6 像素竖杠,删掉」。

二、怎么做到的:一条设计规则如何从散文变成可执行代码

这是它和站内评测过的同类最不一样的地方——它不是一堆 Markdown 提示词,而是一个正经的 Rust 工程。仓库根目录的构建清单定义一个工作区,底下共有 18 个 crate(Rust 里最小的编译单元,可以理解成模块边界清晰的零件)。分工大致是:

零件 干什么
规则注册表与公共类型 62 条规则的唯一真身,一条规则 = 一个编号 + 分类 + 严重级别 + 一句给人看的说明
规则逻辑 每条规则的具体判定:什么算「太挤」、什么算「标题跳级」
源码扫描 走文件、读配置、跑正则、出结果
静态页面引擎 自己解析 HTML 和样式表,在没浏览器的情况下算排版和颜色
浏览器引擎 连你本机的 Chrome,在真渲染的页面上量尺寸和对比度
命令行 把所有动词接起来,管退出码

版本方面,工具链配置文件只写了一句「stable」,外加一个网页端编译目标——那是为了把同一套规则编译成网页里也能跑的形态,浏览器插件用的就是它。整个工作区 27.5 万行 Rust,锁文件里 218 个依赖包。

62 这个数字在源码里是被测试断言焊死的:注册表末尾有一句「长度必须等于 62」的检查,谁不小心删了一条,测试当场红。它也解释了为什么是 62 而不是 64——有两条规则被退役了(image-hover-transform 和 layout-transition),退役的编号留在配置里不报错、也不生效,只在自检命令里悄悄提示一句。

三、实测:跑了什么,拿到什么数字

沙箱是隔离的,被测项目全程没有落到沙箱外。克隆用浅克隆加只取必要对象,4,526 个文件、除版本库外 98MB,4 秒完成。然后按文档从源码构建引擎,25.5 秒编译完,产物 100MB。

我跑的命令 真实结果 耗时
cargo test -p impeccable-foundation 61 个通过,0 失败 9 秒
cargo test -p impeccable-detect 117 个通过,0 失败 11 秒
cargo test -p impeccable-core 847 个通过,0 失败 18 秒
cargo test -p impeccable-html 224 个通过,0 失败 29 秒
cargo test -p impeccable(命令行) 81 个通过,0 失败 22 秒
node scripts/run-tests.mjs core 270 个用例,264 通过、2 失败、4 跳过 7.3 秒

Rust 这五个包合计 1,330 个通过、零失败。全仓一共 2,683 个 Rust 测试标记,我没跑全量:一次性跑整个工作区需要补下载依赖,沙箱第一次断网跑直接报下载失败,我改成逐个包跑,这五个是覆盖面最大的。

前端那套 core 套件的 2 个失败都出在环境,不是代码:一个是仓库需要一个叫 gh 的命令行工具去拉一份几兆的提交历史,沙箱里没有,报的是系统层面的「进程资源暂时不可用」;另一个是少装了依赖,模块找不到。两者的原始报错我都留着,不做别的解读。

规则真的会响吗? 我手写了一个故意做脏的页面:左边 6 像素紫边卡片、渐变文字、9 像素的灰色小字、奶白背景、Inter 字体,再配一份内容一样的 React 组件。同一份脏东西,两种文件给出了两种答案——页面文件报了 7 条(侧边竖杠、渐变文字、对比度只有 1.7:1 不合格、字号低于 11 像素下限、字体太大众、奶白背景),React 组件只报了 1 条。

原因它自己打印出来了:源码文件只跑模式匹配那批规则,并明确写着「发现数量是少算的,不等于体检合格」。这是我认为最该被记住的一条限制:把它挂进 React 或 Vue 项目的持续集成,你得到的是一层很薄的网;要拿到完整结果,得对着跑起来的开发服务器地址扫一遍。

那 19 条从不触发的规则是什么? 我拿仓库自带的 269 个测试样本全量扫了一遍,43 条规则响过,其余 19 条一次没有。看名单就明白了:设计系统字体、颜色、圆角、字号这四条要读你项目里的设计规范文件才有基准;行宽、贴边、遮挡、首屏横向溢出、边缘卡片这几条要真实的屏幕尺寸。

脚本报错、坏图、静止时被藏起来的内容这几条,要页面真的渲染过才看得见。所以这 19 条不是坏了,是「静态扫文件」这条路根本走不到它们——想覆盖,就得把浏览器接上。

顺带一个方法论陷阱:第一次扫它的测试样本,我拿到的是零发现。查下来是仓库自己的配置文件里把 tests/fixtures/**(测试样本目录)写进了忽略清单——测试语料被当成「已知的脏东西」屏蔽了。这做法本身合理,但意味着任何人想复核它的规则,都得显式关掉配置。

四、三处我实测撞到的问题

一是分发方式带来的体积代价。 仓库根目录下有 20 个以点开头的目录,一个工具一个,每个里面装着一份完整的技能包,58 个文件。我把路径前缀抹掉之后逐字节比对:1,165 个文件里有 942 个和 Claude Code 那份完全一致,占八成。

剩下两百多个差异,绝大多数是同一句话里的路径前缀不同——.claude/skills/impeccable 换成 .cursor/skills/impeccable,另有一处把「用提问工具问用户」改成「直接问用户」。单个技能包 2.3MB,乘 20 就是四十多兆。作者显然是有意的(README 里写明每个工具的产物都提交在仓库根目录,为了让人不用装 Node 也能手动拷),代价是改一句说明书要同步二十份、看代码时噪音很大。

二是引擎二进制不随仓库来。 我找遍全仓,没有任何一个平台的引擎可执行文件;npm 包声明里只有 5 个平台分包的依赖,加一份校验和清单,5 条哈希。

也就是说「Apache-2.0、可以离线从源码构建」这句对开发者成立,对使用者不成立——默认路径是启动器联网下载一次、校验哈希、存到用户目录。这一点 README 说得清楚,不算隐瞒,但它决定了「断网环境能不能用」这个问题的答案是要先自己编译。

三是那 2 个失败用例的位置很说明问题。 它一共定义了 6 个默认测试套件和 8 个可选套件,拆得很细:构建、规则、浏览器、框架适配、插件端到端。我第一次跑默认入口,卡在「拉真实提交历史」这种需要外部网络账号的用例上。

工程严谨度是够的:测试与代码几乎一比一、注册表数量被断言焊死、还有个专门的脚本只跑被改动影响的那些包。但一个想在本地跑绿的人,得先配好那个拉历史的命令行工具和一堆依赖。

五、放进同类里看,值不值得装

站内之前评过三个设计类技能,问的问题各不相同。UI UX Pro Max 那篇问的是「词表够不够用」:192 套配色全过无障碍标准,但中文关键词一个都搜不到。Hallmark 那篇,也就是专治 AI 味的那种设计技能,问的是「它自己达标吗」:31 个成品页面有 21 个过不了它自家 58 道闸门。

StyleSeed 那篇问的是「方法引擎的测试能不能证明效果」:195 项测试全绿。Impeccable 补的是第四个问题:这套规则在真实代码库里跑得动吗——答案是页面级跑得动,源码级只有薄薄一层。

适合谁:已经在用 Claude Code、Cursor、Codex 这类助手,且项目有成型界面的人。它最擅长的是「对着一个已有的卡片、一个已有的设置页反复改」,而不是从零生成整站。把扫描器接进持续集成也靠谱,前提是你扫的是跑起来的地址而不是源码目录。

不适合谁:想用它替代设计判断的人。62 条规则能认出「紫蓝渐变 + 左边彩色竖杠」这种公认的机器味,但认不出你的产品该长什么样——那部分仍然要人给方向。另外不想在项目里多出二十个工具目录、也不想让助手每次改文件都触发一次检查的人,可以先只装扫描器,不装钩子。

一句话判断:值得装,但别指望它是护栏。它是一把尺子——量得准,量得到的地方不多,你得自己决定要不要把页面也摆到尺子下面。

局限说明:本次实测在内存与进程数受限的隔离沙箱内完成,Rust 测试只跑了五个核心包(占全部测试标记的一半),前端六个默认套件只跑了 core 一个,浏览器渲染类的规则因为没有可用的 Chrome 没跑;扫描覆盖面用仓库自带的 269 个测试样本加两个手写样本估算,不等于真实项目里的分布。数据取自 2026-11-11 的仓库快照,主分支当天有提交。

相关阅读:UI UX Pro Max 深度评测:12.7 万 Star 的设计 skill,192 套配色全过 WCAG,中文关键词却 0 命中;Hallmark 深度评测:3 万 Star 的反 AI 味设计技能,31 个成品页面 21 个过不了自家 58 道闸门

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

Reticle 深度评测:1,263 Star 的 AI 代理验证层,3 个故障抓 2 个、第 3 个要你先交账本

Reticle 深度评测:1,263 Star 的 AI 代理验证层,3 个故障抓 2 个、第 3 个要你先交账本

用过编码代理(coding agent,也就是能自己改代码的 AI 程序)的人都见过这一幕:它说「已修好,构建通过」,你打开页面,按钮点下去没反应。

这不是它偷懒。编码代理的天性是产出改动,它天生乐观;而验证的天性是去把事查清楚,并且随时准备回一句「不行」。两件事方向相反,所以它写代码快,查自己写的代码就慢,甚至根本不查。

今天评测的 reticlehq/reticle 就是冲着这个缝隙来的。它的口号只有一句:你说做完了,我来判断这是不是真的。结论先给:它确实能看见截图看不见的东西,但前提是你得先把应用内部的「账本」交到它手里。

它是什么:把判决书,而不是截图,交给代理

Reticle 往你的应用里塞一个只在开发环境生效的小程序,再在本机 127.0.0.1 的 4400 口起一个服务当桥。代理通过 MCP(也就是模型上下文协议,给 AI 接外部工具的插座)拿到一组工具,可以看页面、点元素、读网络请求、读状态,然后断言——也就是用一句话声明「应该发生什么」,让工具去核对。

它返回的是三种判决之一:是、否、说不准。只有「是」才算通过,说不准就是说不准,不允许用一个含糊的绿灯糊过去。判决书上还带三样东西:决定这次判定的那条网络请求、那次状态变化、那行控制台输出,以及一个可以直接点开的「文件:行号」。

和截图比对类工具的根本差别在这里:截图工具看的是「屏幕上长什么样」,Reticle 看的是「程序自己认为发生了什么」。屏幕会撒谎,程序内部的账本不太会。

仓库规模不小,也够实:3,137 个 TypeScript 文件,其中实现代码 1,251 个文件 24.1 万行,测试 1,886 个文件 29 万行——测试比实现多出五万行。近 30 天 377 次提交、376 个合并的 PR,开源许可证按包声明为 Apache-2.0(可商用),1,263 颗星,2026 年 6 月建仓,五个月长到这个体量。

实测:我在一个 React 应用里埋了 3 个故障

光看 README 不算评测。我搭了一个最小的前端示例应用,故意埋了三个真实的烂摊子:

  1. 页面加载时发一个会返回 500 的请求,界面把它吞掉,照常显示「一切正常」;
  1. 一个链接指向的页面里抛异常,控制台报错;
  1. 顶部徽标显示「0 个部署」,但程序内部记着 3 个——界面在撒谎,而且撒得很自洽。

第一条命令是零安装的:在应用目录里跑 npx @reticlehq/server,它自己找开发服务器、自己开浏览器、不往你项目里写任何文件。对着干净的版本,它给的是「是」;对着埋了故障的版本,它当场报出 5 处问题,原文是 Failed request on /: POST /api/deploy: HTTP 500 和 Console error on /broken: Uncaught Error: status page broke,退出码 1。

前两个故障,就这么被一条命令抓到了。

第三个没抓到,而且抓不到得理直气壮:那条零安装的体检只检查「页面能不能开、有没有控制台报错、有没有失败请求、同源链接能不能打开」,徽标显示 0 而账本记着 3,在它眼里完全合规。我故意用文字断言去问「页面上是不是有 0」,它回答是——因为屏幕上确实写着 0。

真正的解法是让它把两边对起来看。我在应用里手动注册了一个账本(一个带读取和订阅两个方法的普通对象),然后用一条「比对」断言:

reticle verify http://localhost:5179 --expect '{"kind":"compare",
  "left":{"from":"state","store":"deploy","path":"items.length"},
  "right":{"from":"text","scope":"[data-testid=\"nav-badge\"]"},"as":"number"}'

结果 verified: no——账本是 3,徽标是 0,不一致。同一时刻,把左边换成页面上那句真话「共 3 个部署」,判决立刻变成 verified: yes。

所以严格说,三个故障它都抓得住。差别在门槛:前两个一条零安装命令就报出来,第三个要你先交出账本、再写一行比对。

这一步是整个评测里最有价值的一步:它抓住的是「每一处单独看都对、合起来是错的」。这类毛病,截图比对和读无障碍树的工具都看不见,因为它们只能读到屏幕,读不到屏幕背后的账本。

仓库自己也承认这是它唯一的结构性优势。它自带一套 88 条的故障题库(86 条真故障 + 2 条「看着像坏了其实没坏」的陷阱),与一份 Playwright 脚本正面对比:Reticle 抓到 85 条,Playwright 59 条,两边对干净版本都零误报。差距并不均匀——26 条是 Playwright 结构上就不可能看到的(要读应用状态、要读客户端自己伪造的 500),剩下能看到的那些,两者打平。

值得单独说的一点:它公开撤回自己的数字

评测一个自称能验证一切的项目,最该看的是它怎么对待自己的数字。这一点它做得比多数项目狠。

它仓库里有一份基准测试的说明,明写着旧数据不能当基线。理由是那些历史记录出自一个有四处缺陷的测量脚本,而四处缺陷全都对自己的产品有利:有一项检查的统计范围缩水了,却依旧判定通过;有两个从没跑过的工具,被记成「全盘零分」;还有一条故障的判定条件宽到连请求地址本身都能满足。

更狠的是变更日志里那条自我更正:单条故障的输出成本,原先公布的是自己 4,134 字节、对手 7,899 字节,复测后发现实际是自己 9,261 字节、对手 5,849 字节——结论反了,于是把旧结论整个撤回,写明「不要重复引用它」。它甚至专门为「跳过对手能用的接口就直接判对手抓不到」这类自欺写过一段反省,把六条改判回平手。

这种自我拆台,比任何一个漂亮数字都更能说明这套判据是可信的。

三个我自己踩到的坑,和它不适合谁

第一个坑:账本名写错,它给你的是「否」,不是「说不准」。 我把账本名故意写成一个不存在的名字,判决是 verified: no,理由是「声明的后果没有发生」,附带的证据只是提示「搜过的账本有这些」。也就是说,配置写错和功能真坏了,在 CI 里长得一模一样。这跟它「说不准就说不准」的原则不一致,属于需要你自己留一层校验的地方。

第二个坑:断言写错一个字段,直接判「说不准」。我把限定作用范围的字段写成了一个对象而不是字符串,它返回「说不准」,并明确说明「这条断言没有解析成功,所以什么都没运行」。态度是对的,但它和「功能失败」共用同一个退出码 1。脚本里想区分「写错了」和「真坏了」,得自己解析输出。

第三个坑:没录过任何流程时,那道 CI 闸门是空转的。项目说明里写着它能拦住「改了受流程覆盖的代码却没重新验证」的提交。我在一个没有任何流程的项目里跑它,输出写着通过为假、原因为「没有流程」,并解释「这里没有存下来的流程,所以没什么可查,这不算这次改动的失败」——但退出码是 2。CI 里只要写了「非零就当失败」,它就会误伤;反过来,只要写成「非零一律放过」,它又会在真有流程时也放过。判定条件得写成只认 0 和 2 两种。

另外两件要提前知道的:自动探索模式(没流程时让它自己跑一遍并录下来)需要把项目连到它的云端平台,不连就用不了,原文是「这个项目没有连到平台上,请先连接,或者你自己驱动这段旅程」;首次运行如果没有本机 Chromium,它会当场下载约 150 MB。

至于坑之外的分工,我认为是这样的:

你要解决的问题 更合适的工具
界面到底有没有骗人、请求有没有静默失败、状态和显示对不对得上 Reticle 这类进得去程序内部的工具
跨浏览器、跨设备、别人的站点能不能用 Playwright 这类从外部驱动的工具
像素级还原、无障碍合规扫描、安全漏洞 各用各的专职工具

它自己不回避这个边界:仓库里写着看不到 IndexedDB、Web Worker、闭合的影子根节点和跨域内嵌框,也写着单步操作里的竞态只能部分覆盖。专门为「界面在撒谎」这一类毛病买的工具,不必拿它当万能测试框架。

结论

一句话判断:如果你每天都在让代理改前端代码、又反复被「它说好了其实没好」坑,这套东西值得放进观察清单,甚至值得今天就装到一个项目上试半天。 它抓不到的东西比它承诺的少,抓住的那些又恰好是别的工具结构性看不到的;再加上它敢公开撤回自己的漂亮数字,可信度够。

但别指望装上就自动生效。它需要你在应用里点明「哪些元素重要、哪个账本说了算」——这就是我标题里说的「先交账本」。你不交,它就退回成一个好用的体检工具;你交了,它才变成那个能对代理说「不行」的裁判。

仓库地址:https://github.com/reticlehq/reticle

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

相关阅读:

notfair-plugin 评测:4133 Star 的营销技能包,45 个技能一行代码都没有

notfair-plugin 评测:4133 Star 的营销技能包,45 个技能一行代码都没有

用过 Claude Code 的人都有共同体验:装了一堆技能之后,真到用的时候,AI 反而不知道该拿哪个。技能越多,挑错的概率越高。

今天评测的 notfair-plugin 把一个反直觉的做法做到了极致。它是 4,133 Star 的开源营销技能包,45 个技能覆盖广告投放、站点审计、内容排期。我把它克隆下来逐个数了一遍:222 个文件里,代码文件是 0 个。

不是几行,是一个都没有。这在以「能干活」为卖点的技能包里,值得停下来看一眼。

它是什么:45 个技能,每个只有两行

先说结论。这个包卖的不是程序,是流程文档。

它要解决的问题很具体:让 AI 帮你投广告、查站点毛病,最怕它凭空编造。所以作者没写代码,而是写了 45 份操作手册,规定 AI 每一步该看什么、不许做什么。

层 作用 实测数字
技能入口 45 份 只做分流,告诉 AI 去读哪份手册 正文中位数 2 行
流程手册 45 份 承载全部判断规则 合计 5,314 行
测试用例 23 份 列出用户会怎么问、期望什么 每份 3 条

那 2 行是什么样子。我抽了其中一个,去掉配置头之后,正文只剩一句:

完整读取所属目录里的流程手册(也就是 WORKFLOW 那份文件),然后把它当作当前流程执行。

45 个技能,45 份入口,全部只有这两行。 也就是说,AI 先看一段很短的介绍挑准技能,再去读那本厚手册。

这个拆法有道理。打个比方,像医院的分诊台:挂号窗口不负责看病,它只判断你该去哪个科室。真正的诊疗写在科室里,越细越好。把两件事混在一起,AI 每次都要读满四百行才知道该干什么。

实测:昨天它把最后一行代码删了

这是本次最值得写的部分。

我把 433 次提交的完整历史拉下来对比。上一个版本里还有 53 个脚本,一共 11,545 行,负责抓页面、读搜索后台数据、跑断链检查。今天的最新版里,这些文件一个不剩。

一次性提交的账单是这样的:

指标 数值 意味着什么
改动文件 202 个 接近整仓翻新一遍
新增行 418 行 主要是改文档措辞
删除行 16,990 行 删掉的都是真能跑的程序
剩下代码 0 行 仓库退回纯文档状态

同一天里,5 个版本连着发。这个节奏说明作者在赶一个截止时间,后来在更新日志里找到了答案:为了通过某家应用商店的审核。

那功能去哪了。搬到了云上。仓库现在只留一个连接地址,指向作者自己运营的服务。我直接请求了一次,没带凭证,返回的是「请先授权登录」。

这句话是整篇评测的关键:你克隆到的是说明书,真正干活的部分在别人的服务器上。

它的好,和它的贵

先说好的,而且都是实测出来的。

我把仓库里 115 个文档之间的相互引用全跑了一遍,断链 0 个。这个数字看着平淡,但 45 份手册、五千多行、彼此穿插引用,一处没接错。它说明有人在维护,不是生成完就扔。

第二个好东西是安全边界写得实在。付费广告那部分手册明确规定:任何增加花费、启用广告、改预算改出价的动作,都必须先拿到用户明确的同意;新建广告一律设成暂停;每次改完要把结果读回来复核。

这段话管的是钱。让 AI 碰广告账户,最坏情况是一次误操作烧掉一天预算。它把「先问一句」写成了硬规矩,不是建议。

不好的一面也要说清楚。

第一,能力被锁在服务后面。想用它的站点审计、广告分析,绕不开那个登录授权。开源在这里的含义是流程开源,不是能力开源。这个区别在宣传语里没有区分。

第二,45 个技能里有一批是空壳。亚马逊广告和 ChatGPT 广告那两份,正文里自己写明「我们没有这两个平台的接口」,所以只能出方案、不能真执行。名字看着像功能,其实是提示词模板。

第三,判别力全看宿主。45 份入口的自我介绍平均 480 个字符,最长的超过一千个字符。AI 要从这么长的介绍里挑对技能,挑错并不奇怪。作者显然知道这点,所以几乎每份介绍结尾都加了一句「这个场景不要用我,去用某某」。

谁该装,谁别碰

如果你自己投广告、管站点,又已经在用 Claude Code 这类工具,值得装。它对「AI 别乱动我的钱」这件事想得比大多数同类细,光那几页审批规则就够抄一份。

如果你要的是一个本地、不联网、不授权就能跑的工具,别碰。它现在一行代码都没有,断网之后只剩一堆文档。

同类里还有另一条路,装聚合型技能库:什么都有,但每样都浅。这个包相反,深度够,面窄,而且有一部分能力要授权才能碰。

还有一个现实的门槛:它对中文不友好。45 份手册全是英文,规则写得细,但中文用户要读进去,还得先过语言这一关。这是它进国内项目时绕不开的成本。

最后一句

4,133 个 Star 投的其实是作者的行业经验,不是代码。这不算是骗人,但它确实标志着一类新项目出现:仓库只是目录,资产在服务端。

判断很简单。把它当「拿不到源码的付费服务的说明书」来预期,你不会失望;把它当开源工具来预期,第一天就会踩坑。

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

pstack-claude 深度评测:4,179 星的多工具技能栈,2154 个测试全绿,13 个运行环境只有 1 个进 CI

pstack-claude 深度评测:4,179 星的多工具技能栈,2154 个测试全绿,13 个运行环境只有 1 个进 CI

装过 Claude Code 这类编码助手的人,多半都干过同一件事:往里面塞一堆”技能”,指望它按你的规矩干活。可你很少知道这些技能到底在哪些工具上真的被跑过。

今天要评的 pstack-claude 正面回答了这个问题,答案是它自己写的:它一口气支持 13 个运行环境——Claude Code、Codex、Copilot、Pi、Muse 等等——但官方文档里,7 个环境自己标着”没验证”。它的持续集成(也就是每次改代码自动跑的那套检查)里,13 个环境只真正装过 1 个。

这个项目 4,179 星、MIT 许可,11 月 9 日当天还在提交代码。我把整个仓库拉下来,按它自己文档写的步骤装依赖、跑测试,2154 个测试全绿、0 失败。这一篇讲的不是”它好不好用”,而是它把哪些事验证了、哪些事只是写在了文档里。

它到底是什么

一句话:把一套给 AI 编码助手用的”操作手册”,翻译成 13 个不同工具都能读的格式。

原作者 Lauren Tan 在 Cursor 里写了一套技能(skill)。你可以把技能理解成一份份写好的工作流程,比如”改代码前先读哪些文件””提交前必须跑什么检查”。pstack-claude 把这一套搬到了别的工具上,还为每套工具各写一份翻译说明,告诉 AI 在这个工具里对应的按钮和模型叫什么。

它的体量:

部分 数量 说明
技能 67 个目录,3,076 行 其中 43 个是可用流程,24 个是一条条的”原则”
参考文档 168 个文件,7,137 行 翻译说明、模型对照表
测试 46 个文件,9,775 行 比技能正文本身多 37%
全仓 782 个文件 版本号 0.9.133

它对上游的态度也值得说一句:仓库里有一份清单,记着上游的三个来源各固定在哪个代码版本;还有一份 65 条的分叉登记表,每条都写了为什么改、从哪个版本开始改、有没有提给上游。这套记账方式,比大多数魔改版项目认真得多。

实测:我自己跑了一遍,也自己数了一遍

第一条证据,测试是真的能跑通的。我按它贡献指南里写的四步做完(装根依赖、装插件依赖、跑生成器、跑测试),结果是 2154 个测试通过、174 个跳过、0 失败,耗时 52 秒。

这里有个坑值得先说:我第一次只装了根依赖就跑,20 个测试挂了。原因不是项目坏了。它有个测试专门检查”在根目录裸跑测试,加载的文件必须和 CI 跑的一致”,而缺了插件目录那份依赖,两次加载的文件数就对不上。补上那一步,全绿。这个设计其实挺聪明:它把”你少装了一步”变成了一个会失败的测试。

第二条证据,13 个运行环境,证据密度差得很远。这是全篇的核心。我把它文档里对每个环境的说法逐条抄出来分类:

证据强度 运行环境 具体是什么
真装 CLI、进 CI Pi 唯一一个 CI 里真的装了它的包(固定在 1.1.0)并跑检查
人工冒烟(不在 CI) Copilot、MiniMax、Grok 有专门的冒烟脚本,但 CI 从不跑
合成环境验证 OMP、Kimi、OpenCode 2 用一个假的模型服务验证”文件递到了”,真模型行为没测
文档自认未验证 Antigravity、Prime Agent、Gemini CLI 只写了安装路径,没写验证结果
纯描述安装方式 Codex、Muse、Claude Code 文档只给安装命令,没有验证结论

这个数字意味着什么:一个口号是”支持 13 个环境”的项目,实际被自动化验证过的只有 1 个。这不是虚假宣传,文档老实到了极点,甚至主动写”CI 不跑它””真模型行为仍未测试”。但它说明一件事:跨环境适配的成本,远远高于写一份翻译文档的成本。

第三条证据,三个冒烟脚本合计 611 行,CI 里 0 个在跑。其中 Copilot 那个 471 行,脚本开头就写明要验证 7 件事,包括钩子只触发一次、关掉开关后确实不触发,以及”一次要花掉大约 20 次高级请求额度”。这句话也解释了它为什么不在 CI 跑,它要真钱。文档里那句”CI 不跑它”,是诚实,也是缺口。

另一面:它的工程质量确实高于平均

挑完毛病,得说公道话。

它的生成器设计是我近期见过最讲究的之一:版本号、模型清单、各种清单表,全都从单一来源自动写入所有副本,CI 会检查提交上去的副本有没有过期。它还专门写了测试,去核对 README 里写的那几个数字(67 个技能、43 个公开技能、24 条原则)是不是和目录实际数量一致。换句话说,它连文档里的数字都当成会被自动化检查的契约。

它还有一条测试专门抓”技能之间互相点名、但点到的目录不存在”这类断链。这类问题在纯文档项目里几乎没人管,因为编译器看不见。

局限也很明确:技能本身是写给 AI 读的指令,好不好用取决于你用的那个模型听不听话。它把 13 个环境的翻译做得很细,但翻译对了和模型照着做了是两件事,而后者目前只有 Pi 有自动化证据。

放进坐标系里看

站内评过的几篇可以对照着看:deepagents 走的是给 Agent 搭框架,判断标准是测试条数和依赖清单能不能照装;SkillOpt 走的是把技能文档当成可训练参数,亮点是把覆盖率算成了具体数字。pstack-claude 的独特之处在于,它是分发层:把同一套方法翻译到十几个工具上,并老老实实标注每个工具被验证到了哪一步。

适合谁:同时用两三个编码助手、希望行为一致的团队;想给自己团队的提示词立规矩、又不想为每个工具重写一遍的人。

不适合谁:只用单一工具的个人,收益很小;以及需要承诺级稳定的场景。如果你的工作流依赖某个环境百分之百按预期工作,先去看它文档里那个环境是不是还标着未验证。

我的判断

值得放进观察清单,并且它的文档诚实度值得单独表扬。但要清楚它在卖什么:它卖的是翻译,不是保证。13 个环境里真正被自动化验证的只有 1 个,剩下的是用人工、合成环境或纯文档兜着,而它自己把这一点写在了明处。

如果你打算用它,建议先翻它的运行环境对照表,确认你用的那个环境落在哪一档证据上,再决定要不要把关键流程交给它。

关注 AI商业快讯,每天一篇 AI 热点深度解读。想先看同类工程质量的,可以翻我们评过的 deepagents 和 SkillOpt。

OpenMuse 深度评测:6.3k Star 的个人 Agent 应用,520 个测试全绿却 0 个正式版本,官方正把用户让给 OpenBot

OpenMuse 深度评测:6.3k Star 的个人 Agent 应用,520 个测试全绿却 0 个正式版本,官方正把用户让给 OpenBot

你想给 AI 配一台自己的电脑:能开浏览器、能敲命令、能读写文件,关机之后活儿还在跑。这类项目今年多得数不清,但真把代码拉下来跑一遍,十有八九卡在第一步——装不上、起不来、文档说的和代码里的对不上。CopilotKit 开源的 OpenMuse 是少数反过来的:我把仓库整个拷进沙箱,装依赖、跑检查、跑测试、起服务,520 个测试用例一个不挂,0 个失败。但同一份代码里,官方自己开了两个待合并的改动请求,要把读者劝去另一个项目。测试越绿,这件事越难看懂。

一、它是什么:一个自己带服务器的「个人 Agent 应用」

先说人话。OpenMuse(取名自「缪斯」)是一个开箱即用的个人助理应用,2026 年 9 月 15 日开源,MIT 协议,6,361 个星标。它不是你手机里那种只会聊天的助手,而是给助手配了一套「手和眼」:

  • 一个浏览器,可以持久登录、读公开网页、截图,还能让你接管正在跑的那个页面;
  • 一个可选的 Linux 终端,跑在独立容器里,能建文件、改文件、导入导出 PDF,但断网;
  • 一套后台任务,任务有计划、有检查点、可暂停、可取消,进程重启用数据库租约(也就是给任务发一张带过期时间的「占位凭证」,谁先抢到谁干活)把中断的活儿捡回来。

界面上是 iOS、Android、网页三端共用一套代码,底层用 CopilotKit 与 AG-UI(一套让前端和后端 Agent 说同一种话的协议)对接模型。

拆开看,仓库是 231 个受版本控制的文件、38,356 行 TypeScript。重心分布很诚实:

目录 位置与规模 干什么
apps/server 9,307 行 接口层、Agent 运行时、任务引擎、动作审计、存储
apps/mobile 10,281 行 iOS / Android / 网页三端界面
apps/worker 1,518 行 独立的浏览器服务,带持久化登录配置
apps/computer 371 行 非 root 的 Linux 容器镜像与文件助手
tests 52 个文件、14,733 行 行为测试,行数与核心代码几乎一比一

一个细节值得停一下:packages 目录下的三个文件夹(共享类型、集成适配、外部后端),看着像三个公共包,实际一个包声明文件都没有,也不在工作区清单里。服务端是靠相对路径直接引到对方源码的,比如从 apps/server 往上三层跳进 packages/domain/src。好处是不用给每个包配构建流程,改一行立刻生效;代价是 README 目录表里那句「共享类型包」听着像个能单独安装的东西,其实不能。

二、怎么做到的:把「AI 干活」拆成可审计的零件

这个项目的设计取舍,读代码比读文档清楚。有三处我认为是真功夫:

第一,外部动作和模型推理是分开的。发邮件、改日历这类真会碰到外部世界的操作,不走模型直接调用,而是先存成一条「动作提案」,带归属人、内容哈希、版本号,等你点确认才发。代码注释里写明「外部写操作绝不在这里重试」,因为重试一次就等于多发一封邮件。

第二,模型供应商是可换的零件。一个模型字符串、三家供应商(OpenAI、Anthropic、Google)各一套适配,还能切到兼容接口。上游明确写了哪些情况会重试、哪些 4xx 一次就失败——这类边界写在代码里而不是藏起来,是可维护的表现。

第三,后台任务有真正的失败语义。任务引擎里有一个专门的「租约丢失」错误类型,任务被暂停、取消或被别的进程抢走时会抛出来,让执行体干净退出,而不是写一半留下垃圾。它甚至有专门的测试文件去压这条路径。

三、实证:我跑出来的数字(一台受限沙箱,2026-11-09)

全部命令都在一次性沙箱里跑,没有碰生产目录,测试数据一条没编。先说结论:这个仓库的工程质量,是我今年跑的同类项目里最整齐的一档。

我跑的命令 结果 这个数字意味着什么
装依赖(按锁定文件严格安装) 1,410 个包,9.8 秒 依赖树干净,没有版本漂移
代码风格与静态检查 177 个文件,0 报错 只有一条提示:检查器配置版本比工具落后一个小版本
类型检查(服务端 + 移动端) 通过 严格模式下无类型错误
类型检查(浏览器服务) 通过 独立子目录也守住了
构建服务端 通过,产物 1.1 MB 能出可部署的 JS
60 个测试文件逐个跑 520 通过 / 0 失败 / 0 跳过 覆盖接口、任务引擎、集成、容器、浏览器、财务
一条命令跑全量测试 崩了 见下段,原因不在代码

最后两行必须放在一起看,否则会得出错误结论。仓库的测试脚本把 60 个文件一次全交给测试器并行跑;在我这台内存与进程数都受限的机器上,每个文件都要拉起一个编译子进程,跑到第八个左右就开始报「工作线程初始化失败」「线程创建:资源暂时不可用」——资源不够,不是测试写坏了。我把文件拆成一个一个串行跑,520 个用例全绿、零失败、零跳过,最慢的一个文件 14 秒。所以我给的口径是:逐文件跑全绿,一条命令跑需要一台不被限流的机器。这一点值得记住,它的持续集成配置跑在标准运行器上,那边没这个问题。

再往下是起服务,这里撞上了一个真实门槛。照文档把示例配置复制成正式配置,直接启动,进程立刻退出,报错只有一句:缺少 CopilotKit 的对话存储密钥。

这是 CopilotKit 自家托管对话存储(名叫 Intelligence)的密钥,要先登录它的命令行工具、选一个项目才发得出来。我塞了一个假密钥再启动,服务正常拉起,健康检查返回 {"ok":true,"mode":"sample","agentConfigured":true},未登录取接口返回 401——鉴权边界是真的,不是摆设。

问题在文档这层。README 开头写「兼容任何 Agent 编排外壳」(原文 Compatible with any agent harness,harness 也就是跑 Agent 的那层外壳),后面又有一处说这套托管存储「需要自己配置」。而代码里这个密钥是无条件必填的:读取配置的函数直接调必填校验,没有分支。这不是我一个人的发现,仓库里有个 2026-09-26 的 issue 就是提这个,标题直白——「让对话存储对自托管部署变成可选」,正文还贴了改动历史:先是一次提交把它设成线上必填,再一次把要求扩展到所有模式,并删掉了跳过它的分支。另有一位开发者干脆自己分叉了一个「不需要密钥」的版本发出来。

四、坐标:它站在哪,官方又想让它去哪

放进同类里看。CowAgent 那类国产 Agent 编排框架(也就是把多个步骤串起来调度的那层),考的是「能不能把复杂任务串起来」,我上次实测它 421 个测试文件跑两遍数字不同;OpenMuse 反过来,520 个用例逐个跑完全一致,但它考的不是编排能力,是「一个人用」的完整度——登录、邮件、日历、文档、财务、浏览记录,全在一个应用里。hermes-jev-skills 那篇测的是决策引擎,重点是「模型怎么选」,OpenMuse 的重点是「选了之后谁来兜底」:动作审计、租约、断点恢复。三个项目其实回答三个不同问题。

真正的反差在官方态度。仓库现在有 42 个分支、32 位贡献者,零个正式版本、零个版本标签,更新日志只有一条「0.1.0-alpha」。而 11 月 2 日和 11 月 4 日连开两个待合并的改动请求,说得很清楚:OpenMuse 现在是另一个项目 OpenBot 的一个「皮肤」,那个项目才是 CopilotKit 持续维护、带登录、带每个机器人权限、带审计轨迹的版本;这个仓库转为社区维护的起点模板。

这解释了我实测到的很多东西:为什么星数六千多却一个版本都不发,为什么 61 个待处理里 46 个是改动请求、真正的问题只有 15 个,为什么 README 里「可选」和代码里「必填」能同时存在——它正在从「产品」变成「样板间」。

五、结论:值得拷,别指望拿来就用

值得拷: 如果你想要一个「个人 Agent 应用」的完整参考实现,这是目前最整齐的开源样本之一。三个应用分工清楚,测试与代码接近一比一,动作审计、任务租约、容器隔离这些容易糊弄的地方它都写了专门的测试。拿它当骨架改,比自己从零搭省几周。

别指望: 一是别指望装完就跑。没有 CopilotKit 的密钥,服务连启动都做不到,这一点文档说得比代码含糊。二是别指望拿到稳定版本或升级路径,一个版本标签都没有。三是别按开头那句「兼容任何 Agent 编排外壳」去理解——它确实能接外部 Agent 端点,但主路径绑定的是自家运行时。

如果只想体验:等 OpenBot 那条路更省事,官方改动请求里写的迁移表就是给这个用的。如果想改代码:现在就拷这个仓库,趁它还是「纯应用」而不是「皮肤」,改动半径最小。

局限说明:本次实测在一台内存与进程数受限的沙箱里完成,全量测试的并行方式没跑通,只拿到逐文件串行结果;浏览器与 Docker 容器的两个真机冒烟测试需要 Chromium 与 Docker 守护进程,我没跑,它们在持续集成里是独立任务;模型侧只用了假密钥验证启动与鉴权,没有接真实模型跑对话。数据取自 2026-11-09 的仓库快照,主分支最后一次提交是 2026-10-26。

相关阅读:hermes-jev-skills 深度评测:823 Star 的 Jev 决策引擎,1020 个测试全绿、6 个基准我复现 5 个;CowAgent 深度评测:4.7 万 Star 的国产 Agent Harness,421 个测试文件我跑两遍数字不同

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

a-stock-data 深度评测:11,557 Star 的 A 股数据技能,212 条测试 7.5 秒全绿,4 个端点在海外连不上

a-stock-data 深度评测:11,557 Star 的 A 股数据技能,212 条测试 7.5 秒全绿,4 个端点在海外连不上

让 AI 帮你查一只 A 股,最容易翻车的不是模型算错,而是它压根拿不到数。

你要的「茅台现在多少倍市盈率」,藏在腾讯一段用波浪线隔开的旧式中文编码文本里;研报 PDF 要带对来源页的请求头才肯给;涨停池换了三个域名;北向资金要算一个本地签名。每接一个源就换一套暗号,最后还是自己在写爬虫。

a-stock-data 想把这堆暗号一次打包:一个 Markdown 文件,里面内嵌 91 段可以直接跑的 Python,15 层数据、87 个入口、34 个数据源,除语义搜索外全部免钥匙。我在隔离沙箱里 clone 下来,跑了它自带的 212 条测试,又逐个调了十几类真实接口。结论先给:能用的接口确实快,快到 1 秒出数;但它在海外网络下有 4 个端点直接不可用,而且这个 44 万字节的文件本身是它最大的成本。

它到底是什么

先把话说清楚:这不是一个可以 import 的库,也不是 pip 安装的包。

它是一个技能说明书(skill,指写给 AI 编程助手看的操作手册):根目录一个 SKILL.md,正文讲清楚每类数据该去哪个源、用哪个参数,每讲完一类就附一段完整可运行的 Python。说白了,它不是让你装的东西,是让 AI 照着抄的菜谱。AI 读到哪一段,就把那段代码抄进自己的脚本里执行。

这种形态的好处很实在:拷贝一个文件就能用,不联网装包,不依赖版本升级。坏处同样实在,后面实测部分会算给你看。

数据按十五层组织,你可以理解成十五个抽屉:

层 抽屉里有什么 主用来源
1 行情 实时价/市盈率/市值/换手率、日周月与分钟 K 线、当日逐笔、复权因子 腾讯、通达信官网、百度、新浪
2 研报 个股与行业研报、PDF 下载、三年盈利预测、研报列表 东财、新浪、同花顺
3 信号 强势股与题材归因、北向资金、龙虎榜、解禁、板块资金流 同花顺、东财
4 资金面 融资融券、大宗交易、股东户数、分红、筹码分布、场内指数基金份额 东财、上交所、深交所
5 新闻 个股新闻、财联社电报、7×24 快讯、新闻联播文字稿 财联社、东财、央视网
6 基础数据 财报三表、估值历史、上市退市日、行业变迁、ST 名单 新浪、baostock、申万
7–10 公告、涨停池、指数基金期权、互动问答与热榜 巨潮、东财、同花顺、上交所
11–12 社融、PMI、国债收益率曲线、LPR、指数成分与交易日历 人行、统计局、中债、深交所
13–15 期货与大宗、业绩预告与增减持、可转债 五家期交所、东财

作者在文档最前面写了一条设计原则,我觉得是这份文件里最值钱的部分:能用腾讯和交易所官方,就别用东财。

原因不复杂。东财(东方财富)的接口好用但共用一套风控,同一台机器请求太快会成片失联,恢复要等半小时以上;腾讯行情和交易所官网基本不限速。所以文件里给所有东财请求都套了一个统一入口,强制串行、每次至少间隔一秒再加随机抖动,附赠连接复用。我在沙箱里连着发了 12 次东财请求,21.4 秒全部成功,一次没被拦——这条限流是真生效的,不是文档里写写而已。

实测:13 类接口真实取数

测试环境是隔离沙箱(一次性的运行目录,跑完即删),独立虚拟环境装了它自带的依赖,2026 年 11 月 6 日晚间实测。

它自带的测试套件一共 212 条,我原样跑了一遍:

项目 结果
用例数 212 条
耗时 7.5 秒
结果 全部通过,4 条按设计跳过(联网用例需手动开环境变量)
覆盖方式 直接抽取说明书里的代码执行,另有本地存好的真实响应做对照

这个细节值得说一句。它不是另写一套实现再测试,而是从说明书的代码块里按函数名抽出来跑。换句话说,文档里印的代码和被测的代码是同一份,不会出现「文档里的示例早就跑不通了」那种典型失修。91 个代码块我单独做了一次语法检查,全部通过。

然后是真实取数。13 类接口,逐个记录耗时和拿到的量:

接口用途 实测耗时 拿到什么
实时行情(4 只:茅台、平安银行、上证指数、胜宏科技) 0.85 秒 价格、市盈率、换手率齐全
日 K 线(茅台 5 根) 1.15 秒 开高低收量,带来源链接与取数时间
分钟 K 线(1 分钟 3 根) 1.35 秒 含换手率
当日逐笔成交(茅台) 20.3 秒 4,282 笔
个股研报(东财) 1.1 秒 100 篇
研报列表(新浪,第二来源) 1.9 秒 39 篇
东财数据中心(连发 12 次) 21.4 秒 12 次全成功
LPR 全历史 6.9 秒 1,539 行
可转债条款与溢价率 12.2 秒 318 只
全球宏观日历 4.5 秒 236 条
国债与信用债收益率曲线 2.4 秒 66 行
官方交易日历(2026 年 11 月) 1.0 秒 30 个交易日
估值历史(baostock,一个免注册的行情数据库) 5.0 秒 21 行,含市盈率、市净率、换手率、停牌与 ST 标记
财联社电报 0.87 秒 5 条

数字之外还有两件事被我特意验了。

一是两个源对不对得上。实时行情和日 K 线来自腾讯的两个不同接口,我用茅台、平安银行、胜宏科技、沪深 300 指数基金四只对照,收盘价逐位相同,4 比 4 一致。这意味着你可以放心用日 K 线补历史、用实时快照补当下,不会出现两套价格打架。

二是最近一次的修复是否真的落地。仓库最新版 v3.10.4 说修了基金复权(复权就是把分红和折算带来的价格跳空拉平,让历史曲线可比):场内基金原来只读了折算比例里的一个字段,导致复权等于没做。我拿沪深 300 的一只场内基金(代码 513100)验证,读到的份额折算比例是 5,折算前的价格 1.0 被正确换算成 0.2。修的是真的。

失败面:4 个端点在海外网络下不可用

这是我认为评测里最该讲的部分,因为它直接决定你能不能用。

同样在沙箱里、同样的网络,有 4 个入口直接失败:

接口用途 实测表现
全市场当日日线(通达信官网盘后包) 10.2 秒后连接超时,服务器不可达
申万行业变迁史 60.3 秒后连接超时,服务器不可达
通达信财务快照与 F10 文字(走 7709 端口的二进制协议) 列出的服务器全部连不上
上证 e 互动问答 请求跑完 20.7 秒,返回 0 条,不报错

前三个是同一个原因:这些站点的服务器在境内,海外出口过去连不上。文档里其实主动写了这一点,通达信那一段的报错文案就是「海外网络通常全部超时,请走国内代理」。所以这不算骗人,但它决定了这套东西的适用边界——你的机器如果在境外云上,第 1、6 层的若干入口先天残废。

第四个更值得警惕。它不超时、不报错,只是安静地返回空表。这类失败最容易被误读成「今天没人提问」。文件作者显然知道这个坑,因为他在别处专门加了一条纪律:认不出时间格式时要抛错,不能悄悄变成一列空值。但这条纪律没覆盖到网络层的空结果,我这次就撞上了。

还有两处不那么严重的翻车点,一并记下:

  • 说明书里有些段落依赖前面的公共辅助函数。我统计了 69 个含函数定义的代码块,只有 13 个(19%)能独立运行,另外 56 个必须先执行文件里更早的公共部分,中位数缺 2 个函数、最多缺 10 个。给 AI 的说法是「按表定位只读对应层」,可实际抄代码时,你得连辅助段一起抄。
  • 一部分能力锁在可选依赖里。我按文档只装了最基础的两个包,测试直接报了 14 个错误,全是因为缺一个读写表格文件的库。补装之后才全绿。

代价:11.8 万 token 的说明书

说完能力,必须算成本账,因为这份文件是每次都要塞进 AI 上下文的东西(上下文即模型一次能记住的内容上限)。

指标 实测值
文件体积 442,341 字节
行数 7,703 行
内嵌 Python 段 91 段、5,949 行代码,占全文 77%
估算 token 约 11.8 万
版本数 29 个(从 v1.0 到 v3.10.4)

11.8 万 token 是什么概念?主流编码助手一次能装 20 万上下,这一份文件就吃掉一半以上,剩下的空间还得留给你的项目代码和对话。作者自己也知道,FAQ 里直说了这是有意的产品决策:为了「拷一个文件就能用」,不做目录拆分。

他给的两个降耗办法是实在的:一是把触发条件收窄,不需要取数的话题不会误加载;二是不装成自动触发的技能,需要时让 AI 按需读某一层。第二个办法我认,但要配合上面那条「辅助函数不独立」的发现一起用——按需读一层,往往还得再往前翻一段公共代码。

好在补救手段是现成的:顶层有一张按章节定位的总表,89 行,约 2,500 token。让 AI 先读这张表、再精确读某一层,才是这份文件最省的用法。单看某一层,大多数在 1,000 到 16,000 token 之间。

跟同类比,适合谁

A 股数据的免费方案,常见的有三类:一类是靠 pip 安装的封装库(典型是 akshare 与 tushare 这种聚合成一个包的),一类是券商的付费数据接口,一类是这类「给 AI 读的说明书」。

  • 封装库:安装即用、函数齐全,但版本一升就断,而且 AI 得先学会这套库的 API。断源的时候你只能等作者更新。
  • 券商接口:稳定、口径权威,但门槛在开户和权限,个人开发者基本拿不到。
  • 这份说明书:底层请求地址和参数完全裸露,断了你能自己改;代价是文件大、入口多、得自己判断该读哪段。

适合谁:想让 AI 助手直接查 A 股数据的人;做研究脚本、需要多源交叉验证的人;机器在境内、能用上官网包与通达信协议的人。

不适合谁:只想导入一个包、写一句取数的;机器在境外云上、需要第 1 层全市场日线和第 6 层财务快照的;上下文预算紧张、又不想手动管加载范围的。

判断

给它一个明确的定位:这是一份工程质量明显高于同类的说明书,但「一份文件解决所有需求」的形态,把成本从安装阶段一次性挪到了每次对话里。

值得肯定的部分很硬:212 条测试 7.5 秒全绿,且测的就是文档里印的代码;13 类接口在 1 到 20 秒内真实出数;两套价格源逐位一致;基金复权这类细账修得动;东财限流实测有效。它 179 天里发了 29 个版本、2 天前还在推送,维护节奏是真的。

要留心的部分同样具体:4 个入口在海外网络下不可用,其中「上证 e 互动」会静默返回空表;81% 的代码块离开前置辅助函数跑不动;补装可选依赖之前,测试会当场报 14 个错。

我的用法建议是三条:装上但不设自动触发;每次先让它读顶层那张定位表;国内机器优先,境外机器把第 1、6 层里依赖境内官网和通达信协议的入口当成「没有」。

相关阅读:本站此前评测过 同花顺金融数据接口(仓库已 404,但 55 个工具仍在线),以及 riskbound 仓位规则工具——同样是「测试全绿但结论要看口径」的例子。

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

—

资料来源:项目主页 https://github.com/simonlin1212/a-stock-data(Apache-2.0,星数 11,557,2026-11-06 读取);版本历史与端点清单来自仓库的版本日志与技能文件;其余耗时、行数、通过数与失败面均为本机沙箱实测。