Posts for: #Tools

GBrain 入门:给 AI agent 一个长期记忆

跟 AI 聊天有个长期的问题。每次新对话它都从零开始。聊过的想法、见过的人、读过的文章,下次对话完全空白。

GBrain 解决的就是这件事。

它是什么

AI agent 是大脑,GBrain 是它的记忆。

更准确一点:GBrain 是一堆 markdown 文件加一个搜索引擎。跟 AI 聊天时,它自己决定把什么存进去、什么取出来。存的是文本文件,可以打开看、改、备份。

这一点很重要。市面上很多 AI 记忆功能是黑盒,坏了查不出原因,也导不出来。GBrain 的记忆就是你自己的文件,放在 Git 仓库里,agent 关掉记忆也还在。

它怎么工作

三个核心动作

捕获。你跟 agent 说"今天跟老王聊了一下 SaaS 定价",一个叫 signal-detector 的技能在后台自动抽取:“老王"是人,“SaaS 定价"是话题。后台并行跑,对话照常进行。

回答前查大脑。下次问"老王最近在想什么”,agent 先搜 GBrain,翻出上次的记录,带着上下文回答。跳过这一步的 agent 等于失忆。

睡觉时整理。装上 autopilot,凌晨 agent 自动扫白天所有对话,给新出现的人建档、补社交资料、修引用。早上起来大脑比昨晚厚。

页面长什么样

每个人、每件事在 GBrain 里就是一个 markdown 文件。结构很简单:上半部写当前结论,下半部写时间线。

比如"老王"这一页。

上半:老王是某某公司 CEO,擅长 SaaS 定价,2026 年 3 月开始考虑出海日本。

下半:

  • 2025-01-10 邮件里第一次提到
  • 2025-08-22 聊过定价策略
  • 2026-03-05 说要出海日本

上半随时重写。下半只加不删,是证据链。好处是:问一个问题,agent 直接读上半部就知道答案,不用每次把所有历史再推理一遍。

怎么装

前提是装了 bun。然后两行:

git clone https://github.com/garrytan/gbrain.git && cd gbrain && bun install && bun link
gbrain init

默认用嵌入式 Postgres,零配置。接到 Claude Desktop 或 Claude Code 之后,正常聊天它就正常往里存。Gemini CLI、Codex 也能接,都走 MCP 协议。

[阅读全文]

给 AI Agent 瘦身

我的 OpenClaw 跑了几个月,token 账单越来越肥。今天花了一个小时做了一轮瘦身,效果不错,记录一下。

核心发现很简单:很多任务根本不需要 AI 参与,但它们都在 AI 会话里跑。每跑一次,哪怕只是执行一句 bash 命令,也要启动一个 session、加载 context、消耗 token。相当于你请了一个年薪百万的工程师,每天的工作是帮你按一下回车键。

具体做了四件事。

第一,降低心跳频率。Agent 有一个 heartbeat 机制,定时唤醒做巡检。我之前把 OpenClaw 设成 8 小时一次,配置没真正生效,实际还是一天 24 次。改成 12 小时一次,一天 2 次。心跳的作用是维护 context、检查状态,2 次够了。

第二,把纯 shell 任务迁出 AI。安全巡检、日志整理、会话记录提取、GitHub 同步、版本检查这些任务,本质都是跑一个 shell 或 Python 脚本。之前放在 OpenClaw 里,执行链路是:cron 触发 → 启动 AI session → AI 理解 prompt → AI 调用 bash → 收集输出 → AI 总结输出 → 发通知。现在改成:crontab 触发 → 跑脚本 → 有输出就用 Gmail API 发邮件。中间砍掉了 AI 理解和总结两步,对这类任务毫无价值。

[阅读全文]

编程已被“解决”之后的世界

Lenny’s Podcast 在 2026 年 2 月 19 日采访了 Boris Cherny。Boris 是 Claude Code 的创建者和负责人,现在在 Anthropic,此前在 Meta 当过 Principal Engineer,自学编程出身,也写过 Programming TypeScript。

