Skip to content
Draft
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from agent_framework.azure import AzureAIClient # pylint: disable=no-name-in-module
from opentelemetry import trace

from azure.ai.agentserver.core.client.tools import OAuthConsentRequiredError
from azure.ai.agentserver.core import OAuthConsentRequiredError
from azure.ai.agentserver.core import AgentRunContext, FoundryCBAgent
from azure.ai.agentserver.core.constants import Constants as AdapterConstants
from azure.ai.agentserver.core.logger import APPINSIGHT_CONNSTR_ENV_NAME, get_logger
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from pydantic import Field, create_model
from azure.ai.agentserver.core.logger import get_logger
if TYPE_CHECKING:
from azure.ai.agentserver.core.client.tools.aio import AzureAIToolClient, FoundryTool
from azure.ai.agentserver.core import AzureAIToolClient, FoundryTool
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
from azure.ai.agentserver.core import AzureAIToolClient, FoundryTool
from azure.ai.agentserver.core.aio import AzureAIToolClient, FoundryTool


logger = get_logger()

Expand All @@ -21,13 +21,13 @@ class ToolClient:
in a format compatible with Agent Framework agents.

:param tool_client: The AzureAIToolClient instance to use for tool operations.
:type tool_client: ~azure.ai.agentserver.core.client.tools.aio.AzureAIToolClient
:type tool_client: ~azure.ai.agentserver.core.AzureAIToolClient

.. admonition:: Example:

.. code-block:: python

from azure.ai.agentserver.core.client.tools.aio import AzureAIToolClient
from azure.ai.agentserver.core import AzureAIToolClient
from azure.ai.agentserver.agentframework import ToolClient
from azure.identity.aio import DefaultAzureCredential

Expand Down Expand Up @@ -55,7 +55,7 @@ def __init__(self, tool_client: "AzureAIToolClient") -> None:
"""Initialize the ToolClient.

:param tool_client: The AzureAIToolClient instance to use for tool operations.
:type tool_client: ~azure.ai.agentserver.core.client.tools.aio.AzureAIToolClient
:type tool_client: ~azure.ai.agentserver.core.AzureAIToolClient
"""
self._tool_client = tool_client
self._aifunction_cache: List[AIFunction] = None
Expand Down Expand Up @@ -96,7 +96,7 @@ def _convert_to_agent_framework_tool(self, azure_tool: "FoundryTool") -> AIFunct
"""Convert an AzureAITool to an Agent Framework AI Function

:param azure_tool: The AzureAITool to convert.
:type azure_tool: ~azure.ai.agentserver.core.client.tools.aio.FoundryTool
:type azure_tool: ~azure.ai.agentserver.core.FoundryTool
:return: An AI Function Tool.
:rtype: AIFunction
"""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,29 @@

from ._version import VERSION
from .logger import configure as config_logging
from .server.base import FoundryCBAgent
from .server.common.agent_run_context import AgentRunContext

config_logging()
# Re-export public server types
from ._server.base import FoundryCBAgent
from ._server.common.agent_run_context import AgentRunContext
from ._server.common.id_generator.id_generator import IdGenerator

__all__ = ["FoundryCBAgent", "AgentRunContext"]
# Re-export public client types
from ._client.tools import (
AzureAIToolClient,
FoundryTool,
MCPToolApprovalRequiredError,
OAuthConsentRequiredError,
)

config_logging() # TODO: -- logging should be configured by the application using the SDK, not the SDK itself.

__all__ = [
"FoundryCBAgent",
"AgentRunContext",
"IdGenerator",
"AzureAIToolClient",
"FoundryTool",
"MCPToolApprovalRequiredError",
"OAuthConsentRequiredError",
]
__version__ = VERSION
Original file line number Diff line number Diff line change
Expand Up @@ -89,13 +89,7 @@ def list_tools(self) -> List[FoundryTool]:
Retrieves tools from both MCP servers and Azure AI Tools API endpoints,
returning them as FoundryTool instances ready for invocation.
:return: List of available tools from all configured sources.
:rtype: List[~AzureAITool]
:raises ~exceptions.OAuthConsentRequiredError:
Raised when the service requires user OAuth consent.
:raises ~exceptions.MCPToolApprovalRequiredError:
Raised when tool access requires human approval.
:raises ~azure.core.exceptions.HttpResponseError:
Raised for HTTP communication failures.
:rtype: List[~AzureAITool] or ~exceptions.MCPToolApprovalRequiredError or ~azure.core.exceptions.HttpResponseError:

"""

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
)
from .common.agent_run_context import AgentRunContext

from ..client.tools.aio._client import AzureAIToolClient
from ..client.tools._utils._model_base import ToolDefinition, UserInfo
from .._client.tools.aio._client import AzureAIToolClient
from .._client.tools._utils._model_base import ToolDefinition, UserInfo

logger = get_logger()
DEBUG_ERRORS = os.environ.get(Constants.AGENT_DEBUG_ERRORS, "false").lower() == "true"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from ...models.projects import AgentId, AgentReference, ResponseConversation1
from .id_generator.foundry_id_generator import FoundryIdGenerator
from .id_generator.id_generator import IdGenerator
from ...client.tools._model_base import UserInfo
from ..._client.tools._model_base import UserInfo
logger = get_logger()


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,6 @@ azure.ai.agentserver.core package
:members:
:undoc-members:

Subpackages
-----------

.. toctree::
:maxdepth: 4

azure.ai.agentserver.core.server

Submodules
----------

Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@
from langchain_core.tools import StructuredTool
from langgraph.graph.state import CompiledStateGraph

from azure.ai.agentserver.core.client.tools import OAuthConsentRequiredError
from azure.ai.agentserver.core import (
AgentRunContext,
FoundryCBAgent,
OAuthConsentRequiredError,
)
from azure.ai.agentserver.core.constants import Constants
from azure.ai.agentserver.core.logger import get_logger
from azure.ai.agentserver.core.server.base import FoundryCBAgent
from azure.ai.agentserver.core.server.common.agent_run_context import AgentRunContext

from .models import (
LanggraphMessageStateConverter,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

from azure.ai.agentserver.core.logger import get_logger
from azure.ai.agentserver.core.models import projects as project_models
from azure.ai.agentserver.core.server.common.agent_run_context import AgentRunContext
from azure.ai.agentserver.core import AgentRunContext

from .utils import extract_function_call

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
from typing import Any, AsyncGenerator, AsyncIterator, Dict

from azure.ai.agentserver.core.models import Response, ResponseStreamEvent
from azure.ai.agentserver.core.server.common.agent_run_context import AgentRunContext
from azure.ai.agentserver.core import AgentRunContext

from .langgraph_request_converter import LangGraphRequestConverter
from .langgraph_response_converter import LangGraphResponseConverter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

from azure.ai.agentserver.core.logger import get_logger
from azure.ai.agentserver.core.models import ResponseStreamEvent
from azure.ai.agentserver.core.server.common.agent_run_context import AgentRunContext
from azure.ai.agentserver.core import AgentRunContext

from .response_event_generators import (
ResponseEventGenerator,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from langchain_core.messages import AnyMessage

from azure.ai.agentserver.core.models import projects as project_models
from azure.ai.agentserver.core.server.common.agent_run_context import AgentRunContext
from azure.ai.agentserver.core import AgentRunContext


class StreamEventState:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from langchain_core.messages import AnyMessage

from azure.ai.agentserver.core.models import projects as project_models
from azure.ai.agentserver.core.server.common.agent_run_context import AgentRunContext
from azure.ai.agentserver.core import AgentRunContext

from ..utils import extract_function_call
from . import ResponseEventGenerator, StreamEventState
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@
from langchain_core.messages import AnyMessage

from azure.ai.agentserver.core.models import projects as project_models
from azure.ai.agentserver.core.server.common.agent_run_context import AgentRunContext
from azure.ai.agentserver.core.server.common.id_generator.id_generator import IdGenerator
from azure.ai.agentserver.core import AgentRunContext, IdGenerator

from . import ResponseEventGenerator, StreamEventState, item_resource_helpers
from .response_content_part_event_generator import ResponseContentPartEventGenerator
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from typing import List

from azure.ai.agentserver.core.models import projects as project_models
from azure.ai.agentserver.core.server.common.agent_run_context import AgentRunContext
from azure.ai.agentserver.core import AgentRunContext

from .response_event_generator import (
ResponseEventGenerator,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from langchain_core import messages as langgraph_messages

from azure.ai.agentserver.core.models import projects as project_models
from azure.ai.agentserver.core.server.common.agent_run_context import AgentRunContext
from azure.ai.agentserver.core import AgentRunContext

from .response_event_generator import (
ResponseEventGenerator,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from pydantic import BaseModel, Field, create_model

if TYPE_CHECKING:
from azure.ai.agentserver.core.client.tools.aio import AzureAIToolClient, FoundryTool
from azure.ai.agentserver.core import AzureAIToolClient, FoundryTool

# pylint: disable=client-accepts-api-version-keyword,missing-client-constructor-parameter-credential,missing-client-constructor-parameter-kwargs
class ToolClient:
Expand All @@ -20,13 +20,13 @@ class ToolClient:
LangGraph's create_react_agent and StateGraph.

:param tool_client: The AzureAIToolClient instance to use for tool operations.
:type tool_client: ~azure.ai.agentserver.core.client.tools.aio.AzureAIToolClient
:type tool_client: ~azure.ai.agentserver.core.AzureAIToolClient

.. admonition:: Example:

.. code-block:: python

from azure.ai.agentserver.core.client.tools.aio import AzureAIToolClient
from azure.ai.agentserver.core import AzureAIToolClient
from azure.ai.agentserver.langgraph import ToolClient
from azure.identity.aio import DefaultAzureCredential

Expand Down Expand Up @@ -61,7 +61,7 @@ def __init__(self, tool_client: "AzureAIToolClient") -> None:
"""Initialize the ToolClient.

:param tool_client: The AzureAIToolClient instance to use for tool operations.
:type tool_client: ~azure.ai.agentserver.core.client.tools.aio.AzureAIToolClient
:type tool_client: ~azure.ai.agentserver.core.AzureAIToolClient
"""
self._tool_client = tool_client
self._langchain_tools_cache: Optional[List[StructuredTool]] = None
Expand Down Expand Up @@ -105,7 +105,7 @@ def _convert_to_langchain_tool(self, azure_tool: "FoundryTool") -> StructuredToo
"""Convert an AzureAITool to a LangChain StructuredTool.

:param azure_tool: The AzureAITool to convert.
:type azure_tool: ~azure.ai.agentserver.core.client.tools.aio.AzureAITool
:type azure_tool: ~azure.ai.agentserver.core.FoundryTool
:return: A LangChain StructuredTool instance.
:rtype: ~langchain_core.tools.StructuredTool
"""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from langchain_openai import AzureChatOpenAI
from langgraph.checkpoint.memory import MemorySaver

from azure.ai.agentserver.core.client.tools.aio import AzureAIToolClient
from azure.ai.agentserver.core import AzureAIToolClient
from azure.ai.agentserver.langgraph import ToolClient, from_langgraph
from azure.identity.aio import DefaultAzureCredential

Expand Down