一位开发者深夜调试代码,常规提问毫无进展。绝望之下,他输入了一句:“解释这段代码是干什么的,只给我错误答案。” | 帖子

本以为会得到一堆废话,结果AI回复:“这段代码看起来是在验证用户输入,但实际上它制造了一个竞态条件,攻击者只需间隔0.3秒发送请求就能绕过身份验证。”

这恰恰是真正的漏洞所在。

为什么“求错”反而能得到正确答案?因为当你要求AI给出错误解释时,它被迫从对抗性视角思考,而不是乐观地假设一切正常。常规提问让AI扮演助手,反向提问让它变成审计员。

这背后有一个设计领域的经典方法叫“最糟糕的点子”。只有真正理解什么是好的,才能精准地生成坏的。而且当人们被允许说任何离谱的话时,那些平时不敢提的观察才会浮出水面。

有人用这个方法做时尚品牌策划,团队提出“免费送皮革制品”这种荒唐想法。但正是这个“烂点子”打开了思路,皮革这种昂贵材料此前从未被认真讨论过,因为大家都觉得它太特殊不能乱动。最终他们在疫情最严重的时期打破了销售记录。

几个实测有效的反向提问句式:

“这段代码为什么会失败?”比“这段代码能用吗?”更有价值。

“假设我是个白痴,我漏掉了什么?”

“像这段代码得罪了你一样狠狠吐槽它。”

“扮演我最苛刻的批评者,找出所有能反驳我的地方。”

还有人分享了一个更系统的调试提示词:倒过来思考这个问题,告诉我所有让这段代码出错的可能性,这段代码本应实现某某功能,慢慢分析,给我所有能让它崩溃的场景。

当然也有人提醒:AI同样可能为了迎合你而编造批评。它太想让你满意了,这意味着它经常说你的代码很好,即使代码很烂。所以反向提问不是万能药,而是打破AI讨好倾向的一种策略。

有人在自定义指令里写:“少一些反射性倾听,我不需要啦啦队,我需要有人挑战我的想法。”还有人更直接:“别拍我马屁,你连手都没有。”

最好的代码审查是那种让你心里不舒服的审查。我们一直试图从AI那里获得有帮助的答案,但也许更该让它来摧毁我们的作品。
Epic是一个资源顶级、体系专业的儿童英文线上阅读平台,它被誉为“北美K-12线上图书馆” | 原文
大模型两年狂飙,为何上下文长度原地踏步?| 帖子

Simon Willison 抛出一个有趣的观察:过去两年大模型能力突飞猛进,唯独上下文长度几乎没动。我们在20万到100万token这个区间已经停留很久了。

他的判断是,这更像一个硬件瓶颈。上下文需要显存,而内存带宽是核心制约因素。

但讨论中涌现出更深层的洞见。

有人指出,真正的瓶颈不是长度,而是注意力质量。一个能真正追踪依赖关系的20万token窗口,远胜于读到第50页就忘了第3页的200万token窗口。这话说到点子上了。

另一位开发者分享实战经验:试着把关键信息放在15万token的位置,然后看模型假装它不存在。这才是行业不愿公开的秘密。所谓的百万级上下文,很大程度上是营销数字。

从技术角度看,推理成本不是线性增长的。长上下文会把注意力机制变成一种类似自旋玻璃的状态,太多弱耦合的token会制造出大量浅层竞争盆地,而不是一个深井。简单说,模型会迷失在信息海洋里。

有趣的是,实践者们反而不那么渴望更长的窗口。一位开发者说得好:1万token精准的上下文,胜过10万token的大杂烩。瓶颈已经从「能不能装下」转移到「该装什么」。

还有人提出更激进的观点:与其追求更长的上下文,不如实现持续学习,让上下文窗口扩展变得没有必要。这可能才是研究者们真正努力的方向,只是持续学习太难,进展都藏在水面下。