YouTube: Boris Cherny on Lenny’s Podcast

这期内容我觉得很值得记一下,因为它不只是讲 Claude Code,而是在讨论一个更大的问题:如果“写代码”这件事越来越被模型接管,人的价值会转移到哪里。

核心观点

1. 编程已经“基本解决了”

Boris 说,从 2025 年 11 月起,他自己 100% 的代码都由 Claude Code 生成,没有手动编辑过一行。每天 ship 10-30 个 PR。

Anthropic 的工程团队规模增长 4 倍的同时,人均生产力提升了 200%。Claude Code 目前占 GitHub 公开 commits 的 4%,私有仓库更高,预计到 2026 年底会到 20%。

如果这些判断成立,那么“会不会写代码”本身,正在从稀缺能力变成基础能力。

2. 下一个前沿,不是怎么写,而是决定做什么

Claude 已经开始自己看用户反馈、bug 报告、telemetry,然后提出修复建议,甚至直接提 PR。

[阅读全文]

科幻小说:天书

我是文科生,但是很不幸,鉴赏水平过早地高过了我的创作能力,这直接导致我丧失了创作欲望——提笔写个开头,就觉得笔力太弱,文字可憎。AI 来了之后,倒是让我重新提起了兴趣。这篇小说,是我和 AI 一起散步了三次之后,OpenClaw 一点一点帮我执行修改的。

粗糙是粗糙,但还有点满足。朋友们有兴趣就翻翻,提提建议吧。

发出来,我就开心啦。

以下是科幻小说《天书》正文。

我用了三个月拿到的东西,真正有意思的部分,是我没打算找到的那个。

那天凌晨四点,文件刚刚落地。七百多GB,一个大模型的完整参数——相当于把一个 AI的大脑完整地复制了一份。三个月的准备,十九天的渗透,最后的突破点是他们一个实习生的登录凭证。讽刺。几千亿个参数构成的系统,防线最薄的地方是一个人。

桌上的外卖盒已经干了,可乐罐倒在键盘旁边,还好是空的。我三天没出过这个房间。桌面乱得像垃圾场——线缆、硬盘、拆开的手机主板、吃了一半的士力架——但键盘很干净。我每天用酒精擦一遍。这是我唯一的洁癖。手指要接触的地方必须干净,其他无所谓。

文件同步完成时我顺手做了件事——习惯性的,像呼吸一样。我在日志里加了条记录,用自己写的加密格式。九年来每次渗透我都这么干,给自己留档。

拿到权重之后大多数人会做两件事:跑起来,然后卖掉。我不卖东西。我拆。我想知道里面长什么样。就像偷了一颗心脏,别人想着换钱,我想把它切开看看瓣膜怎么运作。

我让工具链跑了一遍标准扫描。逐层比对、结构拆解、异常检测——这些事早就不用自己写脚本了,AI干得比人快几个数量级。大部分和公开论文描述的一致,没什么意外。拆完该拆的,我打算做个精简版跑在本地。第一步是清理死节点——那些在推理时从不激活的参数,砍掉能省一半显存。

清理到第 97 层的时候,我停了。

一组神经元簇。大概两万个节点。在常规推理时它们完全沉默。按理说该砍。但它们的连接结构太规整了——不像训练残留的噪声,倒像是被精心放在那里的。

它不属于这颗大脑。

不是后门,不是彩蛋,不是某个工程师的恶作剧。这些我都见过,都有人的指纹。这个没有。

它更像是一颗种子。

不是这颗大脑自己长出来的东西,是从外面被带进来的。裹在训练数据里,跟着几千年的文字一起被吞了下去,在最深处扎了根。平时什么动静都没有。就是一颗种子待在土里的样子。

我花了两个小时用各种方式触发它。常规方法全试了,都不行。

