From 30281242b5f066c97c33ca0af68d87f7832ddc41 Mon Sep 17 00:00:00 2001 From: Casper Nielsen Date: Thu, 18 Dec 2025 10:34:56 +0100 Subject: [PATCH 1/4] docs: document durable agent retry policy Signed-off-by: Casper Nielsen --- .../dapr-agents/dapr-agents-patterns.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/daprdocs/content/en/developing-ai/dapr-agents/dapr-agents-patterns.md b/daprdocs/content/en/developing-ai/dapr-agents/dapr-agents-patterns.md index b5219a9df40..5b91081ef69 100644 --- a/daprdocs/content/en/developing-ai/dapr-agents/dapr-agents-patterns.md +++ b/daprdocs/content/en/developing-ai/dapr-agents/dapr-agents-patterns.md @@ -434,6 +434,29 @@ 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 following input parameters: + +- `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`: Initial backoff duration in seconds. Default is 1 second. +- `max_backoff`: Maximum backoff duration in seconds. Default is 30 seconds. +- `backoff_multiplier`: Backoff multiplier for exponential backoff. Default is 1.5. + +It can be passed to the Durable Agent during instantiation: + +```python +travel_planner = DurableAgent( + name="TravelBuddy", + ... + max_attempts=10, + initial_backoff=5, + max_backoff=45, + backoff_multiplier=1.5, + ... +) +``` + ## Choosing the Right Pattern From 525b075267039b6202f75ff1a60bca498e507977 Mon Sep 17 00:00:00 2001 From: Casper Nielsen Date: Thu, 18 Dec 2025 15:06:23 +0100 Subject: [PATCH 2/4] docs: update with DurableRetryConfig class Signed-off-by: Casper Nielsen --- .../dapr-agents/dapr-agents-patterns.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/daprdocs/content/en/developing-ai/dapr-agents/dapr-agents-patterns.md b/daprdocs/content/en/developing-ai/dapr-agents/dapr-agents-patterns.md index 5b91081ef69..0e0c7736633 100644 --- a/daprdocs/content/en/developing-ai/dapr-agents/dapr-agents-patterns.md +++ b/daprdocs/content/en/developing-ai/dapr-agents/dapr-agents-patterns.md @@ -436,23 +436,26 @@ These options make it easy to process requests asynchronously and integrate seam ### Retry Policy -The Durable Agent supports Dapr Workflow's `RetryPolicy` with the following input parameters: +The Durable Agent supports Dapr Workflow's `RetryPolicy` with the its `DurableRetryConfig`: - `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`: Initial backoff duration in seconds. Default is 1 second. -- `max_backoff`: Maximum backoff duration in seconds. Default is 30 seconds. +- `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. It can be passed to the Durable Agent during instantiation: ```python +from dapr_agents.agents.configs import DurableRetryConfig travel_planner = DurableAgent( name="TravelBuddy", ... - max_attempts=10, - initial_backoff=5, - max_backoff=45, - backoff_multiplier=1.5, + retry_policy=DurableRetryConfig( + max_attempts=5, + initial_backoff_seconds=10, + max_backoff_seconds=60, + backoff_multiplier=2.0, + ) ... ) ``` From 508591a7e58d165378bc86e6435ded424ce713ba Mon Sep 17 00:00:00 2001 From: Casper Nielsen Date: Thu, 18 Dec 2025 15:07:23 +0100 Subject: [PATCH 3/4] docs: elaborate on fields being optional Signed-off-by: Casper Nielsen --- .../en/developing-ai/dapr-agents/dapr-agents-patterns.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/developing-ai/dapr-agents/dapr-agents-patterns.md b/daprdocs/content/en/developing-ai/dapr-agents/dapr-agents-patterns.md index 0e0c7736633..9e22d0b6519 100644 --- a/daprdocs/content/en/developing-ai/dapr-agents/dapr-agents-patterns.md +++ b/daprdocs/content/en/developing-ai/dapr-agents/dapr-agents-patterns.md @@ -443,7 +443,7 @@ The Durable Agent supports Dapr Workflow's `RetryPolicy` with the its `DurableRe - `max_backoff_seconds`: Maximum backoff duration in seconds. Default is 30 seconds. - `backoff_multiplier`: Backoff multiplier for exponential backoff. Default is 1.5. -It can be passed to the Durable Agent during instantiation: +All of the fields are optional. It can be passed to the Durable Agent during instantiation: ```python from dapr_agents.agents.configs import DurableRetryConfig From 0a67e712574afd49c47caa71bbca39432b8134f5 Mon Sep 17 00:00:00 2001 From: Casper Nielsen Date: Thu, 18 Dec 2025 15:55:31 +0100 Subject: [PATCH 4/4] docs: align with sdk changes Signed-off-by: Casper Nielsen --- .../en/developing-ai/dapr-agents/dapr-agents-patterns.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/daprdocs/content/en/developing-ai/dapr-agents/dapr-agents-patterns.md b/daprdocs/content/en/developing-ai/dapr-agents/dapr-agents-patterns.md index 0d2411ef0d7..e3b2e46f58f 100644 --- a/daprdocs/content/en/developing-ai/dapr-agents/dapr-agents-patterns.md +++ b/daprdocs/content/en/developing-ai/dapr-agents/dapr-agents-patterns.md @@ -438,25 +438,27 @@ These options make it easy to process requests asynchronously and integrate seam ### Retry Policy -The Durable Agent supports Dapr Workflow's `RetryPolicy` with the its `DurableRetryConfig`: +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 DurableRetryConfig +from dapr_agents.agents.configs import WorkflowRetryPolicy travel_planner = DurableAgent( name="TravelBuddy", ... - retry_policy=DurableRetryConfig( + retry_policy=WorkflowRetryPolicy( max_attempts=5, initial_backoff_seconds=10, max_backoff_seconds=60, backoff_multiplier=2.0, + retry_timeout=300, ) ... )