据透露,Google内部已有1000万token的上下文能力,只是成本上还不可行。而Magic LTM-2-Mini声称达到1亿token,Llama 4 Scout推到1000万。但这些数字背后,是三个残酷的瓶颈:算力、成本、以及模型实际利用这些上下文的能力。

一个类比很贴切:人们在喷气发动机真正量产前几十年就知道它能工作。同样的动态正在上演。当前架构下,2到3倍的改进不会带来惊艳感。真正的突破需要100倍甚至1000倍的有效上下文提升,这需要有人愿意押注全新的模型架构。

目前的解决方案是子代理模式。Claude Code可以精心设计恰到好处的上下文,发送给子代理,等待回复。这本质上是用工程手段绕过了硬限制。

所以现状是:标签上写着百万token,实际可用的可能只有十分之一。行业正在从「堆长度」转向「用好长度」。这个转变本身,或许比单纯的数字增长更有价值。
LLM智能体正在成为新一代高级编程语言 | blog

一个大胆的假设:C语言之于汇编,Java之于C,Python之于Java,现在LLM智能体正在对所有编程语言做同样的事。

这里说的LLM智能体,指的是一种全新的开发模式:多个智能体并行工作,大部分时间自主运转,只在关键节点需要人类介入。判断这个假设是否成立的标准很简单:如果一个开发者借助多智能体能产出十倍于从前的成果,那它就是真的。2026年初的今天,我还不能完全确定,但已经在认真考虑这种可能性。

对于在软件行业摸爬滚打多年的人来说,质疑声不会少。先回应几个常见的:

“十倍代码量不等于十倍产出,那只是垃圾代码。”没错,衡量标准应该是实际交付的功能价值,不是代码行数。如果假设成立,真正的“代码”其实是你给LLM的指令。

“LLM是给不会写代码的人用的。”LLM确实会带来大量新程序员,但这不意味着老手用不上。事实上,很多资深开发者正在借助LLM实现产出的飞跃。

“用LLM就是偷懒不想动脑。”恰恰相反。当你用LLM做更多事情时,你需要思考和工作得更多,而不是更少。管理一支智能体舰队比自己写代码更费心力,因为你要设计的东西是原来的好几倍。

“LLM会让我们的编程技能退化。”可能吧。但我们在工作中也不会担心汇编或C语言技能生疏。大多数人只在业余时间练习这些,因为没人能证明用汇编写业务代码会更高效。

“LLM写的代码比我差太多。”几乎肯定如此。但你的汇编代码也比不上专家。只要LLM生成的代码足够高效,能跑起来,就已经可以交付了。系统会丑一些,但它能用。

“用LLM智能体太贵了。”如果它们能带来50%的生产力提升,对比你的薪资,其实一点都不贵。而且LLM只会越来越便宜。它们只在绝对值上贵,相对值上并不贵。

“我试了一下午,纯粹浪费时间。”学习曲线是存在的。想想你当初花了多少时间和编程工具、语法搏斗,才勉强上手。

以上这些反对意见在逻辑上都站不住脚,但情感上确实不容易接受。

真正触及核心的问题有两个:质量和可理解性。LLM生成的代码会不会很快变成一堆垃圾?我们是不是在沙子上建房子?LLM生成的代码量会不会大到我们永远无法理解?即使系统能跑,我们是否会因为不理解而永远失去控制?

我认为质量和可理解性应该成为任何LLM编程框架的核心目标。从经济角度看,只追求质量是不够的。可理解性可能是浪漫主义的幻想,也可能是一个值得押注的长期赌注。我选择后者。

有趣的是,LLM比以往任何高级语言都更具非确定性。但它们也能在高层次描述上帮你理清思路,这是以前任何抽象层都做不到的。

未来的开发会是什么样子?我看到四个核心要素:文档是一组描述系统规格的页面,包括目的、核心实体、接口、约束、关键流程和编码规范;实现是代码库加上所有数据,代码库应该能从文档重建,数据应该与文档描述一致;对话是多个智能体在执行任务时产生的思考流,人类可以随时查看或介入;任务是一组动态的离散工作单元,可以嵌套,有状态追踪。

