McpToolRegistrationService Classe

Service de gestion des outils et des serveurs MCP pour un agent

Constructeur

McpToolRegistrationService()

Paramètres

Nom Description
logger
Valeur par défaut: None

Méthodes

__init__

Initialisez le service d’inscription de l’outil MCP pour OpenAI.

__new__
add_tool_servers_to_agent

Ajoutez de nouveaux serveurs MCP à l’agent en créant une instance d’agent.

Remarque : En raison des limitations du Kit de développement logiciel (SDK) Des agents OpenAI, les serveurs MCP doivent être définis lors de la création de l’agent. Si de nouveaux serveurs sont trouvés, cette méthode crée une instance agent avec tous les serveurs MCP (existants + nouveau) correctement initialisés.

cleanup_all_servers

Nettoyer tous les serveurs MCP connectés

send_chat_history

Extrayez l’historique des conversations d’une session OpenAI et envoyez-le à la plateforme MCP.

Cette méthode extrait les messages d’un objet session OpenAI à l’aide de get_items() et les envoie à la plateforme MCP pour la protection contre les menaces en temps réel.

send_chat_history_messages

Envoyez des messages d’historique des conversations OpenAI à la plateforme MCP pour la protection contre les menaces.

Cette méthode accepte une liste de messages OpenAI TResponseInputItem, les convertit au format ChatHistoryMessage et les envoie à la plateforme MCP.

Note

Même si les messages sont vides ou que tous les messages sont filtrés pendant la conversion,

la demande sera toujours envoyée à la plateforme MCP. Cela garantit à l’utilisateur

le message de turn_context.activity.text est enregistré correctement pour

protection contre les menaces en temps réel.

__init__

Initialisez le service d’inscription de l’outil MCP pour OpenAI.

__init__(logger: Logger | None = None)

Paramètres

Nom Description
logger

Instance d’enregistreur d’événements pour les opérations de journalisation.

Valeur par défaut: None

__new__

__new__(**kwargs)

add_tool_servers_to_agent

Ajoutez de nouveaux serveurs MCP à l’agent en créant une instance d’agent.

Remarque : En raison des limitations du Kit de développement logiciel (SDK) Des agents OpenAI, les serveurs MCP doivent être définis lors de la création de l’agent. Si de nouveaux serveurs sont trouvés, cette méthode crée une instance agent avec tous les serveurs MCP (existants + nouveau) correctement initialisés.

async add_tool_servers_to_agent(agent: Agent, auth: Authorization, auth_handler_name: str, context: TurnContext, auth_token: str | None = None) -> Agent

Paramètres

Nom Description
agent
Obligatoire
<xref:agents.agent.Agent>

Agent existant pour ajouter des serveurs à

auth
Obligatoire

Gestionnaire d’autorisation pour l’échange de jetons.

auth_handler_name
Obligatoire
str

Nom du gestionnaire d’autorisation.

context
Obligatoire

Activer le contexte de l’opération actuelle.

auth_token
str | None

Jeton d’authentification pour accéder aux serveurs MCP.

Valeur par défaut: None

Retours

Type Description
<xref:agents.agent.Agent>

Nouvelle instance de l’agent avec tous les serveurs MCP ou agent d’origine si aucun nouveau serveur

cleanup_all_servers

Nettoyer tous les serveurs MCP connectés

async cleanup_all_servers() -> None

Retours

Type Description

send_chat_history

Extrayez l’historique des conversations d’une session OpenAI et envoyez-le à la plateforme MCP.

Cette méthode extrait les messages d’un objet session OpenAI à l’aide de get_items() et les envoie à la plateforme MCP pour la protection contre les menaces en temps réel.

async send_chat_history(turn_context: TurnContext, session: Session, limit: int | None = None, options: ToolOptions | None = None) -> OperationResult

Paramètres

Nom Description
turn_context
Obligatoire

TurnContext à partir du Kit de développement logiciel (SDK) Agents contenant des informations de conversation. Doit avoir une activité valide avec conversation.id, activity.id et activity.text.

session
Obligatoire
<xref:agents.memory.session.Session>

Instance de session OpenAI à partir de laquelle extraire les messages. Doit prendre en charge la méthode get_items() qui retourne une liste de TResponseInputItem.

limit
int | None

Nombre maximal facultatif d’éléments à récupérer à partir de la session. Si aucun, récupère tous les éléments.

Valeur par défaut: None
options

ToolOptions facultatifs pour la personnalisation. S’il n’est pas fourni, utilise les options par défaut avec orchestrator_name="OpenAI ».

Valeur par défaut: None

Retours

Type Description

OperationResult indiquant la réussite ou l’échec. En cas de réussite, retourne OperationResult.success(). En cas d’échec, retourne OperationResult.failed() avec les détails de l’erreur.

Exceptions

Type Description

Si turn_context est None ou si la session est None.

Exemples


>>> from agents import Agent, Runner
>>> from microsoft_agents_a365.tooling.extensions.openai import (
...     McpToolRegistrationService
... )
>>>
>>> service = McpToolRegistrationService()
>>> agent = Agent(name="my-agent", model="gpt-4")
>>>
>>> # In your agent handler:
>>> async with Runner.run(agent, messages) as result:
...     session = result.session
...     op_result = await service.send_chat_history(
...         turn_context, session
...     )
...     if op_result.succeeded:
...         print("Chat history sent successfully")

