Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
228 commits
Select commit Hold shift + click to select a range
323d32e
Multi-application Workflows (#4847)
cicoyle Sep 9, 2025
8c611f5
Update README with clearer navigation instructions
msfussell Sep 10, 2025
f65aaec
Update Alpha APIs doc
msfussell Sep 10, 2025
561b1d7
Merge pull request #4868 from msfussell/streaming-sub
marcduiker Sep 10, 2025
2c2a71b
Merge branch 'v1.16' into msfussell-patch-1
marcduiker Sep 10, 2025
ef0e7d5
Merge pull request #4867 from dapr/msfussell-patch-1
marcduiker Sep 10, 2025
62f930f
feat: conversation api toolcalling support documentation (#4769)
sicoyle Sep 10, 2025
94668b6
Workflow multi app typo (#4876)
bibryam Sep 10, 2025
79c6613
docs: add Dapr Agents references to core documentation pages (#4870)
bibryam Sep 11, 2025
95f4442
[1.16] Update Go workflow examples to use vanity client (#4874)
JoshVanL Sep 12, 2025
8d411e7
Fix for issue #4879: Added consistent code samples, instructions and …
bibryam Sep 12, 2025
23de64e
Updated conversation api docs to latest alpha v2, refresh sample requ…
bibryam Sep 12, 2025
2f7d17d
Added 'How the Outbox Works' section and expand requirements with int…
bibryam Sep 12, 2025
4867d9d
docs: update max-body-size documentation (#4873)
mikeee Sep 12, 2025
ecb9992
Update daprdocs/content/en/developing-applications/building-blocks/co…
msfussell Sep 12, 2025
af09da6
Update daprdocs/content/en/developing-applications/building-blocks/co…
msfussell Sep 12, 2025
856a1ea
Merge branch 'v1.16' into issue-4879
marcduiker Sep 12, 2025
110a88e
Merge pull request #4880 from bibryam/issue-4879
marcduiker Sep 12, 2025
9c44ff7
Order APIs and Components alphabetically (#4883)
bibryam Sep 12, 2025
d84cd60
Added prompt caching details (#4882)
bibryam Sep 12, 2025
8de08db
[1.16] Adds workflow limitations (#4865)
JoshVanL Sep 13, 2025
3671a98
Merge branch 'v1.16' into fix/4687-clean
marcduiker Sep 15, 2025
8656501
Reverting back from snake case to camel case
bibryam Sep 15, 2025
7723834
Merge pull request #4881 from bibryam/fix/4687-clean
marcduiker Sep 16, 2025
1e03ece
Multi-app workflows: improve docs and images (#4878)
cicoyle Sep 16, 2025
a283959
Prepare branch 1.16 to be latest (#4858)
marcduiker Sep 16, 2025
274cac5
Update supported version table (+ procedure) (#4890)
marcduiker Sep 16, 2025
8bb8a15
Update to download-artifact@v4
marcduiker Sep 16, 2025
173dd39
Merge branch 'v1.16' into update-root-action-checkout
marcduiker Sep 16, 2025
b15133a
[1.16] Adds configuration-overview.md section on Workflow (#4889)
JoshVanL Sep 16, 2025
a97e5ed
Merge branch 'v1.16' into update-root-action-checkout
marcduiker Sep 16, 2025
5c54c4c
Merge pull request #4891 from marcduiker/update-root-action-checkout
marcduiker Sep 16, 2025
8623168
Enhanced the OpenAI conversation component docs to include Azure seci…
bibryam Sep 16, 2025
79a4728
feat: add missing 1.15 versions (#4892)
nelson-parente Sep 17, 2025
9fe866f
Add back artifact upload for Algolia search (#4893)
marcduiker Sep 18, 2025
571a088
Change Algolia index name from 'daprdocs' to 'crawler_dapr'
marcduiker Sep 22, 2025
e4655e2
Fixed random typos from all over the docs
bibryam Sep 22, 2025
4915f3a
Merge pull request #4898 from marcduiker/update-algolia-index
marcduiker Sep 22, 2025
2ce9f67
Merge branch 'v1.16' into random-typos
msfussell Sep 23, 2025
877e2b9
Remove Algolia script, update html to use hugo yaml
marcduiker Sep 23, 2025
d9ce2af
Merge pull request #4900 from bibryam/random-typos
marcduiker Sep 23, 2025
666ec9e
Enhance AWS Secrets Manager documentation and YAML configuration to i…
MyMirelHub Sep 24, 2025
52b8ed7
Removing wait_until_ready, it has been renamed for consistency
acroca Sep 25, 2025
d6bf973
Adds documentation for `$ dapr scheduler`
JoshVanL Oct 3, 2025
773f958
Python supports multi-app calls
acroca Oct 9, 2025
3bed53c
Apply suggestion from @alicejgibbons
MyMirelHub Oct 9, 2025
5113e33
Apply suggestion from @alicejgibbons
MyMirelHub Oct 9, 2025
5378672
Apply suggestion from @alicejgibbons
MyMirelHub Oct 9, 2025
aeebcd4
Apply suggestion from @alicejgibbons
MyMirelHub Oct 9, 2025
88f924e
Apply suggestion from @alicejgibbons
MyMirelHub Oct 9, 2025
9f0afc0
Apply suggestion from @alicejgibbons
MyMirelHub Oct 9, 2025
6475f4d
Apply suggestion from @alicejgibbons
MyMirelHub Oct 9, 2025
9df106b
Updated /v1.0-alpha1/conversation to /v1.0-alpha2/conversation (#4899)
bibryam Oct 9, 2025
5512bf2
Merge branch 'v1.16' into dapr-scheduler
marcduiker Oct 9, 2025
0abf107
Add 1.16.1 version (#4915)
alicejgibbons Oct 10, 2025
c8d73de
Merge branch 'v1.16' into python-multiapp
acroca Oct 20, 2025
04e0f32
Merge pull request #4914 from acroca/python-multiapp
marcduiker Oct 20, 2025
02ef0b0
Updated token mounting docs (#4919)
alicejgibbons Oct 20, 2025
1e3eadb
Remove duplication (#4905)
marcduiker Oct 20, 2025
ad59615
Reorganize AWS Secrets Manager documentation to improve clarity on in…
MyMirelHub Oct 22, 2025
420068f
Merge branch 'v1.16' into add-multipleKeyValuesPerSecret-aws-secretstore
MyMirelHub Oct 22, 2025
35e0744
Change max-body-size to use unit in documentation (#4906)
jancespivo Oct 22, 2025
c6139ec
Merge branch 'dapr:v1.16' into add-multipleKeyValuesPerSecret-aws-sec…
MyMirelHub Oct 22, 2025
8c5ab7d
feat Jaeger v2 (#4921)
MyMirelHub Oct 22, 2025
c17cf7e
Merge branch 'v1.16' into add-multipleKeyValuesPerSecret-aws-secretstore
MyMirelHub Oct 22, 2025
318333f
Merge pull request #4903 from MyMirelHub/add-multipleKeyValuesPerSecr…
marcduiker Oct 27, 2025
a388998
Updated outbox doc to use correct sample for projection (#4913)
bibryam Oct 28, 2025
7bae07e
Merge branch 'v1.16' into remove-algolia-workflow
msfussell Oct 28, 2025
74b5258
Merge branch 'v1.16' into remove-wait_until_ready
msfussell Oct 28, 2025
cad3de1
Minor typos in the presentations page (#4902)
bibryam Oct 28, 2025
7b11e71
fix cel doc ref
FarmerChillax Oct 28, 2025
76ed1a9
Update Outbox Java example (#4924)
mcruzdev Oct 28, 2025
416d322
Merge branch 'v1.16' into remove-algolia-workflow
marcduiker Oct 28, 2025
72f3db6
Merge pull request #4901 from marcduiker/remove-algolia-workflow
marcduiker Oct 28, 2025
5830c0b
Merge branch 'v1.16' into dapr-scheduler
JoshVanL Oct 30, 2025
a0ce1cf
Adds docs for v1.16.2 (#4929)
JoshVanL Oct 30, 2025
ffc952a
Merge branch 'v1.16' into dapr-scheduler
JoshVanL Oct 30, 2025
4ca9f73
Review comments
JoshVanL Oct 30, 2025
f94773a
removing the Kapa.ai chatbot.
frasermarlow Oct 31, 2025
6bd30a4
Removing duplicate header line.
frasermarlow Oct 31, 2025
865abc1
Merge pull request #4931 from frasermarlow/fraser/remove-kapa-ai
marcduiker Oct 31, 2025
dd6424f
Merge branch 'v1.16' into dapr-scheduler
JoshVanL Oct 31, 2025
9f8bfb6
Updates CLI reference to v1.16.3 (#4932)
JoshVanL Oct 31, 2025
2bbb852
Merge branch 'v1.16' into dapr-scheduler
JoshVanL Oct 31, 2025
bfc4538
Add documentation about rawMessage for Java
mcruzdev Nov 2, 2025
d0bbb93
Merge branch 'v1.16' into fix-cel-doc-ref
msfussell Nov 4, 2025
dcdc00f
Add use-cases to the main page (#4937)
marcduiker Nov 5, 2025
a527df0
Merge branch 'v1.16' into dapr-scheduler
cicoyle Nov 5, 2025
236a4a1
Merge pull request #4909 from JoshVanL/dapr-scheduler
marcduiker Nov 6, 2025
fc7f51d
Update workflow retry docs with some clarifications (#4936)
atrauzzi Nov 7, 2025
1816a8c
Refreshed core concepts to showcase AgentRunner run/subscribe/serve m…
Cyb3rWard0g Nov 10, 2025
5c8a9c1
Added required Conversation/OpenAI component setup and updated the sa…
Cyb3rWard0g Nov 10, 2025
592008f
Modernized the Durable Agent pattern with config-class wiring plus Ag…
Cyb3rWard0g Nov 10, 2025
012b678
Split the tool-call entry into standalone vs. durable variants and hi…
Cyb3rWard0g Nov 10, 2025
3312925
Merge branch 'v1.16' into fix-cel-doc-ref
FarmerChillax Nov 10, 2025
c14f6d6
Updated getting started doc to clarify environment variable setup wit…
Cyb3rWard0g Nov 10, 2025
a6014dc
`$ dapr workflow` CLI docs (#4916)
JoshVanL Nov 10, 2025
9ae330b
Merge branch 'v1.16' into my-fix-v1.16
msfussell Nov 10, 2025
30938cb
Merge branch 'v1.16' into raw-message-java
cicoyle Nov 11, 2025
2bb8ce0
Merge pull request #4933 from mcruzdev/raw-message-java
marcduiker Nov 12, 2025
18acd01
Merge branch 'v1.16' into my-fix-v1.16
marcduiker Nov 12, 2025
f603f78
Merge branch 'v1.16' into fix-cel-doc-ref
FarmerChillax Nov 13, 2025
826973e
Merge branch 'v1.16' into remove-wait_until_ready
marcduiker Nov 19, 2025
baa686b
Merge pull request #4904 from acroca/remove-wait_until_ready
marcduiker Nov 19, 2025
688eeab
Merge branch 'v1.16' into fix-cel-doc-ref
marcduiker Nov 19, 2025
7cf5933
Merge pull request #4927 from FarmerChillax/fix-cel-doc-ref
marcduiker Nov 19, 2025
a5f77c0
Merge branch 'v1.16' into my-fix-v1.16
marcduiker Nov 19, 2025
81b62ae
update to latest dotnet ref
marcduiker Nov 20, 2025
f2837b6
Merge branch 'v1.16' into update-dotnet-sdk-ref
marcduiker Nov 20, 2025
b65769a
remove dotnet sdk docs
marcduiker Nov 20, 2025
b306473
Remove dotnet pluggable components docs
marcduiker Nov 20, 2025
b25794a
Move .NET SDK & pluggable component docs into main docs
marcduiker Nov 20, 2025
d2d0c0f
Remove localized urls
marcduiker Nov 20, 2025
9849a6b
Merge pull request #4944 from marcduiker/update-dotnet-sdk-ref
marcduiker Nov 20, 2025
65b9cb7
Merge branch 'v1.16' into remove-dotnet-submodule
marcduiker Nov 20, 2025
dd3e9e2
Merge pull request #4945 from marcduiker/remove-dotnet-submodule
marcduiker Nov 20, 2025
3b3ed2d
Remove java submodule
marcduiker Nov 21, 2025
f04f71d
Remove Java submodule
marcduiker Nov 21, 2025
a84cebd
Migrate Java SDK Docs into main Docs
marcduiker Nov 21, 2025
3cd8fb2
Remove localization in URL
marcduiker Nov 21, 2025
06637d5
Add Redis Sentinel configuration details to pubsub component document…
MyMirelHub Nov 21, 2025
3d89874
Update redisHost description to clarify multiple sentinel addresses u…
MyMirelHub Nov 21, 2025
28f4671
Remove python submodule
marcduiker Nov 21, 2025
347c5b2
Add Python SDK docs to main docs
marcduiker Nov 21, 2025
919b8be
remove js submodule
marcduiker Nov 21, 2025
3d48e07
Add JS SDK docs to main docs
marcduiker Nov 21, 2025
b9bc6d4
Fix mech markdown issue
marcduiker Nov 21, 2025
bb43567
Clarify failover configuration for Redis Sentinel, specifying that re…
MyMirelHub Nov 21, 2025
235bf6d
Remove Go SDK submodule
marcduiker Nov 21, 2025
a193f2f
Remove Go Pluggable Component submodule
marcduiker Nov 21, 2025
f33f14b
Add Go SDk & Pluggable component docs
marcduiker Nov 21, 2025
b4ff666
Remove php submodule
marcduiker Nov 21, 2025
97d27cc
Add PHP SDK docs
marcduiker Nov 21, 2025
985e4fa
Ignore link to validate
marcduiker Nov 21, 2025
5ec35c3
Enhance Redis Sentinel documentation by specifying redisType and fail…
MyMirelHub Nov 21, 2025
011050a
Add instructions for retrieving Redis password based on OS in Redis S…
MyMirelHub Nov 21, 2025
515699f
Update redisHost example to include multiple sentinel addresses for c…
MyMirelHub Nov 21, 2025
65456b0
Enhance Redis documentation to clarify usage of multiple sentinel add…
MyMirelHub Nov 21, 2025
ef13474
Remove rust submodule
marcduiker Nov 21, 2025
e47e54b
Move Rust SDK docs to main docs
marcduiker Nov 21, 2025
3ff13f0
Reorganize Redis Sentinel configuration section for clarity and redun…
MyMirelHub Nov 21, 2025
792ab3d
Fix typo in sentinelMasterName value for Redis Sentinel configuration
MyMirelHub Nov 21, 2025
bf4f7a7
Merge pull request #4946 from marcduiker/remove-java-submodule
marcduiker Nov 24, 2025
d71ab4d
Merge branch 'v1.16' into remove-python-submodule
marcduiker Nov 24, 2025
ae61beb
Merge pull request #4949 from marcduiker/remove-python-submodule
marcduiker Nov 24, 2025
b6d3cd4
Merge branch 'v1.16' into remove-js-submodule
marcduiker Nov 24, 2025
7b2a00b
Merge pull request #4950 from marcduiker/remove-js-submodule
marcduiker Nov 24, 2025
260fd27
Merge branch 'v1.16' into remove-go-sdk-submodule
marcduiker Nov 24, 2025
66e0741
Merge pull request #4951 from marcduiker/remove-go-sdk-submodule
marcduiker Nov 24, 2025
f3d50c8
Merge branch 'v1.16' into remove-php-submodule
marcduiker Nov 24, 2025
f4d9bf6
Merge branch 'v1.16' into remove-rust-submodule
marcduiker Nov 24, 2025
6ddc281
Merge pull request #4953 from marcduiker/remove-rust-submodule
marcduiker Nov 24, 2025
5be2de9
Merge branch 'v1.16' into remove-php-submodule
marcduiker Nov 24, 2025
cdb1724
Merge pull request #4952 from marcduiker/remove-php-submodule
marcduiker Nov 25, 2025
5924793
Merge branch 'v1.16' into my-fix-v1.16
marcduiker Nov 25, 2025
491511c
Merge pull request #4940 from Cyb3rWard0g/my-fix-v1.16
marcduiker Nov 25, 2025
bd6eff3
Fix main .NET SDK page, update repo README instructions
marcduiker Nov 27, 2025
44692ef
Fix repo README
marcduiker Nov 27, 2025
df96eda
Add Create a `DaprWorkflowClient` instance
marcduiker Nov 27, 2025
246b298
Add DaprWorkflow client operations
marcduiker Nov 27, 2025
894d255
Update management operations
marcduiker Nov 27, 2025
b5b036a
Add link, remove SDK how-to
marcduiker Nov 27, 2025
8a1e222
Add a page with workflow examples refs
marcduiker Nov 27, 2025
e4a3e80
Add DaprWorkflowClient injection example
marcduiker Nov 27, 2025
e9f849d
Clarify minimal API example
marcduiker Nov 27, 2025
c970d68
Fix DaprWorkflowClient injection and scope usage
marcduiker Nov 28, 2025
747d541
fix: correct yaml spec for crypto local storage (#4958)
CasperGN Nov 29, 2025
5b988e8
Update sdkdocs/dotnet/content/en/dotnet-sdk-docs/dotnet-workflow/dotn…
msfussell Nov 29, 2025
ef42344
Update sdkdocs/dotnet/content/en/dotnet-sdk-docs/dotnet-workflow/dotn…
msfussell Nov 29, 2025
e49fcce
Update sdkdocs/dotnet/content/en/dotnet-sdk-docs/dotnet-workflow/dotn…
msfussell Nov 29, 2025
48e5cf9
Merge branch 'v1.16' into add-dotnet-wf
msfussell Nov 29, 2025
0c53415
Merge pull request #4957 from marcduiker/add-dotnet-wf
marcduiker Nov 30, 2025
902d229
Merge branch 'v1.16' into redis-sentinel-multiple-addresses
marcduiker Dec 2, 2025
bcc63fb
Merge pull request #4948 from MyMirelHub/redis-sentinel-multiple-addr…
marcduiker Dec 2, 2025
45179f9
#4877 fix broken commands, updated output with tool calling and add …
bibryam Dec 3, 2025
b4dc72d
Describe new ttlInSeconds attribute in DynamoDB state store setup (#4…
ZeynelKoca Dec 4, 2025
f1988f9
Fix tab formatting for JavaScript section in Bindings How-To (#4959)
jamespegg Dec 4, 2025
3cd7e07
Update authoring workflow page with Diagrid Dashboard (#4962)
marcduiker Dec 9, 2025
405497c
Add dapr v1.16.3 + 1.16.4 (#4968)
cicoyle Dec 10, 2025
1b49a9f
add mcp auth documentation
yaron2 Dec 10, 2025
4a641ad
Merge branch 'v1.16' into mcp-1
yaron2 Dec 10, 2025
b40a0b2
typo
yaron2 Dec 11, 2025
597b519
Refactor secret scope documentation for clarity (#4965)
caretak3r Dec 12, 2025
2415746
chore: update links to dapr agents quickstart changing _ to - (#4976)
CasperGN Dec 14, 2025
231433b
feat: add metadata field to Subscription spec (#4970)
FarmerChillax Dec 16, 2025
473da93
Clarify disableTls requirement in Kafka setup (#4977)
joebowbeer Dec 16, 2025
6cdb9a5
Separating Dapr Workflows documentation on Spring Boot to it's separa…
salaboy Dec 16, 2025
48fe65f
Chore: jaeger guidance (#4923)
MyMirelHub Dec 16, 2025
aaa9625
docs: add docs for integrating MCP Toolbox for Databases as tool(s) (…
CasperGN Dec 16, 2025
78c5e4c
chore: align docs with https://github.com/dapr/dapr-agents/pull/283 (…
CasperGN Dec 16, 2025
803744d
Add OpenAI integration docs (#4969)
yaron2 Dec 17, 2025
84f8a60
Add CrewAI and workflow documentation (#4973)
yaron2 Dec 17, 2025
1b59f21
Add aliases to redirect old Dapr Agent pages to new location
marcduiker Dec 17, 2025
eed9e35
update main Dapr Agents alias
marcduiker Dec 17, 2025
b485df2
Merge pull request #4981 from marcduiker/add-redirect-dapr-agents
marcduiker Dec 17, 2025
4422e1b
Remove Reo.dev script
marcduiker Dec 18, 2025
04ec6cc
Merge pull request #4983 from marcduiker/remove-reo
marcduiker Dec 18, 2025
6bb40db
add dapr 1.16.5 (#4988)
cicoyle Jan 5, 2026
dc8b9c7
Merge branch 'v1.16' into mcp-1
yaron2 Jan 7, 2026
3354f80
Update daprdocs/content/en/developing-applications/mcp/_index.md
yaron2 Jan 7, 2026
a10708c
Update daprdocs/content/en/developing-applications/mcp/mcp-authentica…
yaron2 Jan 7, 2026
51b8995
Update daprdocs/content/en/developing-applications/mcp/mcp-authentica…
yaron2 Jan 7, 2026
09bfda4
Update daprdocs/content/en/developing-applications/mcp/mcp-authentica…
yaron2 Jan 7, 2026
42c9533
Update daprdocs/content/en/developing-applications/mcp/mcp-authentica…
yaron2 Jan 7, 2026
d4ec8b7
Update daprdocs/content/en/developing-applications/mcp/mcp-authentica…
yaron2 Jan 7, 2026
fc3e783
Update daprdocs/content/en/developing-applications/mcp/mcp-authentica…
yaron2 Jan 7, 2026
8ae747b
address feedback
yaron2 Jan 7, 2026
10ea430
address feedback
yaron2 Jan 7, 2026
0e4c448
Updates latest version to v1.16.6 (#4998)
JoshVanL Jan 12, 2026
4b5f612
Added bot script to allow SDK maintainers to automerge non-draft PRs …
WhitWaldo Jan 13, 2026
d53d99a
Updated Dapr Agents docs to align with recent quickstart changes (#4987)
bibryam Jan 14, 2026
d3d392d
Merge branch 'v1.16' into mcp-1
yaron2 Jan 19, 2026
34201ce
Docs/python sdk ext langgraph (#4954)
CasperGN Jan 20, 2026
e60c52d
docs: document durable agent retry policy (#4982)
CasperGN Jan 20, 2026
93848d9
Clarify usage of Service Account tokens and Dapr's secret management …
MyMirelHub Jan 27, 2026
a203d79
[1.16] Docs for pulsar file auth (#5001)
MyMirelHub Jan 27, 2026
78152d7
Merge branch 'v1.16' into mcp-1
msfussell Jan 27, 2026
fe9c96c
Update daprdocs/content/en/developing-ai/mcp/mcp-authentication.md
marcduiker Jan 27, 2026
7256e61
Update daprdocs/content/en/developing-ai/mcp/mcp-authentication.md
marcduiker Jan 27, 2026
db14ed6
Update daprdocs/content/en/developing-ai/mcp/mcp-authentication.md
marcduiker Jan 27, 2026
fbee78b
Merge pull request #4972 from dapr/mcp-1
marcduiker Jan 27, 2026
40652e2
chore(docs): update docs to reflect removal of decorators in dapr/dap…
CasperGN Jan 28, 2026
aad99ad
Update Dapr Agents logo
marcduiker Feb 3, 2026
8b32688
Update dapr agents concepts image
marcduiker Feb 3, 2026
6345470
Add Dapr Agents blue logo
marcduiker Feb 3, 2026
dc429b7
Merge pull request #5026 from marcduiker/update-slide-decks
marcduiker Feb 3, 2026
5c1e7ff
Adds v1.16.9 as latest (#5037)
JoshVanL Feb 12, 2026
94f9e9a
Merge branch 'v1.16' into upmerge_20260220
marcduiker Feb 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions daprdocs/content/en/concepts/dapr-services/scheduler.md
Original file line number Diff line number Diff line change
Expand Up @@ -178,15 +178,15 @@ The Dapr CLI provides a command for exporting all Scheduler data to a specific b
Use the `-k` flag when running in Kubernetes mode.

```shell
dapr scheduler export --output-file scheduler-backup.db
dapr scheduler export -k --output-file scheduler-backup.db
dapr scheduler export -o scheduler-backup.bin
dapr scheduler export -k -o scheduler-backup.bin
```

To restore data from a backup file:

```shell
dapr scheduler import --input-file scheduler-backup.db
dapr scheduler import -k --input-file scheduler-backup.db
dapr scheduler import -f scheduler-backup.bin
dapr scheduler import -k -f scheduler-backup.bin
```

## Monitoring Scheduler's etcd Metrics
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
type: docs
title: "LangGraph"
linkTitle: "LangGraph"
weight: 25
description: "Dapr first-class integrations with LangGraph Agents"
---

### What is the Dapr LangGraph integration?

Dapr provides LangGraph agents a first class integration to agent session management (checkpointers).
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
---
type: docs
title: "Agent Sessions"
linkTitle: "Agent Sessions"
weight: 30
description: "How to use Dapr reliably and securely manage LangGraph Agent Checkpointers"
---

## Overview

The Dapr Python SDK provides integration with LangGraph Checkpointer using the `dapr-ext-langgraph` extension.

## Getting Started

Initialize Dapr locally to set up a self-hosted environment for development. This process fetches and installs the Dapr sidecar binaries, runs essential services as Docker containers, and prepares a default components folder for your application. For detailed steps, see the official [guide on initializing Dapr locally]({{% ref install-dapr-cli.md %}}).

To initialize the Dapr control plane containers and create a default configuration file, run:

```bash
dapr init
```

Verify you have container instances with `daprio/dapr`, `openzipkin/zipkin`, and `redis` images running:

```bash
docker ps
```

### Install Python

{{% alert title="Note" color="info" %}}
Make sure you have Python already installed. `Python >=3.10`. For installation instructions, visit the official [Python installation guide](https://www.python.org/downloads/).
{{% /alert %}}

### Download Dependencies

Download and install the Dapr LangGraph extension with:

{{< tabpane text=true >}}

{{% tab header="Stable" %}}

```bash
pip install dapr-ext-langgraph langchain_openai langchain_core langgraph langgraph-prebuilt
```

{{% /tab %}}

{{% tab header="Development" %}}
{{% alert title="Note" color="warning" %}}
The development package will contain features and behavior that will be compatible with the pre-release version of the Dapr runtime. Make sure to uninstall any stable versions of the Python SDK extension before installing the `dapr-dev` package.
{{% /alert %}}

```bash
pip install dapr-ext-langgraph-dev langchain_openai langchain_core langgraph langgraph-prebuilt
```

{{% /tab %}}

{{< /tabpane >}}

### Create a LangGraph Agent

To let Dapr handle the agent memory, utilize the `DaprCheckpointer` as the checkpointer object when compiling the graph. Pass the checkpointer just like any other checkpointer provider:

```python
from dapr.ext.langgraph import DaprCheckpointer
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
from langgraph.graph import START, MessagesState, StateGraph
from langgraph.prebuilt import ToolNode, tools_condition


def add(a: int, b: int) -> int:
"""Adds a and b.

Args:
a: first int
b: second int
"""
return a + b

tools = [add]
llm = ChatOpenAI(model="gpt-4o")
llm_with_tools = llm.bind_tools(tools)

sys_msg = SystemMessage(
content='You are a helpful assistant tasked with performing arithmetic on a set of inputs.'
)

def assistant(state: MessagesState):
return {'messages': [llm_with_tools.invoke([sys_msg] + state['messages'])]}

builder = StateGraph(MessagesState)
builder.add_node('assistant', assistant)
builder.add_node('tools', ToolNode(tools))
builder.add_edge(START, 'assistant')
builder.add_conditional_edges(
'assistant',
tools_condition,
)
builder.add_edge('tools', 'assistant')

memory = DaprCheckpointer(store_name='statestore', key_prefix='dapr')
react_graph_memory = builder.compile(checkpointer=memory)

config = {'configurable': {'thread_id': '1'}}

messages = [HumanMessage(content='Add 3 and 4.')]
messages = react_graph_memory.invoke({'messages': messages}, config)
for m in messages['messages']:
m.pretty_print()
```

### Set an OpenAI API key

```bash
export OPENAI_API_KEY=sk-...
```

### Create a Python venv

```bash
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
```

## Create the database component

The component file is how Dapr connects to your databae. The full list of supported databases can be found [here]({{% ref supported-state-stores %}}). Create a `components` directory and this file in it:

```yaml
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: statestore
spec:
type: state.redis
version: v1
metadata:
- name: redisHost
value: localhost:6379
- name: redisPassword
value: ""
```

## Next Steps

Now that you have a LangGraph agent using Dapr to manage the agent sessions, explore more you can do with the [State API]({{% ref "state-management-overview" %}}) and how to enable [resiliency policies]({{% ref resiliency-overview %}}) for enhanced reliability.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
type: docs
title: "OpenAI Agents"
linkTitle: "OpenAI Agents"
title: "OpenAI"
linkTitle: "OpenAI"
weight: 25
description: "Dapr first-class integrations for OpenAI Agents"
---
Expand Down
2 changes: 2 additions & 0 deletions daprdocs/content/en/developing-ai/dapr-agents/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ aliases:
- /developing-applications/dapr-agents
---

![Concepts Agents](/images/dapr-agents/agents-blue.png)

### What is Dapr Agents?

Dapr Agents is a Python framework for building LLM-powered autonomous agentic applications using Dapr's distributed systems capabilities. It provides tools for creating AI agents that can execute durable tasks, make decisions, and collaborate through workflows, while leveraging Dapr's state management, messaging, and observability features for reliable execution at scale.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -337,91 +337,79 @@ Workflows are structured processes where LLM agents and tools collaborate in pre
This approach is particularly suitable for business-critical applications where you need both the intelligence of LLMs and the reliability of traditional software systems.

```python
import dapr.ext.workflow as wf
from dapr.ext.workflow import DaprWorkflowContext

from dapr_agents.llm.dapr import DaprChatClient
from dapr_agents.workflow.decorators import llm_activity

runtime = wf.WorkflowRuntime()
llm = DaprChatClient(component_name="openai")
import time

import dapr.ext.workflow as wf

@runtime.workflow(name="task_chain_workflow")
def task_chain_workflow(ctx: DaprWorkflowContext):
character = yield ctx.call_activity(get_character)
line = yield ctx.call_activity(get_line, input={"character": character})
return line

wfr = wf.WorkflowRuntime()

@runtime.activity(name="get_character")
@llm_activity(
prompt="Pick a random character from The Lord of the Rings. Respond with the name only.",
llm=llm,
)
def get_character(ctx) -> str:
pass
@wfr.workflow(name="support_workflow")
def support_workflow(ctx: wf.DaprWorkflowContext, request: dict) -> str:
triage_result = yield ctx.call_child_workflow(
workflow="agent_workflow",
input={"task": f"Assist with the following support request:\n\n{request}"},
app_id="triage-agent",
)
if triage_result:
print("Triage result:", triage_result.get("content", ""), flush=True)

recommendation = yield ctx.call_child_workflow(
workflow="agent_workflow",
input={"task": triage_result.get("content", "")},
app_id="expert-agent",
)
if recommendation:
print("Recommendation:", recommendation.get("content", ""), flush=True)

@runtime.activity(name="get_line")
@llm_activity(
prompt="What is a famous line by {character}?",
llm=llm,
)
def get_line(ctx, character: str) -> str:
pass
return recommendation.get("content", "") if recommendation else ""

wfr.start()
time.sleep(5)

runtime.start()
client = wf.DaprWorkflowClient()
instance_id = client.schedule_new_workflow(task_chain_workflow)
state = client.wait_for_workflow_completion(instance_id)
print(state.serialized_output)
runtime.shutdown()
```

This workflow demonstrates sequential task execution where the output of one LLM-backed activity becomes the input for the next. The `@llm_activity` decorator wires prompts, formatting, and response handling so activities stay deterministic while still using model reasoning.

Dapr Agents supports coordination of LLM interactions at different levels of granularity:

### LLM Activities
`@llm_activity` binds a workflow activity to a prompt, LLM client, and optional structured output. The decorated function body can stay empty because the decorator handles prompting, retries, and response parsing.

```python
llm = DaprChatClient(component_name="openai")

@runtime.activity(name="generate_outline")
@llm_activity(
prompt="Create a short outline about {topic}.",
llm=llm,
request = {
"customer": "alice",
"issue": "Unable to access dashboard after recent update",
}
instance_id = client.schedule_new_workflow(
workflow=support_workflow,
input=request,
)
def generate_outline(ctx, topic: str) -> str:
pass
client.wait_for_workflow_completion(instance_id, timeout_in_seconds=60)
wfr.shutdown()
```

LLM activities are perfect for lightweight reasoning steps, extraction tasks, or summarization stages that need deterministic workflow control with LLM flexibility.

### Agent Activities
`@agent_activity` lets workflows call fully-configured `Agent` instances (tools, memory, instructions) as activities. The workflow provides the inputs, and the decorator routes execution through the agent’s reasoning loop.
Here the `call_child_workflow` is used to invoke the workflow of two Dapr Agents and pass output from one as input to the other. This requires the `DurableAgent` to run as:

```python
planner = Agent(
name="PlannerAgent",
role="Trip planner",
instructions=["Create a concise 3-day plan for any city."],
llm=DaprChatClient(component_name="openai"),
)
from dapr_agents import DurableAgent
from dapr_agents.agents.configs import AgentMemoryConfig
from dapr_agents.llm.dapr import DaprChatClient
from dapr_agents.memory import ConversationDaprStateMemory
from dapr_agents.workflow.runners.agent import AgentRunner

@runtime.activity(name="plan_outline")
@agent_activity(agent=planner)
def plan_outline(ctx, destination: str) -> dict:
pass
expert_agent = DurableAgent(
name="expert_agent",
role="Technical Support Specialist",
goal="Provide recommendations based on customer context and issue.",
instructions=[
"Provide a clear, actionable recommendation to resolve the issue.",
],
llm=DaprChatClient(component_name="llm-provider"),
memory=AgentMemoryConfig(
store=ConversationDaprStateMemory(
store_name="agent-memory",
session_id=f"expert-agent-session",
)
),
)
runner = AgentRunner()
try:
runner.serve(expert_agent, port=8001)
finally:
runner.shutdown(expert_agent)
```

Agent activities enable workflows to leverage specialized agents with their own tools, memory, and reasoning capabilities while maintaining the structured coordination benefits of workflow orchestration.

> **Note:** Agent activities must use regular `Agent` instances, not `DurableAgent` instances, because workflows manage the execution context and durability through the Dapr workflow engine.

### Workflow Patterns

Workflows enable the implementation of various agentic patterns through structured orchestration, including Prompt Chaining, Routing, Parallelization, Orchestrator-Workers, Evaluator-Optimizer, Human-in-the-loop, and others. For detailed implementations and examples of these patterns, see the [Patterns documentation]({{< ref dapr-agents-patterns.md >}}).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -436,6 +436,34 @@ The Durable Agent enables the concept of "headless agents" - autonomous systems

These options make it easy to process requests asynchronously and integrate seamlessly into larger distributed systems.

### Retry Policy

The Durable Agent supports Dapr Workflow's `RetryPolicy` with the its `WorkflowRetryPolicy`:

- `max_attempts`: max_attempts: Maximum number of retry attempts for workflow operations. Default is 1 (no retries). Set `DAPR_API_MAX_RETRIES` environment variable to override default.
- `initial_backoff_seconds`: Initial backoff duration in seconds. Default is 5 seconds.
- `max_backoff_seconds`: Maximum backoff duration in seconds. Default is 30 seconds.
- `backoff_multiplier`: Backoff multiplier for exponential backoff. Default is 1.5.
- `retry_timeout`: Total timeout for all retries in seconds.

All of the fields are optional. It can be passed to the Durable Agent during instantiation:

```python
from dapr_agents.agents.configs import WorkflowRetryPolicy
travel_planner = DurableAgent(
name="TravelBuddy",
...
retry_policy=WorkflowRetryPolicy(
max_attempts=5,
initial_backoff_seconds=10,
max_backoff_seconds=60,
backoff_multiplier=2.0,
retry_timeout=300,
)
...
)
```


## Choosing the Right Pattern

Expand Down
12 changes: 12 additions & 0 deletions daprdocs/content/en/developing-ai/mcp/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
type: docs
title: "MCP"
linkTitle: "MCP"
weight: 25
description: "Dapr helps developers run secure and reliable Model Context Protocol (MCP) servers"
---

### What does Dapr do for MCP servers?

Using Dapr, developers can interact securely with MCP servers and enable fine-grained ACLs with built-in tracing and metrics, as well as resiliency policies to handle situations where an MCP server might be down or unresponsive.

Loading
Loading