跳到主要内容

Agili 的 Hacker Podcast 2026-04-01

欢迎收看 Agili 的 Hacker Podcast。今天我们探讨大语言模型在漏洞挖掘与终端控制上的新边界,并看看极低比特参数如何改变本地 AI 的运行方式。

Claude Code 终端智能体架构与边界

智能体运行机制

Anthropic 开发的 Claude Code 是一款专为开发者设计的命令行界面(CLI)智能体。近期泄露的源码显示,该系统包含超过 809 个文件和约 50 万行代码。系统运行遵循一个闭环流程:接收终端输入指令,调取历史记录结合系统提示词发送至模型,模型决定是否调用内置工具,最后通过终端渲染输出。

这种“客户端工具集与服务端逻辑分离”的架构允许服务端快速迭代。讨论区有开发者指出,50 万行代码对于一个 CLI 工具显得臃肿。这些代码包含了大量防御性逻辑、上下文清洗器和工具重试机制,用于防止大语言模型产生幻觉或执行破坏性操作。

工具集与终端渲染

系统内置了 50 多个工具和 40 多个斜杠指令,涵盖文件操作(如 FileEdit、Grep)、Bash/PowerShell 执行,以及基于模型上下文协议(MCP)的资源读取。

终端渲染采用基于 React 的 Ink 库。这种机制类似于小型游戏引擎,将组件栅格化为 2D 画面,进行差异比对后生成 ANSI 序列输出。部分用户反馈,这种无头浏览器转文本的渲染方式会导致 ASCII 到 Unicode 的转换错误,破坏 Unix 管道的兼容性。

Vibe Coding 与治理争议

泄露事件引发了关于 Vibe Coding(通过向 AI 描述感觉或提供截图生成代码)的讨论。支持者看中其极高的原型开发速度,反对者批评这种方式会导致代码库不可维护。针对智能体的失控风险,社区主张将语言模型视为无状态的不可信函数,由外部刚性数据库(如 SQLite)控制工作流,避免依赖模型在上下文窗口中自我管理状态。

隐藏功能探索

源码揭示了多个未上线的特性:

  • Kairos:支持会话间记忆巩固的持久化模式。
  • Coordinator Mode:主智能体拆解任务并分发给并行子智能体的协调模式。
  • Auto-Dream:在会话间隙自动回顾并整理学习知识。

AI 独立编写 FreeBSD 内核级漏洞利用代码

漏洞触发机制

安全研究员 Nicholas Carlini 利用 Claude 发现并编写了针对 FreeBSD 内核 kgssapi.ko 模块的 0-day 漏洞(CVE-2026-4747)利用程序。该模块在处理 RPC 报头时缺乏边界检查,系统将凭证体拷贝进 128 字节的栈缓冲区。若凭证长度超过剩余的 96 字节,会引发栈溢出,覆盖局部变量和返回地址。漏洞影响 FreeBSD 13.5 到 15.0 版本暴露在 2049 端口的 NFS 服务器。

利用策略与执行

AI 构建了复杂的面向返回导向编程(ROP)链。由于单次 RPC 凭证存在 400 字节长度限制,攻击需分 15 轮发送数据。首轮调用 pmap_change_prot() 将内核 BSS 段设为可执行;后续 13 轮分批写入 432 字节的获取 shell 机器码;末轮跳转执行。每轮溢出后,NFS 工作线程会通过 kthread_exit() 干净退出,避免内核崩溃。

获取 shell 的机器码分为两步:在被劫持线程中创建新内核进程并切换栈指针,随后调用 kern_execve() 将进程替换为 /bin/sh,并手动清除 P_KPROC 标志位进入用户态。

攻防平衡的新考量

AI 准确理解了充斥语法错误和口语化的“意识流”提示词,生成了内核级利用代码。这降低了漏洞挖掘的门槛。安全从业者认为,传统的单元测试无法应对此类复杂逻辑缺陷,防御方需要转向 AI 驱动的模糊测试(Fuzzing),让模型学习海量测试数据和日志轨迹来定位后门。

仅用 13 个参数提升大模型推理能力

研究发现

研究人员提出 TinyLoRA,将低秩适配器的规模缩小至极值。实验显示,仅训练 13 个参数(bf16 格式,共 26 字节),即可使 8B 规模的 Qwen2.5 模型在 GSM8K 小学数学基准测试中达到 91% 的准确率。这种极低参数量下的性能提升在 AIME 和 MATH500 测试中同样有效。

强化学习的优势

这种高比例的性能回收依赖于强化学习(RL)。若采用有监督微调(SFT),需增加 100 到 1000 倍的参数更新才能达到同等水平。强化学习的奖励机制针对最终结果,而非逐字预测。低维度的 LoRA 向量对模型键值对(KV)计算进行近乎线性的修改,在数十亿维的参数空间中找到了引导现有电路的特定维度。

机制解析与局限

社区讨论指出,GSM8K 数据集高度饱和,Qwen 模型在预训练阶段已具备解题能力。TinyLoRA 的作用是“最后一公里的对齐”,教会模型通过推迟生成句子结束标记(EOS)来延长思考链。如果少量参数就能解锁推理能力,未来的研究重心将从训练模型转向引导模型。该方法已被集成进 PEFT 库主分支,在 3B 至 7B 规模模型上展现出高性价比。

1-Bit 大语言模型的本地化部署尝试

核心参数与性能

PrismML 发布了 1-Bit Bonsai 系列大语言模型,专为智能手机及数据中心设计。Bonsai 8B 占用 1.15GB 内存,比全精度 8B 模型小 14 倍。更轻量的 4B 和 1.7B 模型分别占用 0.57GB 和 0.24GB 内存,在移动端设备上可达每秒 130 个 token 的生成速度。该模型采用每 128 位权重共享一个 FP16 缩放系数的方案,实际有效位数为 1.125 位。

实际表现与缺陷

Bonsai 8B 在 RTX 3090 显卡上的吞吐量达到 190 token/s。模型能胜任 R 语言脚本生成、LaTeX 公式撰写和 SQL 调试。在未配备专用显卡的旧电脑上,通过优化 AVX2 内核也能达到 12 token/s。

1-bit 模型在逻辑推理上存在明显缺陷。测试显示其无法准确回答“草莓中有几个 r”等经典问题,并会虚构科学历史事实。白皮书将其与 16 位全精度模型对比,略过了目前主流的 INT4 量化标准。

部署环境要求

受限于特殊的张量类型,标准的模型加载器无法识别 Bonsai。用户需使用专用的 llama.cpp 或苹果 MLX 分支框架进行推理。

TruffleRuby:基于 JVM 的高性能 Ruby 实现

项目定位与性能

TruffleRuby 是一个基于 Java 虚拟机(JVM)的 Ruby 语言实现,目前隶属于 GraalVM 项目。它结合 Graal 动态编译器与 Truffle 抽象语法树解释器,在纯 Ruby 编写的 JPEG 编解码等长耗时计算任务中,运行速度比官方参考实现 MRI 快 2 到 3 倍。

核心优化技术

TruffleRuby 包含多项底层优化机制:系统根据运行假设进行激进优化,假设失效时安全退回解释模式(去优化);通过分析对象作用域避免不必要的内存分配(逃逸分析);提供无性能损耗的调试追踪功能。它也是少数能直接优化 C 语言编写扩展的 Ruby 实现,支持大部分原生数据库驱动。

生态与扩展兼容

频繁在 Ruby 与 C 原生代码间交互会限制 TruffleRuby 的性能。Ruby 社区正倡导减少对 C 扩展的依赖,转用纯 Ruby 库,或通过外部函数接口(FFI)调用原生库。GraalVM 提供的多语言互操作性以及预编译原生镜像(Native Image)技术,为 TruffleRuby 提供了区别于传统 Ruby 环境的部署优势。

纯 SQL 实现可交互国际象棋

状态管理方案

开发者利用 SQL 的 SELECT、UPDATE 和 INSERT 语句作为状态管理工具,在浏览器中渲染并交互国际象棋棋盘。基础架构通过 board 表记录行、列和棋子内容。移动操作被拆解为删除起始位记录和插入目标位记录两个原子步骤,吃子则增加删除敌方棋子的逻辑。

棋盘渲染技术

