# 连接记忆库
#### 创建MemoryClient
通过 MemoryClient 管理与记忆库的连接，建议使用 with 语句确保连接正确关闭：
记忆库支持两种认证方式，请根据创建记忆库时选择的认证方式选择对应的连接方法：
#### 通过API Key认证连接
```
from agentarts.sdk.memory import MemoryClient
with MemoryClient(api_key=api_key) as client:
    # 后续所有操作在此上下文中进行
    pass
```
- api_key 既可通过环境变量（HUAWEICLOUD_SDK_MEMORY_API_KEY）传入，也可在代码中直接传入。
- 也可通过配置 region_name，SDK 会自行拼接访问域名（格式为 https://memory.{region_name}.huaweicloud-agentarts.com）。
  ```
  client = MemoryClient(region_name="cn-southwest-2")
  ```
  
- 也可通过环境变量配置访问端点 AGENTARTS_MEMORY_DATA_ENDPOINT（公网域名、公网 IP、私网 IP 或私网访问域名）。
 
#### 通过IAM认证连接
当记忆库选择 IAM 认证方式时，通过 IAM 临时凭证（AK/SK/SecurityToken）进行认证，SDK 会自动处理签名：
```
from agentarts.sdk.memory import MemoryClient
with MemoryClient(
    ak="your-ak",
    sk="your-sk",
    security_token="your-security-token"  # 使用STS临时凭证时需要
) as client:
    # 后续所有操作在此上下文中进行
    pass
```
- AK/SK 既可通过环境变量（HUAWEICLOUD_SDK_AK、HUAWEICLOUD_SDK_SK）传入，也可在代码中直接传入。
- 使用 STS 临时凭证时，需额外传入 security_token 参数，或通过环境变量 HUAWEICLOUD_SDK_SECURITY_TOKEN 传入。
 
#### 连接失败排查
| 现象       | 排查方向                                                                                |
|:---|:---|
| 连接超时     | endpoint是否正确；网络是否可达（公网/私网）                                                           |
| 401认证失败   | API Key 认证：API Key是否正确；API Key是否已更新或过期。IAM 认证：AK/SK是否正确；SecurityToken是否过期；签名是否正确      |
| 403鉴权失败 | IAM 认证：是否因 actor 级或 session 级隔离策略被拒绝；检查 IAM 策略中 MemoryActorId 和 MemorySessionId 条件键配置 |
| SSL证书错误    | verify_ssl参数设置                                                                       |
   