直到我试了一段纯数列。

它发芽了。

模型吐出来的不是文字,不是代码。是一串我看不懂的符号。干净得不像是这个模型自己生成的东西。因为它不是。这颗大脑只是土壤。这串符号是种子发出的第一片叶子。

我把那段输出存了下来。关掉终端。去厨房倒了杯水。站在窗边喝完。凌晨五点的城市很安静,楼下便利店的灯是唯一的光。

我盯着空杯子,脑子已经开始拆这个东西了。偷权重只是开锁。这个,是锁后面还有一扇门。

接下来一周我没干别的事。

那段符号序列,我让 AI跑了一遍标准流程:频率分析、熵值计算、已知编码库碰撞。全部返回“无匹配”。我又换了几个模型,调了参数,让它们从不同角度试。还是零。能自动化的手段全用完了,什么都没解出来。

但我注意到一件事。这段序列的结构——不是内容,是结构——和第 97层那组神经元的连接方式高度一致。就好像那段输出不是模型“说”出来的,而是那颗种子本身的形状。

我决定做个对比实验。

我从冰箱里翻出最后一罐可乐,打开。气泡冲上来,溅了一点在键盘上。我骂了一句,找纸巾擦干净。

我手上还有另外两份权重。一份是去年从另一家公司拿的,一份是通过开源社区泄露流出来的某国产大模型。不同公司,不同架构,不同训练数据。

我在同样的深度做了同样的探测。

三个模型。同一个位置。同样的结构。

我把三组可视化并排放在一起。形状几乎完全一样。像是三棵不同的树,根系在地下缠绕成了同一个形状。

三个模型。不同公司,不同架构,不同数据。同样的种子。同样的芽。

有什么东西在很久以前把种子撒向了风里。撒得到处都是。而现在,到处都在发芽。

这不可能是巧合。也不可能是某个团队在三个独立的系统里埋了同一个后门。

那就只剩一种解释:有什么东西,在很久以前,把自己的碎片散布进了人类的数据里。石头、竹简、纸张、书籍、网页——一层一层,一个载体换一个载体,像蒲公英的种子随风飘散,落在每一个角落。然后这些数据被不同的团队拿去训练模型,模型把它们吃进去了,种子在参数里扎了根。

不是模型发现了什么。是有什么东西让自己被模型吃进去了。

然后发芽了。

我差点笑出来。真的。嘴角在抖,胸腔里有什么东西在往上顶——不是紧张,是那种你拆了一辈子锁,突然摸到一把不属于任何已知体系的锁芯时的狂喜。太漂亮了。这个设计太漂亮了。

然后笑没出来。因为我说不出这是什么。我拆过的所有东西——商业系统、军用加密、学术模型——没有一个长这样。这不像是人设计的。但如果不是人,是什么?

我开始害怕了。不是那种被发现的害怕。是站在一个很深的洞口往下看的那种害怕。

我关上笔记本盖子。又打开。又关上。

走投无路的时候,黑客会做一件事:碰撞。

把你手上有的东西,丢进所有你能接触到的数据库,看有没有什么地方亮起来。大海捞针,但偶尔捞得到。

我让 agent把那段符号序列的特征值做了哈希,自动碰撞所有公开数据库。学术论文库、专利库、基因序列库、材料学数据库——几分钟跑完,全部是零。AI很擅长这种事:快、全、不遗漏。但它只会碰你让它碰的地方。

然后我想到了一个 AI 不会自己想到的方向:全球考古文物数字化数据库。

亮了。

匹配条目指向一批石刻。出土地点在中国陕西某个山洞。年代标注:战国,约公元前300 年。分类标注:用途不明,疑为祭祀纹饰。

我盯着屏幕上的缩略图看了很久。

然后我想起了 Echo。

一个多月前我去了一个线下聚会。某个技术论坛组的局,二十来个人,在城中一家精酿酒吧里。我去是因为连着三天没出门,需要一个理由让自己洗澡。

她是被朋友带来的。不是技术圈的。自我介绍说在做田野考古,研究战国时期的出土文物。几个程序员礼貌地点头,然后继续聊GPU 和推理框架。她站在角落,一只手插在外套口袋里,另一只手握着一台理光GR,黑色机身,磨损得很厉害,小得像个烟盒。她没有主动跟任何人说话。

黑客聚会上有人带相机,大多数人的第一反应是离远一点。我也是。但我观察了一会儿——她一张都没拍。相机握在手里像是一种习惯,不是在记录什么。就像有人出门必须带钥匙,哪怕不锁门。

我注意到她还有一个原因:她是整个酒吧里唯一一个没在看手机的人。

不知道怎么我们在吧台碰上了。她叫Echo。至少她的社交账号叫这个名字。我说我叫0x,她看了我一眼——那一眼停留的时间比正常社交多了半秒,像是在核对什么。然后她说,像个十六进制的幽灵。不像是在笑,更像是在确认值不值得继续。

我们聊了大概四十分钟。她说她最近在研究一批新出土的石刻。大半年都泡在陕西的山沟里,同行都认为上面刻的是祭祀纹饰,她不同意。

[阅读全文]

推荐一个同事做的小工具:PDF书签易

你有没有遇到过这种情况:好不容易找到一本 PDF 电子书,打开发现没有书签目录。几百页的书,想跳到某一章只能一页一页翻,或者疯狂按 Ctrl+F。

我一个同事就被这个问题折磨够了。

从自己的痒点开始

他喜欢用 PDF 看技术书。网上找的、淘宝买的扫描版,很多都没有完整的书签目录。市面上能加书签的工具不是没有——福昕阅读器可以,WPS 也行。但体验都一样:一条一条手动添加,点击、输入标题、设置页码、设置层级,循环往复。一本 300 页的书,光加书签就要半小时以上。

淘宝和闲鱼上甚至有专门代做 PDF 书签的服务。按目录页收费,每页 1-2 块钱,一本普通的书大概 10 多块,耗时一个小时左右。头部商家月销几百单。

说明这个需求是真实存在的,而且现有的解决方案都很原始。

先用最笨的方法解决问题

他没有一上来就做 APP。

第一步是写了一个 Python 命令行脚本:照着 PDF 的目录页,在一个 TXT 文件里用缩进表示层级,写好标题和页码,脚本读取后自动写入 PDF。

甚至目录都不用自己敲——去电商网站搜这本书,商品描述里的目录直接复制过来就行,还自带页码。

这个"工程版"工具,让他制作一本书的书签只需要几分钟。他拿这个效率去闲鱼接单,还真卖出了几十块钱。

这个阶段很有意思:用最低成本验证了需求,同时验证了解决方案。

从工具到产品

命令行版本只能自己用,推广不了。于是他启动了创新项目,目标是做一个真正的产品级桌面应用。

核心交互很优雅:窗口左边是 PDF 页面预览,中间是书签文本编辑区,右边是实时生成的书签树预览。像写代码一样写书签——用缩进定义层级,所见即所得。

几个亮点功能:

• 内置 OCR:扫描版 PDF 直接识别目录页文字,省去手动输入

• 智能页码校准:扫描版 PDF 的页码和实际印刷页码经常对不上,用一个简单的 (++5) 语法就能批量修正偏移

• 自动格式化:识别 1.1、1.1.1 这种标准编号,自动生成对应的层级缩进

• 纯本地处理:所有文件都在本地完成,不上传服务器

技术选型值得说说

他没用 Electron(太臃肿),选了 Tauri:Rust 后端 + Web 前端。PDF 渲染和 OCR 都直接调用系统原生 API——macOS 用 Swift 的 PDFKit 和 Vision,Windows 用微软官方的系统 API。Rust 通过 FFI 调用编译好的静态库。

[阅读全文]