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 卒業プラットフォームで、サービスに隣接してサイドカーとして実行されます。状態ストア、pub/sub、サービス呼び出し、アクター、ワークフローなどのビルディングブロック API を提供し、これらはプレーンな HTTP または gRPC で動作し、ネイティブ SDK を介して任意の言語からアクセスできます。
AI にとって重要な理由 – 現代の AI エージェントは、もはや「モデルを呼び出して応答を得る」だけではありません。本番環境のエージェントには以下が必要です:
- 永続的で再開可能な実行(クラッシュしても進行状況が失われないように)
- ターン間の永続的なメモリ
- 多くのマイクロサービスや他のエージェント間の安全で認証された通信
- LLM(Conversation API)とツール呼び出しの簡単な統合
- コンプライアンス重視の領域向けの監査可能で検証可能な実行履歴
Dapr はこれらすべてを再利用可能なプリミティブとして提供し、開発者は配管ではなくエージェントロジックに集中できます。
主な機能
| 機能 | 得られるもの |
|---|---|
| ワークフロー | タイマー、再試行、子ワークフロー、人間参加イベントを備えた、永続的でバージョン管理された多段階プロセス。CLI と API で管理。 |
| サービス呼び出し | サービス間の信頼性の高い mTLS 保護 RPC、言語非依存。 |
| 状態管理 | プラグ可能な状態ストア(Redis、Cosmos など)とシンプルな get/set API。 |
| Pub/Sub | 任意のブローカー(Kafka、NATS、RabbitMQ…)でのイベント駆動メッセージング、少なくとも 1 回の配信。 |
| アクター | 細粒度の並行性のための仮想ステートフルアクター。 |
| 会話 | LLM を呼び出すための統一 API、プロンプトキャッシュとツール呼び出しをサポート。 |
| バインディング | 外部システム(データベース、キュー、クラウドサービス)からコードをトリガーし、外部にイベントを発行。 |
| シークレットと設定 | 安全なシークレット取得と動的設定サブスクリプション。 |
| 分散ロックと暗号化 | 調整プリミティブと、キーを直接扱わない簡単な暗号化/復号化。 |
| ジョブ | 1 回限りまたはスケジュールされたタスク。 |
これらはすべて HTTP/gRPC で公開され、.NET、Java、Python、Go、JavaScript/TypeScript、Rust、C++、PHP 用の SDK があります。
使用方法
- Dapr サイドカーを各サービスに追加します(Docker コンテナ、バイナリ、またはローカルプロセス)。
- 言語 SDK または生の HTTP/gRPC を介してコードから任意の Dapr API を呼び出します。
- 好みの言語でワークフローを定義します。Dapr が状態を自動的に永続化します。
- AI エージェントの場合は、Conversation API を使用して LLM と通信し、会話を状態ストアに保存し、ワークフローで多段階の推論を調整します。
どこでも実行 – サイドカーは約 58 MB のバイナリにすぎないため、Dapr は Kubernetes、任意のパブリッククラウド、エッジデバイス、VM、さらにはラップトップでも動作します。環境間の移動にコード変更は不要です。
コミュニティと成熟度 – Dapr は卒業した CNCF プロジェクトであり、多くの企業で本番使用されています。活発なコミュニティ(Discord、隔週の電話会議、広範なドキュメント、クイックスタート、サンプルリポジトリ)と、完全な SDK およびコンポーネントライブラリがあります。
はじめに – README は、公式ドキュメント(docs.dapr.io)、クイックスタートガイド、および実践的な学習用のサンプルリポジトリを指しています。
TL;DR – Dapr は言語非依存のランタイムで、永続的なワークフロー、安全なサービス間呼び出し、状態、pub/sub、LLM に優しい Conversation API を提供し、信頼性の高い AI エージェントやその他の分散クラウド/エッジアプリケーションを構築するための強固な基盤となります。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト