Draft
Conversation
…er support - Add RetryPolicy Pydantic model to config/schema.py with max_attempts, backoff (fixed/exponential), delay_seconds, and retry_on fields - Add retry field to AgentDef with validation (script/human_gate excluded) - Add _resolve_retry_config to both CopilotProvider and ClaudeProvider to use per-agent retry config when set, falling back to provider default - Add _classify_error to categorize errors as provider_error or timeout - Support fixed and exponential backoff strategies in _calculate_delay - Emit agent_retry events via event_callback on each retry attempt - Check retry_on filter to only retry specified error categories Agent-Logs-Url: https://github.com/microsoft/conductor/sessions/fc727ab8-0f5b-4cbb-8c2f-e9252217d181 Co-authored-by: jrob5756 <7672803+jrob5756@users.noreply.github.com>
- 35 tests covering RetryPolicy schema validation, AgentDef retry field, provider _resolve_retry_config, fixed/exponential backoff, retry_on filtering, agent_retry event emission, and error classification - Fix import for TimeoutError (was ConductorTimeoutError) - Update YAML schema reference documentation - Fix lint and formatting issues Agent-Logs-Url: https://github.com/microsoft/conductor/sessions/fc727ab8-0f5b-4cbb-8c2f-e9252217d181 Co-authored-by: jrob5756 <7672803+jrob5756@users.noreply.github.com>
- Improve _classify_error to also check status_code 408 and asyncio.TimeoutError - Re-raise original exception in Claude provider when retry_on filter rejects - Move test import to top of file Agent-Logs-Url: https://github.com/microsoft/conductor/sessions/fc727ab8-0f5b-4cbb-8c2f-e9252217d181 Co-authored-by: jrob5756 <7672803+jrob5756@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add configurable retry policies at agent level
feat: per-agent retry policies
Apr 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds declarative per-agent retry configuration so transient provider failures don't kill entire workflows. Previously the only recovery was checkpoint/resume.
Schema
New
RetryPolicymodel onAgentDef.retry:Validation errors (schema mismatches) are never retried. Script agents cannot have
retry.Provider changes (copilot.py, claude.py — parity maintained)
_resolve_retry_config(agent)— merges agent-levelRetryPolicyinto provider-levelRetryConfig, falls back to provider default when unset_classify_error(error)— categorizes exceptions as"provider_error"or"timeout"(checks exception type, status code 408, message content)_calculate_delay— now supports"fixed"backoff in addition to exponential_execute_with_retry— checksretry_onfilter, emitsagent_retryevents viaevent_callbackTests
35 new tests covering schema validation,
_resolve_retry_config, fixed/exponential backoff,retry_onfiltering,agent_retryevent emission, and error classification.Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
https://api.github.com/copilot_internal/user/home/REDACTED/work/conductor/conductor/.venv/lib/python3.12/site-packages/copilot/bin/copilot /home/REDACTED/work/conductor/conductor/.venv/lib/python3.12/site-packages/copilot/bin/copilot --headless --no-auto-update --log-level info --stdio(http block)If you need me to access, download, or install something from one of these locations, you can either: