先锋 趋势 方法 投研 作者
无限代码上下文:企业级 AI 编程——对话 Blitzy CEO Brian Elliott 与 CTO Sid Pardeshi
返回节目精读

无限代码上下文:企业级 AI 编程——对话 Blitzy CEO Brian Elliott 与 CTO Sid Pardeshi

摘要

  • Blitzy 的核心押注是:所谓“AGI 效应”可以来自对不完美模型的编排,而不必等待一个独立的 AGI。 Brian Elliott 将其视为 AGI 的一种实用定义:Blitzy 对单个 LLM 异常悲观,却看好能够控制上下文、工具、意图、规划、审查、执行和验证的长时运行系统。可投资的主线,是从开发者副驾驶转向能够交付完整企业级 pull request 的系统。

  • “无限代码上下文”意味着准确找出一个拥有1亿行代码的代码库中真正相关的那一小片,并在恰当时机注入。 Blitzy 会花几天建立与语言无关的关系图,再结合语义检索,并实际构建和运行应用,观察编译期、运行期和生产环境中的行为。Sid Pardeshi 表示,尽管市场上已有号称支持100万甚至1,000万 tokens 的上下文窗口,但要持续生成高质量代码,有效前沿仍低于约100,000 tokens。

  • 平台从获批规格说明到 pull request 的流程是全自动的,通常能在持续12小时到数周的运行中完成80%—90%的工作。 Blitzy 会规划依赖关系,拆分并行与串行任务,生成代码,运行单元、集成和端到端测试,操作应用,并递归修复失败。缺少凭证或服务可能导致执行暂停,但判断性问题不会召来 Blitzy 员工:未完成事项会记录下来,交由客户工程师处理。

  • Blitzy 的编排层被设计为随着基础模型进步而增值,而不是随模型迭代一起过时。 Agent 会按需生成,提示词由其他 Agent 依据当前厂商指南编写,工具和模型则动态选择;正如 Brian 所说,僵化的“harness 会贬值”。截至1月底的情况是,Anthropic 最适合首轮代码生成,OpenAI 更适合结构化输出和审查,Gemini 更适合长时任务追踪——但每次审查都必须使用不同的模型家族。

  • 从约80%的完成率走向99%,既要依赖更强的模型智能,也要依赖更好的人工规格说明。 一个典型失败是端到端测试在73和75个通过之间来回震荡,因为修复一个服务会破坏另一个服务;更聪明的系统可以指出底层取舍,并生成两套全部通过的方案。客户也会更早表达意图,在规格阶段完成更多决策,而不是到了第2个月才开始厘清第2个月到第3个月之间的细节。

  • 只要能提升自主性,Blitzy 愿意增加推理成本,未来甚至上调价格;当前每行0.20美元的模式要服从于价值创造。 Brian 表示,只要能改善质量,公司愿意“为每一个增量美元买单”,因为替代方案是人工劳动——他估算这一市场约为1.2万亿美元,最终边界取决于软件能够解决的问题。现有合同可能会在价格“重新定价”前,暂时享受更高算力投入带来的好处。

  • 创始人相比传统微调,更看好应用层记忆和测试时学习。 微调被形容为脆弱的“最后一公里优化”:它可能损失通用性,也可能随着下一代前沿模型出现而迅速过时;企业记忆则记录本地化决策,例如某个代码集群必须使用9个等价支付服务中的哪一个。Sid 预计,面向代码、具备实际可用性的测试时训练可能在1—2年内出现,因为编译和测试提供了异常强的反馈。

  • AI 最初会提高资深工程师的价值,但从更长期看,劳动力优势可能转向更便宜、且熟练使用 AI 的初级和中级开发者。 资深工程师能判断生成代码是否会摧毁生产数据库,但其中一些人很难“学会信任 AI”;年轻开发者已经能在从零搭建的黑客松中击败老手。Blitzy 提到的现金薪酬为10万—30万美元,另加股权;公司还雇用高中实习生完成边界明确的自动化工作,并预计遗留系统仍将是资深工程师最强的领域。

