写点什么

Dapr Agents 发布:支持规模化 AI 工作流、多智能体协作

  • 2025-03-31
    北京
  • 本文字数:2538 字

    阅读完需:约 8 分钟

Dapr Agents 发布:支持规模化 AI 工作流、多智能体协作

Dapr 最近推出了 Dapr Agents,一个利用大语言模型构建可扩展、可靠的 AI 智能体的框架。它支持结构化的工作流、多智能体协调和基于事件驱动的执行能力,并利用了 Dapr 的安全性、可观测性和云中立架构。Dapr Agents 专为企业使用而设计,支持数千个智能体,可与数据库集成,并通过强大的编排和消息传递确保可靠性。


Dapr Agents 基于 Dapr 提供了一个框架,用于开发能够利用 LLM 进行推理、行动和协作的 AI 智能体。它提供了可靠性、可扩展性和可观测性,支持在单个核心上运行数千个智能体,并且原生支持在 Kubernetes 上运行。作者 Mark Fussell、Yaron Schneider 和 Roberto Rodriguez 描述了 Dapr Agents 与其他框架的不同之处:


Dapr Agents 基于 Dapr 的完整工作流引擎。许多其他智能体和 LLM 框架使用的是自建的工作流系统,这些系统在生产环境中往往不够可靠。Dapr Agents 使用经过验证的 Dapr 工作流系统,该系统具备很好的处理故障、重试和扩展问题的能力。


import loggingimport asyncioimport requestsfrom dotenv import load_dotenv



from dapr_agents.llm.dapr import DaprChatClientfrom dapr_agents import AssistantAgent, tool



# Load environment variablesload_dotenv()



logging.basicConfig(level=logging.INFO)



@tooldef get_pr_code(repository: str, pr: str) -> str: """Get the code for a given PR""" response = requests.get(f"https://api.github.com/repos/{repository}/pulls/{pr}/files") files = response.json() code = {file["filename"]: requests.get(file["raw_url"]).text for file in files} return code



@tooldef perform_review(code: str) -> str: """Review code""" response = DaprChatClient().generate(f"Review the following code: {code}") return response.get_content()



# Define Code Review Agentcode_review_agent = AssistantAgent( name="CodeReviewAgent", role="Review PRs", instructions=["Review code in a pull request, then return comments and/or suggestions"], tools=[get_pr_code, perform_review], message_bus_name="messagepubsub", state_store_name="workflowstatestore", agents_registry_store_name="agentstatestore", service_port=8001,)



# Start Agent Workflow Serviceawait code_review_agent.start()
复制代码


使用 Dapr Agent 构建代码评审智能体的示例(来源)


Distributed Application Runtime (Dapr) 是一个开源框架,通过提供服务调用、状态管理、发布 / 订阅消息传递和可观测性等构建块来简化云原生应用程序的开发。它抽象了基础设施的复杂性,让开发人员能够专注于业务逻辑,并能够无缝地集成到 Kubernetes 和其他环境中。


Agentic AI 指的是那些能够自主处理信息、做出决策并执行任务的 AI 的驱动系统。在这一领域有多种解决方案,包括 LangChain、AutoGen 和 CrewAI 等框架,它们为开发人员提供了构建基于智能体的应用程序的能力。


Dapr Agents 利用大语言模型作为其推理引擎,并与外部工具集成来增强功能。开发者可以创建具备预定义角色、目标和指令的智能体,赋予它们推理能力以及基于工具的行动能力。他们还可以利用包含 LLM 推理的函数来定义结构化、确定性的工作流。这些工作流确保任务按照预设的顺序执行,同时通过工具集成保持了灵活性。



智能体工作流示例(来源)


Dapr Agents 支持多智能体工作流,智能体可以通过 Dapr 的发布 / 订阅消息传递进行协作。协调模型包括基于 LLM 的决策制定、随机选择和轮询任务分配,实现自适应、自我推理的工作流。作者进一步阐述了这一点:


智能体需要作为自主的实体来运行,能够动态响应事件,从而实现与工作流的实时交互和协作。这些事件驱动的智能体工作流利用了 Dapr 的发布 / 订阅消息传递系统,使得智能体能够通过消息智能体进行通信、共享任务,并根据环境触发的事件进行推理。



智能体可以通过消息智能体与其他智能体通信(来源)


该设计抽象了与数据库和消息智能体的集成,让开发人员能够在不进行重大代码更改的情况下切换基础设施供应商。它与 Prometheus 和 OpenTelemetry 等监控工具无缝集成,实现了可观测性。作为 CNCF 项目,它避免了供应商锁定,同时确保了安全通信和容错能力。


开发人员可以通过 GitHub 代码库探索 Dapr Agents 的功能,并加入 Discord 社区进行讨论和获取支持。


InfoQ 与 Diagrid 的 CTO 和 Dapr 维护者 Yaron Schneider 就 Dapr Agents、其实现和未来计划进行了交流。


InfoQ:你提到 Dapr Agents 的设计目标是能够在单个核心上运行数千个智能体。那么是哪些优化措施或架构决策实现了这个目标?在 Kubernetes 环境中,架构师应该如何考虑扩展性问题?


