调用智能体(IAM认证)
本章节以IAM认证为例,面向首次使用者,从零开始逐步配置并运行managed_agents_client.py脚本,该脚本用于通过WebSocket与Managed Agents后端交互,调测智能体与用户本地连通性。
前提条件
智能体的“入站身份认证”选择“IAM 认证”。
环境准备
- Python版本要求。
需要Python 3.10或以上版本(代码使用了str|None类型标注语法)。
检查方法,打开电脑系统自带的命令提示符窗口(应用程序中搜索cmd),输入命令:
python --version
预期输出类似:
Python 3.14.0
如果版本低于3.10,请前往python.org升级。
- 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”。
安装后,重新打开命令提示符窗口,才会生效。
- 安装依赖。
pip install websockets>=10.0 --break-system-packages
- 验证安装。
python -c "import websockets; print(websockets.__version__)"
预期输出类似:
17.1
准备签名SDK
- 在签名指南文档中下载Python SDK,并在本地解压。签名指南文档中的其他内容本案例中可不用关注。 图1 获取SDK
解压后的文件目录结构如下:
ApiGateway-python-sdk/ ← 根目录(解压出来的文件夹) │ ├── apig_sdk/ ← 【核心签名库,不要动!】 │ ├── __init__.py ← 包的入口标识文件 │ └── signer.py ← 签名核心代码(所有签名逻辑都在这里) │ ├── main.py ← 【您要改的文件】调用示例 │ └── licenses/ ← 开源许可证文件夹(不用管) └── license-requests ← requests库的许可证说明图2 目录结构
- 下载managed_agents_client.py至本地,放入Python SDK解压的文件夹中,该脚本用于通过WebSocket与Managed Agents后端交互,调测智能体与用户本地连通性。
在Python SDK的文件夹上方显示路径的地址栏里,清空地址,直接输入cmd后按回车。
调用智能体
Windows cmd:
python managed_agents_client.py ^ --url "ws://{endpoint}/runtimes/{runtime_name}/ws" ^ --auth-type iam ^ --ak "{AK}" --sk "{SK}" ^ --session-id "{会话ID}" ^ --message "你好"
通用写法(所有平台通用):
python managed_agents_client.py --url "ws://{endpoint}/runtimes/{runtime_name}/ws" --auth-type iam --ak "{AK}" --sk "{SK}" --session-id "{会话ID}" --message "你好"
调用参数信息,请按表1获取,替换命令中花括号内的占位符。
| 参数 | 操作 |
|---|---|
| managed_agents_client.py | 脚本文件名由脚本名称和文件类型后缀组成。例如,脚本名称为managed_agents_client,文件类型为Python脚本(.py),则完整文件名为managed_agents_client.py。 |
| 运行时名称({runtime_name}) | |
| 访问域名({endpoint}) | 单击运行时名称,进入运行时详情页面,在“访问域名”区域,即可复制访问域名。
|
| {AK} | 登录控制台“我的凭证 > 访问密钥”,获取AK和SK。AK、SK最多可添加2个。 图3 获取AK、SK 图4 AK、SK示例 |
| {SK} | |
| 会话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”原始帧和流式回复文本。