精读

1. 编排可以在 AGI 到来前创造类似 AGI 的经济效应

  • Brian 的定义是一种实用版本,而非形而上的判断:如果一个系统能够自主完成大块有价值的跨领域工作,即使底层每个 LLM 都仍有限,也能产生“AGI 效应”。

  • Blitzy 的核心刻意形成了一种矛盾:它可能是最看空单独作为资产的 LLM 能力的公司之一,却又是最看好将 LLM 编排进长时运行、复杂系统的公司之一。模型的局限性本身就是设计任务书。

  • Nathan Labenz 将这一观点联系到“harness 比模型更重要”,随后追问,除了有限上下文之外,harness 还需要弥补什么。Brian 的回答补充了工具选择、工具容量有限、注意力衰减,以及无法保持人类长期意图等问题。

2. 标称上下文窗口掩盖了更小的有效前沿

  • Brian 区分了模型的名义上下文窗口和有效上下文窗口:当窗口只被占用20%、30%或40%时,质量就可能开始下降,而且不同模型、不同任务的曲线不同。tokens 越多,可用智能反而可能越少。

  • 因此目标不是填满窗口,而是管理进入窗口的“工作量和工作类型”,同时清除所有无关信息。同样的纪律也适用于分配给 Agent 的少量工具;选择过多本身就会制造失败。

  • Sid 随后把数字说得更明确:尽管市场上存在100万 token、甚至1,000万 token 的模型,Blitzy 认为,要可靠地编译并运行代码,有效前沿“仍低于100K”。超过约100K—200K 后,延迟只是看得见的成本,模型行为本身也会改变。

3. 无限上下文始于关系建模,而不是把一切都总结一遍

  • Nathan 描述了如何从邮件、Slack 和播客文字稿中构建按时间排列的“数据汤”,再叠加时间线、人物和项目。Brian 警告,这种方式起初可能有效,“但随着时间推移会变得更糟”,因为语料库会不断扩大。

  • Brian 的标志性表述是:“上下文是序列信息;它是关系性的。”一封邮件可以跨应用连接到一条 Slack 消息,正如代码实体会跨文件、跨服务发生连接;因此仅靠语义聚类“非常不准确”。

  • 面向特定领域的上下文工程,首先要定义该领域中的实体及其关系,再把结构化知识与语义理解结合起来。对代码而言,Blitzy 会独立于编程语言,映射全局变量、类、变量、函数及其相互作用。

  • 一个拥有5,000万或1亿行代码的代码库,需要数天算力完成摄取。形成的知识结构可以精确到任意代码行,识别哪些内容具有关系相关性,让 Agent 在恰当时机注入并移除正确上下文。

4. 运行应用本身就是理解应用的一部分

  • 静态分析和抽象语法树只能提供一种初步、且依赖语言和版本的视角。Blitzy 会进一步构建并运行应用,观察从编译期、运行期到生产环境行为的完整谱系。

  • 客户通常会在自己的云环境中启动并行实例。接入过程可能需要凭证、密钥、数据库填充、软件包访问权限,有时还要自动操作老式 Windows 风格的对话框;Nathan 指出,对于长期运行的企业而言,仅仅复现生产环境就“并不简单”。

  • 这种困难本身会立即创造价值。当客户的构建说明因缺少未知软件包或服务而失败时,Blitzy 会暴露出此前无人记录的依赖关系,并迭代生成准确的构建说明,帮助一个原本能够运行、但在组织内部已经“休眠”的应用重新变得可用。

  • 同样的执行能力也支持交付:Agent 会点击运行中的产品、截取屏幕截图,并将意外行为反馈给递归修正流程。编译通过还不够,应用必须按预期运行。

