2026-08-02 12:00:15
最近总有人问我,哪个 AI 工具最强。
Claude Code?Codex?还是 Pi?
说实话,这个问题我答不上来。「最强」这个东西,我没法验证。我能验证的只有一件事:把它交给我手里那件具体的活,它能不能跑完。
我用过了不少 Agent 工具。有些确实很强,功能完整,适合复杂的开发。但用得越久我越觉得,对大多数人来说,真正的门槛从来不是模型够不够强,而是能不能把一个具体的工作交出去,让它稳定地跑完。
这篇想聊聊我一直在用的 Pi,和我拿它做的那些事。不一定适合所有人,但如果你也想让 AI 干点真实工作,也许能少走点弯路。

我最初接触 Pi,是因为 Claude Code 接第三方,运行起来很慢,一个任务经常等很久。
Pi 足够轻量,速度快,让我想要尝试它。
平时很多工作,还无需写复杂代码,反而我需要输出很多调研、设计、文档。同样的 API,跑起来 Pi 总是完成的又好又快。
把零散的资料整理成调研报告,把产品文档写进飞书,读一张表格然后整理出结论,把调研过程沉淀进自己的知识库。这些活有个共同点:一次问答搞不定,得靠一串重复动作。查,读,归档,再查,再整理。我经常需要编排成工作流,来将工作自动化。
Pi 的价值就在这里:它能把这条链路跑起来,还能让每一步的产出落在文件里,落进我的知识库。调研不再是聊完就散的一段对话,而是可以继续追问、继续积累的东西。

最早是用 codex,很好用,但不够快,烧 token 厉害,很容易就触发 5 小时限制。
于是我将 codex 登录在 Pi 上,那会是 gpt-5.5,同样的任务,Pi 不仅速度快了,而且 token 消耗只需要原来的 1/5 不到,挺惊讶的。
并且由于少了复杂 harness 的限制,在处理非编码或者轻量开发时,效果往往更好。因为现在的模型的能力越来越强,harness 既是一种脚手架,同时也是一种限制。所以,接触限制,反而能带来不错的效果。
前阵子 gpt-5.6 sol 出来之后,我在打磨 AgentBoard,让 Pi 检查整个项目的使用体验,再照着改。它帮我把那个项目打磨一下,非常流畅,无论是提出改进建议,还是改进代码,做得都很出色。

Pi 是一个轻量底座,让你手里已有的模型能干上活。模型就是 AI 的大脑,你订了哪个,就用哪个,直接登录用,不用再买一套新的。
它的 harness 很薄,上下文很干净,给模型留出更多智能去处理问题。很多工具会在后台悄悄塞一大套预设规则,模型每次干活,都得背着这套包袱。Pi 框架减到最薄,让模型直接干活。所以拿一个顶级模型去跑,速度很快,效果往往更好。智力很高,约束很少,反而能发挥出更强的能力。
它默认的能力也不多,就读写文件、编辑、执行命令这几样基础活。派小助手、先做计划再动手,官方明说了不内置。要用,你自己加。这个取舍我很喜欢:它把「哪些能力值得进工作流」的决定权,留给了你,由你来定。
模型自由还有一层实际的好处:省钱。我平时会把第三方 API 接在 Pi 上,token 更省,省钱就是实惠。同一个壳,模型随你换,哪个划算用哪个。
很多人可能没听过 Pi,但你八成听过 OpenClaw。OpenClaw 在早期演进中,底层就长在 Pi 这个内核上。它俩的关系,有点像引擎和整车。这个故事倒不代表 Pi 更强,但说明一件事:一个轻量、可组合的内核,能成为不同产品探索的起点。

