2019年,微软开源了一个名为Dapr的项目,这是一个用于简化分布式微服务应用开发的运行时工具。当时,人工智能代理的概念还未兴起,但Dapr从一开始就内置了一些支持人工智能代理的基础模块。这是因为Dapr的核心功能之一是虚拟参与者(virtual actors),它们可以独立于系统中的其他参与者接收和处理消息。

Cover Image

如今,Dapr团队推出了Dapr Agents,这是一套帮助开发者构建人工智能代理的工具集合。Dapr Agents的出现,为开发者提供了构建人工智能代理所需的大量基础组件。

“代理是Dapr的一个非常理想的用例。”Dapr联合创始人兼维护者沙伊·施耐德(Yaron Schneider)解释道,“从技术角度看,你可以将参与者用作一种非常轻量级的方式运行这些代理,并且能够真正以大规模、有状态的方式运行它们,同时实现资源高效利用。这当然很好,但即便如此,你仍然需要编写大量的业务逻辑。有状态性和对它的编排只是其中一部分。许多人可能会选择工作流引擎或参与者框架,但他们仍然需要做大量工作来编写代理逻辑。虽然市面上有许多代理框架,但它们并不具备Dapr所拥有的编排和有状态性水平。”

Dapr Agents的诞生源自一个名为Floki的开源项目,该项目扩展了Dapr以支持人工智能代理的用例。在与该项目维护者交流后,包括微软人工智能研究员罗伯托·罗德里格斯(Roberto Rodriguez)在内,两个团队决定将该项目纳入Dapr的框架之下,以确保新的代理框架的延续性。

“在许多方面,我们将代理系统以及围绕它的术语视为‘分布式系统’的另一种说法。”Dapr联合创始人兼维护者马克·福塞尔(Mark Fussell)表示,“与其称它们为微服务,你现在可以称它们为代理,这主要是因为你可以在它们之间放置大型语言模型。”

为了高效地协调这些代理,你需要一个编排引擎和有状态性——而这正是Dapr所提供的。Dapr的参与者被设计为极其高效,能够在消息到达时在毫秒级启动(并在任务完成后关闭,同时保留其状态)。

目前,Dapr Agents已经能够开箱即用地与大多数流行的模型提供商进行交互,包括AWS Bedrock、OpenAI、Anthropic、Mistral和Hugging Face。对本地大型语言模型的支持也即将推出。

除了与这些模型进行交互,由于Dapr Agents扩展了现有的Dapr框架,开发者还可以定义一系列工具,代理可以使用这些工具来完成给定的任务。目前,Dapr Agents支持Python,对.NET的支持即将推出。Java、JavaScript和Go语言的支持也将紧随其后。


文章标签: #Dapr #AI代理 #微服务 #开源 #编程语言

负责编辑

  菠萝老师先生 

  让你的每一个瞬间都充满意义地生活,因为在生命的尽头,衡量的不是你活了多少年,而是你如何度过这些年。