> For the complete documentation index, see [llms.txt](https://tinyhumans.gitbook.io/openhuman/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tinyhumans.gitbook.io/openhuman/zh/gong-neng/personalization.md).

# 个性化与自学习

OpenHuman 如何从日常使用中学习你的沟通风格、身份、工具、否决项和目标，并将它们作为每次回复中的环境默认值呈现。

OpenHuman 了解你的方式，就像一个好助手那样：不是让你填写设置表单，而是通过观察。随着你聊天、连接账户并纠正它，它会悄悄收集你偏好的工作方式的证据，对这些证据的稳定性进行评分，并将持久的信号提升到你的 **`PROFILE.md`** 并注入到未来每一轮的系统提示中。

没有任何内容会因单条消息而被锁定。某个偏好必须持续出现，才会获得在你的档案中的位置；任何逐渐消失的内容都会停止被注入。你始终掌控：档案是一个你可以编辑的普通 Markdown 文件，你可以固定或忘记任何已学事实。

***

## 学到了什么

学习被组织为六个 **方面类别**。每个类别都有自己的衰减速率和预算，因此某个噪声较大的类别不会挤占其他类别。

| 类别      | 它捕捉什么        | 示例                                                   |
| ------- | ------------ | ---------------------------------------------------- |
| **风格**  | 你喜欢回复以何种方式撰写 | `verbosity=简洁`, `format=项目符号`, `emoji=跳过`            |
| **身份**  | 关于你的稳定事实     | `name=Alice`, `timezone=PST`, `role=工程师`             |
| **工具链** | 你的开发者工具链     | `package_manager=pnpm`, `editor=neovim`, `lang=rust` |
| **否决**  | 你明确拒绝过的内容    | `避免使用破折号`, `不要嵌套项目符号`                                |
| **目标**  | 当前目标和进行中的项目  | 自由格式的目标句子                                            |
| **渠道**  | 你偏好的交流场所     | `primary=desktop-chat`                               |

反复出现的人物、主题和过去的线程会被 **不能** 存储在这里。这些内容存在于 [记忆树](/openhuman/zh/gong-neng/obsidian-wiki/memory-tree.md) 中，并且会通过 `memory_recall`.

***

## 学习流水线

证据流经四个阶段： **捕获 → 评分 → 渲染 → 注入**.

```
 你的活动                 候选缓冲区            稳定性检测器
 ────────────                  ────────────────            ──────────────────
 聊天轮次        ──┐
 更正           ──┤
 电子邮件签名      ──┼──→  LearningCandidate ──→  每 30 分钟重建一次
 已连接的账户──┤      （类别、键、值、    + 事件驱动（约 60 秒
 LinkedIn（可选加入）──┘       提示族、证据）   在新数据到达后）
                                                          │
                                                          │  为每个（类别、键）评分
                                                          │  解决值冲突
                                                          │  应用每类预算
                                                          ▼
                                                   user_profile 各方面
                                                   （Active / Provisional /
                                                    Candidate / Dropped）
                                                          │
                                          缓存已重建 ───┤
                                                          ▼
                                  ┌───────────────────────┴───────────────┐
                                  ▼                                        ▼
                            PROFILE.md                            系统提示
                       （受管理区块）                     （“你的长期偏好”）
```

**捕获。** 生产者监视你的活动，并推送一个 `LearningCandidate` 到一个有界缓冲区。每个候选项都会记录其 `（类别、键、值）` 所主张的内容、指向证据的指针，以及一个 **提示族** ，用于描述信号有多强： `显式` （你直接说出来的）， `结构性` （来自账户数据或文件）， `行为性` （根据你的行为推断），或 `重复出现` （统计模式）。

**评分。** 一个后台 **稳定性检测器** 大约每 30 分钟重建一次缓存，并且在新邮件或文档到达时更快重建。它会聚合某个事实的每个候选项并计算稳定性分数：更强的提示族权重更高，最新证据比过时证据权重更高（每个类别都有半衰期），而你明确说出的陈述权重翻倍。

| 类别       | 证据半衰期 |
| -------- | ----- |
| 身份       | 90 天  |
| 否决       | 60 天  |
| 工具链 / 目标 | 30 天  |
| 风格       | 14 天  |
| 渠道       | 7 天   |

该分数决定每个事实的生命周期状态：

| 状态      | 含义                           |
| ------- | ---------------------------- |
| **活跃**  | 强到足以渲染到 `PROFILE.md` 并注入到提示中 |
| **暂定**  | 已存储并跟踪，但尚未显示                 |
| **候选**  | 仍在收集证据                       |
| **已丢弃** | 已降到阈值以下；已移除                  |

当两个值争夺同一个事实时（例如 `verbosity=简洁` 与 `verbosity=详细`），稳定性更高的值获胜。失败者会被丢弃，如果它将来再次成立，它会自然重新获得位置。

***

## 它存储在哪里： `PROFILE.md`

已学习的档案会被物化为 **`PROFILE.md`** 在你的工作区中的一个可编辑的 Markdown 文件里。每个方面类别都拥有一个受管理区块（`## 风格`, `## 身份`, `## 工具链`, `## 否决项`, `## 目标`），并且只有 **活跃** 方面会被写入，且按稳定性排序。固定的条目会标记为 `*(已固定)*`.

渲染器只会操作它自己的受管理区块。你手动写入这些区块之外的任何内容（以及独立的 `## 已连接的账户` 区块，由集成层拥有）会保持不变。空类别会显示一个 `*(尚无条目)*` 占位符，而不会消失。

> **按会话冻结。** `PROFILE.md` 会在会话开始时并入代理的系统提示，并在该会话的整个生命周期中保持稳定，这使得提示缓存保持快速。你在会话中途所做的编辑会在下一次重建和下一次会话中被拾取，而不会追溯到当前会话。

***

## 它如何在回复中体现

在每一轮中，代理都会读取 Active 方面，并将它们作为一个紧凑的 **“你的长期偏好”** 部分注入到系统提示中，同时附带一条常驻指令：在回答任何依赖于过去会话的内容之前调用 `memory_recall` 。这样一来，代理默认会采用你的回复详略、工具和否决项，而无需提醒，并会进入记忆中查找具体细节。

***

## 可选的 LinkedIn 增强

在 onboarding 过程中，你可以让 OpenHuman 从 LinkedIn 启动你的身份信息。该流程会在你已连接的 Gmail 中搜索一个 `linkedin.com/in/...` 个人资料 URL，并在可用时抓取公开资料，然后通过 `PROFILE.md` 经由 `learning_save_profile` 步骤将其压缩。它只运行一次，属于一次性的即发即忘流程。它完全是可选的，如果未找到个人资料则会干净地跳过。

***

## 查看并控制学到了什么

所有已学习内容都可检查且可逆：

* **编辑 `PROFILE.md` 直接。** 这是你的文件。你可以更正、添加或删除任何内容；下一次重建会尊重你的编辑。
* **大脑页面** （底部栏中间的提升按钮， `/brain`）是记忆和智能的主页。知识图谱、目标、来源和同步状态都在这里。
* **固定** 某个事实，以将其锁定为 Active 并防止衰减，或 **遗忘** 某个事实，以将其丢弃并阻止其回归。其底层分别是 `learning_pin_facet`, `learning_unpin_facet`，以及 `learning_forget_facet` 在 `openhuman.learning_*` RPC 接口上的操作，以及 `learning_list_facets` 和 `learning_rebuild_cache`.

***

## 另请参见

* [记忆树](/openhuman/zh/gong-neng/obsidian-wiki/memory-tree.md)，其中反复出现的人物、主题和线程会被存储，并在每轮中被调用。
* [目标与待办](/openhuman/zh/gong-neng/goals-and-todos.md)，与已学习的 `goal/*` 方面相配合的目标跟踪界面。
* [Cron 与调度](/openhuman/zh/gong-neng/native-tools/cron.md)，用于在轮次之间持续处理你的工作区的计划运行。
