Repository navigation
Python: Retry the Magentic progress ledger when it names an unknown agent - #9181
Conversation
|
/review |
There was a problem hiding this comment.
MAF Automated Review — Iteration 1
Result: Findings reported
Scope: full PR (1 commit(s)): 45c45d921517
Model: gpt-5.6-sol
Overview
The change validates unsatisfied progress ledgers against configured participant names and reuses the existing bounded per-call parse retry mechanism. It preserves satisfied-ledger handling, empty-team validation, and configured round/reset limits, with a focused test for recovery on the second response. However, persistent invalid output now enters the orchestrator's reset/replan path, whose limits are unlimited by default, creating an unbounded paid-call loop.
Reviewed the supplied pull-request change set across correctness, security/reliability, architecture, and failure behavior.
1 verified finding remained after source verification (1 high) across 1 file. Details are attached to the affected lines below.
Affected areas: python/packages/orchestrations/agent_framework_orchestrations/_magentic.py
Motivation & Context
StandardMagenticManager.create_progress_ledgersays it avoids selecting a non-existent agent, but thenext_speakerin the ledger was never checked. When the model named a participant slightly wrong, such as "Coder" for "coder", the orchestrator treated it as invalid and went straight to the final answer, ending the run with the task unfinished.Description & Review Guide
next_speakeris not a participant now raises, so it is retried like a parse failure. The check is skipped when the request is already satisfied.Related Issue
Fixes #9178
Contribution Checklist
breaking changelabel (or add "[BREAKING]" to the title prefix, before or after any language prefix), and a workflow keeps the label and title prefix in sync automatically.