2026-06-28 20:38:42
![]()
这是猫鱼周刊的第 100 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在
博客:阿猫的博客-猫鱼周刊
RSS:猫鱼周刊
邮件订阅:猫鱼周刊
微信公众号:猫兄的和谐号列车
Ta-da!这居然是猫鱼周刊的第 100 期了(本刊是从 vol. 000 开始的), 简单庆祝一下。
一篇很有深度的长文,我觉得我难以三言两句概括,说实话有些地方我也没有完全理解或者想通,建议大家读读原文。我谈谈我浅显的看法。
文章的主题是「当 AI 拿走一切之后」,其实简单地说就是「AI 有什么地方不能取代人」。其实这个问题我有一个脱口而出的答案:创作。我很早就说过,所有的大模型本质上都是照猫画虎,只是这几年的发展让它从一开始的有点四不像,到现在顶尖的模型比一般人都画得像。我发表一个暴论:大模型爆发这几年,感觉受影响最大的职业就是程序员,到处都在哀嚎裁员、前端已死、如何如何被取代,说明大部分人在「程序员」这个岗位上干的事情并非创作活动,就像我上期所说的,只是重复机械劳作罢了。对于这部分人,未来其实非常明朗,他们的余地就是人力成本相对算力成本的优势,当算力成本优于人力成本时就是他们职业的句号。
文章提到三封来信,前两个人的疑问是,AI 会取代人吗,最后一个人提到了,那自己的未来怎么办。能思考到这一层我觉得是个非常积极的信号,至少是在主动求变而不是坐以待毙。文章里对于「怎么办」有很长的论述,写得很深刻,但我浅显的理解就是:做 AI 做不到的事情,用 AI 解决效率的问题,用节省下的时间精力去体验这个世界,或许再创造一些新的东西。如果有关注我比较久的读者可能会发现,周刊一开始非常专注技术,会谈各种 best practice,到现在其实基本上跟技术没什么关系了,都是在写去了哪里玩、折腾了什么新东西。周刊算是我生活的缩影,我现在更多的心思也不是在技术本身上了。
不过我在现实的职场中其实遇不到这么哲学的人,现实中更多的人处于这几个状态:
这里面的第一种人可能最快被 AI 替代,就像不能熟练操作珍妮机的人;第二种人则可能在这个浪潮中再坚持得久一点,但是其实也是一步步把自己的意义完全掏空,完全交给 AI。当然还有一种人,跟职场倒不是很有关系,他们制造 FOMO、贩卖焦虑,并且从中获利(例如卖课)。
一点 side note:这个作者的文笔真的很好,博客居然还是中英双语的,也能看到一些英文读者的划线和评论,看起来作者本身也有哲学专业的背景,太有意思了。
偶然在 VXNA 上看到的文章,没想到居然是上面一篇的评论,正好也放在这里。
作者认为 AI 只是完成了「编码」部分的工作,而现实中的程序员,更多的工作是负责「现实世界的烂事」,例如开会等等。
其实我们的工作中,大部分时间都是在解决现实世界的烂事,开无尽的会,对齐无尽的方案,戴着镣铐跳舞,编码只是其中微不足道的一小部分而已,甚至编码都只是我们晚上加加班就能冲刺出来的东西。
我在 vol. 093 也说过类似的话,当时是我爸问我 AI 对我的工作的影响:
程序员的工作其实分为两个部分,一是大家熟知的写代码、做需求,另一部分是维护系统、修 bug、跟各种人沟通、开会等等,AI 能提升前一部分的效率,但是后一部分的效率一直都很低,而且 AI 没法帮到你,最耗神甚至说折磨的其实正是这部分。
我的观点看起来很摇摆,一时说 AI 怎么怎么无法取代人,一方面又说 AI 如何擅长解决什么问题,怎么取代人。其实关键在前面说到的「创作」,不在于你用不用 AI,而是在于有没有用脑子作出原创的思考。
作者谈到关于「社会化」的思考:
它意味着你能够迅速洞察人群中的权力结构与社交潜规则,懂得在什么时候说恰到好处的话,知道如何用成本最低的方式规避冲突、达成合作。
所谓的「社会化」,本质上是一套为了群体效率而设计的行为规范与驯化机制。它要求个体收敛起过于独特的自我,去迎合一种最大公约数式的相处模式。
他认为我们不必要太过重视「社会化」这一个指标,我们不是「流水线上规格一致的齿轮」,与其去贴合他人,不如强调自己独特的部分。
收藏这篇文章的时候,我的想法是这也太有共鸣,因为有不少人评价我「没有眼力见」、「不会说场面话」等等。其实我并非没有教养或者口才不好,我在一些必要的礼仪上做得很到位,只是我对于一些我不认同的事情不会采取迎合的态度(例如奇奇怪怪的敬酒规矩)。
正好前面写完 AI 的话题,突然又想到一个方向,现在很多人用 AI 代笔,会不会形成一种现象,AI 倒过来训练人类,人类消费 AI 味内容,反过来也生产 AI 味内容,因为这是社会的「最大公约数」,从而慢慢消失个体的独特性。
GPT 5.5 有个口僻,非常喜欢「不是而是」之类的句式,以至于我现在一看到某篇文章里有非常多的「不是而是」,我就会觉得这是 AI Slop,恶心得作呕。
当然不同的 AI 有不同的口僻,例如豆包的「接下来我会用,最直白,最直接,最不绕弯子的方式告诉你」,GPT 5.2 的「稳稳地接住你」等等。作为每天都消耗大量 token 跟 LLM 合作的人,我很清楚所谓的 「AI 味」到底是怎么样,所以如果一篇文章不是由人类编写,我真的一下就能看出来。
我很讨厌消费 AI Slop,不管是文章还是视频,只要是「创作」,我期望的是跟创作者有思维上的交流,要么获得共鸣,要么得到一些新的认识,而不是去浪费时间去消费对方用「以 xx 为题写一篇文章」这样的提示词生产出来的垃圾。
前段时间我花了不少时间尝试做一个 AI 内容的检测,但后来发现做这样的检测没意思,首先很难实现一种检测方式决定性地判断内容是否真的 AI 生成,另一方面,并不是只有用 AI 写的文章才是 slop,就算没有 AI,本身也有很多垃圾文章。关于 AIGC 内容这一块,之前有一个复旦的教授,呼吁取消学位论文的 AIGC 检测,甚至呼吁取消学位论文制度,感兴趣可以看一下这个视频以及关注一下 复旦赵斌这个账号,真的挺有意思。
回到正题,折腾完这个检测之后我才意识到,我讨厌的其实并非单纯的 AI 味,而是不包含人类思考产生的垃圾,在前 AI 时代,这其实就是抄袭和洗稿。再 callback 一下前面的内容,以前常听人说脑子久了不用会生锈,现在更当下的问题是,脑子不用就会被 AI 取代咯。
正好这期是周刊的第 100 期,也多少回顾一下,发表一点感想。
其实一开始我对这个周刊的定位是一个技术周刊,就像一些很出名的周刊一样,分享一些有意思的 GitHub Repo、新鲜滚热辣的科技新闻等等。所以前期周刊的排版是文章、项目、工具/网站这样的,内容以技术为主。最早开始做周刊的时候是 22 年底,当时刚毕业不久,也想学网上的大 V 做 newsletter,当时像竹白、小报童等 newsletter 的平台也很火,当时就写了一期,然后就停了。我还记得当时在 V2EX 上发帖宣传自己的文章,有人说「真有心的学习不用“粉丝”来监督,专栏这种形式最终也会走向要定期发帖子而水文章」,当然也有人来鼓励的。回过头来看,这确实是我创作过程中一个警钟,而我已经坚持了两三年(周刊从 23 年底开始保持规律更新),也没有为了发而水文章。
从 23 年底开始,周刊就成了我每周必做的事情之一,主要就是消化一下前一周收藏的内容,然后加上一点自己的评论分享,而且当时就定下基调,所有内容都不会使用 AI 来创作。当时我还在做业务的开发,所以 Go 相关的内容比较多;也正值 GPT 3.5、GPT 4、Claude 3 Sonnet 等发布,所以也有不少 AI 相关的内容。
一直到 vol. 026,当时我买了相机,所以周刊的开头新增了题图,开始有了一些技术之外的分享。当时也有一个「想法」的栏目,不过不是常驻的,当时还很喜欢 flomo 这样的记录,会记录一些零碎的想法,就会放到这个栏目去写。也是差不多从这个之后,周刊的字数从一千多字跃升到差不多两千字左右,内容渐渐没那么多技术,开始有更多技术之外的思考和分享,不过 AI 倒是周刊常驻的话题。
就这样基本上除了节假日等,一直保持了全勤,直到 25 年 4 月,当时因为手术停更了几周,不过之后也是很快恢复了周更。但是也从差不多那时候开始,我对职业产生了 burnout,AI 的发展和疾病、工作内容的变化等也许产生了推波助澜的影响,但反正我形成了一种思维,那就是光上班写代码是没有出路的。
在那之后我迷茫了一段时间。差不多同一时间,我发现有些之前关注的周刊停止更新了(vol. 072),而我也很焦虑,一方面因为上面提到的 burnout,另一方面就是其实周刊创作也很消耗时间和精力,我经常打开一大堆标签页来不及看,又很 FOMO。直到 vol. 086 开始,我决定给周刊改版,变成现在这样,分成一个头版 INIT 简单分享这周做的事情、拍的照片,STDIN 分享看到的好文章、视频等,然后是重点 STDOUT 输出我的一些想法,这部分从刚创刊开始到现在篇幅多了很多,原来重篇幅的项目、工具、网站等则缩减了篇幅放到 MISC 板块。
之后这段时间也很有意思,我开始用 AI 折腾一些 side project,实现一些之前没有时间精力折腾的大小东西,甚至写了一个 RSS 阅读器,也发展了一些新的兴趣,例如 3D 打印、胶片等等。这段时间周刊还是正常更新的。
从今年开始,准确说从农历新年开始,我只更新了六期周刊,差不多变成「月刊」了,博客的 2025 年度回顾也没有写。2025 年对我来说是很噩梦的一年,两次住院,很多事情都被打断了,一整年其实没做出什么,总之就是不堪回首。差不多年底这个时间,我的工作内容又发生了变动,项目很棘手,对接的同事很难顶,蛋疼的是这个事情一直到现在都没有改变,所以我的 burnout 一直都没有解决。主观的原因大概就是这样,客观的原因就是时不时的节假日、出去玩以及 AI slop 泛滥导致没什么有意思的内容等等,不多赘述了。
这差不多就是这 100 期里发生的事情。从字数上说,这两三年在周刊上已经写了差不多二十万字,已经是一个长篇小说的篇幅,还是挺不得了的。一开始写一两千字要磨几个小时,现在表达起来流畅很多,写作能力比当初略有长进,不过文笔其实一般。阅读、点赞、关注这些数据就不统计了,一开始写的时候还很关注这些数据,隔几个小时就看一下,现在发完就不管了,这些数据没什么意义。当然我很感谢一些固定读者,有些人会在评论或者邮件跟我互动,对我来说是种鼓励。
之后如无意外周刊应该会坚持下去,但是可能会变成一个「在周日可能会更新」的刊物。毕竟灵感枯竭是真真切切的,与其水一点没意义的内容,不如省下精力给更加有意义的事情了,毕竟如群友所说,「没有美好生活,哪有东西更新」。
整理了互联网上一些平台的黑话,用来搜索一些被屏蔽的商品。
一款面向 Insta360 Luna Ultra 相机的桌面媒体管理工具。使用演示可以看视频。
本期周刊就到这里,如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。如果你有不错的想法,欢迎邮件与我交流。(或许你也可以请我喝杯咖啡)
2026-06-14 18:19:35
![]()
这是猫鱼周刊的第 99 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在
博客:阿猫的博客-猫鱼周刊
RSS:猫鱼周刊
邮件订阅:猫鱼周刊
微信公众号:猫兄的和谐号列车
![]()
摄于川西,连绵的雪山真的非常适合宽画幅。
又好久不见了。这一个多月其实还发生了挺多事情,挑一些有趣的给大家分享一下。国际惯例,先过一下 STDIN。
职场上经常有「烂而不自知」的人,他们产出很多垃圾,却用工作量、加班时长等等来做掩饰,以自己的工龄为荣,却不知道自己仅是把重复机械劳作反复了多年。
因为没见过更好的解法,他们顺理成章地把笨拙当成踏实,把低效包装成严谨。一旦面临更高标准的审视,第一反应永远是本能的防御和推诿——觉得你在刻意刁难细节,却根本意识不到自己连门槛都没跨过去。
这篇文章真的很有共鸣,让我不得不讲一下我近半年的故事。近半年多我被调去做一个新的项目,原来的团队也被拆散,新团队里大多数是老同事,只有一个新入职的「专家」。说实话我对这个人是有很高的期待的,因为原本的人包括领导其实在这方面都没有太多的经验,所以我的期待是可以在过程中学到一点这个方向的新知识,也算是无聊的工作和低廉的薪资中的一点救济。
第一件事算是一个铺垫,这个人用的是 WorkBuddy(只有国产模型),团队其实配了 Codex,但不知道为什么他一直没用上,就只是在网页上用 ChatGPT。他经常说 AI 写的代码一次性跑不通,要反反复复调。很明显这是国产模型的锅,我之前试用 GLM 的时候就发现了,差的模型就是会写得牛头不对马嘴,代码连跑都跑不通。
后来有一次,领导安排我去支援一下他手头的开发,于是我 clone 了他的项目。打开一看,全是平铺的 Python 脚本,没有任何封装,项目里也没有依赖管理,本地没法运行,当时我就觉得两眼一黑。还好我的任务相对比较简单,就是加几个计算的指标,基础数据都是已有的,我半天左右就搞定了,没想到还有更折磨的事情在等我:他认为 AI 写的代码不靠谱,直接发到线上怕影响数据,要我拆出来跑单独验收。我说好,那你的流程是什么,测试代码怎么发,文件输出到哪里,要怎么校验数据,他不正面回答,只是反反复复说什么数据准确很重要;问他那你平时是怎么测试的,他也不说。最蛋疼的是,他的代码是发在 S3 上的,他手动在 AWS 的控制台里上传文件,没有版本管理(这个项目的前团队是在服务器上直接传文件的,也是有异曲同工之妙)。这只是「流程低效」的其中一个点,他的开发流程实在是繁复得令我无语,里面有无数个可以轻松优化的点,但他居然能忍受下来,真的算他厉害。最终我实在受不了了,我说那我把这份计算的代码交付给你,剩下的工作你收尾吧。结果那周快过完了,这份代码才搞定上线,他硬生生又用了几天做这个收尾的工作,也不知道他最终验了什么,反正是没有过程的结果给出来的。
跟他合作实在够呛,更加难受的是他对于新东西的态度。他一直在用很传统的方式来做事,我去调研了一些现在业界新的方法以及一些新的 paper 之后,拿去跟他和领导讨论。他总是表现出非常的抗拒,用「数据量不够」之类含糊的理由来反对。后来领导拍板了做一个我提出的方向,他对我的方案也是万般质疑,但是当我问到他那你针对这个问题有什么解决方法,他又支支吾吾说不出来了。
最后还有一些花絮。这个人很喜欢加班,从入职第一天开始我就没有见过他准时下班。我很难想象一个人出于什么原因愿意这样做,简单猜测几个:一是因为他的效率实在太低,不加班根本完成不了过得去的工作量,看前面的例子就知道了,他不加班谁加班?二是可能出于职业安全的压力,这个项目的业绩压力确实比较大,有一次他说「如果干得不行就没饭吃了」,也许他没了工作经济压力之类会很大吧。
终于一口气说完了对这个人的吐槽。当然职场上不止这样一个烂人,只是这一个在最近对我的影响比较大。想起来,这个项目交接的时候前团队的人也是这样的,当时还气得我直接逃班去吃下午茶消气。不过这一年其实我慢慢学会不去跟烂人起冲突,减轻烂人对我情绪的影响,「由鸠佢啦」。
作者分享了高考结束后他看到的几件「小剧场」。里面的父母无一例外都是现在说的 NPD,把孩子的感受改写成对自己的冒犯,控制、情感勒索、缺乏共情,过度的控制欲。
我觉得高考完的孩子心理还挺脆弱的,不管考得怎么样,尤其是没有考好。我自己的经历来说,第一天的语文数学其实就已经没考好,尤其数学烂得一塌糊涂,当时还下了很大的雨;第二天理综几乎是躺平了,最后考英语的时候做完就开始睡觉了。考完之后学校组织的所谓毕业典礼也没什么心情再跟认识的同学好好说再见,然后急急忙忙收拾宿舍回家了。
高考出分可能还要一两个星期,其实从考完到出分这段时间还挺难熬的。我的父母其实也有点 NPD,但是高考完我妈马上给我买了新手机,然后我爸带我去了旅游,一直到放榜前一天才回家。出分之后其实不太理想,分数只够去省内双非学校,但是他们也没有干预我填志愿,我当时志愿填满了计算机,之后倒是比较顺利,入学、毕业、上班,虽然过得不好不坏,细想其实也算满意的人生轨迹了。
去年这个时候我也写了一番差不多的话,我觉得可以「再放送」一下:
如果你正好是高中生或者刚高考完,请你把握好现在到后面大学几年的时间,多去尝试自己想做的事情,不用担心高考有没有考好,志愿填自己想做的而不是好找工作、好赚钱的。
考虑到我的读者可能也有部分已经是家长了,今年再补充一段:
不要去过多干预孩子的人生选择,成人之后就是要对自己的决定负责,没有人会傻到做对自己不利的事情,如果他们这样选择,一定他们这个时候认为正确的决定。作为家长最重要的就是支持,尽可能去扫清他们的障碍,而不是给孩子添堵。
因为正好小米送了怎么都用不完的 token,所以正好深入用了一下 Hermes。这篇文章在微信公众号上数据居然还不错,可能是我数据最好的一篇文章,居然还收到几个私信商务合作的。
![]()
说实话写之前我大概就有感觉这个选题能爆,热点工具热点话题大众需求。写博客几年了,算是摸索出一点门道,什么关键词 SEO 效果好、什么选题能蹭流量,但是这些感觉都不是很有成就感,感觉算不上我的 masterpiece。
在去川西之前在香港买了富士的宽幅拍立得 Wide400,机身价格在 ¥1000 左右,相纸也比较划算,大概是七八块一张,相比在内地网购是划算很多。
一个很有意思的小插曲,去买的那个周末刚好是带爸妈去香港逛逛,他们都是第一次去。去买相机的路上,我妈一直念叨,都有那么多台相机了,还要再买一台,浪费钱云云。买完以后跟他们逛到维港,给他们合影了一张,相纸慢慢成像之后她不说话了,拍立得的情绪价值真的很足。
后来带着又笨又重的它去了川西(是的它唯一的缺点就是笨重),大家都很喜欢它拍的照片,拍完合照之后可以拿着照片跟后面的风景再合照一次,氛围感真的很足。还有一个没想到的用途是,拍的风景的拍立得拿回来之后可以 3D 打印一个相框,它就是最好的纪念品。说到价格,按一下快门的成本其实就跟你在当地买一张明信片一样,更何况这是你独一无二的明信片。
![]()
(天啊,到这已经写了四千多字了,还没完)
东拼西凑请了一周的假,作为朋友的毕业旅行,去了川西。跟的是精品小团,等于是包车,然后有一个领队,酒店和交通都安排好。体验真的很好,七座商务车,上车睡觉,下车拍照就行。
旅途中最不舒服就是高反。第一天晚上有一点头痛,后面适应之后就还好,不舒服吃布洛芬就行。唯一比较难受是稻城亚丁,我们挑战了长线,最后一段垂直爬升的地方对我来说最难受,体重太大了,走几步就得停下来喘一喘,不过最终也是走上去了,下山的时候状态奇好,一点都不用吸氧,结果到山下其实指甲都紫了,血氧只有 65,不过还好没什么不舒服,下去之后就缓过来了。
川西的风景真的无敌,一路上都是很高的山,随处可见雪山和大小海子,以及大片大片绿绿的草原。玩死亡搁浅的时候觉得里面的风景很震撼,来到川西算是真的见识到了。
![]()
![]()
![]()
![]()
![]()
去川西之前就一直想买大疆的 Pocket 4,结果一直等不到有货。回来之后影石突然发布了 Luna Ultra,对标大疆还没发布的 Pocket 4P。朋友线下盲定了,告诉了我,但我是第二天才知道的,刷了下淘宝居然还有放货,一咬牙买了创作者套装,主要是搭配了一个 Mic Pro。这个小东西也很有意思,正面是一个彩色墨水屏,可以做成电子吧唧,就这点很吸引我。其实我应该不怎么会录口播,但是之前买了大疆的 Mic Mini 2 之后(打算用来 vibe coding 的),发现无线麦克风的降噪对收音有史诗级提升,还是咬咬牙也买下来吧。
其实作为普通消费者,两家的产品其实用起来都大差不差,如果你在纠结的话其实哪个有货买哪个就行。Luna Ultra 当前的缺点是可能配件生态不如大疆的完善,除了官方的配件,暂时市场上还没有太多。当然,3D 打印就能很好解决这个问题,已经有人做了半笼支架,打印下来试了一下,可以用在直接买的一些 DJI Action 的配件上。当然,加装延长手柄之后也可以用 1/4 螺纹口来安装一些通用的配件,在可玩性上还是可以的。
Luna Ultra 有一个比较独特的功能,就是遥控屏可以单独拆下来,然后上面还带了一个麦克风。所以你可以用三脚架之类把相机本体架在一个比较远的地方,然后用遥控屏调整画面,然后用遥控屏上的麦克风录制。缺点是遥控屏本身是不带扬声器的,所以在遥控屏上回放素材是没有声音的;另外在遥控屏上操作卡顿感也比较明显,实时监看够呛,只能做一下简单的调整以及开始结束录制。
Luna Ultra 还有一个类似早年间 DV 机的变焦拨杆,可以做到「无感变焦」,方便去拍一些希区柯克之类的运镜。不过使用下来发现一个要注意的地方,在离物体过于近时,做希区柯克运镜,由于 1x 到 3x 实际上是不同的镜头,画面会有跳变。这个其实也不算问题,毕竟两颗镜头在物理上位置就是不一样,试了一下在苹果手机上也是这样的。不知道能不能后续开发个功能,通过合成画面拼接一下,做到无缝的效果。
另外算是一个思考吧,就是配件生态,或者说硬件生态原来也挺重要的,这两家厂商其实是在用配件来圈住用户。例如我之前是大疆 Action 的用户,我买了非常多 Action 的配件,包括大疆的 Mic Mini 2,大疆也很默契地在 Action 3456 这几代上都用了一样的快拆接口。像我这样已经有大疆的产品,再买影石的产品,就势必要在配件上多花一笔钱(说的就是那个麦)。苹果可以说是硬件生态的祖师爷,用着用着就成苹果全家桶了。
最后,其实我不是很擅长视频这种表达形式。我知道应该怎么做,包括写脚本、画分镜、剪辑这些我都会,但是创作起来就真的比较费精力,不像拍照片那么轻松。另外就是我不是很喜欢本人出镜。不知道 Luna Ultra 在我手上会不会吃灰呢。
一个用来蒸馏任何人的 skill,可以让它自己检索来蒸馏,也可以给定一份数据集来蒸馏。项目里蒸馏了乔布斯等知名人物,还挺有意思。
一套受《塞尔达传说:旷野之息》启发的 React UI 组件库。其实是想找 Pokopia 的 UI 组件库的,结果只找到了这个。
直观展示不同 token 输出速度在不同场景下的体验。我感觉 60 token/s 的速度才是可以接受的,正好就是 Claude/GPT 服务的速度。这也是很多本地运行的模型的问题,输出太慢了坐在电脑前对着屏幕干瞪眼。
![]()
本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡)
另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。
2026-05-14 18:40:19
![]()
关于如何安装和部署 Hermes 以及接入飞书,飞书官方的这两篇博客(Hermes Agent 安装与部署指南:一步步教你如何使用“爱马仕 Agent”(附飞书接入教程)、Hermes Agent 全解析:与 OpenClaw 对比及飞书接入指南)已经讲得非常详细,但是这样只能拉起来一个 Agent,还不能称为「团队」,真正的团队应该有多个 AI Agent,各自负责不同的岗位。当然你可以通过在多台机器或者虚拟机上部署多个 Hermes 实例来实现这样的效果,不过 Hermes 自带了一个 profile 的功能,可以在一个 Hermes 实例上就能开出多个角色,下面我们来看看如何操作吧。
你可以参考上面提到的飞书的官方教程,先安装好 Hermes 以及走通飞书的接入,走通跟 Agent 的 DM(私聊)。简要的步骤为:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.bashrc
安装完成后,按照提示选择 Quick setup,配置好模型和飞书的连接,私聊机器人,然后进行配对。具体过程参考官方教程即可,不再赘述。
第一个 Agent 跑通后,可以开始创建新的角色。每个角色具有独立的配置、SOUL.md (人设)、记忆、会话、skill 等,可以实现职责的分离。接下来我们以产品经理和市场营销这两个角色为例,创建两个新的角色。
hermes profile create pm --clone
hermes profile create marketing --clone
这里 --clone 选项是为了直接复制模型的配置,所以后续我们还需要修改他们的 SOUL.md 来实现不同的人设区分。
接下来,我们要创建新的飞书机器人,方便我们后续在飞书中找到对应的角色。先配置第一个:
pm setup
还是选择 Quick setup,过程跟前面第一次配置的时候基本一样,选择模型这一步一路回车即可,复用之前的配置。
![]()
一直到配置消息这一步,在选择平台的时候还是回车。
![]()
这里输入 y,重新配置,然后打开链接新建一个对应的机器人,继续一路回车完成后面的流程。
![]()
完成后,点击网页上的「打开应用」,然后跟 Agent 发一个 hi,然后拿到 hermes paring approve feishu XXX 这样的配对码。这里需要注意的是,创建新的角色后,我们的命令就变成了对应的名称,所以这里要粘贴执行的实际是 pm paring approve feishu XXX。
接下来我们修改它对应的人设,有两种方式,你可以直接在对应的聊天里跟它说:
修改一下你的 SOUL.md,你是某某公司的产品经理,...
也可以编辑对应目录下的 SOUL.md,例如 ~/.hermes/profiles/pm/SOUL.md。
重复上面的步骤,完成 marketing 的配置。
需要注意 profile 并没有隔离 AI Agent 的工作区,也就是说,你虽然开了三个 AI Agent,它仍然可以修改别人目录下的东西,我在使用过程中就遇到修改错了别人的 SOUL.md 的情况。你可以在 SOUL.md 中指明它可以修改的目录,又或者简单让它「记住你只能修改 xx 目录」,但不能完全防止它修改到其他的文件。如果你明确需要各个 Agent 之间完全独立,还是需要部署多个 Hermes 实例。
你可以把真人和 AI Agent 都拉到一个群里,实现 AI Agent 和 AI Agent,AI Agent 和人之间的协作。先创建一个群聊,正常拉入真人,然后在设置-群机器人-添加机器人中,添加刚才创建的几个 AI Agent。
接下来有几个配置需要修改。要令机器人之间可以相互交流,需要修改 .env 文件(分别是 ~/.hermes/.env、~/.hermes/profiles/pm/.env 和 ~/.hermes/profiles/marketing/.env),在底部添加一行。
FEISHU_ALLOW_BOTS=mentions
要让不同的人在群聊中跟 AI Agent 可以共享 session(可以干预别人在群里跟 AI Agent 的聊天),还需要修改一个配置。
hermes config set group_sessions_per_user false
pm config set group_sessions_per_user false
marketing config set group_sessions_per_user false
如果你觉得每次调用工具会产生大量的消息,也可以在这一步关掉:
hermes config set display.tool_progress off
(其他两个同理)
最后,重启一下对应的 gateway。
hermes gateway restart
pm gateway restart
marketing gateway restart
这里为了行文逻辑,放到了后面来修改,事实上在新增时,如果使用 --clone,修改过的这些配置会直接克隆过去,不用再手动修改了。
要让 AI Agent 访问到知识库或者在线文档等,还需要安装飞书 CLI。任选一个 AI Agent,告诉他:请帮我安装飞书CLI:https://github.com/larksuite/cli,然后根据它的提示完成授权。后续就可以操作文档了。
后续操作过程中,有可能它还需要申请新的权限,按照提示打开链接授权完成后,再@一下它即可。
![]()
要想实现 AI Agent 之间的协作,可以把多个 AI Agent 拉到一个群聊里面,例如:
@产品经理 帮我把这个产品想法整理成一个 PRD。
等产品经理输出完后,再调用营销专家:
@市场营销 基于上面 PM 的 PRD,帮我提炼定位、落地页首屏文案和首发推广计划。
也可以连起来:
@产品经理 帮我把这个产品想法整理成一个 PRD,然后交给 @市场营销 提炼定位、落地页首屏文案和首发推广计划。
不过这种方式好像暂时不能由第一个机器人直接触发第二个机器人,可能是使用的 @ 的方式不对,还需要手动再触发一下。
前面说到,你可以把多个真人也拉到群聊里面使用,当然其他人也可以跟这个 AI Agent 私聊。
其他人要使用 AI Agent 时,首先需要提交一个「应用使用申请」,管理员通过后才可以对话。也可以在飞书管理后台-工作台-应用管理里找到对应的 AI Agent,修改应用可用范围,设置为对应的成员或者全部成员。
然后需要先跟 AI Agent 私聊一个 hi,像前面一样获得一个 hermes paring approve feishu XXX 这样的配对码,然后对应在终端里执行,才可以开始私聊和群聊。如果你觉得这个过程比较繁琐,也可以对应配置 .env 里 FEISHU_ALLOW_ALL_USERS=true。
到这里,一个由多个 Hermes profile 组成的飞书 AI Agent 小团队就基本搭起来了:从最初的单个 Agent,到产品经理、市场营销等不同角色,再到把它们拉进同一个群聊里协作,整个过程并不复杂,核心思路就是用 profile 来拆分角色,用飞书机器人来区分入口,再通过群聊把它们组织成一个「团队」。
当然,这套方案目前还不是一个完全成熟的多 Agent 编排系统。比如 profile 之间的文件系统并没有强隔离,机器人之间的自动接力也还不够顺滑,一些权限和配对流程对多人使用来说也略显繁琐。但好处是它足够轻量,不需要部署多套服务,也不需要一开始就引入复杂的 Agent 框架,就能快速验证「多个 AI 角色一起工作」这件事。
如果你只是想在团队内部快速搭建一个产品经理、研发助手、运营专家、客服助手之类的 AI 协作空间,Hermes + 飞书 + profile 已经是一个很值得尝试的方案。后续随着 Hermes 本身的 profile、权限、群聊协作能力继续完善,这种「把 AI Agent 当成团队成员拉进群里」的工作方式,应该还会有更多有意思的玩法。
2026-05-03 23:28:10
![]()
这是猫鱼周刊的第 98 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在
博客:阿猫的博客-猫鱼周刊
RSS:猫鱼周刊
邮件订阅:猫鱼周刊
微信公众号:猫兄的和谐号列车
![]()
摄于香港九龙城区保良局颜宝铃书院外,是一个外墙上的壁画,看了下落款应该是在 2005 年左右画的。过去 20 年了,居然还保存得非常好,而且附近的外墙上也有很多这种壁画。
五一快乐!这周的内容不算很多,浅浅分享一下最近的所见所闻,以及摸索的一些东西吧。
作者先引用了 Larry Wall 在《Programming Perl》里提到的程序员三大美德:懒惰、不耐烦、傲慢自大。这里的「懒惰」指的是程序员会为了避免未来重复劳动,主动去寻找更好的抽象、把系统做得更简单、更容易组合。作者认为,这种「懒惰」其实非常深刻,因为它背后是愿意现在多花脑力,换未来更少的复杂度和更高的效率。作者认为现在出现了很多 brogrammer,尤其是 LLM 的出现之后,很多人炫耀写了多少代码、产出了多少功能,而不是关注抽象是否更清晰、系统是否更简洁,LLM 更是把「堆代码」的速度放大到极致」。LLM 没有「懒惰」这种美德,因为对它来说,劳动几乎没有成本。 它不会像人类工程师那样在意未来的维护成本、认知负担和系统复杂度,它会很自然地继续往屎山上继续拉屎。
我在去年中的时候就提到过,vibe coding 基本上等于十倍速生成屎山,当然那时候 vibe coding 这件事情还没有那么普及。最近公司开始给大家配 Codex 了,才算是见识到了 brogrammer 的厉害。我有一个同事,以烧光配额里的 token 为荣,正好当时 GPT 5.4 过度设计的情况非常严重,以至于我 review 他的代码的时候非常痛苦。我把这个问题提出来质问他的时候,他还一脸轻松地说「AI 的发展会解决这些问题」。我挺无语的,软件工程中一直存在着一种破窗效应,一旦开始有人往代码里面拉屎,那后续的代码质量都难以保证。
一般来说,我们认为模型的训练语料肯定是越新越好、越多越好,而 talkie 这个模型只用 1931 年之前的英文历史文本训练,一方面是让人能「和过去的人对话」,另一方面是把它当成研究工具,去观察语言模型在没有现代知识污染时到底会表现出什么能力。
如果你感兴趣,可以在线体验一下。我尝试问它中国有什么适合旅游的地方,它回答了上海、南京和北京,而且地名还是用的威妥玛拼音。
![]()
最近经常刷到一些做 vibe coding 的硬件,一个麦克风、几个按键这样,说是能提升 vibe coding 的效率;也看到不少 TypeLess 之类的软件的分享,以及各家 ASR 模型的发布等等,感觉可以重拾一下语音输入。
硬件方面,我买了大疆最近新出的 Mic Mini 2, ¥329 的手机接收器一收一发套装。因为我正好有 Action 4,可以直连,而索尼的相机也可以通过一百多的热靴转 USB-C 来实现完美的外接。发射器小小一个,夹在衣服上没什么感觉。比较惊艳的是它的降噪效果真的不错,人声收录得非常清楚。
软件方面,搜罗了一圈,主要有以下这几个:
体验了几天,我觉得语音输入有一定的可取之处,但是我还没有完全习惯。我打字的速度应该算比较快的那一档,基本上能够跟得上说话的速度,而且一句话下来,手敲和语音识别+LLM 改写+人工修正的时间差不多,所以在输入效率上其实是没有什么提高的。跟传统的语音输入相比,基于大模型 ASR 的语音输入倒是有不少体验的提升,例如嗯啊这些语气词可以被 LLM 改写去掉,中英文混输的识别也比较精准。比较难受的是,Mic Mini 2 上不能直接触发录音,还是需要手动按键盘上的某个键才可以开始录音。当然,我看到有人做了用 Switch 手柄 + Mic Mini 2 这样的方案,可以用 Switch 上的按键绑定语音输入键、回车键、切换权限等。如果大疆后续做个功能,可以把 Mic Mini 2 上的某个键绑定成开始语音输入,那将会是绝杀。
回到语音输入这件事上,我觉得它非常适合「嘴比脑快」的情况,要想达到最佳的效果,你可以不用刻意组织语言,有什么说什么,让 LLM 帮你理清楚,还是需要不少适应的。反正暂时来说,我还是更加喜欢键盘这种输入方式。
五一当天我去香港逛了半天,一半时间在土瓜湾、九龙城这几个地方闲逛拍照,另一半时间在黄埔天地参加了星球大战的活动。
先说扫街这部分,因为香港已经去了很多次,这次特意选了比较小众的地方,也是市井气息比较浓的地方,所以虽然正好是五一,也没遇到什么游客,可以很舒服慢慢逛慢慢拍。香港的街道总是给人一种很破旧但是又很多彩、很干净的感觉,旧楼的外墙使用的颜色都很大胆,街道斑斑驳驳但是很干净。
![]()
正好聊到干净,我觉得除了人口素质高,另一方面是相关法例非常完善,而且执行力度很大。例如乱丢垃圾是定额罚款三千港币,在禁烟区抽烟/管有电子烟也是定额罚款三千港币,行人闯红灯是两千港币,在港铁已付车费区域饮食也是两千港币。像我经常吐槽国内的游烟问题在香港可能一次性就被罚六千港币——吸烟三千,乱丢烟头再罚三千,这种执行力度可以说能极大遏制这种行为。
日落之后,我顺路逛到黄埔天地,正好朋友出 cos,我也参加了也夜跑的活动。所谓夜跑,其实就是沿着海边步道,来回一公里左右的距离。现场估计有几千人聚集在一起,氛围非常好。
晚上回程坐的东铁线,之前我都是坐高铁或者大巴回,这次尝试了个新路线。不过东铁线的末班车在九点四十几的样子,所以如果再晚又买不到高铁可能就要坐大巴去罗湖了,有机会再试试吧。
现在各家 Coding Plan 都在限购,就算买到限流的情况也很严重,国外的套餐也不好买。这个网站提供了各家 Coding Plan 的方案比较,以及性能指标,可以帮你快速对比选择。
不过截至现在(2026.05.03),里面有些信息可能不准确了(例如阿里的这个 Coding Plan 已经下架了),最终还是以供应商的页面为准。
![]()
Pokopia 的在线图鉴。比较可惜的是 UI 没有做到像游戏里面那样的。
![]()
![]()
通过编写 HTML 来渲染视频,而且支持通过 AI Agent 来生成。项目提供了对应的 Skills,你给出一个创意或者方向,就可以让 AI Agent 来生成对应的动画脚本,TTS 配音,然后合成视频。
我写了一个 skill,可以用来生成一段短视频,解释某一个概念,例如公私钥加密的概念这样。
TypeLess 的开源替代。主要支持语音识别,以及后续的润色功能,自定义词典的功能也有。实测下来搭配豆包 ASR 体验不错。
本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡)
另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。
2026-04-26 22:06:05
![]()
这是猫鱼周刊的第 97 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在
博客:阿猫的博客-猫鱼周刊
RSS:猫鱼周刊
邮件订阅:猫鱼周刊
微信公众号:猫兄的和谐号列车
![]()
好久不见。
这张图摄于香港赤柱浅水湾海滩,去年七月底去的,终于把胶片洗出来了。这卷是 Harman Phoenix 2,一个蓝紫色的片基,说是照片蓝色表现会比较好,但是实际冲扫之后效果比较难看,倒是自己调了一下色之后好看很多。胶片比数码的宽容度高很多,而且更有 vibe,看着这张照片我感觉自己又回到那个海边,灿烂的阳光照在蓝色的海面上,沙滩上的救生艇闪闪发光。
话说回来,又快一个月没有更新了,这个周刊已经快要变成月刊了。最近工作上比较忙,压力也比较大,加上在练车,所以周末剩余的时间精力就比较少了。我不确定周刊这件事后续会变成什么样子,不过周刊肯定不会不辞而别,如果有一天我觉得实在写不下去了,一定会让它体体面面结束。
作者和同事讨论到「一个人到底为什么会选择长期留在一家公司」,同事觉得「觉得既然进来了,只要公司没做出什么触及底线、让他过不下去的事」就可以一直留在这家公司,而作者会一直评估当前的平台能否满足他未来一段时间的发展、产出的价值和他的成长是否对等、这些东西他是否看中等等,寻求的是「留下的意义」。
我觉得我是那种「既来之则安之」的人。我在现在这家公司已经工作了四年多,从毕业前实习开始,一直就在这里,算是我人生中第一份也是唯一一份工作,久得以至于我觉得相当于在这里又读了一遍大学。虽然从实习的时候就动过心思找所谓「大厂」或者更高薪的职位,一直到现在也时不时觉得不如辞职,但是我一直都没有付诸实际行动,一是因为我很喜欢安稳的环境,太多变数和未知会使我不安,反而压力更大;二是我一直没想好如果换一份工作,那我要做什么,跟现在的工作会有不一样(开发的工作其实千篇一律都是跟产品运营扯皮、给前任开发拉的屎擦屁股);三是校招的时候经历的几次所谓「压力面」让我对面试这件事始终有点 PTSD。在现司有一个比较好的地方是时不时有一些探索性的任务,可以给到我机会实践一些新颖的东西(我称之为「造火箭」),而不是重重复复做一些费力不讨好的事情(我称之为「打螺丝」)。如果换公司,「造火箭/打螺丝」工作的比例是否还能保持现在这个水平就不好说了。一来一去,居然让我找到了一点平衡,虽然在现司的工资不算很高,但是压力尚可,做的事也算有点价值,也懒得折腾跳槽,居然就留下了。
我身边有的同龄朋友在几年间已经跳槽了几次换了两个城市工作,等于是我的反面。其实这也是我觉得反复跳槽其实意义不大的原因,不管你跳几次槽,加多少薪,这个公司入职的时候觉得如何好,过一段时间(最多两三年)就会厌倦,产生很多负面的情绪。不过,写到这里我都没怎么提钱的事,跳槽的功效之一就是涨薪,如果你很在乎工资的差距,那前面这些想必你也不会太在意了。
一篇关于 PostgreSQL 索引的科普。其实重点不是在索引本身这些知识点,而是我觉得国外的学习路线似乎跟国内有比较大的差异。回忆了一下索引的学习过程,大概是这样:
我想突显的问题是,国内的教学方法很多知识很难串联起来,尤其是「八股」严重破坏了渐进式学习的过程,更蛋疼的是毕业的时候外面的公司就默认你可以一步登天,时至今日我不少同事八股倒背如流但在排查问题的时候就是不能把现象和原理串联起来解释清楚。
在看了非常多国外的文档之后,我发现他们的学习方式其实是渐进式的,国内的学习方式则是拼图式的。例如说组成一个系统需要一百块积木,国内大学的课程会单独讲解这一百块积木每一块是怎么样的,但不会讲解积木之间的关系,或者怎么把积木拼起来用;而八股则是考你这些积木中很不常见的那一块,它有什么奇怪的窍门;而你毕业找工作的时候,公司就会要求你把这一堆积木拼起来,还要利用起某些积木的怪癖。相比之下,国外的学习方式则是先给你一个简化版的积木,例如说十块,让你先把整个系统搭起来跑通,再去细化里面一块积木其实可以深挖出很多知识点。如果有一些积木平时我们不用去深究(例如这里的索引),可能到职业中后期再去慢慢学习(也可以说是「解决问题导向的」)。
也可以换个说法,是广度优先 vs 深度优先,是了解更多的概念和他们之间的关系,还是深入学习每一个概念。在当今这个年代,我会觉得广度优先学习的人更有优势,因为你不是闭卷考试,深度相关的东西可以随时查阅文档,甚至在这个年代可以交给 AI,而广度直接决定你是否能识别到这是什么问题,应该去查什么地方,或者以什么方式向 AI 发问/下指令。
因为我一次囤了四卷胶卷一起去冲洗,所以这次一次性洗出来非常多照片,之前一卷一卷记录的方式太多了,索性放在周刊里分享吧。
![]()
某个周末的傍晚,从海雅缤纷城吃完寿司郎出来,刚好看到傍晚太阳温暖柔和的光线,打在广场的鸽群上,旁边正好有个妈妈扶着孩子蹒跚学步,很温暖的一幕。
![]()
一个晴天的下午,广州六运小区,非常鲜艳的颜色,红蓝色的球场,明黄色的外墙,同样红蓝色的店招。最近因为火灾隐患,这条街可能光辉不再了,这可能也是绝版光景。
![]()
某个下午,深圳大芬油画村,一束光正好打在油画女主人公的眼睛上。
![]()
香港,天星码头旁的钟楼,蓝色的天,明亮的阳光打在钟楼上。
之所以说「AI 无法取代胶片」,一方面是胶片理论上保存了按下快门那一刻物理存在的东西,而不是数码照片里的一堆 0 和 1,在冲洗之后你可以获得看得见摸得着的底片;另一方面,用 AI 生成的照片没有「灵魂」,没有记忆,没有像我展示的这几张照片一样,即使过去很长时间,也能回想起在哪里拍的,回想起当时的环境甚至体验。
最近这周开坑了两个新游戏,都非常值得推荐。
首先是《PRAGMATA》,刚好在 B 站上刷到发布的预告(是的,我是前几天才刷到的),又顺着去看了之前跳票的道歉视频(《Pragmata》发售延后通知、《Pragmata》延期通知 - 与大家见面仍需时日),戴安娜实在是太可爱了,于是激情购入。
犹豫了一下买 PS5 版还是 Steam 版,看到网上分享说在 PC 上可以支持 PS5 手柄的震动和自适应扳机之后,我选择了买 Steam 版。进游戏之后,画质调高,记得关掉 DLSS 和插帧,因为卡普空的头发丝做得太细致了,打开 DLSS 后会有黑影一直闪烁非常影响体验;另外一点是游戏可以在设置里面切换 PS5 手柄的图标,如果你使用 PS5 的手柄来游玩记得切换一下。
游戏玩法主要就是右手走格子破解之后 FPS 射击,可以搭配不同的武器(也可以说道具)和戴安娜的技能,实现更高输出。主角本身有位移,可以打出极限闪避然后有子弹时间,操作上限其实比较高。游戏整体是箱庭式关卡,跟剑星有点类似,有点像剑星的 FPS 版,不过对操作的要求相对低很多,正常难度打下来也不怎么卡关。每一章的剧情大约一两个小时,我还没打完,网上说法是十个小时左右的量。有人吐槽太长,作为打工牛马精力不错,这不怎么长的剧情反而更有机会被我打完,反而是优点了(x。另外还有一个很有意思的就是在避难所里面可以收集打印一些场景和道具给戴安娜玩,也可以跟戴安娜聊天,还会解锁戴安娜画的画,真的非常有意思,这个交互非常独特。
另一个是 Pokemon Pokopia。我之前没玩过宝可梦系列的游戏,动森我浅玩过但也不是受众,但是 Pokopia 玩了一下午觉得挺上头。这个游戏非常休闲,没有什么挑战,失败没有惩罚,任务没有先后,你可以慢慢探索,非常治愈。而且在 Switch 上玩,你可以随时暂停,随时又捡起来玩,挺适合在 vibe coding 的间隙用来填补时间。
一个静态文档网站生成器,类似 Docusaurus、starlight等,有比较完善的 AI 支持(可以生成 llms.txt)。我体验了一下,主要是上线文档类静态网站的体验是最好的,非常开箱即用,Marked 的文档就是用它搭建的,半个小时就搞定了这个文档站的建设。
一个用 AI 制作 App icon 的工具。提供了 GPT Image、SeedDream、Nanobanana 等系列模型的生成,支持 iOS、Android 等规格直接打包导出。
每次生图会消耗 1 点数,注册会赠送 5 点数,基本够你生成一个项目的 icon 了。点数可以购买,也可以订阅,单独购买的话最低是 $5 50 点数,我不是稳定需求,临时用用,就充了 $5。
![]()
本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡)
另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。
2026-03-29 22:16:45
![]()
这是猫鱼周刊的第 96 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在
博客:阿猫的博客-猫鱼周刊
RSS:猫鱼周刊
邮件订阅:猫鱼周刊
微信公众号:猫兄的和谐号列车
![]()
好久不见。这张照片是某天下午下楼摸鱼的时候拍的,公司之前的楼下转角处有个茶餐厅,在角落这里搞了个小狗幼儿园,图片里的两位是店里的,时常能看到不少小狗在这里聚会玩耍。我不是很喜欢狗的人,但是在工作累了的时候下楼看到小狗在阳光下奔跑玩耍,还是很治愈的。以至于公司要搬走了,我的第一想法居然是,啊那我再也不能摸鱼下楼看小狗了。
Anyway,最近这段时间也挺忙的,开始学车,也尝试写了一下 iOS App。后面慢慢细聊。
Apifox 因未严格启用 sandbox 参数,并暴露了 Node.js 的 API 接口,导致攻击者可通过 JS 控制 Apifox 的终端,启动过程中加载了一个被投毒的脚本,采集了用户的 .ssh 目录以及命令行历史等。
本来我很久都不使用 Apifox 了,最近偶然做需求打开了几次,没想到就中招了。我写了一个脚本,根据文章的描述,识别是否有文章中提到的 IoC 和本地痕迹,以及本地有什么高风险的凭据材料需要轮换。运行之后发现我是妥妥中招了,所以这周一个非常蛋疼的事情就是找到一个方式可以避免这种攻击,然后轮换全部的密钥。
最近类似的事情还有 LiteLLM 也遭到了类似的供应链投毒攻击,这种针对开发者的攻击防不胜防,不管你使用商业软件还是开源软件都避免不了,防范的手段还是控制本地不要留存这种敏感凭据。另外有个大家可能都很容易忽视的点,那就是避免在命令行中明文输入密码,就是例如通过 -p xxx 这样去传递密码参数,这样你的密码就会留存在历史中,可以用环境变量或者 interactive 的方式去输入。
当 LLM 出现思维链之后,大家发现如果让 AI 不断「自言自语」,可能会得到更加完善的结果,所以「深度思考」应运而生。对应的界面交互上,从一开始全部流式展示,到后面逐渐迭代出一些动画、结构化过程等等,这篇文章做了很深入的思考和研究。
不得不说,文章中多次提到 Claude,在实际使用中,我确实也觉得是 Claude 的使用体验最佳,不过这种交互体验实际上算是「锦上添花」,不算得上非常重要的选购因素。
另外我觉得有一个交互的点可能暂时没有人考虑到,以及由于现在龙虾类产品的出现,可能令这个问题加剧—— AI 什么时候完成了工作。作为「略懂」的人,我会知道结束的边界在于模型输出 EOS token,一般的实现就是到这里就不再刷新,然后气泡底部出现交互。这看起来没什么问题,但是复杂情况就在于,如果这时候用户让 AI 做一些很复杂的事情,但是 AI 并没有这个能力,却又像模像样地骗用户自己正在做 ppt,并且通过邮件发给他,不少用户信以为真,而且在发现 AI 做不到这个之后产生巨大的挫败感。对于传统的在线聊天式 AI,只要生成结束了,气泡不再刷新了,那就是结束了,再发消息就是一轮新的交互。而龙虾又复杂化了这个事情,因为它有后台进程,甚至不管你有没有发消息,它其实都在工作,所以这时候你发消息问进度是有意义的。
Cursor 团队搞了个 CursorBench 来评测不同的模型,任务来自真实的 Cursor 用量,而不是公开代码仓库,CursorBench 不仅更能区分不同模型,也比公开基准更贴近开发者的真实结果。他们发现现在的公开基准存在不少局限,在前沿水平上,这些基准已经无法区分那些对开发者而言实用价值截然不同的模型。他们构建的 CursorBench 会使模型的区分度更大,更加能体现 coding 场景的能力。
评测的结果倒是没什么特别意外的,GPT 5.4 最强,其次是 Opus 4.6,倒是声称对标 Opus 4.5 的 GLM-5 实际的差距还蛮大。比较意外之前传出来他们的 Composer 2 使用的微调 Kimi K2.5 居然没有出现在榜单里。
他们的实践说明,在实际使用的时候,还需要根据具体的场景来构建 benchmark,光看各种模型吹得天花乱坠意义不大,大家在公开基准上都很卷,你的实际场景用起来很可能又不是那样。
在 Apifox 供应链投毒事件之后,我目前风险最大的就是本地使用的 SSH 密钥。这个东西自从配开发环境的时候就生成了,然后一直放在那里,很少再去管它。在跟 ChatGPT 探讨之后,它给我几个方案,要么使用例如 1Password SSH Agent 之类的方案去管理 SSH 密钥,要么使用 FIDO2 SSH key,或者用 Yubikey 的 PIV/OpenPGP。第一种方案需要另外投入成本,而 Yubikey 我手头就有好几个,用 GPG 签名也很久了,所以最终使用了 gpg-agent 的这种方案。另外值得一提的是,FIDO2 这种方式其实非常好,主流服务也支持,但 *-sk的公钥还是在很多地方有兼容性问题,所以用不了。
说实话,这个折腾起来还挺麻烦的,如果你之前没有 Yubikey,硬件投入也不少,然后把整套流程跑通也花了我大半天。之后每次使用的时候,还要把 Yubikey 插入电脑并输入 pin。好处是以后我大概再也不用担心 SSH 私钥被盗的事情了。
回应标题,如果你的 SSH 私钥就这么生成之后被遗忘在 .ssh,你很容易就被「赛博夺舍」,我这个方案不妨考虑一下。
尝试用 Swift 写了一个原生 iOS App,至此,前端后端安卓 iOS 我都有成型的作品了,虽然在这个过程中主要的功臣是 AI。总之,这是一个记录类型的 App,除了简单记录某件事件以外,还可以填入一些自定义字段,例如健身时练的部位、有氧的事件等等,后续可以根据自定义字段来做分析;还有一个有意思的功能是,可以记录「已经多久没做 x 事」这种戒断类型的事件,除了培养好习惯,戒掉坏习惯同样重要。如果你对 Marked 感兴趣,它现在还没有上架,你可以在 Testflight 体验。
![]()
顺便也分享一下我的开发经验。
一开始,我打算用 Figma AI 或者谷歌的 Stitch 之类先出一版设计稿,然后改下交互之类的,我最终选择了 Stitch 来尝试,主要是因为它的免费额度比较多,而且支持 MCP。我先尝试了直接在网站上输入我的简单需求,让他设计好界面以及对应的交互,但是发现它一开始只会生成首页的交互,里面具体的交互需要你一步一步跟他聊天才会有,而且具体的字段每个页面可能都不一样。倒是有一个很突出的点,它会先生成一个 DESIGN.md,所以所有界面都可以获得比较一致的设计风格。我的改进方式是先把我的初始需求写成一个 init.md,然后跟模型讨论,让他生成出一个 PRD,并且带有每一个页面的交互和字段的描述,再根据这个文档,让他调用 MCP 来生成页面,最终能生成出全部页面,字段设计等看起来也没什么大问题。
但是最后我实现的时候,发现这个设计稿完全没有作用,我的工作流程里不涉及 UI 设计,我的交互其实文字已经描述清楚了。更糟糕的是,这个设计稿里的每一个 screen 其实只是一个 html,Figma 的也是类似的设计,而我要写的是 Swift 的原生 UI,设计稿没法反映苹果原生的 UI,而且生成出来的 screen 经常出现一些无意义的边框或者评论等,修改起来也很费劲。
![]()
另外踩的一个坑是,有一个 Emoji 选择器,一开始用的是一个开源的包,但是在新版本 iOS 上有个 bug,会导致下面的类别选择器有异常。AI 卡了很久都没有解决,直到我在 GitHub issues 里找到一个对应的问题,并且顺藤摸瓜找到了一个修复的 fork 才解决。现在 AI 很大的问题就是经常遇到问题无法解决,需要人类介入。我觉得 Skill 也许是这个问题的解决方案,因为「开源的包遇到问题-去翻翻 issues」这个流程其实是我的经验,本质上这些操作它也可以完成的。另一方面大家也许可以不那么焦虑被 AI 取代,因为它们遇到小小的问题可能就会卡住。
一个用于去除文本中 AI 生成痕迹的 Skill。之前做了很多关于 AI 生成检测的研究,看到这个感觉还是挺有意思的,让 AI 生成更加拟人。
一个离线的知识库,打包了 AI 助手、离线地图等工具,不过安装时仍然需要联网。整个项目的背景有点「末日风」,而且部署的成本还不低(根据项目的推荐硬件,甜点配置大概需要 500-800 刀,需要本地能跑 LLM),实用性不算很强。不过如果你已经花了很多钱搞末日地堡,这个价格估计你会承受得起(x。
一个自动检测你的硬件配置,并计算你的电脑能运行什么 AI 的工具网站。比较有意思的是,它除了会给你预估的 VRAM 需求,还会根据你的设备的具体硬件配置(VRAM、RAM、内存带宽等)估算不同量化下的输出速度,以及不同量化的效果来供你评估。
![]()
![]()
本周刊已在 GitHub 开源,欢迎 star。同时,如果你有好的内容,也欢迎投稿。如果你觉得周刊的内容不错,可以分享给你的朋友,让更多人了解到好的内容,对我也是一种认可和鼓励。(或许你也可以请我喝杯咖啡)
另外,我建了一个交流群,欢迎入群讨论或反馈,可以通过文章头部的联系邮箱私信我获得入群方式。