Skip to content

Commit 7c7dbe0

Browse files
fix: handle agent-framework 1.3.0 Message contents across codebase
- shared_memory_context_provider: _get_text() now checks message.contents - middlewares: InputObserverMiddleware handles messages with only contents (no text) - azure_openai_response_retry: _get_message_role() handles enum roles via .value - azure_openai_response_retry: _set_message_text() also updates contents attribute - groupchat_orchestrator: updated comment to reference Coordinator (not manager) - uv.lock: regenerated to match pyproject.toml pinned versions Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 75b3e64 commit 7c7dbe0

5 files changed

Lines changed: 158 additions & 322 deletions

File tree

src/processor/src/libs/agent_framework/azure_openai_response_retry.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -228,9 +228,13 @@ def _get_message_role(message: Any) -> str | None:
228228
return None
229229
if isinstance(message, dict):
230230
role = message.get("role")
231-
return role if isinstance(role, str) else None
231+
if role is None:
232+
return None
233+
return role if isinstance(role, str) else getattr(role, "value", str(role))
232234
role = getattr(message, "role", None)
233-
return role if isinstance(role, str) else None
235+
if role is None:
236+
return None
237+
return role if isinstance(role, str) else getattr(role, "value", str(role))
234238

235239

236240
def _set_message_text(message: Any, new_text: str) -> Any:
@@ -251,13 +255,21 @@ def _set_message_text(message: Any, new_text: str) -> Any:
251255
out["content"] = new_text
252256
return out
253257

254-
for attr in ("content", "text"):
258+
for attr in ("content", "text", "contents"):
255259
if hasattr(message, attr):
256260
try:
257261
setattr(message, attr, new_text)
258-
return message
259262
except Exception:
260263
pass
264+
else:
265+
if attr != "contents":
266+
# Also update contents if it exists for agent-framework 1.3.0 compat
267+
if hasattr(message, "contents"):
268+
try:
269+
setattr(message, "contents", new_text)
270+
except Exception:
271+
pass
272+
return message
261273
return message
262274

263275

src/processor/src/libs/agent_framework/groupchat_orchestrator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -989,7 +989,7 @@ async def _complete_agent_response(
989989
if agent_name != self.coordinator_name:
990990
self._progress_counter += 1
991991

992-
# Detect manager termination signal (finish=true) from Coordinator.
992+
# Detect Coordinator termination signal (finish=true) via CoordinatorSelectionResponse.
993993
# NOTE: The underlying WorkflowBuilder does not automatically stop on finish,
994994
# so we enforce it here.
995995
if agent_name == self.coordinator_name:

src/processor/src/libs/agent_framework/middlewares.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,10 @@ async def process(
149149
modified_count = 0
150150

151151
for message in context.messages:
152-
if message.role == ROLE_USER and message.text:
153-
original_text = message.text
152+
original_text = message.text if message.text else (
153+
str(message.contents) if hasattr(message, "contents") and message.contents else None
154+
)
155+
if message.role == ROLE_USER and original_text:
154156
updated_text = original_text
155157

156158
if self.replacement:

src/processor/src/libs/agent_framework/shared_memory_context_provider.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,8 @@ def _get_text(message: Message) -> str:
307307
"""Extract text content from a Message."""
308308
if hasattr(message, "text") and message.text:
309309
return message.text
310+
if hasattr(message, "contents") and message.contents:
311+
return str(message.contents) if not isinstance(message.contents, str) else message.contents
310312
if hasattr(message, "content"):
311313
return str(message.content) if message.content else ""
312314
return str(message) if message else ""

0 commit comments

Comments
 (0)