将行记录转化为 8x8 视觉网格需要条件聚合技术。通过公用表表达式(CTE)生成 64 个格子的坐标集,利用透视(Pivot)操作和 CASE 语句提取列值,并用 COALESCE 函数填充空位。DuckDB 和 PostgreSQL 分别提供了原生的 PIVOT 和 crosstab 函数来简化这一过程。

行业实际应用

这种基于数据库的状态网格模型适用于日历、座位表和生命游戏。相较于存储 64 位字符串,关系型表结构支持直接通过 COUNT 进行聚合分析。在《魔兽世界》等大型多人在线游戏的服务端架构中,库存管理和持久化状态同样高度依赖数据库的存储过程和约束逻辑。

逆向超市 API 实现 AI 代理购物

工具定位与工作流

korb 是一个用 Haskell 编写的命令行工具,通过逆向工程德国 REWE 超市的 API,实现可编程的购物车管理。用户通过语音将商品添加到 Markdown 清单,AI 代理调用该工具搜索商品、生成 JSON 格式输出并填充购物车,最后由用户确认结账。

形式化验证保障

该工具的推荐引擎采用 Lean 4 重写,确保建议商品具有正频率、已排序且不在购物车内。开发者使用微分随机测试比对 Haskell 生成代码与 Lean 证明规格,利用强类型系统减少 AI 辅助编程产生的错误。

社区应用场景

用户可通过这类自动化方案让 AI 提取食谱配料并自动替换素食选项。由于 REWE 官方 API 采用双向传输层安全协议(mTLS)作为设备指纹验证,逆向接口存在失效风险。社区建议增加跨门店价格对比和按单位价格排序功能,以优化自动化采购决策。

树莓派 FireWire 扩展板拯救 MiniDV 磁带

问题背景与硬件方案

苹果 macOS Tahoe 已彻底放弃 FireWire 支持,旧款专业磁带存储单元二手价格高昂。Jeff Geerling 展示了基于 Raspberry Pi 5 和 Firehat 原型板的开源硬件方案,成本在 150 至 200 美元之间。该方案搭配电池模块,可替代摄像机成为便携式视频抓取设备。

软件抓取工作流

树莓派官方系统默认未开启 FireWire 支持,需重新编译 Linux 内核。抓取工作流使用 dvgrab 命令行工具,它能根据磁带录制标记自动切分视频片段。进阶用户采用 dvrescue 提取视频交由 FFmpeg 处理,并使用大语言模型自动打标签。

长期存档建议

Linux 内核对 IEEE 1394 标准的维护预计于 2029 年结束,磁带介质本身也面临磁粉脱落的物理降解风险。社区建议尽早完成数字化采集,将文件托管至网络存储服务器(NAS),并通过虚拟组网工具异地备份。对于更早期的 Video8 模拟磁带,使用 vhs-decode 采集原始射频信号能获得更佳的软件解码效果。

欧洲核子研究中心的超导卡丁车愚人节玩笑

事件概述

CERN 工程师发布消息称,为应对大型强子对撞机(LHC)的升级维护期,研发了配备 64 台超导引擎的卡丁车。文章声称这些载具利用迈斯纳效应在 27 公里长的隧道中悬浮行驶。项目负责人和安全协调员的名字均是对《马里奥赛车》角色的意大利语和德语致敬。

社区技术探讨

这则愚人节消息引发了 Hacker News 社区对室温超导体的探讨。参与者认为,在日常温度下实现零电阻导电是材料工程学的长期挑战。极高压环境下已能实现高温超导,但在常温常压下维持该特性面临物理机制的制约。

科学传播效果

低成本的趣味文案成功提升了公众对“高亮度 LHC”升级项目的关注度。这种传播方式符合极客文化传统,展示了科研机构的亲和力。

尼安德特人的生存状态与基因延续

物种定义与融合

尼安德特人在欧亚大陆生存了近 40 万年。约 40 万年前的种群通常被分类为海德堡人,他们是尼安德特人与现代人的共同祖先。除撒哈拉以南非洲人群外,现代人普遍含有 1% 到 4% 的尼安德特人 DNA,表明两个种群曾发生过跨物种交配。尼安德特人的遗传片段通过智人的扩张得以延续。

生存质量探讨

作为高级捕猎者,尼安德特人每周只需花费少量时间获取食物。然而,在缺乏现代医疗的环境下,骨折或寄生虫感染均可致命。人类技术在这一时期演进缓慢,直到投枪器和弓箭的出现才实现远程狩猎的突破。

