# 检索用户记忆并渲染画像

使用 AI Studio SDK 以已知主体 ID 检索记忆，并为同一主体渲染画像。主体由调用方的业务系统确定，不一定等同于登录用户。

(sdk-ai-studio-consumer-memory-flow)=
## 任务流程

1. 使用业务系统提供的主体 ID 绑定记忆对象。
2. 提交非空检索内容，读取该主体的记忆列表。
3. 需要画像时，对同一主体提交渲染请求并读取返回文本。

(sdk-ai-studio-consumer-memory-prepare)=
## 准备

| 需要的内容 | 在本页中的作用 |
| --- | --- |
| 已绑定目标工作区的客户端上下文 | 确定记忆和画像操作的工作区。 |
| 业务系统提供的主体 ID | 固定检索和画像的主体范围。 |
| 非空检索内容 | 在该主体范围内查找记忆。 |

记忆和画像内容可能包含业务或个人数据。只查询当前业务场景允许访问的主体，避免将结果写入不受控日志。

(sdk-ai-studio-consumer-memory-retrieve)=
## 检索记忆

返回列表是当前检索结果，不表示画像已更新或记忆已写入。

:::::{tab-set}
:sync-group: sdk-language

::::{tab-item} Go
:sync: go

```go
memory, err := workspace.ConsumerMemory(subjectID)
if err != nil {
	return err
}

result, err := memory.Retrieve(ctx, query)
if err != nil {
	return err
}

_ = result
```

::::

::::{tab-item} Python
:sync: python

```python
memory = workspace.consumer_memory(subject_id)
result = memory.retrieve(query)
```

::::

:::::

读取结果中的记忆条目，并按调用方的业务规则处理。空检索内容会在 SDK 侧被拒绝。

(sdk-ai-studio-consumer-memory-filter)=
## 使用关键词或条件筛选

关键词检索要求非空关键词，结果数量可设为 0 到 100。结构化查询可设置 0 到 500 条的返回上限。两类查询都可按会话、记忆类型、信任等级、分支和额外元数据筛选。

额外元数据只接受扁平过滤结构；嵌套对象或不合法的键会在请求前被 SDK 拒绝。筛选条件不替代访问控制。

(sdk-ai-studio-consumer-memory-render)=
## 渲染画像

画像渲染继续使用同一主体。请求返回的是当前渲染结果，不表示记忆内容已经改变。

:::::{tab-set}
:sync-group: sdk-language

::::{tab-item} Go
:sync: go

```go
profile, err := memory.RenderProfile(ctx)
if err != nil {
	return err
}

_ = profile
```

::::

::::{tab-item} Python
:sync: python

```python
profile = memory.render_profile()
```

::::

:::::

渲染响应包含当前主体的画像文本和令牌估算。如需最新结果，应在合适的业务时机重新查询或重新渲染。

(sdk-ai-studio-consumer-memory-limitations)=
## 限制

检索和画像渲染都是读取操作。不要把一次检索或渲染请求写成记忆已经写入、更新或持久化的证明。
