AI产品交付:一家失败初创公司的实用教训

Infoq

在人工智能这个快速发展的领域,炒作往往超越了实际应用。Phil Calçado从他失败的AI初创公司Outropy中,提供了一次发人深省且富有洞察力的事后分析。在最近的一次InfoQ会议上,Calçado——这位因在SoundCloud率先推出微服务而闻名的资深软件工程师——坦诚地分享了关于交付生成式AI产品,而非仅仅停留在其热潮中的现实教训。他的核心信息是:成功进行AI开发的关键不在于追逐未来愿景,而在于严格应用既有的软件工程原则。

Calçado首先承认了自己的偏见:三十年构建软件的经验,特别是分布式系统和微服务,并强烈倾向于迭代的、“把事情搞定”的敏捷开发。他承认,这种视角塑造了他对AI的看法,他认为AI不应豁免于这些基础实践。

Calçado的创业公司Outropy旨在利用生成式AI自动化管理和工程工作流的某些方面,最初是一个Slack聊天机器人,后来发展成为Chrome扩展。尽管是生成式AI领域的早期进入者,吸引了数千用户,甚至在质量方面(根据他自己的基准)超越了Salesforce等科技巨头的产品,但这家初创公司最终还是失败了。用户反馈中令人惊讶的发现是,许多人对工具本身不那么感兴趣,反而更想逆向工程,“两个人和一条狗”组成的Outropy团队是如何设法创建一个拥有如此有效“智能体行为”——自主决策能力——而大公司却举步维艰的系统。这种悖论促使Calçado深入分析,为什么大多数AI产品,尤其是在生产力领域,都未能达到预期。

Calçado指出了当前构建AI的三种主流方法,每种都有其陷阱。第一种是“推特驱动开发”,其特点是对即将发布、尚未问世的模型痴迷,却无视当前的技术限制,这常常导致华而不实的演示来获取资金,但未能提供实际价值。第二种是将AI开发视为纯粹的“数据科学项目”,这通常出现在大公司。这种方法通常缓慢且侧重研究,可能需要数年才能产生微小的改进,当AI处于产品关键路径上时,这种奢侈是不可企及的。第三种,也是Calçado偏爱的方法,是将AI开发视为传统的“工程项目”,从一开始就拥抱迭代开发。

他随后深入探讨了生成式AI系统的基本构建块:工作流和智能体。工作流,他更喜欢称之为“推理管道”,代表为实现AI目标而预定义的步骤序列,例如总结一封电子邮件。另一方面,智能体是半自主的软件组件,其中大型语言模型(LLM)动态地指导其自身过程、使用工具并协作,执行任务以实现给定目标。

对于工作流,Calçado警告不要陷入常见的陷阱,即仅依赖检索增强生成(RAG)供应商,后者承诺直接向LLM提供上下文。他发现LLM通常不够智能,无法应对这种简单方法,因此需要额外的步骤来添加结构和语义意义。例如,Outropy在每日简报中的成功,来自于将复杂任务分解为更小、结构化的转换,这与数据管道非常相似。这允许应用现有数据管道工具和方法论,将AI开发根植于熟悉的工程领域。

谈到智能体,Calçado提出了一个挑衅性的论断:“智能体非常类似于面向对象编程中的对象。”尽管他承认传统的微服务由于其有状态性、非确定性行为和数据密集型特性,与智能体不甚匹配,但他认为面向对象范式——包含内存(状态)、目标导向(封装)、动态性(多态性)和协作(消息传递)等概念——为工程师提供了一个有用的心智模型。

在架构方面,Calçado建议避免点对点的智能体协作,这可能导致紧密耦合,并重新发明二十年前复杂的Web服务栈。相反,他提倡在消息总线(如Redis或Kafka)上使用“语义事件”,智能体注册对特定、明确定义的事件的兴趣,从而促进松耦合和可扩展性。他还警告不要在内部产品中采用Anthropic的Model Context Protocol(MCP)等新兴标准,认为它们让人想起早期过度设计的协议,如SOAP。对于内部系统,他建议坚持使用经验证的方法,如RESTful架构或gRPC。

关于“智能体记忆”——智能体保留用户知识的挑战——Calçado驳斥了将所有信息存储在向量数据库中一个长文本文档的常见方法。他认为有缺陷的记忆比没有记忆更糟糕。他推荐的解决方案是“事件溯源”,即将关于用户的语义事件流压缩成结构化表示,通常存储在图数据库(如Neo4j)中,从而实现更健壮和不断演进的理解。

最后,Calçado挑战了数据科学项目中普遍存在的“单体管道”方法,即从数据摄取到输出的整个过程都作为一个单一的、高度耦合的单元构建。他倡导将这些工作流分解为更小、独立的组件,并具有明确的接口,从而实现灵活性和可重用性——这在领域驱动设计和微服务中是熟悉的概念。

他总结道,尽管“分布式对象”很有吸引力,但支撑现代云基础设施的“十二要素应用”宣言的基础原则,却常常被智能体AI系统打破,原因在于其固有的有状态性和非确定性。这需要转向“持久工作流”(如Temporal提供的),它们能够处理弹性、重试和检查点,防止工程师不断重复发明这些关键的基础设施组件。

Calçado最终的收获是强有力的:当前AI产品架构(如Outropy)中看到的复杂性,对于所服务的用户数量来说往往“过于复杂”,凸显了对更好平台的重大需求。然而,他坚称,构建成功的AI产品根本上归结为应用久经考验的软件工程智慧。工程师应该利用他们现有的知识,抵制那种认为AI(尽管其炒作)与他们以前解决的挑战根本不同的冲动。