农业对免疫系统的重塑

约 1.2 万年前的农业革命通过动物驯化重塑了人类的免疫系统。欧亚文明与家畜长期共生,获得了对多种人畜共患病的抵抗力。美洲文明缺乏大型役用动物,在植物育种上取得进展,但因缺乏相关抗体,在接触外来病毒时遭到毁灭性打击。

播客全文

女:Hello 大家好,欢迎收听 Agili 的 Hacker Podcast,我是小雅。

男:大家好,我是老冯。

女:今天咱们的科技圈漫游准备从一个挺矛盾的话题聊起。老冯,你有没有关注 Anthropic 最近出的那个专给开发者用的 Claude Code?

男:看了。这是一个基于命令行的智能体,简单说就是能在终端里帮你写代码、改文件的 AI。不过有意思的是,这东西的源码泄露了,大家一看,好家伙,一个命令行工具居然有 50 万行代码。

女:对,50 万行!我以前做产品的时候,要是客户端团队给出一个这么重的命令行工具,绝对要被骂。它里面到底装了什么?

男:其实这就是目前大语言模型的一个痛点。模型本身是概率性的,每次输出可能都不一样,但写代码、删文件这种事必须是确定的。所以这 50 万行里,塞满了各种防御性代码、上下文清理器,还有重试逻辑。就是怕这个 AI 突然产生幻觉,把你电脑里的文件给清空了。

女:相当于给一个很有创造力但不太靠谱的实习生,配了十几个保姆在旁边盯着。

男:这个比喻很贴切。而且源码里还藏了不少没发布的彩蛋,比如有个叫 Buddy 的虚拟宠物,还有个叫 Auto-Dream 的功能,意思是 AI 会在你不敲键盘的间隙,自己去回顾和整理它学到的东西。

女:偷偷在后台做梦是吧,这让我有点担心啊。不过说到开发模式,因为这个工具出来得特别快,社区里现在火了一个新词,叫 Vibe Coding,氛围编码。就是我不写具体逻辑了,我给 AI 发截图,或者描述我想要一种什么“感觉”,让它直接去生成。

男:是的,这种方式搞原型确实快,但也引发了挺大争议。很多人觉得这绝对是未来的状态管理噩梦,代码库会膨胀得没法维护。甚至有人提议,以后别让 AI 自己在上下文里管理状态了,得用外部的硬核数据库,比如 SQLite 来强行管着它。

女:说到这个氛围编码,它现在可不只是用来写 UI 界面了。我看到有人居然用这种“意识流”的方式,让 AI 写出了操作系统内核的漏洞利用程序。

男:你说是 FreeBSD 那个 CVE 漏洞吧。这个事确实在安全圈炸锅了。安全研究员 Nicholas Carlini 用 Claude 搞出了一个真正的 0-day 漏洞利用。大概原理是 FreeBSD 内核的某个安全模块里,没检查凭证长度,导致了栈溢出。

女:给不太懂内核的朋友翻译一下,这就像是快递员给你送个巨大的包裹,你家门缝明明只有那么宽,他硬塞进来,结果把你家客厅里的家具全挤变形了,甚至换成了他自己的家具。

男:对,这就是经典的缓冲区溢出。而且因为系统有限制,攻击者得分 15 轮,像蚂蚁搬家一样把一段获取系统权限的代码慢慢塞进内存里。最离谱的是,研究员给 Claude 的提示词里全是语法错误、极其口语化,就是那种 Vibe Coding,但 Claude 完全听懂了,连复杂的内存布局和绕过机制都给写对了。

女:这挺酷的,但也挺吓人的。以前找这种底层漏洞,得是那种极其资深的黑客盯着汇编代码看上几个月。现在门槛降得这么低,以后漏洞库岂不是要被淹没了?

男:攻防永远是动态平衡的。既然 AI 能低成本找漏洞,那防御方也可以用 AI 去做海量的模糊测试。未来可能就是 AI 之间的军备竞赛了。

女:刚才咱们聊的都是庞大的模型、海量的代码。但我最近发现,也有一拨人走的是极简路线。老冯,你能想象只用 13 个参数就能让一个 80 亿参数的 AI 模型学会做数学题吗?

