renamed all (#3207)

This commit is contained in:
Eduard van Valkenburg
2026-01-14 06:54:07 +01:00
committed by GitHub
Unverified
parent 1ae0b09e42
commit d8cf8361bd
125 changed files with 1024 additions and 1027 deletions
@@ -9,7 +9,7 @@ invoked during durable entity execution.
from dataclasses import dataclass
from typing import Protocol
from agent_framework import AgentRunResponse, AgentRunResponseUpdate
from agent_framework import AgentResponse, AgentResponseUpdate
@dataclass(frozen=True)
@@ -27,14 +27,14 @@ class AgentResponseCallbackProtocol(Protocol):
async def on_streaming_response_update(
self,
update: AgentRunResponseUpdate,
update: AgentResponseUpdate,
context: AgentCallbackContext,
) -> None:
"""Handle a streaming response update emitted by the agent."""
async def on_agent_response(
self,
response: AgentRunResponse,
response: AgentResponse,
context: AgentCallbackContext,
) -> None:
"""Handle the final agent response."""
@@ -35,7 +35,7 @@ from enum import Enum
from typing import Any, cast
from agent_framework import (
AgentRunResponse,
AgentResponse,
BaseContent,
ChatMessage,
DataContent,
@@ -693,8 +693,8 @@ class DurableAgentStateResponse(DurableAgentStateEntry):
)
@staticmethod
def from_run_response(correlation_id: str, response: AgentRunResponse) -> DurableAgentStateResponse:
"""Creates a DurableAgentStateResponse from an AgentRunResponse."""
def from_run_response(correlation_id: str, response: AgentResponse) -> DurableAgentStateResponse:
"""Creates a DurableAgentStateResponse from an AgentResponse."""
return DurableAgentStateResponse(
correlation_id=correlation_id,
created_at=_parse_created_at(response.created_at),
@@ -15,8 +15,8 @@ from typing import Any, cast
import azure.durable_functions as df
from agent_framework import (
AgentProtocol,
AgentRunResponse,
AgentRunResponseUpdate,
AgentResponse,
AgentResponseUpdate,
ChatMessage,
ErrorContent,
Role,
@@ -95,7 +95,7 @@ class AgentEntity:
self,
context: df.DurableEntityContext,
request: RunRequest | dict[str, Any] | str,
) -> AgentRunResponse:
) -> AgentResponse:
"""(Deprecated) Execute the agent with a message directly in the entity.
Args:
@@ -103,7 +103,7 @@ class AgentEntity:
request: RunRequest object, dict, or string message (for backward compatibility)
Returns:
AgentRunResponse enriched with execution metadata.
AgentResponse enriched with execution metadata.
"""
return await self.run(context, request)
@@ -111,7 +111,7 @@ class AgentEntity:
self,
context: df.DurableEntityContext,
request: RunRequest | dict[str, Any] | str,
) -> AgentRunResponse:
) -> AgentResponse:
"""Execute the agent with a message directly in the entity.
Args:
@@ -119,7 +119,7 @@ class AgentEntity:
request: RunRequest object, dict, or string message (for backward compatibility)
Returns:
AgentRunResponse enriched with execution metadata.
AgentResponse enriched with execution metadata.
"""
if isinstance(request, str):
run_request = RunRequest(message=request, role=Role.USER)
@@ -159,7 +159,7 @@ class AgentEntity:
if response_format:
run_kwargs["options"]["response_format"] = response_format
agent_run_response: AgentRunResponse = await self._invoke_agent(
agent_response: AgentResponse = await self._invoke_agent(
run_kwargs=run_kwargs,
correlation_id=correlation_id,
thread_id=thread_id,
@@ -168,11 +168,11 @@ class AgentEntity:
logger.debug(
"[AgentEntity.run] Agent invocation completed - response type: %s",
type(agent_run_response).__name__,
type(agent_response).__name__,
)
try:
response_text = agent_run_response.text if agent_run_response.text else "No response"
response_text = agent_response.text if agent_response.text else "No response"
logger.debug(f"Response: {response_text[:100]}...")
except Exception as extraction_error:
logger.error(
@@ -181,12 +181,12 @@ class AgentEntity:
exc_info=True,
)
state_response = DurableAgentStateResponse.from_run_response(correlation_id, agent_run_response)
state_response = DurableAgentStateResponse.from_run_response(correlation_id, agent_response)
self.state.data.conversation_history.append(state_response)
logger.debug("[AgentEntity.run] AgentRunResponse stored in conversation history")
logger.debug("[AgentEntity.run] AgentResponse stored in conversation history")
return agent_run_response
return agent_response
except Exception as exc:
logger.exception("[AgentEntity.run] Agent execution failed.")
@@ -196,7 +196,7 @@ class AgentEntity:
role=Role.ASSISTANT, contents=[ErrorContent(message=str(exc), error_code=type(exc).__name__)]
)
error_response = AgentRunResponse(messages=[error_message])
error_response = AgentResponse(messages=[error_message])
# Create and store error response in conversation history
error_state_response = DurableAgentStateResponse.from_run_response(correlation_id, error_response)
@@ -211,7 +211,7 @@ class AgentEntity:
correlation_id: str,
thread_id: str,
request_message: str,
) -> AgentRunResponse:
) -> AgentResponse:
"""Execute the agent, preferring streaming when available."""
callback_context: AgentCallbackContext | None = None
if self.callback is not None:
@@ -229,7 +229,7 @@ class AgentEntity:
stream_candidate = await stream_candidate
return await self._consume_stream(
stream=cast(AsyncIterable[AgentRunResponseUpdate], stream_candidate),
stream=cast(AsyncIterable[AgentResponseUpdate], stream_candidate),
callback_context=callback_context,
)
except TypeError as type_error:
@@ -248,32 +248,32 @@ class AgentEntity:
else:
logger.debug("Agent does not expose run_stream; falling back to run().")
agent_run_response = await self._invoke_non_stream(run_kwargs)
await self._notify_final_response(agent_run_response, callback_context)
return agent_run_response
agent_response = await self._invoke_non_stream(run_kwargs)
await self._notify_final_response(agent_response, callback_context)
return agent_response
async def _consume_stream(
self,
stream: AsyncIterable[AgentRunResponseUpdate],
stream: AsyncIterable[AgentResponseUpdate],
callback_context: AgentCallbackContext | None = None,
) -> AgentRunResponse:
"""Consume streaming responses and build the final AgentRunResponse."""
updates: list[AgentRunResponseUpdate] = []
) -> AgentResponse:
"""Consume streaming responses and build the final AgentResponse."""
updates: list[AgentResponseUpdate] = []
async for update in stream:
updates.append(update)
await self._notify_stream_update(update, callback_context)
if updates:
response = AgentRunResponse.from_agent_run_response_updates(updates)
response = AgentResponse.from_agent_run_response_updates(updates)
else:
logger.debug("[AgentEntity] No streaming updates received; creating empty response")
response = AgentRunResponse(messages=[])
response = AgentResponse(messages=[])
await self._notify_final_response(response, callback_context)
return response
async def _invoke_non_stream(self, run_kwargs: dict[str, Any]) -> AgentRunResponse:
async def _invoke_non_stream(self, run_kwargs: dict[str, Any]) -> AgentResponse:
"""Invoke the agent without streaming support."""
run_callable = getattr(self.agent, "run", None)
if run_callable is None or not callable(run_callable):
@@ -283,14 +283,14 @@ class AgentEntity:
if inspect.isawaitable(result):
result = await result
if not isinstance(result, AgentRunResponse):
raise TypeError(f"Agent run() must return an AgentRunResponse instance; received {type(result).__name__}")
if not isinstance(result, AgentResponse):
raise TypeError(f"Agent run() must return an AgentResponse instance; received {type(result).__name__}")
return result
async def _notify_stream_update(
self,
update: AgentRunResponseUpdate,
update: AgentResponseUpdate,
context: AgentCallbackContext | None,
) -> None:
"""Invoke the streaming callback if one is registered."""
@@ -310,7 +310,7 @@ class AgentEntity:
async def _notify_final_response(
self,
response: AgentRunResponse,
response: AgentResponse,
context: AgentCallbackContext | None,
) -> None:
"""Invoke the final response callback if one is registered."""
@@ -11,8 +11,8 @@ from typing import TYPE_CHECKING, Any, TypeAlias, cast
from agent_framework import (
AgentProtocol,
AgentRunResponse,
AgentRunResponseUpdate,
AgentResponse,
AgentResponseUpdate,
AgentThread,
ChatMessage,
get_logger,
@@ -46,10 +46,10 @@ else:
class AgentTask(_TypedCompoundTask):
"""A custom Task that wraps entity calls and provides typed AgentRunResponse results.
"""A custom Task that wraps entity calls and provides typed AgentResponse results.
This task wraps the underlying entity call task and intercepts its completion
to convert the raw result into a typed AgentRunResponse object.
to convert the raw result into a typed AgentResponse object.
"""
def __init__(
@@ -77,7 +77,7 @@ class AgentTask(_TypedCompoundTask):
self.id = entity_task.id
def try_set_value(self, child: TaskBase) -> None:
"""Transition the AgentTask to a terminal state and set its value to `AgentRunResponse`.
"""Transition the AgentTask to a terminal state and set its value to `AgentResponse`.
Parameters
----------
@@ -104,7 +104,7 @@ class AgentTask(_TypedCompoundTask):
response,
)
# Set the typed AgentRunResponse as this task's result
# Set the typed AgentResponse as this task's result
self.set_value(is_error=False, value=response)
except Exception as e:
logger.exception(
@@ -118,18 +118,18 @@ class AgentTask(_TypedCompoundTask):
self._first_error = child.result
self.set_value(is_error=True, value=self._first_error)
def _load_agent_response(self, agent_response: AgentRunResponse | dict[str, Any] | None) -> AgentRunResponse:
"""Convert raw payloads into AgentRunResponse instance."""
def _load_agent_response(self, agent_response: AgentResponse | dict[str, Any] | None) -> AgentResponse:
"""Convert raw payloads into AgentResponse instance."""
if agent_response is None:
raise ValueError("agent_response cannot be None")
logger.debug("[load_agent_response] Loading agent response of type: %s", type(agent_response))
if isinstance(agent_response, AgentRunResponse):
if isinstance(agent_response, AgentResponse):
return agent_response
if isinstance(agent_response, dict):
logger.debug("[load_agent_response] Converting dict payload using AgentRunResponse.from_dict")
return AgentRunResponse.from_dict(agent_response)
logger.debug("[load_agent_response] Converting dict payload using AgentResponse.from_dict")
return AgentResponse.from_dict(agent_response)
raise TypeError(f"Unsupported type for agent_response: {type(agent_response)}")
@@ -137,14 +137,14 @@ class AgentTask(_TypedCompoundTask):
self,
response_format: type[BaseModel] | None,
correlation_id: str,
response: AgentRunResponse,
response: AgentResponse,
) -> None:
"""Ensure the AgentRunResponse value is parsed into the expected response_format."""
"""Ensure the AgentResponse value is parsed into the expected response_format."""
if response_format is not None and not isinstance(response.value, response_format):
response.try_parse_value(response_format)
logger.debug(
"[DurableAIAgent] Loaded AgentRunResponse.value for correlation_id %s with type: %s",
"[DurableAIAgent] Loaded AgentResponse.value for correlation_id %s with type: %s",
correlation_id,
type(response.value).__name__,
)
@@ -190,7 +190,7 @@ class DurableAIAgent(AgentProtocol):
# We return an AgentTask here which is a TaskBase subclass.
# This is an intentional deviation from AgentProtocol which defines run() as async.
# The AgentTask can be yielded in Durable Functions orchestrations and will provide
# a typed AgentRunResponse result.
# a typed AgentResponse result.
def run( # type: ignore[override]
self,
messages: str | ChatMessage | Sequence[str | ChatMessage] | None = None,
@@ -203,7 +203,7 @@ class DurableAIAgent(AgentProtocol):
This method implements AgentProtocol and returns an AgentTask (subclass of TaskBase)
that can be yielded in Durable Functions orchestrations. The task's result will be
a typed AgentRunResponse.
a typed AgentResponse.
Args:
messages: The message(s) to send to the agent
@@ -212,7 +212,7 @@ class DurableAIAgent(AgentProtocol):
**kwargs: Additional arguments (enable_tool_calls)
Returns:
An AgentTask that resolves to an AgentRunResponse when yielded
An AgentTask that resolves to an AgentResponse when yielded
Example:
@app.orchestration_trigger(context_name="context")
@@ -220,7 +220,7 @@ class DurableAIAgent(AgentProtocol):
agent = app.get_agent(context, "MyAgent")
thread = agent.get_new_thread()
response = yield agent.run("Hello", thread=thread)
# response is typed as AgentRunResponse
# response is typed as AgentResponse
"""
message_str = self._normalize_messages(messages)
@@ -266,7 +266,7 @@ class DurableAIAgent(AgentProtocol):
# Call the entity to get the underlying task
entity_task = self.context.call_entity(entity_id, "run", run_request.to_dict())
# Wrap it in an AgentTask that will convert the result to AgentRunResponse
# Wrap it in an AgentTask that will convert the result to AgentResponse
agent_task = AgentTask(
entity_task=entity_task,
response_format=response_format,
@@ -286,7 +286,7 @@ class DurableAIAgent(AgentProtocol):
*,
thread: AgentThread | None = None,
**kwargs: Any,
) -> AsyncIterator[AgentRunResponseUpdate]:
) -> AsyncIterator[AgentResponseUpdate]:
"""Run the agent with streaming (not supported for durable agents).
Raises: