

# 将有来源依据的 X 个人资料研究存入智能体记忆

将来源事实与智能体的推测分开存储，这样就能在个人资料数据变化时更新判断。Actor 是托管的数据采集程序。Task 是保存的输入预设。Actor 负责采集来源数据行，分析则由你完成。公开 Task 提供的是起始输入，并不能证明分析会自动运行。

X Profile Actor 的公开构建版本 1.0.4 仅接受由已知公开个人资料 URL 或用户名组成的 `profiles` 数组。它不包含用于发现账号、获取帖子、查询历史、指定语言或设置 `maxItems` 的参数。

公开保存的 Task 预设包含示例账号（`OpenAI`、`NASA`、`elonmusk`）。运行检查前，请将整个 `profiles` 示例列表替换为你要检查的单个目标账号，不要直接使用 `OpenAI` 运行示例检查。

原生数据行包含以下字段：`input`、`profileId`、`profileUrl`、`handle`、`displayName`、`biography`、`website`、`location`、`followersCount`、`profileMetricStatus`、`status`、`failureCategory`、`statusReason` 和 `observedAt`。

在一次针对 OpenAI 个人资料 ID 的单账号对照运行中，检查成功。结果包含简介和网站，能够获取精确的粉丝数，但缺少所在地信息。运行输出摘要如下：

- `inputCount`: 1
- `datasetRows`: 1
- `usefulRows`: 1
- `billableRows`: 1
- `failedRows`: 0
- `statusCounts`: `{"ok": 1}`
- `stopReason`: `inputs_exhausted`

原生字段 `profileMetricStatus` 是一个对象，将各项指标分别映射到 `exact` 或 `unavailable` 精度值。这次对照检查仅证明能够获取来源数据。它没有执行记忆持久化、账号身份历史追踪、主题专业能力验证或大规模账号列表的吞吐量分析。

## 管理个人资料记忆的步骤

1. 先明确具体的研究问题和研究个人资料的用途，再选择 1 个已知的公开个人资料 URL 或用户名。不要使用账号发现、历史查询或最大条目数设置，因为个人资料构建工具只接受指定的用户名或 URL。
2. 运行 Task 时，请在输入中将保存的整个示例列表替换为你作为读者实际要研究的单个目标账号。使用 `{"profiles": ["https://x.com/YOUR_TARGET_PROFILE"]}` 这样的明确占位示例来填写目标，不要运行无关的示例账号。
3. 将原生数据行保存为带日期的事实观测记录。添加本地观测记录 ID、Actor 构建版本引用和采集结果。保留 profileId 和 observedAt 的原始值。
4. 单独创建判断记录，包含本地判断 ID、研究问题、规则版本和证据引用。每条引用都指向一个观测记录 ID 及其字段路径，例如 biography。
5. 只作出范围有限、与来源原文严格相符的解读。不要将粉丝数当作专业能力的证明。
6. 在下一次会话中追加新的原生观测记录，不要覆盖旧数据。比较事实前，先确认账号身份一致。
7. 检查每项判断所依赖的数据。如果必需字段发生变化，将判断标记为需要复核。如果刷新失败，将其标记为无法获取最新支持证据，不要复制旧文本。
8. 为智能体的下一次会话提供一个精简资料包，包含当前事实、有证据支持的判断和缺失信息。确保每个结论都能追溯到对应的来源字段。

## 个人资料跟踪的分步示例

以下所有示例记录均为原创虚构内容。

profileId 为 P100 的观测记录 O1 包含简介“I build Python data tools,”，网站为 https://cedar.example, 来源状态为 ok。依据规则 R1，判断 J1 认定其简介所述内容与 Python 数据工具方向匹配。证据引用指向 O1 的 biography 字段。其未知事项注明：尚未检查实际帖子和专业能力。