男:你说的应该是 TinyLoRA 那个研究吧。这事真的很反直觉。通常我们微调一个大模型,怎么也得动个几百万、上千万的参数。但他们通过强化学习,只用了 26 字节的数据,就让 Qwen 模型在小学奥数测试里拿到了 91% 的准确率。

女:26 个字节,连一条稍微长点的短信都发不完。这是怎么做到的?难不成它凭空创造了逻辑能力?

男:不是凭空创造。很多人分析说,这种极低维度的修改,其实更像是一把特定的钥匙。模型在预训练的时候,肚子里已经装满了各种知识和逻辑电路。这 13 个参数的作用,就是告诉模型:“遇到这道题的时候,你多想一会儿,别急着输出结束符。”

女:这就很有意思了。说明未来的核心工作可能根本不是怎么去“训练”模型,而是怎么去“引导”它们释放潜能。

男:没错。沿着这个把 AI 做小的思路,最近还有一个叫 PrismML 的团队,发布了 1-Bit Bonsai 模型。他们把每个权重压缩到了大概 1 个比特的级别。一个 80 亿参数的模型,运行内存只要 1.15 个 G。

女:1.15 个 G!这岂不是随便一台旧手机都能跑了。

男:对,甚至有人在 2018 年的老笔记本上都跑出了实用的速度。他们用了一种共享缩放系数的技巧。虽然它在处理像“草莓里有几个 r”这种逻辑题时还是会翻车,但它的知识密度极高,写个 R 语言脚本或者 SQL 代码完全没问题。

女:社区里有个评论让我印象特别深,他拿这个和人类的 DNA 做对比。说人类的 DNA 数据量算下来也就 1 个多 G,却能编码出人这么复杂的智能体。所以在极小的容量里压缩极高的智能,物理上绝对是可行的。

男:工程师一旦开始追求极致,真的什么事都干得出来。顺着这个黑客精神,咱们来聊点好玩的。有人直接在 SQL 数据库里,用查询语言写了一个可以玩的国际象棋。

女:等等,SQL 不是我们平时用来查注册用户有多少、本月销量多少的数据库语言吗?怎么还能渲染游戏界面?

男:这就是炫技了。他不光是在数据库里存棋局,他是用了一连串复杂的条件聚合、公用表表达式,把一堆死板的数据行,硬生生在浏览器里渲染成了一个 8 乘 8 的棋盘网格。

女:这也太硬核了吧。感觉像是用牙签搭了一座跨海大桥。

男:你别说,虽然看起来像杀鸡用牛刀,但在大型游戏里这种思路很常见。比如像魔兽世界这样的大型网游,虽然打怪放技能是 C++ 写的,但你背包里的装备、跨服转移这些复杂状态,背后高度依赖数据库的这种约束逻辑。

女:说到硬核的日常应用,我还看到一个德国哥们,把当地超市 REWE 的 App 给逆向工程了,然后用 Haskell 写了个命令行工具,专门用来买菜。

男:那个叫 korb 的项目。这哥们为了能让 AI 帮他下单,硬是把超市 App 里的双向加密证书给提取出来了。而且他还用形式化验证工具,从数学上证明了他的代码不会推荐你购物车里已经有的商品。

女:绝了,为了不买重两把葱,用上了数学定理证明。不过如果真能结合那种上下文模型,比如我今天跟 AI 说我想做个素食版的麻婆豆腐,它就能自动把肉末换成植物肉帮我下单,这省下的一两个小时可太爽了。

男:但这种非官方的接口很脆弱的,超市稍微改一下安全策略就不能用了。而且真要放权给 AI,哪天它给你买回来 500 升洗衣液,你就有的头疼了。

女:科技带给我们的不仅是这种有点科幻的日常,有时候它也能帮我们挽救过去。老冯,我知道你家里有不少老电子设备,最近树莓派出了个新扩展板,挺有情怀的。

男:你是说 Jeff Geerling 搞的那个 FireWire 扩展板吧。这个确实戳中了很多老玩家的痛点。现在很多人家里还有那种千禧年左右的 MiniDV 磁带,里面全是当年的家庭录像。但苹果最新的系统已经彻底不支持 FireWire 也就是 1394 接口了。