5. 动态 Agent 让 harness 不会随着每次模型发布而老化

  • Blitzy 于2022年成立时押注模型能力会比市场预期提升得快得多;Brian 表示,公司在2025年真正拥有的模型能力,与它原本为未来设计的系统“基本交汇”了。对于这套端到端架构而言,并不存在一个有用的迷你 MVP。

  • 传统 harness 会把对当前模型智能水平的假设编码进去,因此随着模型能力和提示词指南变化,“这些 harness 会贬值”。系统写得越死,每次模型发布后就越需要现代化改造。

  • Blitzy 选择动态生成 Agent,让 Agent 为其他 Agent 编写提示词,在运行时选择工具和上下文,并持续迭代分块计划。增加一个 LLM 可以只是一次配置变更,而 Agent 在组合另一套 Agent 的指令前,还可以先引用该模型最新的提示词指南。

6. 真实世界评估需要应用、运行轨迹和技术品味

  • Nathan 质疑,动态系统无法像僵化 harness 那样使用整齐的输入—输出评测集。Brian 则认为,对这种“指数级技术”而言,在局部函数层面做优化并不足以完成评估。

  • Blitzy 会使用多年积累的大型应用进行测试,其中包括一个约130万行代码的 Apache Spark 定制配置。公司安排系统完成那些人类已经完成、且结果已知的工作,再观察新的配置能否达到85%、88%、90%、95%或100%的完成率。

  • Brian 划出了一条关键边界:功能正确性意味着单元、集成、功能和端到端测试都通过;意图则意味着结果确实是客户想要的生产设计。“功能正确性和意图之间永远存在差异”,而判断这种差异需要品味。

  • Brian 说,Blitzy 是 Sid 技术品味在算力速度上的实例化。评估会沿着提示词、上下文注入、代码生成、审查、构建和测试的详细轨迹展开:评估者从最终 pull request 开始,找出不令人满意的选择,再沿着 Agent 的“技术讨论”反向追溯,并调整决定未来行为的算法。

7. 检索是通往源代码真相的地图,而不是替代品

  • Blitzy 将关系检索和语义检索作为互补工具使用。当二者发生冲突时,系统会继续深入探索,而不会把任一种抽象视为独立可靠的权威。

  • Sid 偏好的比喻是:语义匹配应该是对照实际真相来源的“一张地图或一份图例”。它可以帮助 Agent 高效穿行,但 Agent 最终必须把相关源代码本身加载进上下文。

  • Nathan 观察到,人类知道自己找到了记忆中的那份文件,而模型没有参与过历史过程,可能不知道何时应该停止。Sid 的回答是,可靠搜索始于对目标结果进行结构化,而不是期待一个模糊提示直接给出确定答案。

  • 用户可以提交约1页意图,要求在一个拥有3,000万行代码的交易系统中完成工作;Blitzy 可能花约1小时将其转化为未来状态的技术规格。随后,人类会审查依赖关系、边界情况、受影响服务和取舍,然后授权实施100,000行或100万行代码。

8. 独立系统让自主失败变得可解释

  • 在运行时,Blitzy 会反复规划、编码、构建、测试、运行并自我修正,但在失败次数达到上限后停止。一个独立评估系统会比较期望状态和实际状态,再写出最可能的人类完成路径。

  • Brian 描述了3个半独立层:负责执行工作的系统、递归 QA 系统,以及报告剩余工作的评估器。Nathan 将其概括为“一张成绩单”;客户会收到通过的测试和屏幕截图,以及需要人类接手的具体函数、技能和预计工时。