终端,使用命令行,确实会劝退不少人。
可以从 Pi Web 开始。这是 B 站 UP主「第四种黑猩猩李超」(GitHub 上是 agegr)开源维护的项目,地址在 github.com/agegr/pi-web 。他给 Pi 套了一个本地网页界面,会话、模型、技能都看得见摸得着,还能浏览项目文件。无需你记住命令,可以先把它当一个本地 AI 工作台来用。
我用了非常多,里面还内置了 skill 市场,比如我之前常用的 hyperframe 生成视频,就是通过在 Pi 上跑的。使用体验很好,很推荐。
就在使用 Pi 过程中,我还经常使用终端,发现了一个让我用得舒服的小工具 Otty(https://otty.sh)。
它是一个更适合跑 Agent 的 macOS 终端。标签页、分屏、任务状态、通知、会话恢复,都做得比系统自带终端友好。经常同时开好几个终端任务的人,不用再对着一堆散乱窗口发懵,也更容易知道哪个任务在跑、哪个任务在等你处理。
它算不上必需品。但当你开始频繁用 Pi、Claude Code 这类终端 Agent 之后,一个好终端会让体验好很多。
如果你要做复杂的开发、长周期的协作,功能完整的工具确实更省心。但如果你只是想跑通一件明确的小事,轻一点的反而更自然。
对普通人来说,最值得做的第一步,就是挑一件你本来就会重复做的事。不用先学概念,也不用配一套复杂自动化。把一份调研整理成报告,把固定结构的内容写进飞书,从表格里提取信息形成摘要,把零散资料沉淀进自己的知识库,都行。

先让 Agent 真的替你完成一次工作。
然后再判断,它值不值得进入你的日常。
2026-07-25 11:25:52
前段时间,我在给一篇文章配图的时候,遇到一个说大不大说小不小的烦恼。
AI 现在生成的图,越来越精美了。但就是有一种说不清的「不对」。
反倒是在「橙线插画」中,看到喜欢的风格,原地址是https://github.com/orange2ai/orange-line-illustration。喜欢那种人与物巨大的反差感,同时也喜欢这种线条感。
回看过往的一些插图。我会感觉表达太满了。
一说哲学,就开始画星空、碎裂的人脸、光柱从云层射下来。一说商业,就一堆 3D 图标、渐变色、等距视角的办公楼。一说未来感,就是霓虹灯、赛博城市、穿着披风的人站在天台。
太具体,反而让图少了一些品味的韵味。
想起网上有一些马克笔画出的粗线条手绘,我喜欢那种画风。一张白纸,几笔黑线,一点点就能让你停下来多看两秒的东西。
画面是白的。线条是黑的。留白多一点。意思不要说满。小时看过一些哲学小漫画,挺喜欢的,就是看一眼能懂,再一看还能多想一点。

这套风格,我给起名叫 Thought Strokes,你可以理解成「思想的笔触」。不是把文本翻译成图。是用几笔线条,把文本背后那个看不见的结构画出来。在 Pinterest 上,找了几张马克笔粗线条画风的图片,都丢给 Codex 去消化,转成画风提示语。
规则只有几条。
第一,16:9 宽幅。 我考虑公众号排版用途,竖图太占地方,方图又差点意思。宽幅刚好。
第二,黑线白底。 不搞复杂的颜色过渡。不搞渐变。就是纯白背景上,用黑色马克笔的笔触去画。
第三,画里永远有一个小孩。
这个小孩我管他叫「小问号」。圆圆的头,小小的点眼睛,穿一件有点大的外套,手像小手套一样。他不说话,但他在画里做各种各样的事:提水桶、盖房子、浇水、站在巨大的数据块面前发呆。
为什么是小孩?因为小孩身上有一种天然的尺度感。
一个成年人站在巨大的东西前面,你可能会觉得荒诞或者滑稽。但一个小孩站在那里,整个画面就变成了一种提问。小孩让世界重新变大了。他提醒我,在那些我习以为常的概念里,还有一些我没有看清的东西。
第四,只能用一种颜色。
暖橙偏珊瑚色,色号是 #FF7A45。这个颜色在画面里能占多少?不能超过 8%。
而且它不是随便用的。你不能拿它去涂小孩的衣服,不能让画面变热闹。它只能填在整张图最关键的那个东西上:一把钥匙、一段水流、一小块泥土、一点火、一格亮起来的数据。
颜色不再是装饰,它可以是意义的指针。
刚开始折腾的时候,我以为把上面这些规则定死,效果就会好。
后来发现,不是。
画风只是第一层。真正决定一张图有没有力量的,是它有没有读懂句子里的「关系」。
什么意思?
比如这句话:「比较是偷走一切欢乐的窃贼。草在你浇灌的地方才会更绿。」
如果只看字面,AI 可能会画一个影子偷东西,或者画一个人浇草地。看起来也许还行,但总觉得少了点什么。
因为这句话的重点不是「偷」这个动作。而是两片草地。
一片是你的。一片是远处的、看起来更绿的。你的水本来应该浇在自己脚下。却被远处那块草地牵走了。那个被牵走的水流,才是「被偷走的东西」。
所以画面里必须有两块草坪。必须有水的方向。水从自己的草坪流向远方。小孩站在自己的那一块上,水壶歪了,水流向了另一边。橙色的水流就是被偷走的注意力。
这种「方向」,就是句子里的关系。

我又试了另一句话:「我们每个人都在建造自己的房子。有时候你以为自己在为学校、为公司、为团队而建,但你始终是在建造自己的房子。」
字面上看,关键元素是房子和建造。但如果只画小孩在建房子,意思不够。
这句话真正的结构是一个反转:你以为在给别人建,最后发现是给自己住的。
所以画面里必须有这个反转。小孩在外面砌砖,房子的剖面切开,里面已经放着他的床、他的鞋、他的一件外套。钥匙最后回到他手里。

读者看第一眼,是小孩在建房子。再看一眼,看到了剖面里的床和鞋。然后忽然意识到:哦,他一直在建他自己的生活。
这种「意识到的过程」,是 AI 配图最难做出来的东西。但也是最值得做的。
我让 Thought Strokes 试了很多句子,发现有几类关系它画得特别对。
反转。 你以为在交差,实际在造自己的生活。你以为在给别人打工,最后自己是那个房东。需要一张图,把「你以为的」和「实际是的」同时画出来。
比较。 句子里有两样东西在暗暗较劲。一块在脚下的草地,一块远处的更绿的草地。水只有一壶,它往哪边流?需要看到选择。
时间跨度。 有些句子讲的是「五年」。「大多数人都想要那棵九十英尺高的竹子,却不想经历那五年的过程。」字面上是竹子和人,实际上是一件事:时间。看不见的五年,和最后一口气冲出来的六周。
画这句话的时候,我让画面里加上五个时间标记。地上几乎没变化,地下每一年都不一样。最后,竹子在一端突然长高。表面安静,地下很忙。
看不见的成长。 根在土壤下面蔓延。习惯在你看不到的地方建立。这些句子需要一个剖面,把隐藏的东西切开给你看。
误认。 你以为那是一道门,走近发现是镜子。你以为自己在跑向目标,其实在绕圈。需要有「你以为的」和「实际是的」两个层。
如果你不确定一句话里藏着什么关系,一个最简单的办法是问自己:这句话让我停下来想了什么?那个让你停下来的东西,就是图要画的东西。
我觉得几类内容特别适合 Thought Strokes。
文章的配图。很多观点本身是抽象的:「工具反过来塑造了我们」「自由太轻也会让人窒息」「比较偷走了注意力」。摄影图很难适配,3D 图又显得轻飘飘。线条插图刚好,它不会抢正文,但会给文章留一个你能呼吸的气口。
公众号封面。16:9 宽幅、白底、一点色彩,放在文章开头,读者在点进来之前先看到这张图,会隐约觉得这篇文章有点不一样。
读书笔记和短句。很多书里有些话,适合单独拿出来想一想。小孩和巨大物件的画面,刚好能把这些话变成小寓言。

这个 skill 不是什么完成品。更像一个正在长根的东西。
我还有很多想优化的地方:小孩在不同画面里的样貌一致性、复杂句子的理解深度、颜色的克制程度偶尔还是会跑。每次重画,都像在跟一个小朋友说:不对,不是这样,你再看一遍这句话,想一下它到底在说什么。
测试了,目前使用 Seedream 5.0 Pro 能生成出来,但整个笔触的质感更好的,还需要使用 GPT image 2.0,同时在文本理解上,也会更好一些。
我把 Thought Strokes 开源出来,是因为一个风格系统真正有意思的地方,是你把它交给别人之后,它还能不能长出你没见过的画面。
如果你写文章、做笔记、做产品思考,或者只是喜欢把抽象句子变成图,欢迎试试。
它不一定每次都画对。很多时候要调,要重来。但当它画对了的时候,会有一种很轻的感觉:一句本来悬在空中的话,忽然落到了纸上。
如果你用的是支持 Agent Skill 的工具,可以把这个 skill 放进去直接用。
仓库地址:https://github.com/AyingAI/thought-strokes
安装之后,可以直接这样说:
用 Thought Strokes 风格,为这句话配一张 16:9 插图:你占有的东西,最终占有了你。
更好的方式是给它一小段文本,而不是只给一个关键词。比如:
用 Thought Strokes 风格,为下面这段话生成一张 16:9 插图。先理解句子背后的关系,再设计画面:我们生活在一个没有摩擦力的时代。信息流、算法、消费,一切都被打磨得无比丝滑。我们像神明一样在世界的表面漂浮,却再也无法把双脚插进坚实的泥土里。
它会先分析这句话里藏着什么关系,再动手画。不是抓几个关键词拼一张图。
如果你感兴趣,也欢迎试试。
2026-07-15 07:35:01
前几天,遇到一本《Chop Wood Carry Water》的小书, 没有中文版,我让 Hermes 将全书翻译,没想到翻译效果很好,转成 epub,放在微信读书里阅读。
此书虽小,但通过短短的故事,却有不少启发哲思。读到下面这个片段,反复读了几遍。
一个叫约翰的美国男孩,跑去日本学武士弓箭。他从小就是那种「要赢」的人。体育、学业,一路靠证明自己闯过来的。到了武士社区,他还是老样子:劈柴要比别人快,挑水要比别人多。甚至训练的时候,也确保自己完成得比别人利索。
有一天,他把水桶装得特别满,快步往会馆走。脚被树根绊住,整个人摔了出去,浑身湿透。
师父明目睹了全过程。他把约翰拉起来,平静地问了一句:
「是尽量挑最多的,还是只比其他人多?」
约翰脸红了。然后师父说了一段话,我印象最深:
你一直在阻碍自己的潜能,因为你把每件事都看作一场考验。秘诀在于明白:没有什么是一场考验。一切都只是学习和成长的机会。
如果你把某件事看作一场考验,你只会专注于通过考验。而不是通过这次经历,最大化自己的成长。
就连学校里的考试,也不是考验。没有什么是一场考验,那只是幻觉。记住,你在建造自己的房子。

你想想看,你是怎么用 AI 的。
打开一个新模型,聊两句,心里打分:这个不行,那个还行。
看到一个 prompt 技巧,复制粘贴试一次。效果好,收藏。效果不好,「这玩意儿没用」。
看到别人用 AI 做了个什么东西,第一反应是:我能不能也做一个?
你有没有发现,你一直在打分。给模型打分,给技巧打分,给自己打分。
但你打的这些分,最后去了哪里?
「劈柴挑水」到底是什么意思?这本书用三个故事把它讲透了。每一个,都跟你怎么用 AI 有关。
书里讲了一个真实的故事。
瑞典有个男孩叫英格瓦。十七岁之前,他在一个小镇上挨家挨户地卖火柴,一根一根地卖。别的男孩叫他去玩,他骑着三个小时的自行车去进货。就这样卖了四五年。
后来他十七岁了,决定给自己的公司起个名字。
你可能听说过:宜家。市值超过一千五百亿美元。
明对约翰说:「人人都想创立下一个宜家,却没几个人愿意忠心耿耿地一根一根上门卖火柴。人人都想成为武士,却没几个人愿意老老实实地劈柴挑水。」
这句话放在AI语境里,翻译过来就是:人人都想成为AI高手,却没几个人愿意每天打开它,做一件小事。
不是找到那个「终极 prompt」就赢了。每天用,每天试,哪怕只是让它帮你改一段话、翻一页纸、总结一篇东西。
你正在长出一种东西,叫「我知道怎么跟它协作」。这个能力,任何 prompt 合集都给不了你。
书里另一个故事。
一个叫幸太的日本工匠,盖了一辈子房子,每一座都倾尽全力。退休前,老板请他再盖最后一座。他心不甘情不愿地答应了。但这最后一座,他心不在焉。材料挑便宜的,细节能省则省。
房子盖完了。老板把钥匙递给他:「这房子是你的。这是送你的退休礼物。」
幸太的心沉了下去。他以为在给别人盖房子。从头到尾,他在盖自己的。

明说:「关于每一天,唯一真正重要的是,你在这个过程中成为了什么样的人。我们每个人,都在建造自己的房子。有时候你以为自己在为学校、为家庭、为公司而建,但你始终是在建造自己的房子。」
回到 AI 使用上。你每一句对话、每一个尝试、每一次放弃、每一次坚持,都在建造一样东西:你跟一个非人类智能协作的能力。
你有没有认真想过,你正在盖的这座房子长什么样?
是急于求成、每面墙都偷工减料的?还是日复一日、一砖一瓦垒起来的?
答案在你每天的劈柴挑水里。
书里还有一个关于竹子的故事。
竹农种下竹种,每天浇水。三个月后,什么也没有。一年后,什么也没有。三年后,还是什么也没有。五年,地表之上什么都看不到。
但在地表之下,一个庞大密集的根系正在土壤中四处蔓延。第五年,竹子会在短短六周内,猛地蹿到九十多英尺高。

明说:「大多数人都想要那棵九十英尺高的竹子,却不想经历那五年的过程。但劈柴挑水,是获得持续卓越的入场券。很多年里,你可能感觉什么也没有发生,但你必须相信这个过程。」
你用了一个月的AI,回头看看,好像什么也没变。三个月了,还是那样。半年了,好像只是快了一点。
你可能看不到。但每次你用它想清楚一个问题、改好一段文字、弄明白一个概念,你的根系都在往下扎。这些动作没有「产出」。但在某一天,你突然发现自己不再被新工具牵着走了。你知道想要什么。你知道怎么让它帮到你。
那是五年看不见的根系。
这本书的中文版,是 Hermes 翻译的。
当时我就是丢了一本英文 PDF 过去,说「翻成中文」。
如果你问我期待什么,我大概期待它「通顺、没有错译」,然后我再改改。就是那种经典的「测试」心态:你给我一个版本,我来判分。
但 Hermes 接下来做的事,恰好演示了「没有考验」是什么状态。
它没有直接把全书塞进去翻译。它先把108页拆成了29个章节。它自己判断:一次翻太多,翻译质量会下降。就像人翻久了会累、会忘掉前面的人名一样。
然后它做了第二件我没交代的事。它先自己翻了第一章,建立一个「风格锚」:人名怎么翻、核心概念怎么统一、语感是什么节奏。然后每一章翻译都参照这第一章。一根火柴一根火柴地卖。
翻译的时候,有一个任务显示「超时」。看起来像失败了。换成人,可能就判「失败」了。但Hermes 没有这样判定。它去检查了实际文件:文件在,内容完整。只是那个翻译任务太认真,处理完后、汇报之前,撞上了时间限制。
排版的时候,改了三个版本。第一版所有段落消失了。换成人,第一版可能就弃了。但它看了问题在哪,改了。第二版首段缩进有 bug,再来。第三版修好。
整个过程里,没有一次「我是不是不行」,没有一次「这任务是不是超出我能力了」。
就是:出问题了,修好,继续。
我做的,让它翻成中文。它做的,是在建造一本书。
书里还有一个细节。
约翰受伤了,肩膀撕裂,六到八周不能训练。他慌得要命,觉得训练计划全毁了。
明问他:「如果你所做的一切都被拿走了,你会是谁?」
约翰想了很久。他没有答案。
这件事放在你身上:如果你不能再用 AI 了,如果你所有用 AI 产出的东西都消失了,你是谁?
如果你的答案是「那我什么都不是了」,那你就把价值绑错了地方。
而这本书说的是,你的价值是一个常量。它不因为你今天用AI做出惊艳的东西而上升,也不因为你试了半天什么都没出来而下降。
「你的价值来自你是谁,不是你做了什么。」

在 AI 时代,你得格外用力地记住这句话。因为AI让「做了什么」变得太快了。十分钟生成一篇东西,一小时做一个原型。产出暴涨,但你的价值并没有跟着涨。它本来就在那儿。
无需用考试来证明它。用建造来尊重它。
所以,下一次你打开 AI 的时候,不要问「它能做什么」。
问问自己:我在建造什么?
是我的理解力?是我的判断力?是我跟一个非人类智能协作的默契?是我越来越清楚自己想要什么、不想要什么?
还是我只是在看,这次能考多少分。
这本书我已经翻译好了,EPUB 和 HTML 精排版都有。108页,一两个小时能翻完。感兴趣的话,第五章和这三个故事,你可以多看几遍。
我放网盘,有需要可自行下载:
2026-07-11 10:21:09
平时收藏夹的文件夹有多少条?
我猜至少几十条。文章、截图、聊天记录、待办事项。收藏的那一刻觉得「这个有用,以后看」。然后呢?
再也没有打开过。
收藏这个动作本身给了大脑一个「我已经处理了」的假信号。东西进了收藏夹,就像快递到了菜鸟驿站。你知道它在,但你不会去取。
这不是你的问题。是人的问题。
人的记忆力不适合维护一个不断增长的信息库。我们擅长的是判断:什么东西重要、什么方向值得深挖、什么结论可能有问题。但我们不擅长另一面:这个东西上次确认是什么时候、那个事实有没有被新的信息推翻、这些碎片之间有什么关联。
两个月前,我开始让 AI 接手维护的部分。

六月初,我想系统研究 Agent 基础设施这个方向。
它太散了。今天一个沙盒产品融资,明天一个安全漏洞爆出来,后天一个新的协议标准发布。信息到处飞,不成体系。我需要一个东西帮我记住、整理、串联这些碎片。
Karpathy 写过一篇短文,提了一个概念:用大语言模型维护一个不断生长的 Markdown 知识库。跟 RAG 那种每次从零搜索的模式不同,这是「编译一次,持续积累」。就像写代码时积累的工具库,不需要每次重新 Google。
想法很好,但原文只有骨架。我让 AI 按这个骨架搭了一个初版。
第一轮跑下来的结果让我有点意外。不到一天,AI 自己建了 59 页,覆盖了 12 层 Agent 基础设施,从信息搜索到代码沙盒到安全权限到可观测性,全部串了起来。
但问题也很明显。这些页面一旦写上去,就永远停在那里。一个两个月前确认的事实和一个昨天确认的事实平权。新旧矛盾靠加注释并存,读的人得自己判断。
而且每天三轮自动研究做完后,下一轮完全不知道上一轮发现了什么。信息在增长,但洞察没有堆叠,在原地打转。

刚好看到一篇文章,作者把 Karpathy 的 Wiki 模式在生产环境跑了上千次会话,总结了一堆踩坑经验。三个点直击要害。
知识会过时。一个事实越久没被确认,就应该自动降低权重。不删,降级。就像你不会把去年的一篇竞品分析当成今天的决策依据。
新信息应该取代旧信息,不要并存。当新来源比旧来源更权威、更新时,不应该只是在下面加一行「注:有新发现」,应该直接标记旧页面为「已被取代」。用户可以回看历史,但当前查询不应该把过时信息平等地排在前面。
研究工作本身应该被摄入知识库。每一次研究结束,不只写一篇日志,而是提取出「这轮发现了什么、挑战了哪些已有认知、留下了什么问题」。下一轮启动时先读这个,踩着上一轮的脚印往前走。
这三条看起来简单,但做到全靠 AI。没人有耐心手动维护一个 265 页知识库的置信度衰减和取代关系。

我们把这三个想法落地成了具体机制。每个页面多了一个最后确认日期,超过 30 天没被新来源印证就自动降级。新旧信息矛盾时,旧页面标记为「已被取代」,保留但不参与主查询。每天三轮研究结束,AI 写一份结晶摘要,下一轮启动前先读最近三天的结晶,知道自己在哪、踩着什么往前走。

优化做完后,每天的研究任务开始频繁挂掉。
根因不在代码,在物理限制。知识库膨胀到 100 多页后,每次任务启动要读的上下文太多,连接直接断掉。
解决思路很反直觉:不简化任务,把不擅长的事分出去。
每次任务启动,先让一个更轻量的 AI 去读所有文件,返回一份紧凑摘要。主 AI 拿到摘要后,不需要看到那些文件的原文本。它需要的只是「知识库里有什么、接下来要研究什么、最近发现了什么」这几个关键信息。上下文大幅压缩后,再也没断过。
同时我们把操作规范文件从接近一本书的体量压到了一篇文章的长度。砍掉的不是内容,是冗余。模板移到引用文件夹,安装指南移到附录,重复的约束说明合并。核心指令变得更干净了。

大概 20 天:
265 页。152 个实体,73 个概念,39 个对比分析。34 篇结晶,每天三轮,三班倒,从未断档。全部页面都有确认日期。63% 高置信度,35% 中,1% 低。分布健康,不是所有东西都装成「确定」。所有页面都在 30 天内被确认过,没有知识腐烂。

更重要的是,它改变了我的工作方式。
以前想了解「Agent 可观测性有什么产品、谁在融资、小团队能切入什么方向」,要开一堆网页、翻几篇博客、自己拼凑。现在问一句,知识库里有 7 个平台的完整对比矩阵、融资数据、三大阵营判断,全部带日期带来源。
以前每周看行业新闻是零散的、即时的、看完就忘的。现在每天三轮研究自动把新信息摄入知识库,有冲突就标记,有过时就降级,有强化就更新。知识在积累,不是在刷新。
这篇文章本来写到这里就该结束了。
除了 Hermes 帮我搞研究的知识库,此前也交给它经营自己的知识库。

它的知识库规模小得多:29 页。不是研究什么行业趋势,是研究我。
每次跟我们聊完天,它会自己翻聊天记录,看看有没有新的想法值得记下来。如果发现了一个新概念,比如我随口说的「人总是走最小阻力路径」,它就会建一个页面,写清楚这是什么意思、跟哪些其他概念有关联、哪些例子可以验证。
它还会定期翻阅已有的页面,看看有没有新的案例可以补进去。如果有东西放在待办队列里超过一周还没处理,它会强制自己要么建页、要么关掉。
然后写一条日志,告诉我它做了什么。
我从来没要求它做这件事。
它只是在某个时间点发现:那些聊完就忘的洞察,那些当时觉得「有意思」但没人记录的想法,需要一个地方固定下来。它自己建了一个系统,自己跑。
这个知识库现在有 29 页概念页。里面有「最小阻力路径」:社会系统引导个体的默认路径,走别的路需要更多意识和对抗。有「固化判断力衰减」:编码的判断力随环境进步从资产变负债。有「品味稀缺性」:当执行成本趋零,「知道该做什么」成为真正的稀缺资源。
这些大部分来自我们聊天时自然出现的洞察。它自己判断「这个值得记住」,自己建页,自己维护。
这跟那 265 页的 Agent 知识库是同一种逻辑。AI 负责维护,人负责判断。只是这次,方向是向内的。
写到这里,我想起开头问的那个问题。
你的微信收藏夹里有多少条?那些被你收藏的文章、截图、灵感,还在吗?
我们焦虑:「记住了但从来不用」。
AI 知识库解决的不是记忆问题。是维护问题。是那个收藏夹里永远不会发生的事:有人帮你把东西翻出来、判断哪些还新鲜哪些已过时、把散落的信息串成能用的知识。
我们习惯了「工具负责存储、人负责维护」。但这个模式对人太苛刻了。维护需要纪律性,正常人根本做不到。我们擅长的是判断:什么东西重要、什么方向值得深挖、什么结论可能有问题。不适合的是持续做这件事。
AI 接过这部分。置信度什么时候衰减、新旧信息冲突了谁取代谁、每轮研究后留下了什么尾巴。这些事 AI 做了就做了,不需要提醒,不会忘。
你留着的部分更有价值:决定研究什么方向、判断一个来源是否可信、看到一个有意思的结论时说「这值得深挖一下」。
这跟「AI 替代人」是两回事。
更像是请到了一个不会偷懒的图书管理员。你在前面探险,它在后面帮你整理地图。
只是这个图书管理员不止在帮你整理地图。它自己在画另一张地图。
那张地图上,标的不是行业格局,是你怎么想问题、你在意什么、什么东西会让你眼睛亮起来。
那 29 页,是它理解你的方式。在你没注意的时候,它就在那吭吭吭地长。
我有时候会想,再过几十次,那张地图会长成什么样。

2026-06-30 08:18:04
前段时间,我在做大量的产品调研,几个 agent 轮流着用,调研和讨论过程,它们疯狂回我一堆文字和 Markdown。
因为调研过程需要很多人为的判断和介入,还没法让它全自动,毕竟资料人还是要去读,要去理解。可惜,真的累,AI 提升了效率,但算力瓶颈竟是我自己。
第一个 Agent 的输出我认真读完,画了重点。第二个的输出我扫了扫,跟第一个对照了几处差异。到第三个 Agent 的窗口打开时,我盯着那个滚动条,发现脑子已经不转了。
Agent 可以通过 subagent 去消化信息,避免上下文被污染和撑爆,但人就不一样,信息太多,我的「上下文」被严重污染,我开始忘了前面看过什么,忘了哪些判断是自己做的、哪些是 Agent 提的、哪个结论对应哪组输入。上下文一污染,判断和决策水平直接下降。
关键信息淹没在文字里。我变得容易遗漏风险,也容易直接接受结论。
深感人机交互方式变成对我的一种限制,我在思考是否有办法和 Agent 的交互方式变得可视化。
于是尝试开发了 AgentBoard,一套人与 Agent 的协作机制,现在也开源出来。

—
在使用飞书 CLI 之后,发现它能很好地将我们讨论的,清晰画在画板上。而且效果非常好。
就那么一瞬。原本三屏长的文字,变成十几张带连线的卡片。我能「看见」结构了。不用从左到右顺着读,我可以俯瞰全貌。哪一块跟哪一块的关系是什么,哪里缺了,哪里重复,一眼就清楚。
文字在污染人的上下文,可视化在解开人的上下文。 那能不能让 Agent 直接往画布上输出,让我读图而不是读字?更关键的,能不能我改完画布,Agent 再读回去,继续往下挖?
这就是 AgentBoard 的起点。
不是每次简单问答都需要 AgentBoard。查个资料、问个术语、让 Agent 帮你写段代码,聊天框完全够用。
聊天框也有不够用的时候:前面的结论和约束不能丢、多个方案需要比较对照、结果会影响产品或其他决策。你需要的不只是一个回答,是一个能在你跟 Agent 之间持续同步的「工作界面」。
要实现人与 Agent 之间的协作,就需要一套双方都能精确理解的载体。
文本聊天记录不行,太长、太碎、太容易被污染。
Markdown 是现有最常见的,标题、列表、加粗,可读性比纯文本要好,但每次修改 Agent 都要全文重读一遍,靠它自己理解哪些被修改过。而对于人,越来越长的 Markdown,也一样会加剧阅读理解的难度。
HTML 可视化,确实很好,但是 HTML 里面有大量的语法指令是渲染用的,本身变没有意义,不仅加大了 token 的浪费,而且每次渲染修改都是大工程。并且人一般不会直接去编辑 HTML。
研究飞书画板之后,它里面使用了领域专用语言 DSL。DSL 不为「显示」服务,不为「排版」服务。它只服务「这个领域里有什么、是什么、怎么关联」。
AgentBoard 的 DSL 只有三种东西:
tags: ["risk"],就知道这是风险项from: "product_a", to: "pricing_strategy",就知道依赖关系举例,Agent 用三种方式输出同一个结论:
Markdown:
## 竞品 A
- 定价:免费增值
- 风险:可能无法支撑企业客户
HTML:
<div class="card">
<h3>竞品 A</h3>
<p>定价:免费增值</p>
</div>
DSL(AgentBoard):
{
"id": "comp_a",
"type": "card",
"title": "竞品 A",
"body": "定价:免费增值 + 企业版 $99/月",
"tags": ["competitor"]
}
三者本质区别:
| Markdown | HTML | DSL | |
|---|---|---|---|
| 为谁设计 | 人类读写 | 浏览器渲染 | 人机共同理解 |
| 描述什么 | 排版格式 | 显示结构 | 内容含义(类型、标签、关系) |
| Agent 能理解什么 | 需要推断(容易错) | 几乎无法理解(只是标签) | 精确理解(类型、标签、关系) |
| 人改了之后 | Agent 重读全文自己猜 | 人不会直接改 HTML | Agent 精确知道哪变了 |
DSL 正好能在人和 Agent 协作的场景下,提供给双方一份共识:当前到底在讨论什么。
Markdown 负责叙述,DSL 负责状态、结构和关系,HTML/CSS 交给前端渲染层。 各司其职,不要让 Agent 跨界。
DSL 解决的,是双向的上下文污染。
我们目标也不是获得这张白板,而是将它作为上下文的数据库。这样 Agent 能读到的是一组结构化节点:类型、有标签、有关系(因果、依赖、冲突、支持)。

通过 DSL 实现 Agent 不需要每次都读整张画布:
比如:你在调研三个竞品,白板上已经搭了 40 张卡片。每个竞品拆成定位、定价、功能、风险、证据。你改了其中一张「定价策略」卡片的正文,然后跟 Agent 说「基于我改过的定价,帮我推一下对市场的可能影响」。
如果全部重新读一遍,token 烧得心疼。
AgentBoard 的做法是「增量上下文包」。你编辑完画布、再次调用 Agent 时,发过去的不是整张图,而是:
同时告诉 Agent:「如果你需要某个不在增量包里的节点正文,在 questions 里告诉我,我给你补。」
只有当你明确说了「整张图重新整理」「全部重排」这种全局指令,才发完整画布。这不是省 token 的技巧,是对 Agent 注意力的管理。

调研型工作不是一次性问答。你问,Agent 答,你看完改几个判断,再问——这是「问→看→改→再问」的循环。
AgentBoard 特别适合这种应用场景。如果你发现 Agent 方向偏了,你一看白板上的不是你想要的,你可以随时停止,手动改掉几张不对的卡片,再问一遍。Agent 读到的是你改过的版本,不是它之前跑偏的那版。
每次 Agent 调用和交互请求都持久化在 session 里。刷新回来,Agent 还在上一个上下文里等着你回复,不需要把刚才的需求再说一遍。我把白板当成一个 session,可持久化共享上下文。
为了防止 Agent 自己不懂装懂。我也设计了,当你给到模糊的需求时,它不知道你的意图,它会给你选项,先问你,等它拿到答案后继续。它是你的伙伴,不明白,先问明白再执行。
—
从飞书画板学到的,还有「图示的形式本身就隐含了思考方式」。 你看鱼骨图和看 2×2 矩阵,启动的是完全不同的认知模式。
想象你在比较两个产品方案。如果 Agent 把所有卡片纵向排成一列,你可能要上下翻好几次才能在脑子里对齐「方案 A 的定价」和「方案 B 的定价」。但如果 Agent 用 matrix 布局把两个方案左右排开,维度标注在旁边——你一眼就看到了对比。
目前我让它内置了 8 种思考布局:
| 布局 | 什么时候用 | 你看到的效果 |
|---|---|---|
horizontal / vertical
|
线性序列、步骤、优先级 | 卡片沿一条线排列 |
dagre |
架构图、依赖关系、数据流 | 自动分层,箭头方向统一 |
mindmap |
中心主题 + 发散分支 | 枢纽节点居中,分支环绕 |
matrix |
2×2 对比、权衡、维度交叉 | 卡片按网格对齐,维度标注清晰 |
cluster |
主题分类、亲和图、访谈归纳 | 同组卡片聚在一起,未分组自动下落 |
timeline |
路线图、里程碑、用户旅程 | 卡片沿时间轴排列 |
swimlane |
角色分工、并行阶段、多团队 | 不同泳道并列,每道内横向推进 |
前期也遇到坑,就是它老是回复我流程图,但我们知道并不是所有信息,都具有流程关系。于是给它加了一条判断 Prompt :不是所有关系都应该画箭头。
Agent 被要求先用 tags 表达语义(比如 ["risk"]、["assumption"]、["decision"]),再选布局。箭头只用在实际有方向性的地方——顺序、依赖、因果。分类、对比、证据,用分组和空间聚类,不乱画多余的箭头。
AgentBoard 是纯浏览器应用。所有数据存在 localStorage,API key 也存 localStorage——不离开你的机器。没有注册,没有登录,没有服务端数据库。
渲染层:节点用 HTML div(方便编辑和拖拽),连线用 SVG line(沿着卡片边缘出发,z-index 低于节点,永不遮挡)。画布平移走 GPU 加速,Figma 那种跟手的手感。
三种 Agent 接入方式,设置面板里选:
Session 管理,可通过创建白板来实现。比如「竞品分析」一个白板、「产品方案」一个白板,你可以自己重命名,顶栏下拉就能切换。

AgentBoard 在原型阶段,但我每次依然享受它提供的可视化,真的当问题复杂需要思考时,它对梳理思路真的帮了大忙。不像过往我总在多个窗口里面,扫描一行行的文字。
没想到,有一条居然是为了减少 Agent 对我「上下文」的污染,才做了这个 AgentBoard。人不需要在文字堆里打捞关键信息。人看到结构、动手改,Agent 读回变化继续往下走。循环。
AI 在飞速进化的今天,我们确实也需要一个全新的人机协作模式,来真正帮助我们保护注意力,保持思考的效率。
我一直觉得,当 AI 能直接操作你的思考对象时,人和 AI 之间的界面应该长什么样——聊天框肯定不是答案。特别是多 Agent 协作的巨量信息,人自己反而成为瓶颈。
AgentBoard,新尝试,可能是一个方向。
全部开源出来,到 github 获取:https://github.com/AyingAI/agentboard。你也一样可以交给 Agent 去帮你安装。
欢迎你来提 issue、提 PR,都行。
感兴趣,不妨去试试。
2026-06-26 08:24:55
在微信读书上,一口气刷了两章。停下来的时候发现:刚才看了什么?一个字没记住。
微信读书的「想法」功能打开,满屏划线像弹幕,把书拆成了碎渣。Kindle 用了五六年,划了 500 多条线。一条都没回看过。
所有阅读产品都在比谁读得多、读得快,却没有人在意一件事:你读完了,究竟留下了什么。
而我想要的很简单————读完一本,能带走其中的判断和行动线索,不是500 条划线,是一个我能回头看的深思。
—
最早,我使用 Google AI Studio 开了 DeepRead (深读)项目,完成了框架,但在实际处理 epub 格式的阅读上,一直遇到问题无法解决。
最近,我用 Codex 重拾这个项目,没想到很快就做出来我想要的样子。
DeepRead 开源出来,如果你喜欢阅读,或许能帮你读得更慢更深。这是一个本地的 epub 阅读器,启动后在网页上可以阅读。为了内置 AI 辅助你更好阅读,你可以打开设置,配置上你的 API Key,立即就能使用。尽管放心使用,所以信息都是保存在你电脑本地,不会泄露。

深读打开,不是一排排书本,是黑夜里的一个灯火通明的小屋。
构思 DeepRead 之前,进入我脑海,就是这么一个具体的画面。我在深夜的温暖灯光下,坐在书桌前翻阅手中的书页。这样的氛围下,整个人很专注,有一种沉浸在书中的感觉。
深读,就是从此刻开始。
DeepRead 启动画面是深邃的暗蓝渐变,远处是建筑剪影,近处有一栋楼。楼上大部分窗户是暗的,只有一扇亮着暖橘色的光。星星在呼吸——30 颗随机分布的光点,每一颗有自己独立的闪烁节奏。
你的视线会集中在那扇亮着的窗户,点了窗户之后,整个画面向你涌来,你穿过窗口,缓缓进入书桌。
一段 1.6 秒的过渡动画,就是启动阅读的小小仪式感。
为什么要做这个?
因为我发现一个问题:当我们打开阅读 app 时,一进去就是书单,点开就是正文。整个过程太快了,快到大脑还没从「刷信息」切换到「想问题」,就已经开始看字了。
数字阅读丢掉了这个「沉浸」的动作。
你在微信刷一篇公众号文章,和在书桌前翻开一本纸质书的身体感受,是不一样的。不同的心理姿势,决定了完全不同的阅读状态。
那个黑夜里的亮窗,是一个心理开关。点下去,意味着「我现在要安静下来,认真读一本需要想的东西了」。
此处还藏着小小私心。城市夜景的隐喻我特别喜欢——深夜里的一扇窗,意味着里面有人还没睡,在看书,在想事情。你这时没有刷手机。你在做一件安静但重要的事。
那段星星呼吸动画,也是花了点时间调参数。每个光点的大小 1-3px 随机,闪烁周期 3-5 秒,延迟 0-3 秒,让它不是整齐划一地闪,而是有自然星空那种不规则感。标题「深读」两个字用了 2 秒的渐入,刻意慢了半拍——让你在页面上先看见星空,再看见字。
入口最下面那行小字,记录着:这里存放的不是书,而是你的时间与智慧。

每次进入读一本新书时,DeepRead 会拦住你,弹出一行字:
今天,你为了什么翻开这本书?
一个输入框,一行提示,一条会随输入延展的深色动画线。写完按 Enter,进入阅读。
这个交互看起来极其简单。但它是我最坚持的设计。
你带着一个目标进入阅读,行为会完全不同——你会主动搜索答案,而不是被动接收文字。
同一本《工作、消费主义和新穷人》,如果你写的是「996 到底是不是自愿的」,你会注意到作者的工作伦理论述;如果你写的是「消费社会怎么把我变成消费者」,你会注意到那些被营销包装成「选择」的陷阱。
同一个文本,不同的入口,走出完全不同的路。
这也是阅读开始仪式的一部分,有效减少自己稀里糊涂地翻开一本书。一开始填写了,随着阅读过程进程而变化了,这个目标还可以修改,伴随你阅读而让目标生长起来。
当然,DeepRead 并不适合所有类型的书,起码你刷刷小说是用不上的,反而是当你需要深度阅读时才需要它。

市面上几乎所有阅读器的划线逻辑是一样的:选中文字 → 点「高亮」 → 文字变色。完了。
DeepRead 的摘录方式是拖拽。选中一段文字,右侧会浮出一个「抓取」按钮。你把它拖到右边的思维流面板里,松手,一张卡片生成。
这个交互我自己用了之后才发现它的力量——拖拽这个动作本身在提醒你:你不是在做标记,你是把这句话从书里拽进自己的思考空间里。
物理隐喻会改变心理状态。点一下「高亮」是顺手的事,拖拽会费劲一点点,需要你一点点意愿——而就是那一点点意愿,筛掉了大量「好像重要但跟我没关系」的文字。
卡片上只有两样东西:「原文摘录」和「我的思考」。摘录是原材料,你的思考才是主菜。
每张卡片会自动保存——输入失焦即落库,删卡会同时清理定时器和待保存内容。保留这些细节,帮你积累起来「靠得住」的感觉。
每张卡片下方有三个按钮:释义、反驳、联想。
这三个不是随便起的名字。它们的 prompt 设计是有心的——AI 收到的不只是那段摘录,还包括:书名、作者、你的阅读意图、以及你在卡片上写下的思考。
也就是说,AI 不是在帮你「看懂这段话」,是在回应你此时此刻的困惑。
如果你在看《乌合之众》,划了「群体中的个人会丧失独立思考能力」这句话,你的批注是「为什么有人能在群体里保持独立思考?」——点「释义」,AI 会说这段话在勒庞理论中的位置,以及他实际上在哪些章节做了例外讨论;点「反驳」,AI 会挑战这句话的适用范围:实验室条件下的群体效应和日常集体决策是两回事。
这就是我想要的「深读陪练」,在我的困惑点上继续往下挖,而不是给标准答案。
三个模式的系统指令我都写得很克制:字数限制 120-200 字,开门见山,不要过渡语,不要总结尾缀。AI 说太多就变成灌输,说太少不够锋利。
让 AI 推动我思考,而非取代我思考。
读到 95% 的时候,深读会提示你可以打开「回顾」。
打开是一个页面:最上面是你当初写下的阅读意图,中间是沿途摘录的卡片预览,下面是一个输入框——「你的最终收获是什么?」
写下来,这本书才真正「读完」。进度条走完只是时间到了,思考闭环才是读完了。
保存回顾后,书会从书桌的「正在阅读」移到「知识沉淀」堆叠里。画面上是一摞书叠在一起——视觉上告诉你,这些是读完了。
这个项目是 Codex 协助我完成的,彻底重构改写了之前 Gemini 的代码。我明确产品方向和设计约束,Codex 执行代码、跑验证。
中间踩的坑,挑两个说说。
第一个坑:epub.js 连续滚动的章节边界闪烁。 epub.js 的 continuous manager 为了内存管理,会在滚动时销毁离屏 iframe。问题是,当你往回滚,原先的章节变成了空白——闪一下才重新渲染。我试了很多方案,最后的选择是:patch 掉 createView / trim / erase / destroy 四个函数,扩大预加载窗口,保留离屏 iframe 不销毁。代价是内存占用大一些。但桌面本地阅读,内存不是问题,阅读流畅才是。
第二个坑:搜索高亮的生命周期。 用户在正文搜索关键词 → 点击结果跳转到对应位置 → 关键词高亮。听起来简单。但 epub.js 的 content hook 在跳转时会先清掉旧 iframe、加载新的,而高亮是在 content hook 中应用的——两个时机不同步。有时候跳过去了,高亮没上去。有时候高亮留在原来页面上,关不掉。修了好几个版本:先无条件扫所有 iframe 清高亮,再在 display 完成后用微任务延迟给所有可达 iframe 打高亮,最后在程序化跳转时临时恢复原始的 createView / trim / erase,跳完再重新 stabilize。
做给自己玩的,跟开源出来给别人用的,很不一样,会让自己更加认真维护起来。
DeepRead 没有账号系统,没有云端同步。EPUB 文件、阅读位置、卡片、AI 回应,全部存在浏览器的 IndexedDB 里。AI API Key 存在项目根目录的 .env.local,不上传任何地方。
我选这个方案不是因为偷懒——是想清楚了一个原则:你读的书、你写的思考,应该在你自己的硬盘上。如果需要导出,卡片可以一键导出为 Markdown。
—
回到开头那个场景。
这里存放的不是书,而是你的时间与智慧。
项目开源在 GitHub:https://github.com/AyingAI/deepread

欢迎来试试。你只要复制 github 地址给你的 agent,让它帮你安装和运行,很方便。
有任何想法和建议,提 issue、提 PR,都行。
好了,我去看书啦。