本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
连接模式
您可以通过设置来控制代理等待桌面会话变为可用状态的方式 x-amzn-agentaccess-connect-mode 您的模型上下文协议 (MCP) 请求的标头。
注意
连接模式适用于未加入域和加入域的队列。设置 x-amzn-agentaccess-connect-mode 标题旁边是你的舰队类型使用的任何身份验证机制。对于未加入域的队列,这要么是堆栈和用户 ID 标头,要么是流媒体网址标头。对于加入域的队列,它是 SAML 断言元数据。
可用模式如下:
-
阻塞 (默认):MCP 服务器会等到桌面连接完全建立后再响应。什么时候
tools/list退货,所有工具立即可用。 -
投票:MCP 服务器无需等待桌面连接即可立即响应。最初,只有
connection_status工具可用。您的代理会轮询此工具,直到建立连接,此时完整的工具集才可用。
当您希望代理在等待桌面连接的同时执行其他工作时,或者需要对连接超时行为进行更多控制时,请使用轮询模式。
以下示例显示如何使用轮询模式:
# Pass the header when creating the MCP connection headers = { "x-amzn-agentaccess-streaming-session-url": streaming_url, # non-domain-joined fleets "x-amzn-agentaccess-connect-mode": "POLLING", } # After initialize, tools/list returns immediately with connection_status tools = await session.list_tools() # tools = [connection_status] # Poll connection_status until the desktop is ready while True: result = await session.call_tool("connection_status", {}) status = json.loads(result.content[0].text) if status["state"] == "CONNECTED": break time.sleep(2) # Now tools/list returns the full set (screenshot, left_click, type_text, and so on) tools = await session.list_tools()
清理: 为避免持续的直播费用,请终止 WorkSpaces 代理完成工作时的应用程序流式传输会话。断开代理连接,使会话关闭,并且不要让空闲会话继续运行。