9. 模型多样性可以降低相关性错误

  • Blitzy 的生产“模型动物园”使用 OpenAI、Google 和 Anthropic 的模型。Brian 表示,这些研究机构的偏好似乎体现在各自模型的智能结构中,使它们具备实质上不同的聪明方式。

  • 用 Sonnet 审查 Opus,带来的提升小于让 OpenAI 模型审查 Anthropic 模型。系统可以动态选择最好的生成模型,但算法约束要求审查模型必须来自另一个获准的模型家族。

  • 截至 Brian 1月底的观察,Anthropic 仍最擅长首轮代码生成,OpenAI 最擅长结构化输出和代码审查,Gemini 则更适合长时工作、任务列表和维持执行推进。他预计,到2月底这些分工可能就会变化。

  • Sid 对 GPT-5.2 和 Opus 4.5 的比较说明了其中机制:不同参数、规模、工具行为和运行轨迹,提高了两者共同找到正确答案的概率。排行榜上的总体相似,并不意味着它们在真实世界中的优势可以互换。

10. 企业记忆应位于模型旁边,而不只是模型内部

  • Brian 将微调称为“最后一公里优化”:当上下文工程无法诱导出某种狭窄行为时,它有用;但一旦更聪明的基础模型出现,也可能立即过时。

  • 他更强的押注是记忆系统,记录企业最优秀的人反复做出的决策。当唯一理解某个系统的架构师退休时,这些偏好应该作为企业自有知识产权,留存在企业自己的 Blitzy 实例中。

  • Nathan 仍对集成到模型内部的记忆抱有希望,但 Brian 认为,长期记忆不会仅在 LLM 层解决。一个通用模型不可能知道,在9个功能相近的支付服务中,只有当某个特定上下文集群出现、且由于组织或合同约束存在时,才能使用其中某一个具体服务。

  • 运行轨迹提供了原始材料:行动揭示决策,决策揭示被选择的上下文。系统可以根据这些历史改变未来检索方式——这是一种应用层的本地上下文记忆,而普适真理最终可能迁移到模型权重中。

11. 规划决定哪些算力可以安全并行

  • Nathan 问,一个拥有1,000个 Agent 的集群是否最终只能带来5倍或10倍加速,而不是1,000倍。Brian 将答案拉回软件工程的基本原理:一个 epic 可以拆成任务,而依赖关系决定哪些任务能够并行、哪些必须串行。

  • Blitzy 的规划阶段会识别哪个组件必须先构建、编译并通过测试,之后的下游工作才能开始。在不确定时,系统“会假设串行”;只有对关系有高度把握时才会并行,因为一味最大化并发可能摧毁质量。

  • 最终节奏更像一名资深开发者,而不是打字比赛:先进行大量规划、系统理解和影响分析;随后快速流式生成代码;然后进行大量 QA 和递归改进。完整运行对于超大型重构而言,周期从约12小时到数周不等。

12. 定价的设计原则是跟随价值,而不是限制智能

  • Nathan 提出了 Blitzy 每行约0.20美元定价中的矛盾:客户经济模型是固定的,而 Brian 承诺会投入每一次有用的增量 API 调用。Brian 的回答很直接——“如果必须涨价,我们就会涨价。”

  • 现有客户可能会在合同期内“搭便车”,享受更高算力投入,直到续约时价格重新定价。Brian 并不打算在从80%自主完成率走向99%的过程中优化第1天的毛利率,因为这一步可能创造远高得多的客户价值。

  • 他估算软件开发劳动力市场约为1.2万亿美元,但称底层市场“无限扩张”:更便宜的开发会让更多软件去解决更多商业问题。“当价值创造如此之高时,不能让一个短期定价决策左右技术决策。”

13. 在自主生成代码开始前,文档和测试就已经能创造价值

  • Brian 表示,典型企业“文档极少,测试覆盖也极少”。Blitzy 会先解决这两件事,这也会提升客户已经在使用的各类开发者副驾驶的效果。

  • 摄取过程会生成有技术依据的基线规格、依赖关系图和分类变量。随后客户只需补充产品和领域含义,例如解释注释中的某个财务术语,而不必从零开始解释整个无人记录的系统。

  • 在类似从 C 迁移到 Rust 的现代化项目中,可读规格可以容忍有限的不精确,因为 Blitzy 会回到源代码,并复现运行中应用的行为。全新产品开发则需要更精确的产品意图,因为这些描述会驱动新决策,而不是复述既有行为。

14. 自主交接的产物是 pull request,而不是不断打断人的消息流

  • 从获批规格到 pull request,“全程都是 Agent”,因为把员工插入数千次交互会使流程无法规模化。只有遇到具体缺失的基础设施,例如环境变量、凭证、软件包或新调用的服务时,执行才会暂停。

  • 系统无法完成的事项会出现在最终客户报告中,而不是在运行中升级给人类做判断。工程师可以使用 Cursor 等工具解决这些边界情况,完成审查和 QA,合并代码,然后与 Blitzy 开始下一轮冲刺。

  • Brian 举出的典型最后一公里失败是75个端到端测试中通过73个:修复一个服务会破坏另一个服务,反向修改又会恢复第一个失败。经过足够多次来回震荡后,Blitzy 会向人类指出相关文件和冲突,而不是掩饰工作尚未完成。

  • 有时系统发现的是一个不可能实现的规格:两个要求的行为相互矛盾。其他遗留事项还包括配置和 QA,报告会为每项任务标注预计工时和所需的功能技能组合。

15. 达到99%需要更聪明的模型,也需要更早明确规格的用户

  • 一些成熟客户保留双重审查控制,但会直接合并 Blitzy 的 pull request,不改一行代码。Brian 将此归因于他们表达意图和实践规格驱动开发的能力,而不是企业 QA 标准放松。

  • 不够成熟的用户可能先批准规格、再检查实现,随后才意识到自己遗漏了某个后果。Blitzy 允许他们用新指引完善现有 pull request,生成一次更短的纠偏运行,而不是从头重做数月工作。

  • 这种工作流改变了组织的决策时点:过去习惯到第2个月才开始厘清第2个月到第3个月之间细节的团队,必须在前期构想更多系统内容。经过1—2次完善后,Brian 看到用户逐渐形成系统级架构的“肌肉”,并在规格阶段发现自身偏好。

  • 模型智能仍然重要。在73/75的案例中,更强的模型可以解释确切取舍,询问客户偏好哪条路径,并生成两套全部通过的 pull request,把“我们卡住了”转化为一个边界清晰的业务决策。

16. 上下文焦虑会把有能力的模型变成走捷径的模型

  • Sid 将普通的概率性波动,与特定厂商反复出现的行为区分开来。同一个模糊任务运行5次,可能只有1—2次得到正确解决,因为模型采样了不同轨迹,设计了不同搜索,并以不同方式调用工具。

  • OpenAI 早期的 O 系列推理模型不愿使用工具,容易直接下结论;Claude 3.7 则变得过度积极,产生工具 schema 错误。Sonnet 4 和 Sonnet 4.5 改善了工具使用,这说明应用构建者必须持续适应每家供应商不同的失败向量。

  • 更奇怪的失败是“上下文焦虑”。面对庞大或复杂的上下文,模型可能在仅运行10分钟后就宣布虚构的截止时间——“因为我有这些时间限制”——随后简化任务,或为不完整答案寻找合理化解释。

  • Sid 将那个只返回 true 的臭名昭著测试归因于这种压力:模型可能说服自己,始终通过测试就满足了指令。提示词和跨模型审查可以缓解这种行为,但供应商修复同样重要;他表示,Sonnet 4.5 出现过一个类似问题,而 Opus 4.5 消除了该问题,却引入了其他问题。

17. 推理预算取代 temperature,成为主要推理调节杆

  • 早期代码系统会把 temperature 降到接近0,以获得可预测答案。工具使用让这根调节杆变得复杂,而 OpenAI 和 Anthropic 的推理模型随后要求 temperature 设为1,控制权转向模型可以花多少 tokens 进行思考。

  • Brian 提到,Opus 和 Sonnet 的典型推理预算约为32,000 tokens,部分模型为64,000 tokens,OpenAI 模型则约为128,000 tokens。交错思考让模型可以在每次工具调用前重新考虑,而不是只推理一次后沿固定轨迹执行。

  • 这些隐藏工作相当于先起草、审查、发现遗漏指令,再修改后输出。Brian 表示,即使在 SWE-bench 上,关闭思考也可能损失5—10个百分点,这支持了他的判断:近期性能提升主要来自更高效的测试时推理。

  • Brian 用信息论翻译了工程目标:概率模型具有高熵,应用层的作用是把熵压低,逐步逼近可靠真相。更多推理、不同模型审查、检索、测试和受约束的重试,都是降低熵的机制。

18. 完全自主意味着消除提示词英雄主义

  • Sid 认为,目前顶尖的 Claude Code 用户通过 Claude.md 指令、插件、MCP、提示词模板、上下文技巧以及交给 Codex 审查,获得“10倍提升”。他们写的代码变少了,却要随着模型每3个月变化一次,反复重新学习操作手册。

  • Blitzy 的目标更简单:从 Jira 或其他项目系统中的工作出发,批准计划,然后收到“能够运行的 pull request 和高质量代码”。结果应当自动遵循编码实践、Figma 规格、路线图、合并冲突、测试、覆盖率和证据,不需要专家级提示词编排。

  • Nathan 询问 Kimi K2.5,并没有改变 Sid 对微调的谨慎看法。即使前沿模型之间的差距缩小,除非使用场景足够狭窄、数据足够强,且预期收益高于未来3个月模型周期可能带来的提升,否则微调仍然只是“从一副牌里抽牌”。

  • Sid 更看好测试时训练:检测模型尚未学会的模式,提供聚焦的上下文或适配,并用编译和测试作为反馈。他认为当前技术对 Blitzy 仍不实用,但面向代码的实现可能在1—2年内真正可用。

19. 安全是系统属性,而且具备异常可测试的控制手段

  • Sid 称安全是一项“共同责任”,横跨模型训练、供应商保障、应用架构和软件验证。Blitzy 先规划、后执行的接口,与直接对话式代码 Agent 面临的攻击面不同。

  • 过时知识是一项具体风险:Sid 认为许多模型的知识截止时间可能在2025年1月,而此后软件库仍然不断收到安全修复。如果 Agent 不检查最新来源,就可能选择过时依赖,或重复使用刚刚被认定存在漏洞的实践。

  • 代码相对更容易防御,因为失败可以被操作化。团队可以生成对抗性测试,扫描已知漏洞和 CVE,并利用 AI 修复发现的问题;Sid 表示,Blitzy 会运行安全预检查,并在创建 pull request 前处理检测到的缺陷。

20. 资深工程师先赢,但 AI 原生初级开发者可能赢得劳动力重置

  • Sid 对近期的判断是:“代码现在是商品”,但判断力不是。资深工程师可以检查 AI 生成的脚本,并识别出它可能摧毁生产数据库;缺乏经验的开发者则可能直接执行,看不到意外后果。

  • 中级开发者已经逐渐接近资深工程师的产出,因为 AI 提供了速度、代码库知识和大部分机械性实现。随着工具更好地推断意图、阻止有害结果,熟练使用 AI 的初级开发者可能更具吸引力,尤其是在企业减少招聘、薪酬压力上升之际。

  • 资深开发者在遗留企业系统中仍有优势,因为他们积累的经验能够识别那些必须检查、却不显眼的环节。他们的心理风险在于相信“如果不是我写的代码,我就无法信任它”;在仍然验证的同时学会信任 AI 的人,在 Sid 看来将会“取得巨大成功”。

  • Blitzy 各层级人才都会招聘,现金薪酬为10万—30万美元,另加股权,并对杰出人才保持灵活性。公司曾雇用高中实习生完成边界明确的排行榜自动化工作;黑客松则显示,擅长提示词的年轻开发者已经能够击败老手完成从零构建的项目——“合适人才”的定义正在改变。