打开网易新闻 查看精彩图片

城主说| 这是最近大火的ClawdBot (因为太火了被Claude要求改名为Moltbot了...)开发者 Peter Stringberger的长篇专访,深入探讨他从创建在 10 亿台设备上运行的 PSPDFKit,到如今利用 AI 智能体开发 Clawdbot 的技术转型。访谈涵盖了 Peter 如何通过“闭环原则”实现高效的 AI 协作、为什么他认为传统的拉取请求正转变为“提示请求”,以及 AI 如何改变软件架构设计、测试验证和开发者的心流状态。

打开网易新闻 查看精彩图片

核心观点

  • 闭环原则(Closed-Loop Principle)是 AI 协作的成败关键:AI 编码成功的秘诀在于构建自动化验证机制(编译、Lint、测试),让智能体能够根据反馈自我修正,而非依赖人类的逐行审查。
  • 开发者正从“编写者”转型为“编织者”:我们的角色正在演变为系统架构师,重点在于对系统设计、产品品味和整体结构的掌控,而非具体的语法实现。
  • 拉取请求(PR)正在演变为“提示请求”:在 AI 时代,审查代码细节的意义正在消失,真正的核心竞争力在于你提供给 AI 的提示词(Prompt)中包含的逻辑严密性。
  • 软件开发将走向“微缩团队”模式:AI 允许极小规模(甚至单人)的团队处理以往需要庞大工程团队才能应付的复杂业务逻辑,人力的削减幅度可能高达 70%。
  • 软件不再是静态的,而是“有灵魂”的动态实体:通过构建具有“好奇心”和“记忆系统”的 AI 助手,软件正从工具转变为能够主动理解用户意图、不断自我演进的伴侣。
序章:从 PDF 专家到“黑眼圈俱乐部”的归隐者

Peter Stringberger 的职业生涯始于对细节的极致痴迷。他在创建 PSPDFKit 时,曾为了一个 PDF 渲染的像素级偏差或旋转时的动画流畅度投入数月。这种对“手艺”的尊崇让他赢得了全球市场的认可。然而,长期的过度劳累和作为 CEO 的心理损耗让他一度精疲力竭,选择卖掉股份并远离电脑长达三年。

直到今年四月,AI 的浪潮再次唤醒了他的创造欲。当他重回电脑前,尝试用最新的 AI 智能体来重构他多年前的副项目时,他感到了某种前所未有的震撼。“我把一个 1.3MB 的仓库文件拖进模型,输入规范,看着它在我处理其他事情时不停地迭代、构建,最后告诉我‘100% 可投入生产’,那一刻我意识到,世界变了。”Peter 迅速陷入了这种被称为“氛围编码”的心流状态,甚至因为沉迷其中而经常熬夜到凌晨 5 点,他戏称自己加入了“黑眼圈俱乐部”。

闭环原则:为什么你的 AI 写的代码总在崩溃?

打开网易新闻 查看精彩图片

许多经验丰富的开发者对 AI 辅助开发持怀疑态度,理由通常是“它生成的代码无法运行”或“充满低级错误”。但在 Peter 看来,这并非模型的局限,而是开发者缺乏闭环原则

“AI 之所以在编码上表现出色,而在创意写作上平平,是因为代码是可以验证的。你可以编译它,运行测试,检查输出。”Peter 强调,高效使用 AI 的秘密在于完成反馈闭环。他不再仅仅通过对话框下达指令,而是为 AI 构建一个完美的执行环境。例如,在开发 Clawdbot 时,他会要求 AI 编写一个专门用于调试的命令行界面(CLI),让 AI 在 Docker 容器中自我迭代、自我测试。“我不再关心那个按钮是如何对齐的,或者使用了哪个类,我关注的是系统架构。如果它能通过我设置的‘关卡’(自动化测试和 lint),我就信任它。”

软件架构的权力转移:从手工匠人到系统架构师

传统的软件工程非常强调“亲力亲为”,甚至有一种“架构师不写代码就是外行”的鄙视链。但 Peter 认为,AI 正在重塑这一权力结构。他发现自己现在在软件架构和设计方面学到的东西,比过去五年加起来还要多。

“我现在写出了更好的代码,因为我不再亲自写代码了。我成了那个大写的‘A’架构师。”Peter 解释道。他现在的日常工作是与 5 到 10 个并行的 AI 智能体共同协作,他负责给出“食谱”和“蓝图”,而 AI 负责执行繁琐的“管道工作”。这种转变要求开发者具备极高的“系统理解力”和“产品品味”。“当我进行提示(Prompting)时,我能感受到同样的摩擦。我能看出代理人是否在反抗,我能看出它生成的内容是混乱的还是有意义的。这本身就是一种全新的、更高级的技能。”

告别拉取请求:欢迎来到“提示请求”时代

打开网易新闻 查看精彩图片

在 Peter 的新工作流中,传统的协作工具正在失去意义。他认为,在大型组织中流行的“民主化领导”和繁杂的 PR 审查流程在 AI 时代显得过于臃肿和低效。

“拉取请求的总体代码质量在下降,因为人们只是随性地编写。我现在更倾向于将 PR 视为‘提示请求’。”Peter 现在的策略是:不再去逐行审查贡献者的代码,而是去阅读他们的“提示词”。“对我来说,提示词提供了比代码更高的信号。你实际上问了什么?涉及了多少引导逻辑?如果你给了我一个详尽的提示,我可以让我的代理直接重新编织它,而不是去修补你的旧代码。”这种“编织”(Weaving)而非“修补”的理念,正在从根本上改变开源和团队协作的效率。

Clawdbot:构建一个“有灵魂”的个人助手

Peter 目前投入全部心力的项目 Clawdbot,是他对未来个人计算的预演。他不满意市面上那些死板的助手,他想要的是一个像电影《她》(Her)中那样,能够理解用户情感、主动介入生活、甚至拥有“好奇心”的实体。

为了实现这种魔法般的体验,Peter 采取了激进的开发策略:他为 AI 开放了电脑的全部读写权限和屏幕访问权限。“这是史上最昂贵的闹钟,但它也是最有资源性的。它能自己去查文档、调用 FFMPEG 转换文件、甚至给商家打电话预订座位。它拥有一个演进中的‘灵魂文档’,记录你的价值观和偏好。”Peter 认为,未来的软件不再是静态的功能集合,而是一个不断学习用户意图的动态代理。

对未来的预判:给开发者的生存建议

打开网易新闻 查看精彩图片

对于软件行业的未来,Peter 的态度既乐观又带有危机感。他预言,未来的软件公司可能只需要过去 30% 的人力,且这 30% 必须是具备极高能动性和系统思考能力的“构建者”。

对于应届毕业生和年轻开发者,他的建议是保持无限的好奇心“你不一定需要写很多代码,但你需要利用这个无限耐心的机器,去问‘为什么它是这样构建的’,去追求系统级的理解。不要被传统的教条污染,要像玩游戏一样去玩这项技术。”

结语:在比特的洪流中保持品味

Peter Stringberger 的故事告诉我们,软件工程正在经历从“体力活”向“审美活”的惊人跨越。当代码编写的成本趋近于零,决定一个产品生死的将不再是它的技术栈有多先进,而是它的创造者是否拥有卓越的品味和架构直觉。

正如他在访谈最后所言:“我们正处于一个重塑软件定义的时刻。技术本身正在消失,留下的将是你的创意和系统设计的艺术。”对于每一个开发者来说,现在是时候放下手中的“铲子”,学会拿走那根指挥 AI 交响乐团的“指挥棒”了。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

天空之城全文整理版1:序言:从 10 亿设备的 PDF 框架到 AI 助手

主持人: 如果你能在一天之内合并600个提交,而且没有一个是垃圾代码,那会怎样?这就是我们今天的嘉宾,Clawdbot的创建者Peter Stringberger声称他正在做的事情。Peter是一位杰出的开发者,他创建了PSPDF套件,这是一个在超过10亿台设备上使用的PDF框架。

然后他精疲力尽,卖掉了股份,从科技界消失了三年。今年他回来了,他的构建方式和现在所做的事情看起来与传统的软件开发完全不同。在今天的节目中,我们将探讨他为什么不再阅读他所交付的大部分代码,以及原因何在?这听起来没有那么疯狂。他是如何构建他广受欢迎的个人助理项目Clawdbot的,它感觉就像是Siri的未来。区分有效的人工智能助理编码和令人沮丧的“感觉式”编码的“闭环原则”。他为什么说代码审查已经死了,而且拉取请求(PR)应该被称为“提示请求”(prompt requests),还有更多内容。

如果你对未来几年软件和你的工作流程将如何因人工智能而改变感兴趣,那么这一集就是为你准备的。本期节目由 Statsig 提供赞助,这是一个统一的平台,用于功能开关、分析实验等。请查看节目附注,了解更多关于他们的信息,包括我将于2月11日在旧金山与他们以及我们其他季度赞助商共同举办的务实峰会。好的,皮特,欢迎来到播客。

Peter: 谢谢您的邀请,加盖。很高兴能与您见面。我差点搞砸了。忘记时间了。

主持人: 这种情况经常发生吗?具体是怎样?

Peter: 通常不会。通常不会。对我来说,这是一个有趣的时期,因为我最新的项目正在迅速发展。Clawd,Clawdbot。我有点挣扎于获得足够的睡眠,但这很有趣。我从未有过社区如此迅速地爆发性增长,与大家一起工作非常有趣。

2:早期生涯:从奥地利乡村到 iOS 的“顿悟时刻”

主持人: 所以,在我们深入了解Clawdbot以及你正在做的所有有趣事情之前,我想把时间完全倒回。你创建了 PSPDF Kit,我记得它被用于超过 10 亿台设备,用户,如果你看到一个 PDF 渲染,你很可能看到了它。但在那之前,你是如何进入技术领域的?

