xray-PAHF: Learning Personalized Agents from Human Feedback
挠痒
RLHF 训练的是"平均用户"偏好模型。面对具体个人:
- (a) 冷启动: 新用户没有历史数据 → agent 瞎猜
- (b) 不会改: 犯了错不能实时更新行为
- (c) 偏好漂移: 假设用户偏好静止不动, 但人是会变的
前人方案: 要么离线训练 implicit preference model (需要大量历史), 要么 RAG 注入静态 profile (偏好变了就废了)
翻译
一句话
PAHF用数学证明了:agent个性化需要pre-action主动问+post-action被动纠正两个通道互补,缺任何一个regret都会线性爆炸。
核心机制
核心直觉: 错误有两种来源, 需要两种不同的修复信号:
- Partial observability (不知道) → Pre-action 主动询问消解模糊
- Non-stationarity (过时的自信) → Post-action 被动纠正更新记忆
神来之笔: 数学证明两个通道的互补性是必要的, 不是工程上的 nice-to-have:
- 没有 post-action → 偏好漂移后 regret = Omega(T), 线性增长, 不可接受
- 没有 pre-action → 模糊情况 regret = Omega(gamma*T), 与模糊率成正比
- 两者结合 → regret = O(K + gamma), 与交互总轮次 T 无关
记忆写入管线 (detect → summarize → integrate):
- Salience detector (LLM judge): 过滤 "谢谢" vs "其实我更喜欢茶"
- 信息提取: LLM 提炼 preference note
- 相似度决策: tau 阈值 → 超过则 merge 更新, 否则 add 新条目
vs 前人 SOTA 对比:
| 维度 | 前人 SOTA | PAHF Delta |
|---|---|---|
| 数据假设 | 离线静态 | 在线交互 |
| 反馈通道 | 单通道或无 | 双通道 (pre+post) |
| 偏好模型 | 隐式 (权重里) | 显式记忆 (可读可写) |
| 冷启动 | 需要历史数据 | 空记忆启动, 第一轮就能学 |
| 漂移适应 | 重新训练 | 在线一步修正 |
| 理论保证 | 无 | Omega(T) lower bound + O(K+gamma) upper bound |
关键实验结果:
- Embodied: PAHF Phase-2 SR=72.0%, Phase-4 SR=70.5% (最高)
- Shopping: PAHF Phase-2 SR=44.3%, Phase-4 SR=43.1% (最高)
- Pre-only Phase-3 崩溃: 偏好漂移后甚至低于 no-memory baseline
关键概念
1. Pre/Post-action 双通道
想象你是一个新来的私人管家。有两种情况你会犯错:一是你根本不知道主人的喜好(该不该放糖?),二是你以为知道但主人已经变了(上个月喜欢咖啡,这个月改喝茶了)。Pre-action通道解决第一种:不确定时主动问"您要加糖吗?",避免首错。Post-action通道解决第二种:主人说"我现在喝茶了",你立刻更新记忆。数学上证明了:缺任何一个通道,你的累积错误都会随时间线性增长;两个都有,错误被封顶在常数级别。
2. Regret bound O(K+gamma)
Regret就是"你本可以做对但做错了"的累积次数。K是偏好漂移的次数(主人改口几次),gamma是模糊轮次的占比(有多少比例的请求你没把握)。PAHF证明了:如果pre-action每次模糊时问k个问题(k=log_m(T)),regret收敛到O(K+gamma) -- 跟总交互轮次T完全无关。这意味着agent的犯错率不会因为服务时间变长而恶化。这是一个理论上的强保证。
3. Salience Detection
不是所有用户反馈都有信息量。"好的谢谢"和"其实我更喜欢茶而不是咖啡"对记忆系统的价值天差地别。Salience detection就是一个LLM judge充当过滤器:判断每条反馈是噪声(客套、确认)还是信号(偏好表达、纠正、新信息)。只有通过salience检测的反馈才进入记忆写入管线(提取→合并→存储),防止噪声累积把记忆库淹没。
Napkin Sketch
+-------------------------------------------------------------------+
| |
| E[R_T] = O(K + gamma * T * m^{-k}) |
| |
| K = 偏好漂移次数 (post-action 兜底, 每次漂移至多错 1 次) |
| gamma = 模糊轮次占比 (pre-action 消解, k 问将误差压到 m^{-k}) |
| → 选 k = log_m(T): regret = O(K + gamma), 与时间 T 无关! |
| |
+-------------------------------------------------------------------+
用户偏好 M*_t (隐变量, 会漂移)
|
v
+------+------+
| PAHF 循环 |
+------+------+
|
[1. Pre-Action] ←── "不知道" → 主动问
| ↓
| 写入记忆 M'_t
v
[2. Action] ←── 综合 (I_t, O_t, m_t, f^pre)
|
v
[3. Post-Action] ←── "以为知道但错了" → 被纠正
| ↓
| 更新记忆 M_{t+1}
v
下一轮 ───────────────────────→ [1. Pre-Action]
致命盲区矩阵
┌─────────────┬──────────────┐
│ 仅 Pre │ 仅 Post │
┌────┼─────────────┼──────────────┤
│冷启│ ✅ 能问 │ ❌ 先错再学 │
│动 │ 避免首错 │ 代价高 │
├────┼─────────────┼──────────────┤
│偏好│ ❌ 自信错误 │ ✅ 纠正漂移 │
│漂移│ 不再觉得模糊│ 更新旧信念 │
└────┴─────────────┴──────────────┘
PAHF = Pre + Post → 消除两个盲区
一句话位移:个性化从"离线训练隐式偏好"迁移到"在线双通道显式记忆",用数学证明了pre+post互补的必要性。
洞见
哦,原来……个性化的 regret 不会自然收敛——没有"主动问"通道,偏好漂移后错误率会无限累积;这不是工程直觉,是数学必然。
人们直觉上认为记忆越多 agent 越懂你,随着交互增加自然越来越准。PAHF 用数学证明了这个直觉是错的:即使有完美的历史记忆,一旦偏好发生漂移(你变了),agent 会自信地用旧信念行动,regret 线性增长,且因为 agent 觉得自己"知道了",它不会再问——这是一个没有负反馈的发散系统。pre-action 通道不是锦上添花,是让系统收敛的必要条件。之所以没人这样设计,是因为"主动问用户"在工程上看起来是用户体验问题(烦不烦?),没人用在线学习理论的 regret bound 来分析它。
这个洞见的边界比论文本身更广:任何面向单个人的 AI 系统,如果没有主动消解歧义的通道,长期性能一定会退化——不是因为记忆不够,而是因为人在变而 agent 不知道。
博导审稿
选题眼光: 一流。RLHF训练"平均用户"偏好模型的痛点人人知道,但从在线学习理论角度切入、用regret bound证明双通道互补的必要性 -- 这是把工程问题提升到理论问题的正确姿势。选题本身就有教科书级别的清晰度。
方法成熟度: 上乘。理论部分(regret lower/upper bound)是严格的,双通道互补性不是拍脑袋的工程直觉而是数学必然。记忆写入管线(salience detect → extract → merge/add)设计简洁合理。但显式记忆后端刻意简单(SQLite/FAISS) -- 这既是优点(纯净实验)也是局限(与复杂记忆架构的交互效果完全未知)。
实验诚意: 最大的硬伤在这里。用LLM模拟人类用户给反馈 -- "LLM扮演人给另一个LLM反馈"的生态效度存疑。真人的反馈是嘈杂的、矛盾的、有情绪的,LLM模拟的用户太"理性"了。其他隐形假设也值得注意:用户总是提供准确的纠正反馈(现实中人会给错误/模糊反馈);salience detector能完美区分有用/无用反馈(LLM judge有误判);偏好是piecewise stationary(K次突变,真实偏好可能是渐变的)。未解问题包括:pre和post对同一偏好的写入冲突如何仲裁?记忆无限累积后检索质量何时退化?显式记忆=显式用户画像,隐私风险比隐式权重大得多。
写作功力: 结构严谨,理论部分的展开循序渐进(先给直觉再给证明),致命盲区矩阵的可视化效果好。整体学术味浓但不晦涩。
一句话判决: weak accept -- 理论漂亮,实验用LLM模拟人是硬伤。
接线
迁移:Pre-Action Clarification Channel 可以直接移植到 PAI 的 context-inject 插件——当前插件检索到记忆后无条件注入 prompt,只需加一条规则:当检索结果 confidence < theta 或者存在互相矛盾的记忆条目时,在 prompt 中注入低置信度标记,触发 agent 主动向 Fish 澄清。零架构改动,纯 prompt 策略,对应 GAP-1(低成本/高收益)。
混搭:PAHF 的"detect → summarize → integrate"写入管线 + PAI 现有的 message hooks 机制 = 一个结构化的 post-action 反馈闭环。当前 Fish 纠正时写 lessons.md,nightly cron 才同步到 Letta(延迟 24 小时)。在 message hooks 里加 post-action salience detector,识别纠正信号后立刻触发 dualWrite,而不是等 cron——把偏好漂移的响应延迟从 24h 压缩到分钟级。再叠加"search-before-write":dualWrite 前先查 similarity > 0.85 的条目,update 而非 add,解决 Letta 只 append 导致同一偏好多个版本共存的问题(GAP-4)。
反转:我一直认为 PAI 的记忆系统"比论文里的 PAHF 更复杂"——Letta + Graphiti + OV 三层,比 SQLite/FAISS 强多了。这篇论文揭示了一个盲点:复杂度不等于正确性,PAI 缺的恰恰是最基础的双通道设计。一个用 SQLite 但有 pre+post 双通道的简单系统,从理论上就优于一个用 Letta 三层存储但只有 post 通道的复杂系统——因为后者的 regret 会线性增长,前者被封顶在 O(K+gamma)。记忆基础设施的复杂度和个性化收敛性是两个完全独立的维度。