Yaron Schneider:Dapr Agents 将智能体及其后续任务视为 Actor ——这些轻量级且持久的对象可以扩展到数百万个,具有非常低的延迟。这使得 Dapr Agents 能够在消耗极低 CPU 和内存的情况下运行大量智能体。由于 Dapr 可以原生集成到 Kubernetes 中,Dapr Agents 对故障具有高度弹性,并考虑到了 Kubernetes Pod 的瞬态特性。


InfoQ:在分布式 AI 智能体异步交互时,调试和可观测性变得至关重要。Dapr Agents 为监控、日志记录和排查智能体行为提供了哪些内置功能?


Schneider:基于 Dapr 构建的 Dapr Agents 为其智能体工作流提供了指标数据,包括每秒请求数、错误率和延迟。此外,由于 Dapr 工作流支持分布式跟踪,开发人员可以使用 OTel 兼容工具来可视化智能体调用图。我们将在未来更多地在智能体可观测性方面进行投入。


InfoQ:Dapr Agents 接下来有什么计划?是否计划增加新功能或做出改进,例如增强的 LLM 集成、新的工作流原语或扩展多云功能?


Schneider:鉴于数据合成在智能体工作负载中的重要性日益增加,我们计划集成模型上下文协议(MCP),让开发人员能够通过状态存储和绑定 API 将 Dapr Agents 连接到各种数据源和 Dapr 的原生功能。此外,我们还计划通过 Dapr 的对话 API 增加对更多 LLM 供应商的支持。最重要的是,Dapr Agents 目前已经支持 Python,我们正在努力增加对 Dotnet 和 Java 的支持。


查看英文原文

https://www.infoq.com/news/2025/03/dapr-agents/

2025-03-31 08:003467

评论

发布
暂无评论

跨平台的Markdown编辑器:Typora for Mac中文版

真大的脸盆

还在分不清各种IO模型?

Java你猿哥

Java Linux io I/O模型 Java IO

阿里内部教材:15W字的SpringCloud微服务实战,我一口气给你打包

Java 架构 微服务 Spring Cloud

intellij idea 粘贴字符串如何不带换行符?

源字节1号

微信小程序 开源 软件开发 前端开发 后端开发

用scrum敏捷工具做敏捷需求管理

顿顿顿

Scrum 敏捷开发 敏捷项目管理 看板工具

2023淘宝天猫金婴奖公布,小度学习机获年度超级新品奖!

科技热闻

大开眼界!Jenkins结合SpringCloud+K8S,打通微服一条龙技术讲解

Java Kubernetes k8s Spring Cloud jenkins

WebSocket与Socket、TCP、HTTP的区别

Apifox

程序员 TCP socket HTTP websocket

Last Week in Milvus

Zilliz

Milvus Zilliz 向量数据库

GitHub发布即百万!字节内网超实用 java性能优化手册,star超十万

Java你猿哥

Java JVM ssm Java性能调优 java程序优化

全新问世!阿里内藏版的SpringBoot 2.5实战笔记,全面覆盖新特性

Java spring 微服务 Spring Boot 框架

Go_Gin之初体验

神木鼎

golang 日更 gin框架

头部企业走入无人区,国产数智化厂商挑大梁

用友BIP

哪些技术有可能坐上智慧城市发展的快车

Onegun

智慧城市 小程序容器 数字城市

【活动报名】PolarDB开源数据库&PG中文社区技术沙龙温州站

阿里云数据库开源

数据库 postgresql 阿里云 开源 polarDB

兼顾可扩展、高并发与数据一致性:咸鱼优惠系统设计实践

Java你猿哥

Java 架构 ssm 架构设计 并发

做客《创新之路》,Tapdata 创始人唐建法对话央视著名主持人李雨霏,畅聊创业故事

tapdata

软件测试丨Pytest学习笔记-Mark标记、Skip跳过、xFail预期失败

测试人

软件测试 自动化测试 测试开发 pytest

用户费力度建设初探

Qunar技术沙龙

去哪儿网 用户费力度

小程序的安全架构解析

Onegun

小程序 安全 小程序容器 小程序架构

德邦快递:逆境之下,让数字化辅助业务的利润增长

Kyligence

数据分析 数字化管理 指标中台

今年互联网是“银二铜三铁四丐五”?程序员面试如何破局?

Java你猿哥

Java 架构 算法 多线程 java面试

如何利用java实现一个布隆过滤器?

Java 布隆过滤器

NFTScan 开发者平台发布 CU 付费方案,为 Web3 初创团队提供多链 NFT API 服务

NFT Research

NFT #Web3

如何在 Mac 上查看显示刷新率

互联网搬砖工作者

大模型竞争白热化 这家广州的科技公司却开辟了新战场

科技热闻

从GitHub火到头条!共计1658页的Java岗面试核心MCA版,拿走不谢

Java java面试 Java八股文 Java面试题 Java面试八股文

MLCC龙头涨价;车厂砍单芯片;台积电28nm设备订单全部取消!

元器件秋姐

芯片 汽车 资讯 新能源 MLCC

Spring Boot如何优雅提高接口数据安全性

Java spring Spring Boot

翻遍GitHub帮你总结了一份并发图册+高并发笔记,一次性搞懂并发编程

小小怪下士

Java 程序员 后端 高并发 并发

GPT:低代码的终局性机遇

小博

人工智能 低代码 PaaS GPT

Dapr Agents 发布:支持规模化 AI 工作流、多智能体协作_AI&大模型_Eran Stiller_InfoQ精选文章