> 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 了解你的方式就像一个优秀的助手：不是让你填写设置表单，而是通过留意。随着你聊天、连接账户并纠正它，它会悄悄收集你喜欢的工作方式的证据，对这些证据进行稳定性评分，并将持久的信号提升到你的 **`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 特征
                                                   （活跃 / 暂定 /
                                                    候选 / 已丢弃）
                                                          │
                                          CacheRebuilt ───┤
                                                          ▼
                                  ┌───────────────────────┴───────────────┐
                                  ▼                                        ▼
                            PROFILE.md                            系统提示
                       （受管理区块）                     （“你的固定偏好”）
```

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

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

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

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

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

当两个值为同一事实竞争时（例如 `verbosity=简洁` 与 `verbosity=详细`），稳定性更高的值获胜。失败者会被丢弃，如果它再次变为真实，就会自然重新赢回其位置。

***

## 存储位置： `PROFILE.md`

学习到的配置文件会具体化为 **`PROFILE.md`** 在你的工作区中，一个真实且可编辑的 Markdown 文件。每个特征类都拥有一个受管理的区块（`## 风格`, `## 身份`, `## 工具链`, `## 否决项`, `## 目标`），并且只 **Active** 写入特征，并按稳定性排序。已固定的条目标记为 `*(已固定)*`.

渲染器只会处理它自己管理的区块。你手动写在这些区块之外的任何内容（以及由集成层拥有的单独 `## 已连接的账户` 块）都不会被触碰。空类别会显示 `*(尚无条目)*` 占位符，而不是直接消失。

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

***

## 它如何在回复中体现

在每一轮中，代理都会读取“活跃”特征，并将它们作为一个精简的 **“你的固定偏好”** 部分注入系统提示中，同时附上一条固定指令：在回答任何依赖过往会话的问题之前先调用 `memory_recall` 。这样，代理会默认采用你的冗长度、工具和否决项，而无需提醒，并会到记忆中查找具体细节。

***

## 可选的 LinkedIn 丰富补充

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

***

## 查看并控制已学习内容

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

* **编辑 `PROFILE.md` 即可。** 这是你的文件。你可以更正、添加或删除任何内容；下一次重建会尊重你的编辑。
* **“大脑”页面** （底部栏中央上移按钮， `/brain`）是记忆和智能的主页。知识图谱、目标、来源和同步状态都在这里。
* **固定** 某个事实可将其锁定为活跃状态并使其免受衰减，或者 **忘记** 某个事实可将其丢弃并阻止其返回。其底层对应的是 `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/*` 特征配对的目标跟踪界面。
* [潜意识循环](/openhuman/zh/gong-neng/subconscious.md)，在轮次之间持续思考你的工作区的后台引擎。
