McpToolRegistrationService Klasse
Dienst für die Verwaltung von MCP-Tools und -Servern für einen Agent
Konstruktor
McpToolRegistrationService()
Parameter
| Name | Beschreibung |
|---|---|
|
logger
|
Standardwert: None
|
Methoden
| __init__ |
Initialisieren Sie den MCP-Toolregistrierungsdienst für OpenAI. |
| __new__ | |
| add_tool_servers_to_agent |
Fügen Sie dem Agent neue MCP-Server hinzu, indem Sie eine neue Agent-Instanz erstellen. Hinweis: Aufgrund von OpenAI Agents SDK-Einschränkungen müssen MCP-Server während der Agent-Erstellung festgelegt werden. Wenn neue Server gefunden werden, erstellt diese Methode eine neue Agent-Instanz mit allen MCP-Servern (vorhandenen + neuen) ordnungsgemäß initialisiert. |
| cleanup_all_servers |
Bereinigen aller verbundenen MCP-Server |
| send_chat_history |
Extrahieren Sie den Chatverlauf aus einer OpenAI-Sitzung, und senden Sie ihn an die MCP-Plattform. Diese Methode extrahiert Nachrichten aus einem OpenAI Session-Objekt mithilfe von get_items() und sendet sie zur Echtzeit-Bedrohungsschutz an die MCP-Plattform. |
| send_chat_history_messages |
Senden Von OpenAI-Chatverlaufsnachrichten an die MCP-Plattform zum Schutz vor Bedrohungen. Diese Methode akzeptiert eine Liste der OpenAI TResponseInputItem-Nachrichten, konvertiert sie in das ChatHistoryMessage-Format und sendet sie an die MCP-Plattform. Note Auch wenn Nachrichten leer sind oder alle Nachrichten während der Konvertierung gefiltert werden, die Anforderung wird weiterhin an die MCP-Plattform gesendet. Dadurch wird sichergestellt, dass der Benutzer nachricht von turn_context.activity.text ist richtig registriert für Echtzeit-Bedrohungsschutz. |
__init__
__new__
__new__(**kwargs)
add_tool_servers_to_agent
Fügen Sie dem Agent neue MCP-Server hinzu, indem Sie eine neue Agent-Instanz erstellen.
Hinweis: Aufgrund von OpenAI Agents SDK-Einschränkungen müssen MCP-Server während der Agent-Erstellung festgelegt werden. Wenn neue Server gefunden werden, erstellt diese Methode eine neue Agent-Instanz mit allen MCP-Servern (vorhandenen + neuen) ordnungsgemäß initialisiert.
async add_tool_servers_to_agent(agent: Agent, auth: Authorization, auth_handler_name: str, context: TurnContext, auth_token: str | None = None) -> Agent
Parameter
| Name | Beschreibung |
|---|---|
|
agent
Erforderlich
|
<xref:agents.agent.Agent>
Der vorhandene Agent zum Hinzufügen von Servern zu |
|
auth
Erforderlich
|
Autorisierungshandler für den Tokenaustausch. |
|
auth_handler_name
Erforderlich
|
Name des Autorisierungshandlers. |
|
context
Erforderlich
|
Kontext für den aktuellen Vorgang drehen. |
|
auth_token
|
Authentifizierungstoken für den Zugriff auf die MCP-Server. Standardwert: None
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
<xref:agents.agent.Agent>
|
Neue Agent-Instanz mit allen MCP-Servern oder dem ursprünglichen Agent, wenn keine neuen Server vorhanden sind |
cleanup_all_servers
Bereinigen aller verbundenen MCP-Server
async cleanup_all_servers() -> None
Gibt zurück
| Typ | Beschreibung |
|---|---|
send_chat_history
Extrahieren Sie den Chatverlauf aus einer OpenAI-Sitzung, und senden Sie ihn an die MCP-Plattform.
Diese Methode extrahiert Nachrichten aus einem OpenAI Session-Objekt mithilfe von get_items() und sendet sie zur Echtzeit-Bedrohungsschutz an die MCP-Plattform.
async send_chat_history(turn_context: TurnContext, session: Session, limit: int | None = None, options: ToolOptions | None = None) -> OperationResult
Parameter
| Name | Beschreibung |
|---|---|
|
turn_context
Erforderlich
|
TurnContext aus dem Agents SDK mit Unterhaltungsinformationen. Muss über eine gültige Aktivität mit conversation.id, activity.id und activity.text verfügen. |
|
session
Erforderlich
|
<xref:agents.memory.session.Session>
OpenAI-Sitzungsinstanz zum Extrahieren von Nachrichten aus. Muss die get_items()-Methode unterstützen, die eine Liste von TResponseInputItem zurückgibt. |
|
limit
|
Optionale maximale Anzahl von Elementen, die aus der Sitzung abgerufen werden sollen. Wenn keines vorhanden ist, werden alle Elemente abgerufen. Standardwert: None
|
|
options
|
Optionale ToolOptions zum Anpassen. Wenn nicht angegeben, werden Standardoptionen mit orchestrator_name="OpenAI" verwendet. Standardwert: None
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
OperationResult, das Erfolg oder Fehler angibt. Bei Erfolg gibt OperationResult.success() zurück. Gibt "OperationResult.failed()" mit Fehlerdetails zurück. |
Ausnahmen
| Typ | Beschreibung |
|---|---|
|
Wenn turn_context "None" oder "Session" ist "None". |
Beispiele
>>> 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
Senden Von OpenAI-Chatverlaufsnachrichten an die MCP-Plattform zum Schutz vor Bedrohungen.
Diese Methode akzeptiert eine Liste der OpenAI TResponseInputItem-Nachrichten, konvertiert sie in das ChatHistoryMessage-Format und sendet sie an die MCP-Plattform.
Note
Auch wenn Nachrichten leer sind oder alle Nachrichten während der Konvertierung gefiltert werden,
die Anforderung wird weiterhin an die MCP-Plattform gesendet. Dadurch wird sichergestellt, dass der Benutzer
nachricht von turn_context.activity.text ist richtig registriert für
Echtzeit-Bedrohungsschutz.
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
Parameter
| Name | Beschreibung |
|---|---|
|
turn_context
Erforderlich
|
TurnContext aus dem Agents SDK mit Unterhaltungsinformationen. Muss über eine gültige Aktivität mit conversation.id, activity.id und activity.text verfügen. |
|
messages
Erforderlich
|
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 der zu sendenden OpenAI-TResponseInputItem-Nachrichten. Unterstützt UserMessage, AssistantMessage, SystemMessage und andere OpenAI-Nachrichtentypen. Kann leer sein – die Anforderung wird weiterhin gesendet, um die Benutzernachricht von turn_context.activity.text zu registrieren. |
|
options
|
Optionale ToolOptions zum Anpassen. Wenn nicht angegeben, werden Standardoptionen mit orchestrator_name="OpenAI" verwendet. Standardwert: None
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
OperationResult, das Erfolg oder Fehler angibt. Bei Erfolg gibt OperationResult.success() zurück. Gibt "OperationResult.failed()" mit Fehlerdetails zurück. |
Ausnahmen
| Typ | Beschreibung |
|---|---|
|
Wenn turn_context "Keine" ist oder "Keine" lautet. |
Beispiele
>>> 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")