mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
[BREAKING] Python: Adjust magentic event types raised. No need for custom events. (#2215)
* Adjust magentic event types raised. No need for custom events. * Cleanup * Fix test * Update python/packages/core/agent_framework/_workflows/_magentic.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
Unverified
parent
1b4103dce3
commit
27b3a517eb
@@ -6,19 +6,20 @@ from typing import Any
|
||||
import pytest
|
||||
|
||||
from agent_framework import (
|
||||
MAGENTIC_EVENT_TYPE_AGENT_DELTA,
|
||||
MAGENTIC_EVENT_TYPE_ORCHESTRATOR,
|
||||
AgentRunResponse,
|
||||
AgentRunResponseUpdate,
|
||||
AgentRunUpdateEvent,
|
||||
AgentThread,
|
||||
BaseAgent,
|
||||
ChatMessage,
|
||||
GroupChatBuilder,
|
||||
GroupChatDirective,
|
||||
GroupChatStateSnapshot,
|
||||
MagenticAgentMessageEvent,
|
||||
MagenticBuilder,
|
||||
MagenticContext,
|
||||
MagenticManagerBase,
|
||||
MagenticOrchestratorMessageEvent,
|
||||
Role,
|
||||
TextContent,
|
||||
Workflow,
|
||||
@@ -155,14 +156,17 @@ async def test_magentic_builder_returns_workflow_and_runs() -> None:
|
||||
assert isinstance(workflow, Workflow)
|
||||
|
||||
outputs: list[ChatMessage] = []
|
||||
orchestrator_events: list[MagenticOrchestratorMessageEvent] = []
|
||||
agent_events: list[MagenticAgentMessageEvent] = []
|
||||
orchestrator_event_count = 0
|
||||
agent_event_count = 0
|
||||
start_message = _MagenticStartMessage.from_string("compose summary")
|
||||
async for event in workflow.run_stream(start_message):
|
||||
if isinstance(event, MagenticOrchestratorMessageEvent):
|
||||
orchestrator_events.append(event)
|
||||
if isinstance(event, MagenticAgentMessageEvent):
|
||||
agent_events.append(event)
|
||||
if isinstance(event, AgentRunUpdateEvent):
|
||||
props = event.data.additional_properties if event.data else None
|
||||
event_type = props.get("magentic_event_type") if props else None
|
||||
if event_type == MAGENTIC_EVENT_TYPE_ORCHESTRATOR:
|
||||
orchestrator_event_count += 1
|
||||
elif event_type == MAGENTIC_EVENT_TYPE_AGENT_DELTA:
|
||||
agent_event_count += 1
|
||||
if isinstance(event, WorkflowOutputEvent):
|
||||
msg = event.data
|
||||
if isinstance(msg, ChatMessage):
|
||||
@@ -172,8 +176,8 @@ async def test_magentic_builder_returns_workflow_and_runs() -> None:
|
||||
final = outputs[-1]
|
||||
assert final.text == "final"
|
||||
assert final.author_name == "magentic_manager"
|
||||
assert orchestrator_events, "Expected orchestrator events to be emitted"
|
||||
assert agent_events, "Expected agent message events to be emitted"
|
||||
assert orchestrator_event_count > 0, "Expected orchestrator events to be emitted"
|
||||
assert agent_event_count > 0, "Expected agent delta events to be emitted"
|
||||
|
||||
|
||||
async def test_group_chat_as_agent_accepts_conversation() -> None:
|
||||
|
||||
@@ -10,13 +10,13 @@ import pytest
|
||||
from agent_framework import (
|
||||
AgentRunResponse,
|
||||
AgentRunResponseUpdate,
|
||||
AgentRunUpdateEvent,
|
||||
BaseAgent,
|
||||
ChatClientProtocol,
|
||||
ChatMessage,
|
||||
ChatResponse,
|
||||
ChatResponseUpdate,
|
||||
Executor,
|
||||
MagenticAgentMessageEvent,
|
||||
MagenticBuilder,
|
||||
MagenticManagerBase,
|
||||
MagenticPlanReviewDecision,
|
||||
@@ -561,8 +561,12 @@ async def _collect_agent_responses_setup(participant_obj: object):
|
||||
events.append(ev)
|
||||
if isinstance(ev, WorkflowOutputEvent):
|
||||
break
|
||||
if isinstance(ev, MagenticAgentMessageEvent) and ev.message is not None:
|
||||
captured.append(ev.message)
|
||||
if isinstance(ev, AgentRunUpdateEvent) and ev.data is not None:
|
||||
captured.append(
|
||||
ChatMessage(
|
||||
role=ev.data.role or Role.ASSISTANT, text=ev.data.text or "", author_name=ev.data.author_name
|
||||
)
|
||||
)
|
||||
if len(events) > 50:
|
||||
break
|
||||
|
||||
|
||||
Reference in New Issue
Block a user