McpToolRegistrationService クラス
エージェントの MCP ツールとサーバーを管理するためのサービス
コンストラクター
McpToolRegistrationService()
パラメーター
| 名前 | 説明 |
|---|---|
|
logger
|
規定値: None
|
メソッド
| __init__ |
OpenAI の MCP ツール登録サービスを初期化します。 |
| __new__ | |
| add_tool_servers_to_agent |
新しいエージェント インスタンスを作成して、新しい MCP サーバーをエージェントに追加します。 注: OpenAI Agents SDK の制限により、エージェントの作成時に MCP サーバーを設定する必要があります。 新しいサーバーが見つかった場合、このメソッドは、すべての MCP サーバー (既存の + 新規) が適切に初期化された新しいエージェント インスタンスを作成します。 |
| cleanup_all_servers |
接続されているすべての MCP サーバーをクリーンアップする |
| send_chat_history |
OpenAI セッションからチャット履歴を抽出し、MCP プラットフォームに送信します。 このメソッドは、get_items() を使用して OpenAI セッション オブジェクトからメッセージを抽出し、リアルタイムの脅威保護のために MCP プラットフォームに送信します。 |
| send_chat_history_messages |
脅威を保護するために、OpenAI チャット履歴メッセージを MCP プラットフォームに送信します。 このメソッドは、OpenAI TResponseInputItem メッセージの一覧を受け入れ、それらを ChatHistoryMessage 形式に変換して、MCP プラットフォームに送信します。 注 メッセージが空の場合や、変換中にすべてのメッセージがフィルター処理された場合でも、 要求は引き続き MCP プラットフォームに送信されます。 これにより、ユーザーは turn_context.activity.text からのメッセージが正しく登録されている リアルタイムの脅威保護。 |
__init__
__new__
__new__(**kwargs)
add_tool_servers_to_agent
新しいエージェント インスタンスを作成して、新しい MCP サーバーをエージェントに追加します。
注: OpenAI Agents SDK の制限により、エージェントの作成時に MCP サーバーを設定する必要があります。 新しいサーバーが見つかった場合、このメソッドは、すべての MCP サーバー (既存の + 新規) が適切に初期化された新しいエージェント インスタンスを作成します。
async add_tool_servers_to_agent(agent: Agent, auth: Authorization, auth_handler_name: str, context: TurnContext, auth_token: str | None = None) -> Agent
パラメーター
| 名前 | 説明 |
|---|---|
|
agent
必須
|
<xref:agents.agent.Agent>
サーバーを追加する既存のエージェント |
|
auth
必須
|
トークン交換の承認ハンドラー。 |
|
auth_handler_name
必須
|
承認ハンドラーの名前。 |
|
context
必須
|
現在の操作のコンテキストを有効にします。 |
|
auth_token
|
MCP サーバーにアクセスするための認証トークン。 規定値: None
|
返品
| 型 | 説明 |
|---|---|
|
<xref:agents.agent.Agent>
|
すべての MCP サーバーを含む新しいエージェント インスタンス、または新しいサーバーがない場合は元のエージェント |
cleanup_all_servers
send_chat_history
OpenAI セッションからチャット履歴を抽出し、MCP プラットフォームに送信します。
このメソッドは、get_items() を使用して OpenAI セッション オブジェクトからメッセージを抽出し、リアルタイムの脅威保護のために MCP プラットフォームに送信します。
async send_chat_history(turn_context: TurnContext, session: Session, limit: int | None = None, options: ToolOptions | None = None) -> OperationResult
パラメーター
| 名前 | 説明 |
|---|---|
|
turn_context
必須
|
会話情報を含む Agents SDK の TurnContext。 conversation.id、activity.id、activity.text を含む有効なアクティビティが必要です。 |
|
session
必須
|
<xref:agents.memory.session.Session>
メッセージを抽出する OpenAI セッション インスタンス。 TResponseInputItem のリストを返す get_items() メソッドをサポートする必要があります。 |
|
limit
|
セッションから取得する項目のオプションの最大数。 [なし] の場合は、すべての項目を取得します。 規定値: None
|
|
options
|
カスタマイズ用の省略可能な ToolOptions。 指定しない場合は、orchestrator_name="OpenAI" で既定のオプションを使用します。 規定値: None
|
返品
| 型 | 説明 |
|---|---|
|
成功または失敗を示す OperationResult。 成功した場合は、OperationResult.success() を返します。 失敗した場合は、エラーの詳細を含む OperationResult.failed() を返します。 |
例外
| 型 | 説明 |
|---|---|
|
turn_contextが None の場合、またはセッションが None の場合。 |
例
>>> 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
脅威を保護するために、OpenAI チャット履歴メッセージを MCP プラットフォームに送信します。
このメソッドは、OpenAI TResponseInputItem メッセージの一覧を受け入れ、それらを ChatHistoryMessage 形式に変換して、MCP プラットフォームに送信します。
注
メッセージが空の場合や、変換中にすべてのメッセージがフィルター処理された場合でも、
要求は引き続き MCP プラットフォームに送信されます。 これにより、ユーザーは
turn_context.activity.text からのメッセージが正しく登録されている
リアルタイムの脅威保護。
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
パラメーター
| 名前 | 説明 |
|---|---|
|
turn_context
必須
|
会話情報を含む Agents SDK の TurnContext。 conversation.id、activity.id、activity.text を含む有効なアクティビティが必要です。 |
|
messages
必須
|
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>]
送信する OpenAI TResponseInputItem メッセージの一覧。 UserMessage、AssistantMessage、SystemMessage、およびその他の OpenAI メッセージの種類をサポートします。 空にすることができます。要求は引き続き送信され、turn_context.activity.text からユーザー メッセージを登録します。 |
|
options
|
カスタマイズ用の省略可能な ToolOptions。 指定しない場合は、orchestrator_name="OpenAI" で既定のオプションを使用します。 規定値: None
|
返品
| 型 | 説明 |
|---|---|
|
成功または失敗を示す OperationResult。 成功した場合は、OperationResult.success() を返します。 失敗した場合は、エラーの詳細を含む OperationResult.failed() を返します。 |
例外
| 型 | 説明 |
|---|---|
|
turn_contextが None の場合、またはメッセージが None の場合。 |
例
>>> 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")