第 2 次检查时，观测记录 O2 的 profileId 相同，简介为“I make garden videos,”，网站也相同。J1 所依赖的 biography 字段发生了变化，因此我们将其标记为需要复核。修订后的判断 J2 依据规则 R1，认定当前简介所述内容不匹配，并关联到 O2 的 biography 字段。我们将 J1 保留为 O1 时点的历史判断。网站没有变化，也不能使一个依赖于其他文本的主题判断继续成立。

第 3 次检查时，来源刷新失败，无法获取简介。我们在 O3 中保存实际的失败结果和时间，并标记为无法获取最新支持证据。我们不会将 O2 的简介复制到 O3 中，冒充本次观测所得的数据。判断 J2 仍是过去有证据支持的解读，不能作为最新发现。

以下 3 条不可变更的观测记录和 2 条依赖这些记录的判断记录均为原创虚构内容。

### 事实观测记录（不可变更的来源日志）

| 观测记录 ID | 目标引用 | 原生 `profileId` | `observedAt` | 原生简介／字段 | 原生结果／状态 |
| --- | --- | --- | --- | --- | --- |
| `O1` | `https://x.com/user_p100` | `P100` | `2026-10-10T10:00:00Z` | `biography`: "I build Python data tools."<br>`website`: "https://cedar.example" | `status`: "ok"<br>`failureCategory`: null |
| `O2` | `https://x.com/user_p100` | `P100` | `2026-10-11T10:00:00Z` | `biography`: "I make garden videos."<br>`website`: "https://cedar.example" | `status`: "ok"<br>`failureCategory`: null |
| `O3` | 目标引用：`P100` | `unknown` | `2026-10-12T10:00:00Z` | `biography`: `unknown`<br>`website`: `unknown` | `status`: "failed"<br>`failureCategory`: "rate_limit" |

*注意：在 `O3` 中，绝不将旧的 `P100` 原生身份值或简介值复制到失败的观测记录中。目标用户名引用单独保留，原生字段则保持为 `unknown`。*

### 依赖观测记录的判断（智能体记忆记录）

#### 判断 `J1`（首次会话）

- 判断 ID：`J1`
- 问题：这份个人资料是否声称专注于 Python 数据工具？
- 结论：`stated_bio_fit = yes`
- 规则版本：`R1`
- 证据引用：`O1.biography`
- 状态：`historical_at_O1`（最初为 `supported`）
- 未知事项：尚未检查实际帖子，也未核实相关主题的专业能力。
- 复核时间：`2026-10-10T10:05:00Z`
- 原因：依据 `O1.biography` 进行首次评估。

#### 判断 `J2`（后续会话与刷新失败）

- 判断 ID：`J2`
- 问题：这份个人资料是否声称专注于 Python 数据工具？
- 结论：`current_stated_bio_fit = no`
- 规则版本：`R1`
- 证据引用：`O2.biography`
- 状态：`fresh_support_unavailable`（在 `O2` 时为 `supported`，在 `O3` 失败后转为 `fresh_support_unavailable`）
- 未知事项：由于 `O3` 刷新失败，当前个人资料状态未知。帖子仍未检查。
- 复核时间：`2026-10-12T10:01:00Z`
- 原因：`O2.biography` 的文本改为制作园艺视频，使 `J1` 失效，并据此形成了 `J2`。`O3` 失败后，无法获取最新支持证据；此前的支持证据以 `historical_at_O2` 保留。`website` 字段没有变化，也不能为依赖于已变更 `biography` 字段的判断重新提供有效支持。

## 下一步行动

使用 [Chronometrica X Profile Metrics Actor](https://apify.com/chronometrica/x-profile-metrics) 和 [X Profile Data API Dataset Task](https://apify.com/chronometrica/x-profile-metrics/examples/x-profile-data-api-dataset) 采集当前个人资料事实。保存带日期的观测记录，并将其与依赖该记录的判断一同保存，明确注明字段引用。然后将当前支持证据、历史判断和缺失信息整理成结构化资料包，交给智能体的下一次会话。

## 来源和延伸阅读

- [X 个人资料数据 API 数据集](https://apify.com/chronometrica/x-profile-metrics/examples/x-profile-data-api-dataset)