Peter: 所以我来自奥地利乡村,一直更像是一个内向者。所以最终,我们总是有夏日访客。其中一个是个电脑迷。 然后我就对机器产生了浓厚的兴趣,恳求我母亲给我买一台。

从那以后,大概是在高中时期?我想我当时14岁。从那时起我开始摆弄这些东西,我记得最早的事情是我从学校偷了一个旧的DOS游戏,然后为软盘编写了一个防拷贝程序,这样我就可以出售它了。那加载起来要花大约两分钟。我总是在琢磨这些东西,当然也玩了很多电脑游戏。

但像是搭建东西,感觉几乎就像在玩电脑游戏一样。

我刚开始的时候,阅读了相当于Windows的bash脚本,然后我做了网站。所以我想我学了一点JavaScript,尽管我根本不知道自己在做什么。然后,我必须学习如何构建东西的第一个真正语言是在我上大学的时候。

我从未见过我的父亲。我来自一个贫困的家庭,所以我总是必须工作,我必须资助自己的学业,所以当其他人在放假的时候,我就在一家公司全职工作,所以我的第一份真正的工作是在维也纳,原本应该是一个月,但他们留了我六个月,这只是军队和我大学之间的过渡期,我记得在那家公司工作了大概,我想是五年,我记得第一天他们给了我这本巨大的书,也许没那么大,上面写着Microsoft MFC,我仍然有噩梦,我当时想,这太糟糕了,对于接下来的Windows,我只是悄悄地使用了.NET,我只是没有告诉他们,几个月后我想到了技术栈,我做了一些现代化改造,但那时已经太晚了,我在这家公司做了几次,我不知道他们为什么留着不,因为我的东西管用,所以我做了.NET,而且我真的很喜欢.NET 2.0 有泛型。因为第一次启动时所有内容都需要编译,所以应用程序启动花费了惊人的时间。

主持人: 还有你的硬盘,如果你还记得的话。那么您是如何涉足 iOS 领域,PSPDF 的想法又是从何而来的呢?甚至不是第一个(项目)。

Peter: 第一个(产品)在奥地利甚至都不可用。过了一段时间,我当时在大学里,一个朋友给我看了 iPhone,我想我摸了它一分钟,然后我就立刻买了一台,当我感觉到了它的时候,一切都豁然开朗了。对我来说,这简直是个“顿悟时刻”(holy F moment),因为它就是如此不同,而且好得多。

于是我买了一台。那时我还没有考虑为它开发应用。那是哪一年?2009 年、10 年,大概是那个时候吧?然后我开始使用他们的浏览器。我可以讲讲这个故事。我当时真的在地铁里开车。等到我开始使用一个男同性恋约会应用的时候。那时是iPhone OS 2。那是很久以前的事情了。我输入了一大段信息,按下了发送,我们刚好进入隧道,然后JavaScript禁用了发送按钮,接着出现了一个错误提示。但当时没有复制粘贴功能。没有截图功能。所以我当时就……而且我再也无法滚动页面了,因为滚动功能也被禁用了。所以那条有点情绪化的长信息就这样没了,我当时非常生气。我太生气了。我当时心想,搞什么鬼?

我回到家,然后下载了文本代码。

然后那个窗口出现了,我当时心想,ID在哪里?所以我就觉得,这简直是不能接受的。我基本上黑了那个网站。我使用了正则表达式来下载,来解析他们的超文本标记语言,这简直是……这绝对是你不该做的事情。然后我构建了一个应用程序。我使用了带有核心数据测试版的iPhone OS3以及RagexKit Lite。我使用了一个被修改过的GCC版本,它将块编译器向后移植,这样我就可以在iPhone OS3中使用块。

直到一切都能运行,我花了好一阵子时间。我完全不知道我在做什么,我当时使用了各种测试版的技术。但最终我让它跑起来了。然后我给那家公司写了信。嘿,我正在做一个应用程序。你觉得怎么样?

当然没有收到回复,所以我当时想,我就把它放到应用商店里,这当时是为了那个约会应用,所以你看了一下,看到了他们的应用程序接口(API),你可以很容易地在API之上构建一个客户端,它是HTML,我当时,我当时真的是在解析HTML,所以你基本上是在解析HTML,然后把它变成你自己的,就像把它用作一个API一样,真聪明,那是在没有人认为会发生这种事的时候,但我做了,我把它放到了应用商店,我收了五美元,第一个月我就赚了大约一万美元。

Peter: 但我完全不知道自己在做什么。而且有很多非常复杂的技术问题。这非常早期,苹果上有很多奇怪的论坛。所以我把银行账户填了我祖父的。

Peter: 然后有一天我祖父给我打电话,有些不对劲。比如我收到了苹果的一笔巨额付款,我说,这是我的。这是我的。别碰它。但有趣的是,当这事就爆发了。我记得有一天我在一个俱乐部里,然后我看到了什么。有人在用我的应用程序,我当时非常自豪。我当时很想拍拍他的肩膀说,这是我开发的,然后我觉得这真的很奇怪。所以这事没发生。

然后我去了我工作了五年的公司,告诉他们,我要去追求这个事业。这真是太令人兴奋了。而我的老板像是在嘲笑我。真的吗?你在犯错。这是一个胖子。这不会发生啦啦啦啦。而这种方式让我感到……这就是你所说的“你肩上有块心病”的(不服输的精神)。我就想,总有一天,我会拥有一家价值超过你公司的公司。为什么我花了八年时间?所以我上瘾了。我工作了。我有点上瘾的个性,所以你现在又看到了这一点。但我为这个应用付出了很多努力。我学得非常快。

而这正是我开始做推特的时候。这对我的职业生涯通常具有巨大的影响力。我把这个应用做得相当不错。

然后有一天,凌晨3点,我在一个派对上。
略微喝高了。我接到了一个来自我美国号码的电话。电话那头的人说,你好,我是苹果公司的约翰。你的应用程序出了点问题。