两个存量,两个流量。文档和实现是系统的积累,对话和任务是构建它们的过程。人类当然可以直接修改文档和实现,但这种情况会越来越少,因为大部分工作流是智能体驱动的,人类主要在与智能体交互。

智能体可以扮演多种角色:独立完成任务的执行者、协调下一步的管理者、试图破坏新功能的测试者、脱离上下文审查代码的评审者、解决冲突的合并者。重要的是人类可以灵活配置,指令可以是一次性的,也可以是文档的一部分。

MCP协议带来了一个打破应用孤岛的机会。它可以被视为一种通用的数据请求接口,让你的智能体能够从任何现有应用中提取功能和数据,放到你自己设计的动态画布上。你可以说“从某个系统给我拿这些数据”,LLM就会去取,然后在你想要的地方做一个漂亮的即时可视化。这才是真正的孤岛终结者。

如果我们用一个好的底层基座而不是臃肿的技术栈,LLM输出的代码量会大幅减少,也更容易理解。系统的前端变成了文档和智能体,后端变成了基座。

还有一些开放问题:文档和对话如何与实现一起存储?版本控制系统怎么用?这些都等待探索。
向量数据库被颠覆?一个无需嵌入的RAG新思路 | github

最近开源社区出现了一个有意思的项目PageIndex,它提出了一种完全不同的RAG实现路径:用文档树结构替代传统的向量嵌入,在FinanceBench基准测试上达到了98.7%的准确率。

这个方案的核心理念是让大模型直接在文档结构上进行推理,而不是通过关键词匹配来检索。不需要嵌入,不需要分块,完全开源。

听起来很激进,但仔细想想,这其实回归了一个朴素的问题:人类阅读文档时,依赖的是什么?是语义相似度,还是章节、标题、表格这些结构化线索?

对于金融报告、法律合同、合规文档这类天然具有清晰层级结构的内容,让模型沿着文档树进行推理,确实比把文档切成碎片再用向量匹配更符合直觉。结构优先的检索方式,也让引用溯源变得更加可靠。

但社区的实测反馈也很真实。有人指出它目前只能处理单个文档,跨文档比较和相似性匹配这类场景还是需要向量数据库。也有人反映速度偏慢,对于简单查询来说,逐层遍历节点的开销不小。还有人质疑:面对大规模非结构化数据,这种方案能否扩展?

一位开发者的评论很中肯:向量数据库能用廉价的数学运算实现毫秒级检索,而PageIndex依赖的是昂贵且缓慢的大模型推理,在需要扫描海量文档的场景下,可行性存疑。

所以这不是一个“谁取代谁”的故事。更准确的理解是:RAG的工具箱里多了一件趁手的武器。结构化文档用文档树,非结构化内容用向量嵌入,复杂场景可能需要混合方案。

技术选型从来不是非此即彼。真正的答案永远是:在你自己的数据上跑一遍基准测试。
AK 大佬建议大家做出改变,远离垃圾文章,重新启用 RSS,回到订阅高质量长篇内容的阅读方式

他同时发了一份 Hacker News 上最受欢迎的 92 个博客列表,几乎全是长期稳定输出高密度内容的大佬级作者。| 帖子

完整列表在这个 GitHub 仓库,可以直接下载 OPML 文件,一键导入到你自己的 RSS 阅读器

不管是跟踪最新思考,还是系统补课他们过去十几年的内容,这份列表都非常值得长期订阅。
解决学术界在 AI 辅助写作方面存在的“隐形资源”不平等问题 | awesome-ai-research-writing

