dapr/dapr
Dapr is a portable runtime for building distributed applications across cloud and edge, combining event-driven architecture with workflow orchestration.
Dapr – 分布式应用、工作流和 AI 代理的运行时
它是什么 – Dapr(分布式应用运行时)是一个开源的、CNCF 毕业的平台,作为服务旁边的边车运行。它提供了一组构建块 API(状态存储、发布/订阅、服务调用、Actor、工作流等),这些 API 通过普通 HTTP 或 gRPC 工作,并可通过原生 SDK 从任何语言访问。
为什么它对 AI 很重要 – 现代 AI 代理不再只是“调用模型并获取响应”。生产级代理需要:
- 持久化、可恢复的执行(这样崩溃不会丢失进度)
- 轮次之间的持久内存
- 许多微服务或其他代理之间的安全、经过身份验证的通信
- 与 LLM(对话 API)和工具调用的轻松集成
- 可审计、可验证的执行历史,适用于合规性要求高的领域
Dapr 将所有这些作为可重用的原语提供,让开发人员专注于代理逻辑,而不是管道。
关键能力
| 功能 | 您获得什么 |
|---|---|
| 工作流 | 持久化、版本化、多步骤流程,支持定时器、重试、子工作流和人工介入事件。通过 CLI 和 API 管理。 |
| 服务调用 | 服务之间可靠、受 mTLS 保护的 RPC,语言无关。 |
| 状态管理 | 可插拔的状态存储(Redis、Cosmos 等),提供简单的 get/set API。 |
| 发布/订阅 | 在任何代理(Kafka、NATS、RabbitMQ…)上进行事件驱动消息传递,至少一次投递。 |
| Actor | 虚拟、有状态的 Actor,用于细粒度并发。 |
| 对话 | 调用 LLM 的统一 API,支持提示缓存和工具调用。 |
| 绑定 | 从外部系统(数据库、队列、云服务)触发代码,并向外发出事件。 |
| 密钥与配置 | 安全的密钥检索和动态配置订阅。 |
| 分布式锁与加密 | 协调原语和简单的加密/解密,无需直接处理密钥。 |
| 作业 | 一次性或计划任务。 |
所有这些都通过 HTTP/gRPC 暴露,并提供 .NET、Java、Python、Go、JavaScript/TypeScript、Rust、C++ 和 PHP 的 SDK。
如何使用
- 将 Dapr 边车添加到每个服务(Docker 容器、二进制文件或本地进程)。
- 通过语言 SDK 或原始 HTTP/gRPC 从代码中调用任何 Dapr API。
- 用您喜欢的语言定义工作流;Dapr 自动持久化其状态。
- 对于 AI 代理,使用对话 API 与 LLM 对话,将对话存储在状态存储中,并使用工作流编排多步推理。
随处运行 – 由于边车只是一个约 58 MB 的二进制文件,Dapr 可以在 Kubernetes、任何公有云、边缘设备、虚拟机甚至笔记本电脑上运行。在环境之间移动无需更改代码。
社区与成熟度 – Dapr 是一个毕业的 CNCF 项目,在许多企业中有生产使用。它拥有活跃的社区(Discord、双周电话会议、广泛的文档、快速入门和示例仓库)以及完整的 SDK 和组件库。
入门 – README 指向官方文档(docs.dapr.io)、快速入门指南和示例仓库,供动手学习。
TL;DR – Dapr 是一个语言无关的运行时,为您提供持久化工作流、安全的服务间调用、状态、发布/订阅以及一个对 LLM 友好的对话 API,使其成为构建可靠 AI 代理和其他分布式云/边缘应用的坚实基础。
相关
- 项目
- 项目
- 项目
- 项目