send_chat_history_messages

Envoyez des messages d’historique des conversations OpenAI à la plateforme MCP pour la protection contre les menaces.

Cette méthode accepte une liste de messages OpenAI TResponseInputItem, les convertit au format ChatHistoryMessage et les envoie à la plateforme MCP.

Note

Même si les messages sont vides ou que tous les messages sont filtrés pendant la conversion,

la demande sera toujours envoyée à la plateforme MCP. Cela garantit à l’utilisateur

le message de turn_context.activity.text est enregistré correctement pour

protection contre les menaces en temps réel.

async send_chat_history_messages(turn_context: TurnContext, messages: List[EasyInputMessageParam | Message | ResponseOutputMessageParam | ResponseFileSearchToolCallParam | ResponseComputerToolCallParam | ComputerCallOutput | ResponseFunctionWebSearchParam | ResponseFunctionToolCallParam | FunctionCallOutput | ToolSearchCall | ResponseToolSearchOutputItemParamParam | ResponseReasoningItemParam | ResponseCompactionItemParamParam | ImageGenerationCall | ResponseCodeInterpreterToolCallParam | LocalShellCall | LocalShellCallOutput | ShellCall | ShellCallOutput | ApplyPatchCall | ApplyPatchCallOutput | McpListTools | McpApprovalRequest | McpApprovalResponse | McpCall | ResponseCustomToolCallOutputParam | ResponseCustomToolCallParam | ItemReference], options: ToolOptions | None = None) -> OperationResult

Paramètres

Nom Description
turn_context
Obligatoire

TurnContext à partir du Kit de développement logiciel (SDK) Agents contenant des informations de conversation. Doit avoir une activité valide avec conversation.id, activity.id et activity.text.

messages
Obligatoire
List[<xref:openai.types.responses.easy_input_message_param.EasyInputMessageParam> | <xref:openai.types.responses.response_input_item_param.Message> | <xref:openai.types.responses.response_output_message_param.ResponseOutputMessageParam> | <xref:openai.types.responses.response_file_search_tool_call_param.ResponseFileSearchToolCallParam> | <xref:openai.types.responses.response_computer_tool_call_param.ResponseComputerToolCallParam> | <xref:openai.types.responses.response_input_item_param.ComputerCallOutput> | <xref:openai.types.responses.response_function_web_search_param.ResponseFunctionWebSearchParam> | <xref:openai.types.responses.response_function_tool_call_param.ResponseFunctionToolCallParam> | <xref:openai.types.responses.response_input_item_param.FunctionCallOutput> | <xref:openai.types.responses.response_input_item_param.ToolSearchCall> | <xref:openai.types.responses.response_tool_search_output_item_param_param.ResponseToolSearchOutputItemParamParam> | <xref:openai.types.responses.response_reasoning_item_param.ResponseReasoningItemParam> | <xref:openai.types.responses.response_compaction_item_param_param.ResponseCompactionItemParamParam> | <xref:openai.types.responses.response_input_item_param.ImageGenerationCall> | <xref:openai.types.responses.response_code_interpreter_tool_call_param.ResponseCodeInterpreterToolCallParam> | <xref:openai.types.responses.response_input_item_param.LocalShellCall> | <xref:openai.types.responses.response_input_item_param.LocalShellCallOutput> | <xref:openai.types.responses.response_input_item_param.ShellCall> | <xref:openai.types.responses.response_input_item_param.ShellCallOutput> | <xref:openai.types.responses.response_input_item_param.ApplyPatchCall> | <xref:openai.types.responses.response_input_item_param.ApplyPatchCallOutput> | <xref:openai.types.responses.response_input_item_param.McpListTools> | <xref:openai.types.responses.response_input_item_param.McpApprovalRequest> | <xref:openai.types.responses.response_input_item_param.McpApprovalResponse> | <xref:openai.types.responses.response_input_item_param.McpCall> | <xref:openai.types.responses.response_custom_tool_call_output_param.ResponseCustomToolCallOutputParam> | <xref:openai.types.responses.response_custom_tool_call_param.ResponseCustomToolCallParam> | <xref:openai.types.responses.response_input_item_param.ItemReference>]

Liste des messages OpenAI TResponseInputItem à envoyer. Prend en charge UserMessage, AssistantMessage, SystemMessage et d’autres types de messages OpenAI. Peut être vide : la demande est toujours envoyée pour inscrire le message de l’utilisateur à partir de turn_context.activity.text.

options

ToolOptions facultatifs pour la personnalisation. S’il n’est pas fourni, utilise les options par défaut avec orchestrator_name="OpenAI ».

Valeur par défaut: None

Retours

Type Description

OperationResult indiquant la réussite ou l’échec. En cas de réussite, retourne OperationResult.success(). En cas d’échec, retourne OperationResult.failed() avec les détails de l’erreur.

Exceptions

Type Description

Si turn_context est None ou que les messages sont None.

Exemples


>>> from microsoft_agents_a365.tooling.extensions.openai import (
...     McpToolRegistrationService
... )
>>>
>>> service = McpToolRegistrationService()
>>> messages = [
...     {"role": "user", "content": "Hello"},
...     {"role": "assistant", "content": "Hi there!"},
... ]
>>>
>>> result = await service.send_chat_history_messages(
...     turn_context, messages
... )
>>> if result.succeeded:
...     print("Chat history sent successfully")