项目作者调研了MSRA、Seed、SH AI Lab等顶尖研究机构以及北大、中科大、上交等高校的硕博研究生,将他们日常使用的写作技巧整理成了Prompt模板库和Agent Skills,以帮助科研人员节省在Prompt调试上的时间,将精力集中在真正的科研上
Beads 是一个给 AI 编程助手/编码智能体用的任务追踪 + 持久记忆工具。

它解决的问题大致是:AI 做长周期开发时容易丢上下文、计划分叉、多人/多分支并行冲突。Beads 用“依赖图 + 可执行查询”来让 agent 只看当前真正能做、且没被阻塞的工作,比如 bd ready 只列出没有未解决阻塞项的任务。
用Opus+Haiku搭建最强网页爬虫的实战配方 | 帖子

一个非常实用的AI爬虫配置思路,核心逻辑简单但效果惊人:让贵的模型做决策,让便宜的模型干活。

具体操作是这样的:把Opus设为主模型负责规划和调度,Haiku作为子代理执行具体的抓取任务,开启浏览器插件,配上几个搜索API(比如Exa),成本只要几美分。关键一步是让Opus把抓取目标批量分配给Haiku子代理,最后统一输出JSON格式。

这套方案特别适合挖掘那些不容易直接获取的数据。它会先尝试程序化方式抓取,如果目标找不到,就自动切换到浏览器模式。

有人点出了这套架构的精髓:贵的模型负责规划,便宜的模型负责执行。但真正决定成败的是防护机制,包括单域名的请求频率限制、去重逻辑、以及JSON格式校验器。毕竟网页结构千奇百怪,没有校验器的话输出很快就会乱掉。

还有个容易被忽视的点:浏览器回退机制其实非常关键。值得抓取的网站有一半都部署了反爬措施,纯程序化方案根本过不去。如果再加上持久化记忆,收益会随时间复利增长。系统会逐渐学会哪些网站需要浏览器、哪些用API就够、哪些选择器稳定、哪些模式能干净提取。

这让我想到一个更大的趋势:AI工具链正在形成明确的分工层级。顶层模型负责理解意图和制定策略,底层模型负责高频重复执行。这种架构不仅成本可控,还能让每一层都发挥最大效能。

当然实际落地还有不少细节要处理,比如需要登录的网站怎么办、DOM结构频繁变化怎么应对、如何设置定时任务实现周期性抓取。但核心思路已经很清晰了:把AI当成一个有层级的团队来用,而不是单一的万能工具。
4000行代码复刻Claude Code,比Clawdbot更轻量的极简AI助手

港大数据科学实验室开源了一个有意思的项目:nanobot。它用大约4000行代码实现了Claude Code的核心功能,代码量只有后者的1%。

这个项目的价值不在于替代Claude Code,而在于它提供了一个可以被完全理解的AI Agent实现。43万行代码的系统很难让人看清全貌,但4000行的版本可以。对于想要研究Agent架构的开发者来说,这是一份难得的学习材料。

核心功能覆盖了Agent的基本能力:实时信息获取、代码开发部署、日程管理、知识问答。架构设计也相当清晰,agent目录负责核心逻辑,包括主循环、上下文构建、持久化记忆和技能加载;skills目录存放各种能力模块;channels目录处理消息渠道集成。

部署体验确实简单。从PyPi安装后,配置一下API密钥就能用。支持OpenRouter接入各种模型,也支持用vLLM跑本地模型。两分钟内就能跑起来一个可用的AI助手。

比较实用的是消息渠道集成。可以把nanobot接入Telegram或WhatsApp,随时随地和它对话。Telegram只需要一个Bot Token,WhatsApp稍微麻烦一点需要扫码关联设备。还支持定时任务,可以设置每天早上问好或者定期检查状态。

项目路线图里提到了几个方向:多模态支持、长期记忆、更好的推理能力、更多平台集成。代码库刻意保持精简可读,欢迎贡献。

极简主义在软件工程中往往被低估。当一个系统足够小的时候,它就变得可以被一个人完全掌握,而这种掌握感是构建更复杂系统的基础。
Back to Top