McpToolRegistrationService Klasa
Usługa do zarządzania narzędziami i serwerami MCP dla agenta
Konstruktor
McpToolRegistrationService()
Parametry
| Nazwa | Opis |
|---|---|
|
logger
|
Domyślna wartość: None
|
Metody
| __init__ |
Zainicjuj usługę rejestracji narzędzi MCP dla interfejsu OpenAI. |
| __new__ | |
| add_tool_servers_to_agent |
Dodaj nowe serwery MCP do agenta, tworząc nowe wystąpienie agenta. Uwaga: ze względu na ograniczenia zestawu SDK agentów OpenAI należy ustawić serwery MCP podczas tworzenia agenta. Jeśli zostaną znalezione nowe serwery, ta metoda tworzy nowe wystąpienie agenta ze wszystkimi serwerami MCP (istniejące i nowe) poprawnie zainicjowane. |
| cleanup_all_servers |
Czyszczenie wszystkich połączonych serwerów MCP |
| send_chat_history |
Wyodrębnij historię czatów z sesji OpenAI i wyślij ją do platformy MCP. Ta metoda wyodrębnia komunikaty z obiektu sesji OpenAI przy użyciu get_items() i wysyła je do platformy MCP w celu ochrony przed zagrożeniami w czasie rzeczywistym. |
| send_chat_history_messages |
Wysyłanie wiadomości historii czatów OpenAI do platformy MCP w celu ochrony przed zagrożeniami. Ta metoda akceptuje listę komunikatów OpenAI TResponseInputItem, konwertuje je na format ChatHistoryMessage i wysyła je do platformy MCP. Uwaga / Notatka Nawet jeśli komunikaty są puste lub wszystkie komunikaty są filtrowane podczas konwersji, żądanie będzie nadal wysyłane do platformy MCP. Zapewnia to użytkownikowi komunikat z turn_context.activity.text jest poprawnie zarejestrowany dla ochrona przed zagrożeniami w czasie rzeczywistym. |
__init__
__new__
__new__(**kwargs)
add_tool_servers_to_agent
Dodaj nowe serwery MCP do agenta, tworząc nowe wystąpienie agenta.
Uwaga: ze względu na ograniczenia zestawu SDK agentów OpenAI należy ustawić serwery MCP podczas tworzenia agenta. Jeśli zostaną znalezione nowe serwery, ta metoda tworzy nowe wystąpienie agenta ze wszystkimi serwerami MCP (istniejące i nowe) poprawnie zainicjowane.
async add_tool_servers_to_agent(agent: Agent, auth: Authorization, auth_handler_name: str, context: TurnContext, auth_token: str | None = None) -> Agent
Parametry
| Nazwa | Opis |
|---|---|
|
agent
Wymagane
|
<xref:agents.agent.Agent>
Istniejący agent do dodawania serwerów do |
|
auth
Wymagane
|
Procedura obsługi autoryzacji na potrzeby wymiany tokenów. |
|
auth_handler_name
Wymagane
|
Nazwa programu obsługi autoryzacji. |
|
context
Wymagane
|
Włącz kontekst bieżącej operacji. |
|
auth_token
|
Token uwierzytelniania w celu uzyskania dostępu do serwerów MCP. Domyślna wartość: None
|
Zwraca
| Typ | Opis |
|---|---|
|
<xref:agents.agent.Agent>
|
Nowe wystąpienie agenta ze wszystkimi serwerami MCP lub oryginalnym agentem, jeśli nie ma nowych serwerów |
cleanup_all_servers
Czyszczenie wszystkich połączonych serwerów MCP
async cleanup_all_servers() -> None
Zwraca
| Typ | Opis |
|---|---|
send_chat_history
Wyodrębnij historię czatów z sesji OpenAI i wyślij ją do platformy MCP.
Ta metoda wyodrębnia komunikaty z obiektu sesji OpenAI przy użyciu get_items() i wysyła je do platformy MCP w celu ochrony przed zagrożeniami w czasie rzeczywistym.
async send_chat_history(turn_context: TurnContext, session: Session, limit: int | None = None, options: ToolOptions | None = None) -> OperationResult
Parametry
| Nazwa | Opis |
|---|---|
|
turn_context
Wymagane
|
Funkcja TurnContext z zestawu SDK agentów zawierająca informacje o konwersacji. Musi mieć prawidłowe działanie z conversation.id, activity.id i activity.text. |
|
session
Wymagane
|
<xref:agents.memory.session.Session>
Wystąpienie sesji OpenAI w celu wyodrębnienia komunikatów z. Musi obsługiwać metodę get_items(), która zwraca listę TResponseInputItem. |
|
limit
|
Opcjonalna maksymalna liczba elementów do pobrania z sesji. Jeśli brak, pobiera wszystkie elementy. Domyślna wartość: None
|
|
options
|
Opcjonalne narzędziaOpcje dostosowywania. Jeśli nie zostanie podana, użyj opcji domyślnych z orchestrator_name="OpenAI". Domyślna wartość: None
|
Zwraca
| Typ | Opis |
|---|---|
|
OperacjaResult wskazująca powodzenie lub niepowodzenie. Po powodzeniu zwraca wartość OperationResult.success(). Po niepowodzeniu zwraca wartość OperationResult.failed() ze szczegółami błędu. |
Wyjątki
| Typ | Opis |
|---|---|
|
Jeśli turn_context to Brak lub sesja to Brak. |
Przykłady
>>> 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
Wysyłanie wiadomości historii czatów OpenAI do platformy MCP w celu ochrony przed zagrożeniami.
Ta metoda akceptuje listę komunikatów OpenAI TResponseInputItem, konwertuje je na format ChatHistoryMessage i wysyła je do platformy MCP.
Uwaga / Notatka
Nawet jeśli komunikaty są puste lub wszystkie komunikaty są filtrowane podczas konwersji,
żądanie będzie nadal wysyłane do platformy MCP. Zapewnia to użytkownikowi
komunikat z turn_context.activity.text jest poprawnie zarejestrowany dla
ochrona przed zagrożeniami w czasie rzeczywistym.
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
Parametry
| Nazwa | Opis |
|---|---|
|
turn_context
Wymagane
|
Funkcja TurnContext z zestawu SDK agentów zawierająca informacje o konwersacji. Musi mieć prawidłowe działanie z conversation.id, activity.id i activity.text. |
|
messages
Wymagane
|
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>]
Lista komunikatów OpenAI TResponseInputItem do wysłania. Obsługuje komunikaty UserMessage, AssistantMessage, SystemMessage i inne typy komunikatów OpenAI. Może być pusty — żądanie będzie nadal wysyłane w celu zarejestrowania wiadomości użytkownika z witryny turn_context.activity.text. |
|
options
|
Opcjonalne narzędziaOpcje dostosowywania. Jeśli nie zostanie podana, użyj opcji domyślnych z orchestrator_name="OpenAI". Domyślna wartość: None
|
Zwraca
| Typ | Opis |
|---|---|
|
OperacjaResult wskazująca powodzenie lub niepowodzenie. Po powodzeniu zwraca wartość OperationResult.success(). Po niepowodzeniu zwraca wartość OperationResult.failed() ze szczegółami błędu. |
Wyjątki
| Typ | Opis |
|---|---|
|
Jeśli turn_context to Brak lub komunikaty to Brak. |
Przykłady
>>> 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")