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。

如何使用

  1. 将 Dapr 边车添加到每个服务(Docker 容器、二进制文件或本地进程)。
  2. 通过语言 SDK 或原始 HTTP/gRPC 从代码中调用任何 Dapr API。
  3. 用您喜欢的语言定义工作流;Dapr 自动持久化其状态。
  4. 对于 AI 代理,使用对话 API 与 LLM 对话,将对话存储在状态存储中,并使用工作流编排多步推理。

随处运行 – 由于边车只是一个约 58 MB 的二进制文件,Dapr 可以在 Kubernetes、任何公有云、边缘设备、虚拟机甚至笔记本电脑上运行。在环境之间移动无需更改代码。

社区与成熟度 – Dapr 是一个毕业的 CNCF 项目,在许多企业中有生产使用。它拥有活跃的社区(Discord、双周电话会议、广泛的文档、快速入门和示例仓库)以及完整的 SDK 和组件库。

入门 – README 指向官方文档(docs.dapr.io)、快速入门指南和示例仓库,供动手学习。


TL;DR – Dapr 是一个语言无关的运行时,为您提供持久化工作流、安全的服务间调用、状态、发布/订阅以及一个对 LLM 友好的对话 API,使其成为构建可靠 AI 代理和其他分布式云/边缘应用的坚实基础。

相关

  • 项目
  • 项目
  • 项目
  • 项目