The Pragmatic Engineer Podcast

Peter Steinberger: AI 时代的软件构建哲学

🎙️ 嘉宾: Peter Steinberger (PSPDFKit 创始人) 📅 时间: 2025 🔥 核心话题: Agentic Coding, 闭环验证, 组织变革

🏛️ 第一章:前 AI 时代的工匠精神 (PSPDFKit)

在 AI 介入之前,Peter 是典型的"硬核"开发者。他的职业生涯始于对 Apple 糟糕体验的愤怒,终于管理带来的职业倦怠。

🤬
愤怒驱动开发
创业的源动力

从 Dating App 到 PDF 帝国

Peter 的第一桶金来自一个利用正则"黑"进网页的同性约会 App(iPhone OS 2时代),月入 1 万美元直到被 Apple 封杀。

后来在一家公司被老板嘲讽后,他带着"复仇"的心态创立了 PSPDFKit。通过极其精细的 Code Hygiene(代码卫生) 和用户体验,击败了功能更全的竞争对手。

📑
PDF 的技术地狱
看似简单,实则深渊

边缘情况之王

曾遇到过包含 50 万个链接 的 5 万页文档,导致内存瞬间爆炸。PDF 渲染需要处理极端的资源限制(WebAssembly, C++)。

教训: 传统的软件工程必须通过严格的测试和架构设计来防御这些未知的深渊。

📉
职业倦怠与隐退
CEO 的孤独

"人类情绪垃圾桶"

作为 CEO,Peter 感到极度孤独。他曾处理过"飞机因软件 Bug 停飞"的惊魂时刻(最后查明是客户篡改了代码)。

管理 70+ 人的团队耗尽了他的热情,他在出售公司股份后,彻底消失了 3 年,甚至很少打开电脑。

🤖 第二章:AI 时代的觉醒与"人类合并按钮"

回归后,Peter 跳过了 Copilot 阶段,直接进入了高阶的 Agent 开发。他现在每天合并 600 个 Commits,工作方式发生了范式转移。

"我现在不写代码,我编织(Weave)它们。我不再看每一行代码,就像玩星际争霸一样,我同时指挥 5-10 个 Agent 在不同的战线上工作。" — Peter Steinberger

核心方法论 (点击展开详情)

🔄 Closing the Loop (闭环验证原则) 核心

痛点: AI 生成的代码经常有 Bug,初次运行成功率低。

解决方案: 建立一个自动化的反馈闭环。Peter 的 Agent 不仅仅是写代码,它必须能够:

  1. 生成代码
  2. 自动运行测试或构建脚本
  3. 读取错误日志 (StdErr)
  4. 自我修正代码,直到测试通过

案例: 在修复一个 macOS App 的网络问题时,Agent 自己编写了一个 CLI 工具来模拟网络请求,通过对比 TypeScript 和 Swift 的实现差异,自我诊断并修复了 Race Condition。

🧶 Code Weaving (代码编织)

定义: 不再是从零编写函数,而是将新功能以符合现有架构的方式"编织"进去。

操作: Peter 会告诉 Agent:“参考 `/src/utils` 文件夹下的插件架构,用同样的风格实现这个新的语音通话功能。”

结果: 这种方式让 AI 能够维护代码的一致性,甚至比人类更严格地遵守项目规范。

💀 Prompt Request > Pull Request

观点: 传统的 Code Review 效率低下且正在消亡。

新流程: Peter 更看重贡献者是用了什么 Prompt 生成的代码。好的 Prompt 代表了清晰的思维路径。如果只是修复小 Bug,不如直接让 Agent "Fix it"。对于复杂的 PR,他经常重写——或者说,用他自己的 Agent 根据 PR 的思路重新生成一遍代码,以确保完美符合他的架构愿景。

🚀 第三章:Claudebot —— 疯狂的 AI 实验

Claudebot 是 Peter 的最新力作,一个基于终端、拥有 Root 权限的个人全能助理。这不仅仅是一个软件,更是一个关于未来的预言。

特性 Claudebot (AI Native) 传统工具 / Siri
交互方式 全渠道 (WhatsApp, Discord, Terminal) 孤岛式应用
权限与能力 Root 级权限,能点击屏幕、发消息、自我更新 受限的沙盒环境
工具调用 偏爱 CLI (如 `jq`, `curl`, `ffmpeg`) 僵化的 API 或 MCP (需预加载上下文)
记忆系统 User.md / Soul.md (动态更新的用户画像) 基本没有或是硬编码

🛠️ 为什么 Peter 偏爱 CLI 而非 MCP?

尽管 MCP (Model Context Protocol) 很火,但 Peter 认为它目前存在缺陷:上下文污染。MCP 需要预先加载所有工具定义,浪费 Token。而 CLI 工具(如 `weather-cli`)可以让 AI 通过管道(Pipe)和过滤器(如 `jq`)只提取它需要的数据("伦敦现在的温度"),而不是加载整个 JSON 响应。

🔮 第四章:给未来的建议

  • 对企业的冲击 现有的大型科技公司(如 Google)可能会因为职责分工过细(PM vs Dev vs Designer)而难以适应 AI 时代。未来的团队规模将缩减 70%,需要的是全能型人才。
  • 新程序员的生存法则 不要因为 AI 能写代码就停止学习。相反,要利用 AI 无限的耐心来满足好奇心。不要只问 "怎么写",要问 "为什么这样架构"。你需要培养极强的 Agency(能动性),能独立完成从想法到产品的全过程。
  • 心流的变化 工作强度并未降低,甚至因为多线程管理 Agent 而更加烧脑。这是一种新的心流状态:从"演奏乐器"变成了"指挥交响乐"。
  • 原文

    源链接