过去几个月,Rahul Garg 在本站发表了一系列文章,探讨如何降低 AI 辅助编程中的摩擦。为了让这些理念更易于实践,他现已构建了一个开源框架,将这些模式落地为可安装的基础设施。
AI 编程助手会直接跳到代码,默默做出设计决策,在对话中途忘记约束条件,并输出未经任何真正工程标准审查的结果。Lattice 通过三个层级(原子、分子、精炼器)的可组合技能解决了这一问题——这些技能嵌入了久经考验的工程规范(整洁架构、领域驱动设计、设计优先方法论、安全编码等),外加一个持续更新的上下文层(.lattice/ 文件夹),用于积累项目的标准、决策和审查洞见。该系统会随着使用而变得更智能——经过几个功能迭代后,原子不再应用通用规则,而是应用你的规则,并由你的历史记录提供依据。
它可作为 Claude Code 插件安装,也可下载后与任何 AI 工具配合使用。
❄ ❄ ❄ ❄ ❄
这里也值得提一下,我的同事 Wei Zhang 和 Jessie Jie Xia 关于结构化提示驱动开发(SPDD)的文章带来了巨大的流量,也引发了不少疑问。为此,他们在文章中新增了一个问答部分,回答了其中十几个问题。
❄ ❄ ❄ ❄ ❄
Jessica Kerr(Jessitron)分享了一个有趣的片段:她构建了一个用于处理对话日志的工具。她观察到了其中涉及的双重反馈循环。
这里至少运行着两个反馈循环。一个是开发循环:Claude 执行我的指令,然后我检查结果是否确实符合我的需求。[……] 另一个是元层面的反馈循环,即当我感到阻力时进行的“这方法管用吗?”的检查。沮丧、乏味、烦躁——这些感受对我来说是一个信号,表明这项工作或许可以变得更轻松。
这里的双重循环,既在改变我们正在构建的东西,也在改变我们用来构建那个东西的工具。
作为使用软件来构建软件的开发者,我们拥有塑造自身工作环境的潜力。借助 AI 让软件变更变得极其迅速,修改我们的程序以简化调试工作,能立即带来回报。而且,这很有趣!
确实如此,这让我想到,智能体正在让我们(重新)发现软件开发中一项失传已久的乐趣——即根据具体问题和个人品味,量身定制自己的开发环境。不久前,我曾以内部可重编程性为题写过这方面的内容。这曾是 Smalltalk 和 Lisp 社区的核心特色,但随着我们拥有了复杂而精美的 IDE,这一特色基本消失了(尽管 Unix 命令行仍能让人窥见其魅力所在)。
❄ ❄ ❄ ❄ ❄
阿什利·麦克伊萨克(Ashley MacIsaac)是来自布雷顿角(Cape Breton)的音乐人,演奏受民谣影响的音乐(我收藏了他的几张专辑)。谷歌生成的人工智能概览声称他曾被定罪,包括性侵犯,并被列入全国性犯罪者登记册。这些完全是虚假信息,将他与另一个同名男子混淆。麦克伊萨克正以诽谤罪起诉谷歌:
“这不仅仅是搜索引擎扫描内容并呈现他人故事……这是由他们发布的。对我来说,这就是诽谤。谷歌人工智能在发布这些内容时,缺乏相应的防护措施。”
麦克伊萨克的核心观点是,谷歌必须为其控制的工具所发布的内容承担责任。他确实遭受了实际损害,不仅名誉受损,还有一场音乐会因此被取消,这些指控也影响了他的演出。
“我感受到了那种实实在在的恐惧,源于一家媒体公司发布的内容,”他在接受加拿大通讯社采访时表示,“因为被贴上那样的标签,我担心自己上台时的安全。我不知道这种影响会持续多久。”
科技公司常常试图逃避其行为的后果。大规模监控发布内容确实存在困难,但这是它们应该面对的责任。
❄ ❄ ❄ ❄ ❄
斯蒂芬·奥格雷迪(Stephen O’Grady,来自RedMonk)认真审视了大型科技公司在人工智能基础设施建设上的投入。这些数字令人震惊,不仅绝对数额巨大(超过1000亿美元),而且与相关公司的收入相比也极为惊人。亚马逊、Alphabet和微软等公司正将其收入的50%以上(而非利润)投入其中。Meta和甲骨文则达到或超过了收入的75%。
这种投资水平在十年前是不可想象的。如今,图表显示这已成为入场门槛。
有一个显著的例外:苹果。显然,他们在“非同凡想”,从图表来看,他们的投入似乎接近收入的10%。
❄ ❄ ❄ ❄ ❄
我与之讨论智能体编程的大多数人都在使用云端模型:Claude、Codex等。大家都认为这些是最强大的模型,是引发十一月转折点的模型。但我们是否必须使用最强大的模型,尤其是在需要将数据传输给它们并为此支付高昂费用的情况下?威廉·范登恩德(Willem van den Ende)考虑了一种替代方案,即本地模型已经“足够好”。
假设:
- 我们都在摸索中前行。
- 工具链(编码智能体 + “技能” + 扩展)的质量可能与模型本身同样重要。
- 运行开源模型和开源编码智能体以及自定义扩展需要时间,但能换来理解,并建立一个工程努力可以持续积累的稳定基础。
- 对我来说,开源、本地模型已经跨越了门槛,足以满足日常编码智能体的工作需求。
这篇文章详细描述了他搭建本地模型工作环境的方案,其中包含使用Nono进行沙盒隔离——即便使用云端模型也值得考虑这一点:如此强大的工具需要采用零信任架构。
❄ ❄ ❄ ❄ ❄
如果你还没注意到,最后这两段话其实遥相呼应。苹果并没有参与云端AI模型的游戏,而是省下了一大笔钱;如果本地模型最终成为未来趋势,那他们这步棋就显得相当明智。范登恩德的文章让我联想到内特·B·琼斯的一期播客,他在其中论证苹果正在重演五十年前的策略。当年,所有使用计算机的人都要租用大型机的时间,而Apple II则将性能远逊的算力带入了家庭和小型办公室。由此衍生出了电子表格、桌面出版以及现代家用计算机——这些都是在大型机上无法实现的事情。
他认为约翰·特努斯升任CEO并非仅仅是换了一位众所周知的内部接班人,而是押注AI的未来在于家庭、办公室和口袋中的精密硬件。如果开源模型已经足够好用,那又何必花钱将包含敏感数据的令牌发送给AI巨头呢?
❄ ❄ ❄ ❄ ❄
说到五十年前,1974年弗雷德·布鲁克斯在我们这个领域最具影响力的著作之一的开篇写道:
史前场景中,没有比巨兽在沥青坑中垂死挣扎更生动的画面了。在脑海中,人们看到恐龙、猛犸象和剑齿虎在沥青的束缚中奋力抗争。挣扎得越激烈,沥青就缠得越紧,没有哪头野兽能强大或灵巧到最终不沉没下去。
过去十年间,大型系统编程正是这样一个沥青坑,许多强大无比的巨兽在其中猛烈挣扎。大多数都带着勉强能运行的系统脱身——但极少能达成目标、进度和预算。无论团队大小、结构轻重,一个接一个地陷入沥青之中。没有哪一件事单独造成了困难——任何一只爪子都能被拔出来。但众多同时发生且相互作用的因素累积起来,便导致行动越来越迟缓。似乎每个人都对问题的棘手程度感到意外,而其本质又难以看清。但如果我们想解决它,就必须努力理解它。
肯特·贝克在他最近的文章标题中借用了这一意象,称之为精灵沥青坑。在解释了为何熟练的软件开发既关乎构建功能也关乎构建未来之后,他指出,这些AI工具在生成具备良好未来所需内部质量的软件方面,表现并不理想。
以下是我观察到的——精灵自然而然地生活在混乱之地的左下方。精灵以“可推诿性”为导向的任务模式,使其即便在代码完全无法运行时也能宣称成功。复杂性层层叠加,直到连精灵也无法再假装取得进展。
在智能体编程时代,内部质量是否重要、在多大程度上重要,仍是一个悬而未决的问题。一种观点正如劳拉·塔乔所言:“开发者体验与智能体体验的韦恩图是一个圆。”组织得当、命名良好的元素有助于精灵理解代码,因此若想持续超越小型一次性系统,这些要素至关重要。另一种观点则认为,内部质量无关紧要——大语言模型的银河大脑足以理清最混乱的“意大利面条式代码”。或许现在尚不能,但再经历几次技术拐点后或可实现。
这便是根本问题:精灵能否逃离焦油坑,抑或将在焦油粘稠的束缚中徒劳挣扎?