For the complete documentation index, see llms.txt. This page is also available as Markdown.

个性化与自学习

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

OpenHuman 了解你的方式就像一个优秀助手那样:不是让你填写设置表单,而是通过留意。随着你聊天、连接账户并纠正它,它会静静收集你喜欢的工作方式的证据,对这些证据的稳定性打分,并把持久的信号提升到你的 PROFILE.md 并进入每次未来轮次的系统提示词中。

不会因一条消息而锁定任何内容。某个偏好必须反复出现,才会在你的资料中占据一席之地;任何逐渐消退的内容都会停止注入。你始终掌控:资料是一个你可以编辑的纯 Markdown 文件,你可以固定或忘记任何已学到的事实。


学习内容

学习被组织为六种 维度类别。每个类别都有自己的衰减率和预算,因此某个噪声很多的类别不会挤占其他类别。

它捕获什么
示例

风格

你喜欢回复如何写

冗长程度=简洁, 格式=项目符号, 表情符号=跳过

身份

关于你的稳定事实

姓名=Alice, 时区=PST, 角色=工程师

工具链

你的开发者工具链

包管理器=pnpm, 编辑器=neovim, 语言=rust

否决

你明确拒绝过的内容

避免使用破折号, 不使用嵌套项目符号

目标

当前目标和进行中的项目

自由格式的目标句子

频道

你偏好的交流场所

主=desktop-chat

反复出现的人物、主题和过往线程都 存储在这里。它们位于 记忆树 中,并由 memory_recall.


学习流水线

证据会经过四个阶段: 捕获 → 评分 → 渲染 → 注入.

 你的活动                 候选缓冲区            稳定性检测器
 ────────────                  ────────────────            ──────────────────
 聊天轮次        ──┐
 纠正            ──┤
 邮件签名        ──┼──→  LearningCandidate ──→  每 30 分钟重建一次
 已连接账户      ──┤      (类别、键、值、      + 事件驱动(约 60 秒
 LinkedIn(可选)──┘       线索族,证据)   新数据到来后)

                                                          │  对每个(类别、键)评分
                                                          │  解决值冲突
                                                          │  应用每类预算

                                                   user_profile 维度
                                                   (Active / 暂定 /
                                                    候选 / 已丢弃)

                                          CacheRebuilt ───┤

                                  ┌───────────────────────┴───────────────┐
                                  ▼                                        ▼
                            PROFILE.md                            系统提示词
                       (受管理块)                     (“你的固定偏好”)

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

评分。 后台 稳定性检测器 大约每 30 分钟重建一次缓存,在新的邮件或文档到来时会更早。它会聚合某个事实的所有候选项并计算稳定性分数:更强的线索族权重更高,较新的证据比陈旧证据更重要(每个类别都有半衰期),而你明确说出的陈述会让权重翻倍。

证据半衰期

身份

90 天

否决

60 天

工具链 / 目标

30 天

风格

14 天

频道

7 天

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

状态
含义

Active

足够强,可渲染到 PROFILE.md 并注入到提示词中

暂定

已存储并跟踪,但尚未显示

候选

仍在收集证据

已丢弃

衰减到阈值以下;已移除

当两个值争夺同一事实时(例如 冗长程度=简洁 还是 冗长程度=详细),稳定性更高的值获胜。失败者会被丢弃,如果它再次变成真实,就会自然重新赢回位置。


存储位置: PROFILE.md

学习得到的资料会落地为 PROFILE.md 在你的工作区中,一个真实可编辑的 Markdown 文件。每个维度类别都拥有一个受管理的块(## 风格, ## 身份, ## 工具链, ## 否决项, ## 目标),而且只有 Active 这些维度会被写入,并按稳定性排序。被固定的条目标记为 *(已固定)*.

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

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


它如何在回复中呈现

在每一轮中,代理都会读取 Active 维度,并将它们作为精简的 “你的固定偏好” 系统提示词中的一个部分,同时还有一条始终保留的指令,要求调用 memory_recall 在回答任何依赖过往会话的内容之前。结果是,代理会默认采用你的冗长程度、工具和否决项,而无需提醒;而具体细节则会从记忆中取用。


可选的 LinkedIn 增强

在入职过程中,你可以让 OpenHuman 从 LinkedIn 为你的身份启动引导。流程会在你连接的 Gmail 中搜索一个 linkedin.com/in/... 个人资料 URL,并且(如可用)抓取公开资料,然后将其发现压缩为 PROFILE.md 通过 learning_save_profile 步骤。它只运行一次,作为一次即发即弃的处理。它完全由你选择启用;如果未找到资料,则会干净地跳过。


审阅并控制已学内容

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

  • 编辑 PROFILE.md 直接。 文件归你所有。修正、添加或删除任何内容;下一次重建会尊重你的编辑。

  • Brain 页面 (底部栏中间凸起的按钮, /brain)是记忆和智能的主页。知识图谱、目标、来源和同步状态都在这里。

  • 固定 某个事实,使其保持 Active 并免受衰减,或 忘记 忘记某个事实,以将其丢弃并阻止其回来。底层上,这些是 learning_pin_facet, learning_unpin_facet,以及 learning_forget_facet 针对 openhuman.learning_* RPC 接口,以及 learning_list_facets 以及 learning_rebuild_cache.


另请参阅

  • 记忆树,在这里,反复出现的人物、主题和线程都存放并按轮次召回。

  • 目标与待办,与已学习的 goal/* 维度。

  • 潜意识循环,在轮次之间持续思考你的工作区的后台引擎。

最后更新于