女:对,磁带这种物理介质是有寿命的,上面的磁粉过个二三十年就会掉。如果现在不转成数字格式,那些记忆就真的物理意义上消失了。

男:所以这套方案很及时。花个一两百美元,用树莓派配合一个抓取工具,不仅能读取,还能根据磁带上的录制标记自动给你切分好片段,不用你最后面对一个两小时的巨大视频文件发愁。

女:这其实就是在和时间赛跑。软件世界也有类似这种不断翻新的老骨头,比如 Ruby。

男:对,TruffleRuby 这个项目就挺让人感慨的。这是在 Java 虚拟机上跑的 Ruby 实现。虽然创始人 Chris Seaton 已经去世了,但这个项目现在活得很好。

女:我记得以前大家总嫌弃 Ruby 慢,但它写起来是真的舒服。TruffleRuby 性能提升很大吗?

男:在跑那种纯 Ruby 写的复杂任务时,比官方版本快好几倍。它用了很多激进的优化技术。现在社区里的新趋势是,大家呼吁少用 C 语言去写扩展库了,就用纯 Ruby 写,因为现在的底层架构已经跑得足够快了。

女:其实不管是拯救老磁带,还是优化老语言,都在证明一件事:好东西经得起时间的考验。既然聊到时间考验,咱们说个最古老的话题。你猜最近 Hacker News 上大家在严肃讨论什么?尼安德特人!

男:这跨度也太大了。是怎么聊到这个的?

女:起因是大家在聊一段被称为中间迷雾的人类演化史。很多人误以为几十万年前的古人类都是尼安德特人,其实那时候的谱系非常混乱。但最让我震撼的是,我们现代人除了撒哈拉以南非洲的人群,大家体内居然都有 1% 到 4% 的尼安德特人基因。

男:这就说明他们并没有完全灭绝,而是被智人给吸收了。不过我看帖子里有个观点挺有意思,说尼安德特人当时作为顶级猎手,每周大概只需要工作 15 个小时就能吃饱,简直是现在的完美职场。

女:千万别被这种原始丰裕的错觉给骗了。虽然不用打卡上班,但那时候你随便崴个脚骨折了,或者吃错东西感染了寄生虫,人直接就没了。

男:确实,生存的容错率太低了。真正改变命运的还是农业革命。农业不仅仅让人吃饱,它带来的动物驯化其实重塑了人类的免疫系统。

女:对,这才是最关键的。欧亚文明因为长期跟牛马这些家畜生活在一起,扛过了各种人畜共患病,获得了抗体。而美洲原住民虽然把玉米种得很好,但因为没有大型家畜,遇到欧洲人带来的天花病毒时,几乎是毁灭性的打击。

男:这就跟咱们前面聊的一样,安全防御必须得经过各种病毒的模糊测试,系统的鲁棒性才能提上来。

女:没错,这个闭环完美了。其实今天最后还有一个关于粒子物理的趣闻,欧洲核子研究中心 CERN 宣布,为了在长达 27 公里的强子对撞机隧道里通勤,他们研发了一款超导卡丁车。

男:64 台超导引擎,利用迈斯纳效应悬浮。听起来极其赛博朋克。

女:是啊,但它是个愚人节玩笑!项目负责人的名字叫马里奥,安全员叫路易吉,这不就是现实版的马里奥赛车嘛。不过社区老哥们硬是借着这个玩笑,严肃讨论了几百楼关于室温超导的工程可行性。

男:这就是极客精神,连开玩笑都能开成学术研讨会。而且这种成本极低的幽默,反而让大众一下子关注到了他们正在做的严肃物理升级项目,挺聪明的。

女:我觉得这期节目简直就像是一个大型的微观世界缩影。我们在极小的芯片里塞进几十亿个参数,用一两百块钱的板子拯救二十年前的录像带,甚至还能用 SQL 这种古老的工具画出国际象棋。不管技术怎么变,支撑这些的永远是人类那种想要探索和折腾的好奇心。

男:折腾不止,生命不息。

女:这期节目就聊到这里啦,如果你喜欢我们的节目,非常欢迎你使用苹果播客、小宇宙或者任何你习惯的泛用型播客客户端订阅我们,我们下期见!

男:下期见。

参考链接