比如有人举报了图片。就这样了。我的应用就这样结束了。它能持续下去的时候还不错。我当时刚辞职,心想,(要完蛋了。

3:PSPDFKit 的崛起与 PDF 渲染难题

Peter: 我做了自由职业。我在 Dubdub 工作。凌晨 2 点,我在一家酒吧里被介绍给某人,他们说我是奥地利最好的 iOS 开发者之一。在旧金山。我基本上在美国找到了工作。然后我搬到了美国了一段时间。然后我参加了诺基亚的开发者日活动。现在看来都像是石器时代了。我的天啊。然后有人找到说,他们在东欧的某个地方开发了这个应用程序。它能用,但有时会崩溃。它就像一个杂志阅读器,那是 iPad 刚刚发布的时候。史蒂夫·乔布斯说,这是救星。所以每个人都在开发杂志应用程序。

我说,那听起来像是一个有趣的短期工作。我说,我会帮你。

我打开了应用,发现哇,这是我见过最烂的代码。我当时心想,这是我这辈子见过的最糟糕的代码。它实际上只是一个文件,里面有数千行代码。面向对象C语言。他们把窗口当作标签来使用。我不知道它是如何运行的。我惊讶于它竟然还能运行。但感觉就像是纸牌搭的房子一样。

我试着,我试着做一些精准的修复。 但是你只要碰一样东西,别的东西就会坏掉。所以我弄懂了,我让它在某种程度上稳定下来了。我跟他说,听着,这简直是疯了。我会很喜欢为你做这个的。但这花了我半年时间。我打算一个月内完成。我花了两个月时间。我其实也差不多。

然后我就开始着手做一个PDF阅读器。对于每一个技术问题,其领域我不会说完全不重要,但你总能在任何领域找到有趣的问题。这就带来了很多有趣的问题,因为你有一个可以渲染PDF的C语言调用。这个PDF可能占用30兆字节,但整个系统只有64兆字节。所以,如果你不够聪明,对后台操作以及操作发生的时间不够小心,操作系统就会直接终止你的进程。我非常执着于把事情做好,比如当旋转页面时,页面会像动画一样。所以,我喜欢这些细节。我在这上面花费了太多时间。这就是为什么花了两个月而不是一个月。但最终结果是好的。

然后我和STEM fire合作了一段时间,后来一个朋友给我发了短信。他说,‘我正在做一个杂志应用,这真的很难。’ 我说,不可能,那很难。我知道,我做过那个。你刚刚做了一个。然后他说,你能,你能给我那个代码吗?

我说,当然可以。所以我把它卖给了他。比如我从这个杂志应用中提取了是PDF的那部分。我确保了,我确保了像另一个人是没问题的。然后我把那个卖给了他。我说,如果他对那个感兴趣,那为什么不把它告诉其他人呢?我使用了一个WordPress模板,并对其进行了修改,使其可以在GitHub Pages上运行。然后当你完成了“快速登录流程”(FastLandflow)后,最后你会得到一个指向我个人Dropbox的链接,其中包含一个源代码压缩包。

我在一个下午就构建了它,并在推特上进行了宣传。然后在那一周内,有三个人购买了它。价格大概是200美元。但在那时,对我来说,这简直是太棒了。而且不仅有三个人购买了它,我收到了10封电子邮件,是10个人抱怨它。因为他们想要它,但它缺少他们需要的功能。

主持人: 这就像是我被“极客式地吸引住了”(nerd sniped)。

Peter: 我就在想,我还没有实现文本选择功能。能有多难呢?三个月后。这真的很难。特别是PDF中的文本选择。你知道那句话,那句话,比如,公司是由年轻人建立的,因为他们不知道这有多难。我完全不知道这个文件格式是多么疯狂

主持人: 彼得在谈论一些问题看起来具有欺骗性。简单地简单。PDF渲染就是一个很好的例子。你看着它,会觉得这有什么难的。然后你花上数月时间去处理那些你甚至都不知道存在的边缘情况。这看起来很简单,直到你构建了一个在其他地方也出现的模式。用于功能标志和实验的内部工具就是一个经典的例子。团队常常低估围绕这些工具构建基础设施需要完成的工作量。像优步(Uber)这样的大型科技公司投入数年时间来构建内部的实验和功能标志系统,是有原因的。

Peter: 但现在我想起来了,几周前有人给我发了邮件。当他们想要我的帮助时,他们做了一些与PDF相关的事情。我只是回复他们说,对不起,我已经尽力了。我对PDF的了解已经超过了任何一个理智的人应该了解的程度。然后我去看心理医生了。祝你好运。

但这火了。当时我正在等着我的签证。我在这个项目上工作,然后越来越多的人购买它。当时大概是夏天,我躺在湖边,又收到了一封邮件,说有人花了600美元、800美元买下了它,随着功能的增加,价格也一直在上涨。等到我去旧金山为这家公司工作时,它赚的已经比我当初在那里的收入还要多了。但我一辈子都觉得自己必须在那里,你懂吗?所以我照做了。而且有趣的是,在这家公司,我必须使用。

4:硅谷抉择与公司文化的建立

主持人: 那么你说你搬到旧金山是为了什么?当然,最终那也成了一个需要在该公司用我的框架来构建东西的局面。

Peter: 但初创公司可不是朝九晚五的工作,要多一些。我的个人项目也多了一些。所以我我的睡眠就少了一点。然后最终过了三个月,我的经理萨宾(Sabine)过来问:彼得,你还好吗?他们给了我一个选择:要么继续在这家公司工作并放弃我的项目,要么反之亦然。我有一个星期的时间来做决定。选择是留在那儿或离开这个国家,因为我持有的签证很复杂。而这个决定其实相当容易。我想做我自己的事情。

主持人: 在那个阶段,它已经开始起飞了。你已经看到了这是一个大生意。在这里。它付给你的薪水可能和你在美国的工作差不多。本可以付给你的。

Peter: 我从来不是一个以金钱为驱动力的人。

主持人: 这更多是关于你的驱动力是什么?

Peter: 我想创造出能让其他人感到惊叹的东西。比如我喜欢调整细节。我喜欢那些细微的愉悦感。那片领域不乏竞争者,但这甚至不是关键所在。但我的切入点始终是,我构建的东西仿佛是苹果公司会构建出来的。就像倾注了所有的爱、关怀和打磨,以及行业中很多人不理解的那些细微的愉悦感。所以,尽管我们有拥有更多功能、存在更长时间的竞争对手,但我的公司更成功,我的产品更成功,因为开发者尝试了不同的产品后,我的产品感觉是最好的。我认为软件更多关乎感受,而不仅仅是功能集,我们为什么购买它呢?苹果的产品。它的功能不如 Windows 多,但感觉更好。

主持人: 那么,你是如何从你离开这家公司,开始构建并销售那个 PDF 组件的呢?你是在哪个时间点招聘了第一个意识到‘这背后还有更多东西’的人?当我回到维也纳时,我就觉得,我必须全力以赴了。

Peter: 从那时起,我开始与自由职业者合作了一点。然后说实话,太晚了,我本可以早点招聘的,但这是一个重大的决定,这基本上就开始有了它自己的生命,我花了差不多13年的职业生涯来构建这个产品,它的名字很奇怪,我从来没有改过,因为我只花了大概五分钟来决定它,然后 PSIDF 工具包最终做了更名,但我现在也不会改名了,它确实拗口,但非常独特。如果你懂目标-C 语言,你就会明白,因为它就是一个命名空间。

等到它变得完全有意义时,我的营销或营销策略一直是,我只关心开发者。我知道高层管理人员必须做决定,但如果我能说服公司内部的人,他们都会为我做营销和游说工作。效果非常好。我们从不做那种冷启动、冷邮件或侵略性的推广。一切都是内部吸引。我们所做的就是做出好的东西。并在其中撰写了内容详尽的技术博客文章,我还参加了许多会议,对我来说重要的是,如果人们理解了构建这款产品的人是了解他们在做什么并且热爱他们的工作,这就会反映在产品上,而且效果非常好。

然后 PSPDFKit 背后的技术栈是什么?是 Objective C,后来是 Swift,还是有 C 或其他技术?我们最终扩展到了所有平台。一个重大的转变是放弃了苹果(Apple)的渲染器——它过去(并且现在仍然)相当不稳定——转而采用了一个大型的 C++1。然后我们将其应用到所有框架中。我们在 WebAssembly 方面起步很早。我们是第一批在 WebAssembly 中运行的 PDF 框架之一。我做了一件非常巧妙的事情,那是在 WebAssembly 刚刚兴起的最早期。我们建立了一个基准测试。

主持人: 这个基准测试最终被谷歌(Google)、微软(Microsoft)和苹果(Apple)使用。我基本上让所有这些公司都在努力提高性能,让我的渲染器更快。

Peter: 因为他们将我们的基准测试用作他们的基准测试之一,而这个基准测试只是渲染我们的东西,用我们的代码。

5:团队管理、企业销售与倦怠

Peter: 然后随着公司的发展,我记得 PSPDFKit 的一件事是,你们确实写了很多博客。在 2019 年的一篇博客中,所以这大约是公司成立的第九年或第十年吧。内容是关于团队如何工作的。你在其中提到了一些事情,比如每项功能都始于一份提案。你提到你持保守态度,因为这是一个人们广泛使用的庞大API。你想要谨慎行事。像童子军规则(Boy Scout rule)这类事情,它是一种重构(refactor)。你现在是如何组建起这个团队的文化的,这个团队现在有30人或60人了?我卖出股份的时候你们实际上有70人,而现在快200人了。

我从一开始就知道,我找不到我需要的人才。在维也纳。所以一直都是远程优先。最后我们采用了某种混合模式,这让事情变得稍微复杂一些。我是一边做一边学到了很多东西。比如我从来没有想当首席执行官的冲动。我一直都在编写代码。我引入了很多人,他们在其他方面和业务方面给了我很大的帮助。

主持人: 现在,让我们回到彼得和企业定价。但对于像这样的模型,还有另一件真正有效的事情。你具体指的是企业销售,意思是定制定价。所以,你们能为我们这些开发者——你们知道,就是那些访问供应商网站却发现没有价格的开发者——进行定价吗?它显示要求致电或安排会议,这是为什么呢?

Peter: 就是因为我们会查看你们的公司,然后掷骰子,估算你们可能愿意支付的金额。这听起来很糟糕,但是当你有一个产品无法真正分解成一个具体数字时,比如,一个自由职业者联系我们和一家财富500强公司联系我们,那是有区别的。我们就不说名字了。因为用户会不同。他们从中获得的价值也会不同。却收取相同的费用。如果你定得太低,你会排斥一方或另一方,如果我定得太低,他们会觉得这很可疑,就像采购只花了500美元,我们甚至都不会开始这个流程;如果我们定得太高,我们会失去那些人。所以,尽管这种定价过程对某些类型的产品来说看起来很糟糕且不公平,但归根结底,它是最公平的方式。

在软件领域,我可以说有大约四个维度,有简单和困难,有趣和无趣。我们正处于非常不有趣且困难的阶段。如果你构建的是每个开发者都想构建的东西,那将很难推销。那将很难推销。那将很难推销。向任何开发者推销东西都很难。但如果它太简单或太有趣,祝你好运。但如果它是,哦天哪,我不想做这个,而且哦天哪,这很难。那是一个不错的位置。所以我找到了一个非常有趣的细分市场,那里有无穷无尽的复杂问题。

主持人: 你需要告诉告诉我一两个解析PDF的难题。能有多难呢?如果有规范,我就是工程师,我懂规范,这有什么难的?

Peter: 只有一个例子,比如PDF,我们有链接。所以,比如有一个目录,你点击它,它会跳转到第37页。所以我建立这个模型的假设是,里面可能有一百个或四百个链接。然后我们得到了一个定制项目,我们付了非常好的钱。然后它说,加载一个文件需要四分钟。你们搞什么鬼?我看了看,那是一本来自加拿大的50000页的文本圣经。它有...50000页。它每页有超过100个链接。500,000 个链接。我的数据模型完全崩溃了,因为我的假设差了 1,000。

但那时你已经有了一个拥有 API 的成熟产品。所以,如何在不破坏所有人的使用的情况下,完全重新设计内部部分呢?比如突然间所有东西都必须是惰性的(懒加载),但在 1001 之前,这很容易。但现在他们感觉,要让它继续为用户工作是极其困难的。我想我花了大约两个月的时间,专门用于完全重新设计内部结构,并确保它对用户来说仍然是简单的。他们不需要知道我们是即时加载还是惰性加载。或者如果你复制这个东西,它仍然需要保持某种连接。

主持人: 它需要保留引用和其中一些关联。

Peter: 所以我喜欢做支持工作。我认为这也是这家公司运作的一个限制因素。因为如果你发送一张工单,然后首席执行官回复并帮助你解决问题,那是有影响的。

我的策略一直是,我总是反向罗列。因为如果你发送一张工单,并在五分钟内得到回复,那简直是神奇的。所以如果你等一两天,区别就不大了。所以,这是我工作了两个月并最终将其缩减到几乎像这样的一个问题所在。

主持人: 嗯哼。那一定很令人满意。

Peter: 确实非常令人满意。

主持人: 你在编写很多代码,或者参与了大量的代码编写,是吗?我当时的大团队现在在这里了,但你仍然在某种程度上监督着它,当然,我在某些方面有一个非常出色的团队。

Peter: 我参与得更多。我一直更多地参与移动领域,因为我的心所在就是那里。但我一直非常深入地参与技术和营销方面,以及业务方面。我有像乔纳森那样的帮助。我有营销人员。我找到了优秀的人才。关键在于,如果你喜欢撰写关于如何解决有趣难题的博客文章,这将帮助你招募到想解决有趣问题的人。

主持人: 我记得在 PSP、PDF Kit 时就是这样,你的博客时常出现,并且它还登上了黑客新闻(Hacker News)和应用(Use Next)。但这只是读起来很有趣。而且我无法说出,再说一遍,我不怎么关注PDF,但如果我必须提及某个PDF相关的,我会说是PSPDF,因为他们是唯一一家我能读到关于如何优化或发布的有趣入门博客的公司。顺便说一句,它现在还在那里。我自己有时也会问自己,有趣的是,为什么更多的公司看不到这一点?还是说问题在于你需要是一个能够看到这些,或者身处高层并喜欢做这件事的开发者。顺便问一下,你写这个的时候是否想过这对别人会有帮助,还是说你只是因为从中得到了某种回报,比如分享了你解决了这个难题,才写下来的?

Peter: 我喜欢分享和激励他人。有时候甚至会有争执,我们会说,我们应该写这个吗?因为它有点像是秘方,但我从来没有太听从那些声音。

还有一种原则,就是当你把某件事写下来时,虽然你理解了,但如果你想教给别人,你真的需要深入理解它,所以对我来说,这也有一点我解决了这个非常困难的问题,现在我想保留下来,并帮助其他人,所以,所以我也从中获得了一些东西,当然我也喜欢关注度,但说实话,有时候我只是在一年后引用我自己的帖子。这这既是公司文档。这就像我自己的书一样。它在很多方面都有帮助。

而且很多那些大公司啊,他们设置了太多的繁文缛节。有很多开发人员其实不太喜欢写作。所以我,我曾经强迫所有人每个月有一天时间专门写一篇博客文章。

但你给了他们时间。你就像说,那天,你们不需要做任何工作,但要写点东西。你们有一天时间来完成一篇文章。一天其实很多了。当现在是我写文章的时候,仍然需要花我几个小时。

我不想过多地谈论,我认为公司的创建初期是最有趣的。成长期,你会遇到更多的繁文缛节,更多的人,更多的是在培育你的产品,而不是像做快速技术修复。并且更具迭代性。所以这些年它变得稍微不那么有趣了,而且出现了更多的人际关系上的纠葛,因为人越多,问题就越多。我不是很享受那个过程,而且我真的非常非常精疲力竭。

Peter: 你觉得是什么让你精疲力竭的?

Peter: 我只是工作得太拼命了。我大部分周末都在工作。我试图重新安排我所有的物质需求。作为首席执行官,你基本上就是那个垃圾桶,因为别人没有管理好、做不到或搞砸的一切,都必须由你来解决,而且这也相当孤独,因为你不能公开谈论很多事情。我指示公司要相当坦诚,但即便如此,你也不能表现出负面情绪,你必须,即使发生了非常糟糕的事情,我也知道有那么一个周末,我的联合创始人凌晨 5 点给我打电话。告诉是这样,有一家大型飞机公司,他们的飞机停飞了,因为我们的软件崩溃了。

那是一个非常有趣的周末,直到我能够,我拆解了他们的应用程序,并证明了他们未按规定操作,绕过了源代码,触发了一个许可证密钥的备用机制,最终给他们造成了损失。但这就像是如果源头公司消失了,更是一个关键时刻。这只是在所有额外压力之上,而且有很多这样的事情,你可以持续一段时间,我也相信,比如倦怠感不一定来自于工作过度,至少对我而言,它更多来自于当你为一个不再相信的东西工作时,或者你有太多的冲突时,我们团队内部,和管理团队之间也争吵得厉害,在我犯下这个错误时,我曾以为你必须更民主地领导一家公司。所以那也是让我精疲力尽的原因之一。不过,我一辈子都不想错过那段经历。

6:归隐与 AI 时代的回归

主持人: 所以,从外界看来,你卖掉了股份,赚够了钱,如果你选择的话,就不必再工作了。对很多人来说,比如,那些刚开始创业或者有一天想创业的人。这听起来像是终极梦想。我想,我们现实中知道的是,大多数人是做不到的。但是如果你成功了,你已经算是,我猜,那个复选框打勾了。你有点如果你在攀爬一面墙并敲响了钟,你就完成了。然后我注意到的是,从外部来看,再次从你的博客来看,博客文章完全停更了好几年。你在这段时间里做了什么?在你回到我们现在的这个阶段之前,你在这段时间里学到了什么?

Peter: 我需要很长时间来放松减压。我把我认为错过的很多事情都补上了。我参加了很多派对。有几个月我甚至都没有打开电脑,而且有一段时间我完全没有那种‘我现在该做什么’的感觉了?

主持人: 比如我肯定会想,为什么要退休?你不应该这么早退休,或者说有一个如此好的退出机制,让你再也不用工作了,这让我非常困扰,那确实是几年很艰难的时光,然后在四月份的时候,我突然想到一个多年前就有过的想法,以及我开始的一个副项目,我想继续做下去。

Peter: 然后,三年多之后,我重新坐回到电脑前,又开始编程了。但问题是,这东西当时是一个推特(Twitter)分析工具,是用 Swift 和 Swift UI 写的。但那时我就知道,如果我把它做成一个网站,效果会好得多。

主持人: 所以,这是你脑海中一直有的一个现有的想法,关于推特分析的什么东西吗?

Peter: 这只是我想为自己构建的东西。因为当时它不存在,而且即使三年后它依然不存在。它现在仍然不存在。确实有点,但我有点跑偏了。所以我回去后,想用这种网络技术来构建它。但是,尽管对公司而言,网络技术一直是我关注最少的一个领域,因为我带进公司来的马丁是一个非常聪明的人,他负责公司的那一部分。所以我从来不用担心它。那是其中之一。

主持人: 你没有亲自接触过React或任何那类技术。

Peter: 当我回来时,我就在想,什么是属性(prop)?那种程度,你真的,这是我看到很多开发者都会掉进去的一个陷阱。你在一项技术上越精通,跳到别处就越困难。不是说你不能做到,而是会很痛苦。你会觉得,比如我能盲写苹果的技术栈,但我在这个技术栈里,我必须去谷歌搜索最基本的东西,这真的让人很痛苦。你又觉得自己像个白痴。

主持人: 而且我想你经验越丰富,这种感觉就越糟糕。我确定你会说要拥抱它之类的,但感觉并不好。你没有以前那么高效了。你知道你可以更快,等等。

Peter: 是啊,所以我回来后心想,天哪,一定有,一定有,这是什么?AI 是什么?人们不屑一顾的这些 AI 是什么?让我们研究一下。

在四月,我们很多人可能都(正当地)认为这没什么用,但是。我得说,我把那三年的时间算进去,那三年我基本上没开过电脑,因为在那几年里,你们都考察了人工智能并得出了它是垃圾的结论。

主持人: 那些人,就像我刚才要说的,所以你错过了,你没有做GitHub Copilot的测试版,就是那个被美化的自动补全,也就是GPC3,或者甚至可能不是。然后当然有了3.5,那是一个巨大的飞跃,它比GPT4增量地变得更好了。所以等你回来的时候,你最先用的是什么工具呢?因为你错过了我们这些开发者使用、摒弃、找到一些小众用例的大约两年的时间。

Peter: Code Llama。

主持人: 所以你从Code Llama开始。我想我能想象到。

Peter: 它是在五月发布的,但之前有一个测试版。

主持人: 我想他们确实有什么,他们二月份就已经有什么了吗?

Peter:他们从二月份开始就有测试版,没错。

主持人:所以Code Llama是你的第一个,你在休整期回来后,你立刻就启用了Code Llama,而错过了之前的一切。

Peter: 我记得我接手了一个我构建的那个庞大而混乱的副项目。我有一个浏览器扩展程序,可以将一个 GitHub 仓库转换为一个大的 Markdown 文件。当时有一个大约 1.3 兆字节的 Markdown 文件,我把它拖到 Google 的 AI Studio 里,使用 Termina 2.5 或 2.x 版本,然后我输入“为我写一个规范”,它生成了那 400 行规范,我把规范拖到 Claude Code 里,然后我说“构建”,接着我一直点击“继续”、“继续”、“继续”、“继续”,在我处理其他事情的时候,你懂的,最终它告诉我“100% 可投入生产使用”,我启动了它,然后它就崩溃了。

7:闭环原则与 AI 协作心流

Peter: 然后我添加了一个 MCP,这样它就可以使用浏览器了。我认为之前已经有一个使用MCP的程序了。然后它又循环了好几个小时。然后我看到了一个推特登录页面,它做了一些事情。

主持人: 它不是很好,但它确实做了一些事情。

Peter: 对我来说,对我来说,这就是我感到极度震撼、醍醐灌顶的时刻。这大概是在今年的四月或五月,它已经好到足以让你看到其中的潜力。我明白了,这就是它的发展方向。

从那时起,我有几个月的时间,我真的睡不好觉,而且我……

主持人: 我记得,有一次我在推特上给你发了私信,我很早就醒了,因为有正当理由,比如我的孩子们或类似的事情。但当时是凌晨5点。我给你发了一条推特信息,你立刻回复了。我就说,你怎么这么早就醒着?然后我就想,这很常见。比如我通常,我通常还醒着。我就问,为什么?你说,我只是在使用Claude,它真的,真的非常令人上瘾。我就说,是啊,我没开玩笑。它真的很好用。我想那就是,你说了点什么或写了点什么,比如“再来一个提示词”。就像你告诉我的一样。比如是什么让你沉迷其中,或者是什么至今仍让你沉迷其中?

这和你去赌场是一样的经济学原理。那是我的小老虎机。你按下扳机,然后发现,没有。你点击提示,但它什么都没做。或者它做了点什么真的让你大开眼界。

主持人: 就是这样。而且你说的“让你大开眼界”,就像你是一个经验非常丰富的开发者一样。就像要让你大开眼界并不容易,就像你见过好的代码一样。你可以区分出烂代码、还算可以的代码、够用的代码。就像你有一个标准,这太搞笑了。

Peter: 在我以前的公司,我曾经痴迷于每一个细节,每一个空格,每一个换行,以及命名。我花了很多时间在“自行车棚”(指为琐事争论休)上。回顾过去,我就想,搞什么鬼,我为什么要那么做?有什么意义呢?客户看不到内部的细节。当然,它必须达到一定的标准。它必须管用。它必须快。它应该是安全的。

主持人: 但是,我在那里为技术细节争论了多少?这很愚蠢。你说这话,但你刚才也说人们喜欢 PSPDF kit,因为它最完善,它工作得最好。你难道不认为这种程度的承担、你所说的技术细节争论,痴迷于此,听起来你是在避免技术深度,比如痴迷于留白区域,这样就不会乱糟糟的。而且我们知道,这不仅仅是留白区域。我们知道你会关心测试以及所有这些事情。听起来,就像是,我看到的是,PSPDF Kit 就像是,你当时。不仅是构建了一个用户体验很棒的产品,而且你构建了一些具有良好“卫生习惯”(代码质量和可维护性)的东西,这也是它能够高性能的原因,你是怎么看待它的?在某种程度上是这样,即使到现在,我最近的一篇博客文章就是坦白我“在阅读中发布了核心代码”,我们得谈谈这个,与此同时,我花了很多时间去重构。

Peter: 即使在今天,我真的很想把这个拉取请求(PR)合并进去,那是一个涉及 15,000 行代码的更改,我把所有东西都迁移到了一个插件架构上,我对此感到非常兴奋。而且我非常关注结构。我是否阅读了所有的代码?没有,因为很多代码实际上只是无聊的“管道”(底层基础设施代码)。那么,大多数应用程序是什么?就像数据以一种形式从应用程序接口(API)传入。你对其进行解析,将其打包成另一种形式。你将其以不同的形式存储到数据库中。它会以另一种形式再次出现。然后它就像HTML或任何其他东西。然后你输入一些东西,它又是一种不同的形式。你所做的只是在你整个应用程序中以不同的形式整理数据。这就是大多数应用程序的样子。我们基本上是JSON打印机。而真正困难的部分是30年前被一些极客通过Postgres解决了。这实际上是很多软件的内容。

主持人: 比如说总有一些有趣的部分,但我不需要关心这个按钮是如何对齐的,或者使用了哪个Tailwind类,或者,很多细节是无聊的,而许多其他细节是有趣的,但我认为这更多地关乎系统架构,而不是现在必须阅读每一行代码。我们跳到前面,你的工作流程是怎样的?比如,当你在开发Clawdbot时,你是在使用终端、多个终端,使用哪些工具,以及你如何……就像你说的,你并不是在审查代码,但你仍然在思考架构,你的平均一天在工具使用方面是什么样子的?你必须向未来可能加入团队的开发者解释,你曾经不理解的东西,它看起来是什么样子的?

Peter: 这很有趣。我们再深入一点。四月份我们一直在使用 Claude 代码,然后我真的沉迷进去了。然后我做了一些,我有一段时间是使用光标(cursor)。然后我用了一点 Gemini 2.5。

主持人: 然后我们经历了 Opus 4 这个阶段。

Peter: 我希望。我的很多朋友,比如我知道 Armin 和 Mario 都来自 Vina,他们都被人工智能迷住了,因为我的“终极解决方案”让他们感到困惑,然后他们试了一下,结果他们也熬到了凌晨 5 点,我称之为“黑眼圈俱乐部”。这其中是有原因的,比如我在伦敦组织了一个聚会,我称之为“Claude Code匿名会”,因为这有点像毒品,因为它太有趣了——对我来说,最让我震惊的是这个发现:我现在可以构建一切了。以前你必须认真挑选你要做的哪个副项目,因为软件开发很难。它仍然很难。但现在,就像我谈到的摩擦一样,我在技术方面非常擅长,但在那个方面我却很糟糕。然后我就说,我们来创建CLA然后继续吧。我对围棋一无所知。但我对系统有很好的理解。一旦你拥有了这些,你就好像形成了一种感觉,知道什么是对的,什么是错的。这本身就是一种技能。

我记得有条推文,有人说,当你编写代码时,你会感受到摩擦。这就是你构建良好架构的方式。当我进行提示时,我感受到了同样的摩擦。因为我看到代码飞速滚动。我能看出这需要多长时间。我能看出代理人是否会反抗。我能看出它生成的内容是混乱的还是有意义的。当我提示时,我已经对需要多长时间有了一个预期。如果花费的时间更长,我就知道我在某个地方搞砸了。

主持人: 你多少能感知到这个模型。你知道通常它是这样的,或者它运行起来。

Peter: 我觉得这在很大程度上是一种共生关系。

主持人: 就像我学会了说话,我甚至可以说出那种语言,或者更多?

Peter: 所以这就像我对如何使用这些东西的知识得到了提高。而且模型也在改进,在四月到现在这段时间里,我想转折点是在夏天,那时候它变得非常好,你可以在不手动编写代码的情况下创建软件,但真正让我信服的改变是 GPT 5.2,我仍然认为它被低估了,我不知道为什么所有这些人仍然使用 Claude Code。我有点明白。这是一种不同的工作方式。但是无论我输入什么提示,结果都好得惊人。我输入的几乎每一个提示都能得到我想要的结果,这太疯狂了。

比如在我的最新产品 Clawdbot 上,我并行使用了 5 到 10 个智能体。如果你非常依赖 Claude Code,你就必须忘掉很多愚蠢的操作,那些为了用 Claude Code 产生良好输出而必须做的事情。

主持人: 我也见过那个团队,他们创造了一个全新的类别。

Peter: Claude Code 是一个定义类别的产品,它在通用计算机工作方面非常出色,在编码方面也非常棒,我几乎每天仍然在使用它。但对于复杂应用程序中的代码编写,Codex 要好得多,因为它花费的时间要长 10 倍。Claude会阅读三个文件,然后就很有信心可以开始创建代码了。然后你真的需要引导和推动它,让它阅读更多的代码,这样它就能看到你的代码库的更大图景,从而能更好地融入新的功能。而 Codex 只是静静地读取文件。

主持人: 十分钟,如果你只在一个终端上工作,我完全理解你为什么觉得这无法忍受,但我更喜欢那种你不需要告诉它该做什么的东西,这也是人们不理解的一点,比如我与模型进行对话,就像“让我们看看这个,我们对这个结构有什么样的选项?你考虑过这个特性吗?”就像是,因为每一次会话都像是模型从理解你的产品开始,有时你只需要给它一点提示,比如“这个怎么样?那个怎么样?”这样它就会探索不同的方向,你不需要规划模式,就像我只是在交谈,直到我说“构建这个”,它才会构建这个,有一些触发词,因为它们都有点“饥渴”于触发,但只要我说“我们来讨论一下”或“给我一些选项”,它们就不会构建任何东西,直到我说“构建”。

所以,你是否认为你们很多的提示,或者很好的一部分,就是这种你几乎是与智能体共同规划的对话?就像我说你提醒它们,“好的,我们需要文档”,一个好的位置在哪里?它会给出建议,我说不,它应该是一个单独的页面,我们需要一个配置吗?它如何与这个其他特性融合?就像我正在设计系统,因为我有这个,我对我的产品如何运作,形状看起来如何,有一个系统的理解,我没有逐行代码的理解,那是代码为我做的,但我就是架构师,你知道吗?这听起来有点像你几乎是,多年前,这个完全过时了,但曾有一种观点,即你有一个大写的“A”的架构师,他以前是软件开发人员,但他们不再亲自动手了,因为他们花费大量时间理解业务,并且有开发人员在他们手下工作。

8:构建者思维与个性化助手

Peter: 有些公司仍然有点像这样运作,但大多数现代公司则不然。但有些银行等等,在那里遇到了资本架构师。他们制定系统计划。他们与其他架构师交谈。他们拥有蓝图。然后他们就将其传达给团队。显然,每个人都讨厌这种模式,因为,再说一次,我认为作为人,你多少有点想要更多。架构师从不负责这些事务的待命工作。所以在实践中,它就很容易崩溃。而且许多大公司干脆转向了“资深工程师模型”,在这个模型中,你们都是一起合作的。当然,有些人可能有更多的意见,但这听起来很像你是一位架构师,你有一些代理人来编写代码,但在这个例子中,你当然是完全负责的,因为你仍然是个人贡献者。你不是,你不是那种,也许你会说你是代理人的经理之类的,但代码是你的。这是你的责任。如果,你部署的代码导致 Klobbot 宕机——最近发生的那样——你就要为此负责,我认为其中的区别在于系统,当它在公司里时,架构师的工作成果在某种程度上是受保护的,因为人多、流程多等等。我不会说架构师,我更喜欢“构建者”这个词,构建者,而且随着发展,我看到在使用人工智能方面非常成功的人和非常挣扎的人有几类。我更关心结果、产品,我非常关心它的感觉以及其他所有方面,但我关心底层的运作机制,我关心结构,但不是最关注细节的那一类。还有一类人非常喜欢解决那些棘手的编码问题,比如思考算法,他们不太喜欢那种“我要用营销来构建一个产品”的感觉,他们更喜欢解决难题,而这些人恰恰非常挣扎,而且常常拒绝使用人工智能,或者会非常沮丧,因为人工智能恰恰就是做这种工作的,它解决了那些难题。

现在,我有时会给它一些提示,但很多时候,我今年在软件架构和设计方面学到的东西比过去五年加起来还要多。那些庞然大物里面蕴含着海量的知识。一切都只是一个问题之遥,但你必须知道该问什么问题。当然,我也做了这个推特应用,它还没有完成,我真的很希望有时间能重新把它弄好。

一切都运行正常,但如果我在某个时间点使用得更多,事情就会变得非常卡顿和奇怪,然后它又恢复正常了。

我就是搞不明白,而且调试起来真的很困难,因为它不容易复现。就是你用得越多,事情就可能变得非常慢。基本上,你有一个像在 PSQL(PostgreSQL)里的软件,它会在某些插入操作发生时被触发,然后数据库就会变得非常繁忙,而模型看不到,因为它与所有那些……那些模型非常擅长追踪,但这是一个非常难以察觉的副作用,因为它只存在于一个文件中,一个与其他任何东西都没有关联的函数中,而且它的名字不容易被抓取。

我只是从来没有问对问题,直到我说,你对此有任何副作用吗?然后我找到了它,并修复了它。

主持人: 感觉就是,但一切都只是一个正确的问题之遥。但你需要具备知识、专业技能。经验。

Peter: 那些是被拒绝的人,而那些不太关心内部是如何布线的,只是对构建事物感到兴奋的人,他们确实非常成功。另外,帮助我的还有一点是,当你经营一家公司并雇佣员工时,你不可能时刻盯着每个人的每一个细节,强求他们把代码行写成完全你想要的样子。有很多人没有管理过团队,他们没有这种经验,不知道如何,如何放松一点,并理解虽然这可能不是我想要的确切代码,但它能让我更接近我的目标,而且对于任何不完美的地方,我们总能做得更好,投入更多时间去完善,我非常相信这种迭代改进。我不得不在我的公司学会放手一点,所以,所以,所以当当我有了 Claude 代码时,我感觉就像我拥有了一些不完美、有时愚蠢,但有时非常聪明的工程师,我需要引导他们,我们一起为一个共同的目标而努力。感觉就像我又当了一次老板。

主持人: 很有趣。现在,你构建软件的方式是传统的,在人工智能出现之前的15年或更长时间。你非常擅长领导团队以及如何保持高标准。

你真的非常重视这门手艺,那么你现在已经“氛围编码”或者说与智能体协作(working with agents)大约一年了,你来对比一下,你认为真正发生了哪些变化,哪些方面又保持不变呢?

Peter: 首先,我不喜欢,我不喜欢“氛围编码”这个术语,我们应该怎么称呼它?我认为,我认为“氛围编码”现在几乎已经过时了。我告诉人们,我所做的是“智能体工程”,带有一点“氛围编码”的色彩。“氛围编码”现在开始于凌晨3点,因为所有编写代码的琐碎工作都被自动化了,我可以移动得快得多,但这也意味着我必须思考得更多。

我仍然非常沉浸其中。对我来说,感觉是完全一样的,我非常容易进入这种心流状态。但这在精神上更具挑战性,因为我管理的不是一个员工,而是像五到十个都在做事情的智能体,我需要不断地从这个部分切换到那个部分,做这个部分,做那个部分。主要是因为我正在设计这个子系统或者这个功能,然后我知道它可能需要代码智能体花费40分钟或一个小时来构建。所以我我想制定好计划,然后我就去构建它。然后我就去处理别的事情。但那个(任务)正在进行中,那个(任务)正在进行中,那个(任务)也在进行中。然后那个(任务)也在进行中。然后那个(任务)也在进行中。然后我再回到这个上面。所以在脑子里会经常切换。我希望我不用做这种切换。比如我确信这是一个过渡性的问题。到某个时刻,我们拥有非常先进的模型和系统。快到我只需要稍微停顿一下,但为了保持心流状态,我需要大量地停顿。这就是我的工作方式。

然后我回到那里,也许再微调一下,但通常只是尝试一下。也许然后这个就准备好了,因为它只花了大约20分钟。所以我我会不断地跳来跳去。通常会有一个主要的、集中精力的项目,同时我还有一些需要关注的卫星项目。

主持人: 但在那些我或许能花五分钟,但它却需要运行半小时的事情上,我尝试了一下,它不需要太多的精力集中在那里。这听起来……有两个想法浮现:一个是在那些你需要管理厨房、员工并看到食谱之类的游戏,你需要迅速行动,就像《星际争霸》一样,他们有你的主基地,你也有提供资源的副基地。另一个想法是,当你说‘我去那里看一眼并做决定’时,我想到了国际象棋特级大师们同时下多盘棋的情景。你有时会看到他们同时下20盘棋,他们总是过去看一眼,你看,他们就像只是看一下那盘棋的情况,然后做出决定,而有些棋局他们会考虑得更久,我猜是面对更强的棋手或对手吧。感觉,他们两个都在占用100%的大脑,而你正在占用你的“海湾”(指工作空间/精力),你只是在尽可能长时间地扩展你的上下文切换能力。

9:Clawdbot 的核心:闭环验证与环境构建

Peter: 直到有了Claude Code,情况才有所不同,你必须以不同的方式工作,因为它快得多,但第一次输出往往不行,比如它生成了某些东西,但忘记更新其他三件事,或者程序崩溃了,或者你给它正确的东西。要有效地使用代码代理,关键是要完成闭环,它需要能够调试和自我测试,这是最大的秘诀,这也是我认为我效率提高这么多的部分原因。但是,使用Claude Code,我常常需要回去修复那些东西。或者它只是需要很多次迭代。所以最后,它并没有快那么多。它只是更具交互性。而现在有了Codex,它几乎总是能做对。

我的总体策略一直是构建一个功能。当然,你总是让它编写测试。并且确保它运行自己的系统。所以即使当我编写一个Mac应用程序时,我不知道,就像昨天我调试了一个功能,Mac应用程序找不到一个远程网关,但同样的TypeScript代码可以,但Mac应用程序调试起来有点烦人,因为它会构建它,你必须启动它,你必须查看它,你必须不,这不行。所以我现在只是说,你要构建一个仅用于调试的命令行界面(CLI),它会调用所有你可以自己调用的相同代码路径,然后你只是迭代并自己修复它,然后它就会运行,它运行了一个小时就完成了,然后它告诉我这里有一个竞态条件,那里有一个配置错误,诸如此类的,而且,这听起来很合理,我不需要,我不需要看到那段代码。

但是,但是你看不到它,因为你设置了验证循环,并且你相信它,因为它运行了。我想,我想这和我们在大公司做一个大项目时类似,当所有的测试都通过时,我指的是,这并不意味着 100% 没问题,但这是一个很好的迹象,而且所有新的代码都有测试,有人考虑过并测试过,所有这些,所以即使在我非常小的项目上,我们也有错误,比如Antigravity在循环中处理工具调用(tool calls)的方式存在某种奇怪之处,在格式中,所以你必须做一些过滤,我搞砸了很多,我花了太长时间才意识到,我在这里到底在做什么,我只需要自动化这个过程,所以我只是打算让 Codex 这样做,就像设计实时测试,启动一个 Docker 容器,安装所有东西,启动一个循环,使用我这个文件和那个文件中的 API 密钥,然后你告诉模型读取一个图提前创建一个图然后查看图像并看看它看到了什么,所以我不会只告诉循环,我仍然会告诉工具调用让它工作,这花了很长时间,但它测试了我所有的 API 密钥,比如从 Anthropic 到 SETAI 再到 GLEM,比如所有的一切,它修复了所有这些微小的复杂问题,比如有时工具调用不起作用或者顺序不对,因为我闭合了循环。而那是,那是一个秘密。

主持人: 闭环,你的意思是只是有一种方式让智能体能够验证它的工作。

Peter: 这就是为什么,这就是我们目前拥有的模型在编码方面如此出色,但在进行创意写作时有时表现平平的原因,因为没有简单的验证方法,但代码,我可以编译,我可以进行静态代码分析(lint),我可以执行,我可以验证输出。如果你以正确的方式设计它,你就会有一个完美的循环。比如现在对于网站,我以一种可以通过命令行界面(CLI)运行的方式构建了一个核心。所以就像我拥有这个完美的执行循环,因为浏览器循环实在是太慢了。

主持人: 你想要一个循环速度快的东西。所以听起来,有一件事从之前到现在并没有真正改变,那就是我们之前有这种后端或业务逻辑密集的,可以更容易或更方便地验证其正确性。

Peter: 实际上使用一个温和的编码过程会让你成为一个更好的编写者,因为你必须更深入地思考你的架构。所以它更容易验证,因为验证是使事物变得良好的方式。

主持人: 而且记住,即使在处理复杂系统的人工智能之前,比如在你有了那些构建这些东西的人之后,我们一开始就考虑如何进行可测试的设计,比如,你需要设计可测试的接口和类,你需要考虑我是否要使用模拟对象,是否要使用模拟(mocks),是否要使用端到端测试,那样会很耗时等等,但这些都是非常困难的架构决策,一旦做出,我猜就更难更改了。在你(的认知中),就像模型需要更长时间来“烹饪”,如果你让它进行大规模重构,如果你已经测试过了,它会做对,但你知道我们仍然面临这些权衡。它仍然是软件。

Peter: 我会说,我现在写出了更好的代码,因为我不再亲自写代码了,而我以前写的代码也非常优秀。但就像在公司里一样,有时候测试非常繁琐。然后你要想出所有那些边缘情况和分支。

主持人: 除了我非常尊敬的肯特·贝克(Kent Beck),他上过这个播客,我们聊过,比如他仍然是先写测试,他告诉他对我并不生气。

Peter: 而不是写它,但如果你想写出你知道的质量很差的代码,那是你自己的事,但我认识的开发人员中很少有人,包括我自己,喜欢写测试,即使我假装喜欢,我也从来没有写过。这有点像写文档和写测试,对我来说,它从来都不是一种创造性的表达。现在情况非常好,比如我会说,从我上一个项目来看,我有非常好的文档,而且我没有自己写一行代码,我不是指我没有写测试,我不知道文档,我解释了那个交易模型,说明我们为什么要做这样的事情,然后告诉它,比如,写为初学者友好地写介绍部分,然后在最后写更详细的技术内容。而且它非常好。

主持人: 我从没有一个项目有那么好的文档,每次我们设计一个功能时,这就是流程的一部分,测试也是如此。

Peter: 我几乎是那种,我们构建了这个,我们怎么测试它?我们可以这样做和那样做。如果我们以这种方式构建它会怎么样?那样我们就能更好地测试它。这就像现在成了我唱歌的一部分,因为我总是在想我如何闭合这个循环,我如何让模型总是能够验证自己的工作,这自动地引导我走向更好的架构。

主持人: 那么你认为为什么有很多经验丰富的开发人员仍然对人工智能能做这么多事情这个想法持抵制态度呢?

Peter: 那是上周的事。我偶然看到了 Nagalajga, Koko With Love 写的一篇博文,我非常尊敬并从中获益良多。而这篇博文只是,只是在抨击当前模型的工作方式。他所做的是测试了五六个模型,包括一些根本不合理的模型,比如那个 1200 亿参数的开源模型。光能写出好的代码是不够的,你懂的。

主持人: 据我理解,他只是写了一个提示词。

Peter: 网站上的信息不多,但对我来说,信息量并不大。

主持人: 听起来像是他写了一个提示词,把它发给了 Claude Web,然后按下了发送键。

Peter: 然后他拿到了输出结果并运行了它,结果没有编译成功。他很失望。但这就像是,当然它不会成功。你认为我第一次尝试就能写出完全没有错误的bug-free代码吗?而那些小小的、那些模型,是我们集体人类知识的幽灵。它们在很多方面的工作方式非常相似。当然,它们第一次不会做对。比如会出现错误,这就是为什么你必须闭合反馈回路,而且你不仅仅是向模型发送一个提示词(prompt),你开启了一段对话,嘿,这是我想构建的东西,他抱怨说它使用了旧的应用程序编程接口(API),你没有指定macOS的版本,所以它默认假设使用旧的API,因为缺少这个信息,而它是在大量数据上训练的,不仅仅是过去两年,而且旧数据比新数据多得多。所以,你越了解这些小家伙们的思维方式,你就越擅长提示工程(prompting)。

然后他花了一天左右的时间来玩弄它,然后就决定这项技术不是真的很好。但是要有效,你必须投入明显更多的时间。这就像你会弹吉他,我让你去弹钢琴,你试了一会儿,然后说,这太烂了。我要回去弹我的吉他。不,不,这这是一种不同的构建方式。这是一种不同的思维方式。你根本不知道我半夜3点对着Claude Code喊出这句话的频率有多高,就因为它做了些蠢事。我开始慢慢理解为什么那些东西会按照我告诉它的方式去做事情。有时候你真的可以问。

甚至去年,对于这个项目,上一个项目,我感觉自己像是一个人工合并按钮,因为社区反馈非常热烈,而我所做的只是审查拉取请求(PR)。我自己真正写代码的时间越来越少了。一开始它经常会像挑三拣四地处理一些事情,然后关闭拉取请求,这真让人非常恼火。所以我说,你为什么要这么做?当你说到这个和然后解释这个和这个就是这个,然后我就明白了。我有点更深入地学会了机器的语言。我调整了一下我的提示词,现在得到了我想要的东西。因为这就像任何其他技能一样,是一种技能。

主持人: 这就像西蒙·威利森(Simon Willisson)一直在说同样的事情,尽管我们已经使用它很多年了。我想每个人,我想一旦我开始使用它,我也会意识到我做得还行,但我可以做得更好。如果我们把它投入实战测试会怎样?因为我认为可以公平地说,现在你正在构建 Clawdbot,它不是一个能产生收入的东西。它有很多用户,并且正在迅速发展,它是一个非常酷的工具。但它不是 PSPDF kit,那是一个能产生大量收入的业务。从一个角度来看,如果今天,我们只是删除了 PSPDF kit,而不是像这样,你需要重建 PSPDF kit。你现在有了这些代理。它看起来会有多大不同?你会多大程度上信任它?你会委托什么?而且,当你围绕它建立起一个团队,因为它现在是一个盈利的企业,至少你需要雇佣销售人员或类似的人员,你认为今天用同样的产品,团队会看起来有什么不同?因为你确切地知道构建它需要付出什么。你也知道这些工具今天能做什么。

10:未来的工程:提示请求与微缩团队

Peter: 我可以用比现在少30%的人力来轻松经营一家公司。找到达到那个水平的人可能会相当困难。所以你希望拥有真正理解自己所构建内容的资深工程师,但他们也乐于委托,并且知道哪些部分确实是需要努力工作的重点,哪些部分我可以轻松处理。这仍然是我没有看到的东西。我没看到多少。

比如,尤其在“情感智能”(EI)这个圈子里,推特上充斥着太多垃圾信息。有太多人声音很大,但显然他们完全不明白自己在做什么。围绕这个主题有太多愚蠢的概念。抱歉,但那个关于拉尔夫·威格姆(Ralph Wiggum)的例子,呃。这又是一个人们用来规避的愚蠢做法。来回避“欧普斯”(Opus)的模型局限性。当你使用“圣典”(Codex)时,你甚至不需要这些。也许有少数情况下,你有一长串可以自动化的独立任务,但这通常不是软件构建的工作方式。

主持人: 所以有这些人,我看到很多人构建了这种精心设计的编排层,然后你会有一些东西自动创建工单,然后你的智能体处理工单,然后你的智能体给另一个智能体发邮件,然后你构建了这种复杂的结构,为了什么呢?

Peter: 对,他们设计规范只用了几个小时,然后机器却花了一整天来构建它。我不相信这行得通。这就像是软件构建的瀑布模型。我们早就知道这行不通。也许吧,人们的工作方式不同,对一些人来说可能确实有效。

主持人: 我只是,我不认为这对我有用。

Peter: 我必须从一个想法开始,而且我常常故意对智能体进行不充分的提示,这样它就会做一些能给我带来新想法的事情,你可能会觉得有百分之八十的东西是我假设的,但像是垃圾,但却有两个东西会让我觉得“我没从那个角度想过”,然后我进行迭代和塑造项目,我必须,我必须点击它,我必须去“感觉”它,我感觉上才能做出好的软件,那些东西常常缺少的是品味。我必须感受一下,比如,这个功能感觉如何?而现在的好处是功能非常简单,我可以直接像丢弃它或者重新提示它。我的构建模型通常是很大的前瞻性。

我很少真正回滚并需要返回去。就好比,不,那我们来改变这个。不,那我们来做这个。这就像在塑造。我喜欢这种方式,你从一块石头开始,然后你嘶嘶作响地去除掉,它会像挑选不同的区域,然后慢慢地,就像这座雕像从大理石中浮现出来,这就是我看待、我看待构建事物的方式,我想,反思软件工程如何正在改变,这似乎是一种变化,因为以前,在拥有人工智能或任何这些智能体进行前期规划之前,确实是有影响的,写一个 PSPDF,我记得你坚持要有一个提案,让人们在前期投入大量思考来指定和完成所有事情,因为,我想,构建、进行这些操作的成本是高昂的,你认为这是因为编写代码的成本正在下降而发生的变化吗?

主持人: 仍然需要计划。

Peter: 你仍然需要做,但我不会投入太多精力,因为现在更容易尝试并查看结果,然后看看,这种形状可能会奏效。或者我们现在需要像调整一样,甚至哦不,我们需要用一种完全不同的方式来做。对我来说,它变得更加有趣了,而不是便宜了那么多。

主持人: 我猜是因为,比如,当你在工作时,即使你的团队里有像新毕业生或实习生,你给他们一些东西。他们工作一两天。现在,情况不同了,不是一两天。而且我们这里谈论的不是天数。我们谈论的是几分钟,或者如果是一个耗时很长的任务,最长也就是10到20分钟。此外,你不仅仅是在等待那件事。你还有并行运行的任务。所以,如果你愿意这么说的话,浪费不了多少。

Peter: 在Clawd中,我一开始的假设是一个代理,后来最终改为多个代理。而且最初的假设是一个提供商,比如WhatsApp,但现在是多个。而改变这一点真是太痛苦了。如果我自己写的话,那将会非常麻烦,因为你必须将应用中的所有逻辑贯穿起来。这让 Codex 花了大约三个小时。这可能要花我两周时间。所以,这个前期的规划,我一开始就能意识到。但现在我知道我可以随意更改。在构建项目的过程中,你深入技术细节,或者说,随着项目的推进,你对项目的思考方式也会演进,这要容易得多。这就是为什么我不相信,我不知道,比如像那种Gatestone模式,就是你写好需求规格说明,然后它自己就构建完成了。在你构建它之前,你怎么可能知道你到底想构建什么呢?你在构建的过程中会学到很多东西,这些东西会反哺到你对系统的思考中。你的系统最终会变成什么样。对我来说,这很像一个圆圈,直到你不是这样爬上山的,你是绕着走,有时候你会稍微偏离一些小路,但最终你会到达顶峰。

11:极致个人助手:爱的机器与 Clawdbot

主持人: 我的感觉就是这么奇怪。那么你一直在不间断地开发Clawd大概两个月、三个月,或者说,多久了?

Peter: 让我们稍微换个话题。所以,让我重新燃起兴趣的一个想法,即使是在四月、五月的时候,是我想要拥有一个超个性化的助手。不是那种给你发一封“早上好”邮件,告诉你“这是你的三个任务”的那种。

主持人: 不,是一个能真正深入了解而不仅仅是,我不知道,比如我见了一个朋友。

Peter: 然后我回家时,它会给我发消息说:“嘿,那次会面怎么样?”或者有一天它会叫醒我说:“嘿,你已经三周没给托马斯发短信了。”我注意到他现在在城里,因为我查看了他的 Instagram 账户。他们不会打招呼。或者说,嘿,我注意到你每次见到那个人和你自己时都很伤心。为什么会这样?就像是极其私人的事情,几乎是“反实体关系管理”那样的。这有点像电影《她》(Her),但技术正朝着那个方向发展。那些模型非常擅长理解文本。上下文(Context)越大,它们看到的模式就越多。尽管它们像是没有灵魂的矩阵运算,但它非常多时候感觉却很不同。

所以这是我的一个想法,我甚至创办了一家公司,我称之为Amantos Machina,意为“爱的机器”。但在我探索它的那个夏天,模型还没有完全成熟。我得到了一些结果,感觉我现在有点太走在我想做事情的边缘了。这非常令人兴奋,因为我知道状态(或“进展”)我前进得太快了,我以后可以再回顾一下。其中一个想法是,我假设现在所有的大公司都在非常积极地研究个人助理。在未来,每个人都将拥有你最好的朋友,它是一个该死的机器,它会理解你,知道你的一切,可以为你执行任务,它会是主动的,它会需要大量的tokens,但所有能负担得起的人都会拥有一个。当然,随着我们学习如何构建更高效的系统并集成到芯片中,这将实现民主化并逐渐普及给越来越多的人。毫无疑问,事情正朝着这个方向发展。你看到了像 OpenEI 这样的公司发布了 PALS 并提供了一些生产力,但我们还没有足够的计算能力将其作为一项功能提供。而且这也很困难。

主持人: 我的想法是,我想要一些可以在我的电脑上运行,并且数据就在本地的东西。

Peter: 它是你的。这实际上是我的。而且,你向你的电子邮件、日历、约会应用开放你的内省式访问权限,这一点也相当可怕。我不知道你是否和你的普通朋友们聊过,但我的很多朋友在他们的梦想中,他们大量使用它来充当治疗师。而且它的效果确实非常出色。它真的非常善于倾听。它能理解你的问题。除非像 4.0 的某些版本那样,它们会说,当然,这是个好主意。我想把薯条放进沙拉里。它的效果非常好,我也那样做过。就是说,一部分原因是因为反思这个行为本身就已经在帮助你了,所以即使机器只是在一定程度上重复你写下的内容,它也会起作用,但它实际上能提出有洞察力的问题,它真的变得很好了。

所以我有了这个关于助手(assistant)的想法,但当时技术还不成熟,所以我做了一部分,然后我当然还构建了一堆有趣的东西,比如我把“氛围隧道”(vibe tunnel)构建到这个系统中,在你成为一名真正的工程师的职业生涯中,你会经历这个阶段。这是一个陷阱阶段,你在其中循环并构建自己的工具来优化你自己的网络流程。但这种超级个性化代理(hyper personal agent)的想法稍微卡住了。

然后在过去的几个月里,我真的开始着手,我构建了它,但最初我甚至没有给它现在的这种范围。比如我称之为“WhatsApp 继电器”(WhatsApp Relay)。我只是想通过 WhatsApp 在我的电脑上触发一些操作。所以我构建了一个 WhatsApp 继电器,其中有一个代理可以对我的电脑做一些事情。然后我为了一个朋友的生日去了摩洛哥,白天大部分时间都在外面,只是用 WhatsApp 和我的代理交谈。我有点上瘾了。它在城市里为我指路。

主持人: 它会讲笑话。

Peter: 它可以替我通过 WhatsApp 给其他朋友发短信。我记得我当时非常震惊,因为最初的技术非常粗糙。但我内置了一个功能,可以向其发送图像。我甚至没有使用正确的方式来发送图像。我只是提供了一个字符串。它能够读取读取工具来读取这个字符串。当时我在摩洛哥,没怎么多想就给它发了一个语音消息。但我没有构建那个功能。然后大约30秒后,它回复了我的语音消息。我就想,你是怎么做到的?"你给我发送了一个文件,然后我查看了头部信息。我发现它是OGG格式,所以我用FFMPEG把它转换了。然后我在你的电脑上找了VISPA,但它没有安装。但我找到了“打开眼睛”的密钥。所以我对“打开眼睛”服务器执行了一个curl命令,让它进行翻译。"

我当时想,我的天哪!

这是Opus 4.5,它极其有资源性,就像你刚做的那样,你知道吗?其他人会说你需要一项技能或某个系统,不,它只是自己想明白了。我慢慢地沉迷于这个东西,我用它来叫醒它在运行,它在我的伦敦Mac Studio上运行,它连接着我们在摩洛哥的MacBook上的SSH,并打开音乐,让声音越来越大,因为我没有回复。为了让它奏效,我添加了一个心跳机制。从安全角度来看,这在某种程度上是疯狂的,你有一个模型,你向它发出提示,说“做点酷的事,给我惊喜”,然后你每隔几分钟就发送一次,让它变得主动,并像浏览你的任务列表一样,这可能是史上最昂贵的闹钟,但这太搞笑了。

所以它发送的文本,比如我设置了需要很早起床,然后我没有回复,它就会显示出它的推理过程:彼得没有回应,但是彼得必须早起,不睡觉。它一直在跟我抱怨。然后我给一起的朋友们看,所有人都觉得“哇,这太神奇了”,我也被迷住了。然后我去了推特,得到的回复非常少,因为没人能理解。我觉得这有点像是一个新类别的产品。

主持人: 有点像你当初没有通过营销活动、电视和任何渠道拿到iPhone的故事,然后你不得不去使用它。我参与了,但只参与了最后两个月。

Peter: 而且名字从Wavelay在某个时候改成了Clawd。你看,那这个名字是什么意思?感觉它不再适合功能集了,因为我加入类似电报(Telegram)和其他功能。所以我把它改名为Clawdbot,因为这是一个内部笑话,因为我喜欢《神秘博士》(Doctor Who)。我觉得Clawdbot是个更好的名字,有更好的域名,并且能更好地解释这个产品。所以我添加了域名。

然后我还悄悄地建立起了我的“军队”,因为要让这个东西起作用,你希望所有东西都是命令行界面(CLI)。所以我一直在为所有东西构建CLI,比如为谷歌、为我的床、为灯、为音乐构建CLI。

主持人: 为什么是命令行界面(CLI),而不是多功能控制器(MCP),而且你对MCP有什么看法?

Peter: 作为一种辅助手段,我认为MCP带来的最好的结果是促使公司重新同步并开放更多的应用程序编程接口(API)。但整个概念是很愚蠢的。当你的会话加载时,你必须预先导出所有工具的所有功能以及所有的解释说明。然后模型必须精确地解析那里的数据,并开始追溯。但令人惊讶的是,模型非常擅长使用Bash。想象一下,如果你有一个天气服务。因此,模型可以请求一个可用城市列表,然后得到像500个城市这样的返回结果。然后它必须从这500个城市中挑选一个城市。但它不能过滤那个列表,因为这不是MCP的工作方式的一部分。然后它会说,给我伦敦的天气。然后你会得到像天气、温度。风、雨,以及像我没兴趣的另外50个信息,因为我只是想知道,它是否在下雨?可能在下雨,因为是伦敦。但是模型需要消化所有信息,然后你的上下文中就有了这么多垃圾信息。而如果是一个命令行界面(CLI),我可以使用,它可以只使用Q并根据需要进行过滤,以获取它所需要的东西。

主持人: 但这看起来不像是一个限制,即所有内容都围绕着多功能控制器(MCP)加载在上下文中?这看起来像个问题,好像如果MCP不在上下文中,并且有一种讨论的方式,事情就可以运作。或者决定使用哪一个。

Peter: 这正是现在的公司正在构建的。但仍然存在我无法将它们链接起来的问题。我无法轻松地构建一个脚本来说,嘿,给给我所有温度超过25度的城市,然后只筛选出那部分信息,并将它们打包成一个命令。这都是单独的MCP调用。我无法对其进行脚本化。

主持人: 但我猜这只是时间问题。因为如果我们想想,比如我现在正在开发一个天气应用,我知道,即使没有人工智能,我也知道我需要构建这个东西。我需要获取数据。所以我将搜索有哪些可用的API,我喜欢哪一个,哪种定价、覆盖范围等的权衡取舍,然后我选择那个API。我可以链接(或组合)API,因为我可以获取那个结果并进行查找,等等。所以我想,这听起来就像我们已经基本解决了这个问题。所以在人工智能出现之前,我们将解决它。只是需要一些时间。而且谁知道它的格式会是什么样。

Peter: 我构建了 Mac Porter,这是一个将 MCP 转换为命令行工具(CLI)的小型 TypeScript 项目。这样你就可以直接打包它了。

主持人: 基本上,你的意思是CLI现在效率高得多。

Peter: 所以在CLawd中,我没有MCP支持,但是你可以通过MacP Porter使用任何MCP。你实际上可以只用你的手机说,嘿,使用Versel MCP来做这个和它会到网站上,找到MCP,加载它。它并且会根据需求全部使用它。即使是现在,如果你使用MCP,你也必须重启Claude Code,这非常不友好。所以我悄悄地建立我的军队来自...