# 调用智能体（API Key认证）
本章节以API Key认证为例，面向首次使用者，从零开始逐步配置并运行managed_agents_client.py脚本，该脚本用于通过WebSocket与Managed Agents后端交互，调测智能体与用户本地连通性。
#### 前提条件
智能体的"入站身份认证"选择"API Key 认证"。
#### 环境准备
1. Python版本要求。 需要**Python 3.10或以上版本**（代码使用了str\|None类型标注语法）。
   检查方法，打开电脑系统自带的命令提示符窗口（应用程序中搜索cmd），输入命令：
   ```
   python --version
   ```
   预期输出类似：
   ```
   Python 3.14.0
   ```
   如果版本低于3.10，请前往[python.org](https://www.python.org/downloads/)升级。
   
2. pip安装。 Python 3.4及以上版本自带pip。
   安装Python时，勾选"Add Python.exe to PATH"（这里以3.12版本为例，不同版本名称有所不同，以实际为准），默认自带pip。
   打开cmd/PowerShell验证：
   ```
   pip --version
   ```
   输出版本号说明已经安装完成。
   ```
   pip 25.0.1 from ...
   ```
   Windows如果提示pip不是内部或外部命令，执行以下操作。
   单击安装包，选择"Modify"，勾选"pip"、"Add Python to environment variables"。
   安装后，重新打开命令提示符窗口，才会生效。
   
3. 安装依赖。 pip就绪后，安装websockets库：
   ```
   pip install websockets>=10.0 --break-system-packages
   ```
   
4. 验证安装。
   ```
   python -c "import websockets; print(websockets.__version__)"
   ```
   预期输出类似：
   ```
   17.1
   ```
   
5. 确认脚本位置。 下载[managed_agents_client.py](https://res-static.hc-cdn.cn/cloudbu-site/china/zh-cn/agentarts/ManagedAgents/managed_agents_client.py)至本地，该脚本用于通过WebSocket与Managed Agents后端交互，调测智能体与用户本地连通性。
   在managed_agents_client.py脚本所在目录，使用Windows命令提示符（CMD）工具，执行命令。
   
 
#### 调用智能体
Windows cmd：
```
python managed_agents_client.py ^
  --url "ws://{endpoint}/runtimes/{runtime_name}/ws" ^
  --auth "Bearer {api_key}" ^
  --session-id "{会话ID}" ^
  --message "你好"
```
通用写法（所有平台通用）：
```
python managed_agents_client.py --url "ws://{endpoint}/runtimes/{runtime_name}/ws" --auth "Bearer {api_key}" --session-id "{会话ID}" --message "你好"
```
调用参数信息，请按[表1]获取，替换命令中花括号内的占位符。
 表1获取调用信息 
| 参数                         | 操作                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|
| *managed_agents_client.py* | 脚本文件名由脚本名称和文件类型后缀组成。例如，脚本名称为managed_agents_client，文件类型为Python脚本（.py），则完整文件名为managed_agents_client.py。                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 运行时名称（*{runtime_name}*）    | 1. 在"Managed Agents \> 智能体"页面，复制需要调用的智能体名称。  2. 在左侧导航选择"托管与运行 \> 智能体运行时"，搜索已获取的智能体名称。 在"智能体运行时"列表，显示的名称以managed-开头，即为运行时名称。 ![](https://support.huaweicloud.com/managedagents-agentarts/zh-cn_image_0000002727680216.png "点击放大")                                                                                               |
| 访问域名（*{endpoint}*）           | 单击运行时名称，进入运行时详情页面，在"访问域名"区域，即可复制访问域名。 ![](https://support.huaweicloud.com/managedagents-agentarts/zh-cn_image_0000002757160053.png "点击放大")                                                                                                                                                                                                                                                                                                                                                                                               |
| API Key（*{api_key}*）       | 1. 在运行时详情页面，单击URN。 ![](https://support.huaweicloud.com/managedagents-agentarts/zh-cn_image_0000002727520364.png "点击放大")     2. 进入工作负载身份详情页面，即可复制API Key值。 ![](https://support.huaweicloud.com/managedagents-agentarts/zh-cn_image_0000002757079935.png "点击放大")    |
| 会话ID（*{会话ID}*）             | 每个会话的唯一标识符。用户可将会话ID设置为任意字符串，由英文、数字、"-"、"_"组成，不超过64个字符。例如"123e4567e89b12d3a456426614174000"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| message                    | 会话内容。按实际进行替换。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
#### 显示结果
预期终端输出：
```
[2/5] 已连接 ws://{endpoint}/runtimes/{runtime_name}/ws
[3/5] 服务端就绪
[4/5] 已发送: 你好
[Frame] {"response_kind":"e2a.chunk","status":"in_progress","body":{"delta_kind":"text","delta":"你好","event_type":"chat.delta"}}
你好
[Frame] {"response_kind":"e2a.chunk","status":"in_progress","body":{"delta_kind":"text","delta":"！有什么可以帮你的吗？","event_type":"chat.delta"}}
！有什么可以帮你的吗？
[Frame] {"response_kind":"e2a.complete","status":"succeeded","is_final":true,"body":{"result":{"content":"你好！有什么可以帮你的吗？"}}}
========================================
回复: 你好！有什么可以帮你的吗？
========================================
[5/5] 已断开
```
权限审批和用户提问均在后台自动处理，终端只显示"Frame"原始帧和流式回复文本。
