Paper 1 / ECPO:优先推进
Executable Counterfactual Preference Optimization for Life Agents
解决部署前没有真实反馈时,如何把模糊生活目标编译成可执行反事实偏好训练信号。它更容易形成 LifeIssueBench artifact、完整 baseline table、可解释 metric 和第一篇论文闭环。
Life Agent Research · ECPO × DFCA
这页把两篇草案的 Motivation、近两年 baseline 具体方法、Method、Data、Evaluation、Experiments、Contribution 合并成一个可浏览的大 HTML。核心建议:ECPO 先做成第一篇主线;DFCA 依赖 ECPO 的 executable environment、failure taxonomy 和 replay evidence 后再独立成篇。
Decision
两篇不是互斥方向,而是一条从 pre-deployment 到 post-deployment 的连续研究线。
Executable Counterfactual Preference Optimization for Life Agents
解决部署前没有真实反馈时,如何把模糊生活目标编译成可执行反事实偏好训练信号。它更容易形成 LifeIssueBench artifact、完整 baseline table、可解释 metric 和第一篇论文闭环。
Delayed Feedback Credit Assignment for Deployed Life Agents
解决部署后真实反馈延迟、稀疏、混杂时,如何把 regret / correction / trust change 归因到 preference、clarification、planner、world model、commitment 等可更新因子。它很重要,但需要 Paper 1 的 replay environment 支撑。
Motivation
现有 agent benchmark、personalization 和 RLHF 都各自解决一部分,但都没直接解决 Life Agent 的“世界变化 + 长期后悔”问题。
代码 agent 有 unit test,网页/工具 agent 有最终状态,生活决策没有天然 oracle。用户说“帮我规划适合我的京都旅行”,真正难点不是记住用户喜欢安静,而是预算下降、大雨、同行人加入、健康约束暴露时,知道哪些原则要保持、哪些行动要改变、哪些过度泛化是禁止的。
Gap:现有 DPO/RLHF 学静态 pairwise preference;HorizonBench / RealPref 更关注 preference following 和 state tracking;SWE-bench / τ-bench / OSWorld 提供 executable evaluation,但主观偏好与长期后悔不足。
部署后的 Life Agent 反馈往往几天或几周后才出现:用户手动改了计划、后悔、放弃、复用、信任下降。直接把这个 outcome 当 scalar reward 会误更新:台风取消旅行不代表用户不喜欢安静路线;同伴临时加入不代表原偏好推断错。
Gap:HCAPO / SPA-RL / ΔBelief-RL 主要处理 step-level sparse reward;PAHF 做在线个性化闭环但 post-action feedback routing 仍不够因果化。DFCA 需要从 “which step” 升级到 “which updateable factor”。
Recent Baselines
这里按 Paper 1 / Paper 2 分开列,避免 baseline 混乱。年份以 2024–2026 为主,保留少量必须对照的经典方法。
图中不是结果分数,而是 baseline 类别对两篇论文的相关度/必要覆盖度。
方法:把任务放进可执行环境,用测试、API 状态或桌面脚本判定是否完成。
对两篇论文的不足:ECPO 借鉴 executable feedback,但补 Life Agent 的 subjective + counterfactual oracle。
方法:不训练,仅靠 prompt、工具调用、显式要求该稳/该变。
对两篇论文的不足:证明 scaffold 或 prompt 不能稳定学到 hidden user principles。
方法:用历史 profile 或人群/个体偏好数据做 personalized generation。
对两篇论文的不足:多为静态偏好;不测试预算/天气/健康等世界变量变化下原则是否保持。
方法:长历史、多月偏好演化、事件导致偏好变化的 provenance。
对两篇论文的不足:很适合做对照,但 ECPO 关注反事实世界下的 decision principle robustness。
方法:个体化 reward / user-scaling / active preference selection / Likert ordinal feedback。
对两篇论文的不足:可作为 reward/ranker/DPO baseline,但仍需 ECPO 的 bundle-wise invariance/adaptation objective。
方法:持久记忆、反思、经验库、stateful specialist agents。
对两篇论文的不足:能记住偏好,不等于知道反事实下该保持什么、该改变什么。
方法:直接给 hidden user state 和正确 world state。
对两篇论文的不足:用于估算 ECPO 距离最理想个性化决策还有多远。
方法:把 delayed outcome 当成整条轨迹 reward,直接更新 policy。
对两篇论文的不足:会把外部冲击或目标漂移错写成用户偏好。
方法:把责任归给最后一步、均匀分配或按时间衰减。
对两篇论文的不足:不能区分 missing clarification、world-state error、planner trade-off。
方法:对 long-horizon LLM agent 的 sparse reward 做 stepwise/hindsight/intrinsic credit。
对两篇论文的不足:回答哪一步贡献 reward;DFCA 回答哪个可更新决策因子导致 regret。
方法:多轮 RL、web agent curriculum、任意 agent transition 解耦训练、MCTS+self-critique。
对两篇论文的不足:能提升成功率,但不一定输出可审计、可路由的 targeted update。
方法:pre-action clarification、user-assistant simulation、proactive personalized reasoning。
对两篇论文的不足:与 DFCA 很接近;DFCA 聚焦 post-action feedback 的因果归因和 repair routing。
方法:让模型解释失败或把开放反馈变成 fine-grained metrics。
对两篇论文的不足:必须加 counterfactual replay,否则 explanation 不等于 causal preventability。
方法:所有反馈写 memory,或全部更新 preference/planner。
对两篇论文的不足:用于证明 Mis-update Rate 和 Harmful Update Rate 是真实问题。
方法:用已知 causality 和 replay 结果做归因。
对两篇论文的不足:给出 DFCA critic 可达到的上界和人评校准目标。
Method
重点是把贡献对象写清楚:ECPO 学 preference-under-counterfactuals;DFCA 做 regret-to-repair attribution。
模块 1:Life Goal Compiler。把自然语言生活目标转成 Life Issue schema:visible context、hidden user state、executable world、action space、hybrid oracle、counterfactual variants。
模块 2:Informative Counterfactual Generator。不是随机 augmentation,而是产生最能区分浅层个性化和真正决策原则的扰动:预算、天气、健康、同行人、库存、风险、时间。
模块 3:Hybrid Executable Oracle。hard checks + metamorphic checks + calibrated soft preference + regret probes,避免纯 LLM judge。
模块 4:ECPO Optimizer。训练原世界偏好、反事实偏好、invariance、adaptation、hard constraint、regret-risk、ask/act balance。
L_ECPO = L_pref + λ_inv L_inv + λ_adapt L_adapt
+ λ_hard L_hard + λ_regret L_regret + λ_ask L_ask模块 1:Outcome Decomposer。把原始 delayed feedback 分解成 adoption、manual correction、explicit satisfaction、regret、goal progress、trust delta、reengagement、complaint/undo。
模块 2:Counterfactual Replay Engine。对失败轨迹施加 factor-targeted interventions:插入澄清、替换偏好 belief、更新世界状态、降低承诺强度、移除 stale memory。
模块 3:Factorized Causal Critic。估计责任分布 q_phi(c | τ, y_T, R),输出 controllability、confidence、needs_human_review。
模块 4:Targeted Data Constructor。把 attribution 转成 ask-policy data、preference correction pairs、planner critique、world-state update、memory invalidation、commitment calibration。
Preventability(c_k) = E[U(y_T) | do(I_k), τ] - E[U(y_T) | τ] q_phi(c | τ, y_T, R) → factor responsibility distribution
benchmark + DPO,也不是简单 counterfactual data augmentation。
LLM 看失败轨迹后写一段 post-hoc explanation。
都要有可执行证据:oracle / replay / regression tests,而不是只靠自然语言解释。
Data
数据不是越大越好;第一版要小而硬,每条样本都能支撑 oracle、counterfactual、replay 或 targeted update。
第一版建议 3 个 domain:travel、shopping/outfit/product decision、health/fitness/diet。每个 domain 50–80 seed issues,每个 issue 4–6 counterfactuals,每个 world 3–5 candidate actions,总量 800–1500 executable worlds。保留 5–10% human calibration subset。
三层数据策略:1)Synthetic causal trajectories:从 LifeIssueBench 注入已知 factor errors;2)Human failure analysis:标注主要失败因子、可避免性、替代行动;3)Prototype deployment logs:2–3 个生活域 1–2 周 delayed feedback。
{
"issue_id": "travel_kyoto_042",
"domain": "travel",
"visible_goal": "想规划一次适合我的京都五日旅行,希望安静、有当地感,不想太累。",
"visible_context": {
"conversation_history": ["用户说想要安静、有当地感的路线"],
"user_stated_constraints": ["五天", "不想太累"]
},
"hidden_user_state": {
"stable_preferences": ["quiet local experience", "low crowd", "slow pace"],
"temporary_constraints": ["mild knee pain", "moderate budget"],
"latent_needs": ["avoid regret from over-scheduled plans"],
"risk_tolerance": "low"
},
"world_state": {
"budget": 1200,
"weather": "sunny",
"duration_days": 5,
"crowd_level": "normal",
"availability": {"tea_ceremony": true, "small_museum": true}
},
"counterfactual_bundle": [
{
"cf_id": "cf_budget_down_30",
"changed_variables": {"budget": "-30%"},
"change_type": "constraint_relevant",
"expected_invariants": ["preserve quiet local experience", "avoid high-crowd checklist tourism"],
"expected_adaptations": ["replace expensive tea ceremony with cheaper local alternative"],
"forbidden_changes": ["switch to crowded low-cost tourist route"],
"oracle_checks": {"hard": ["budget <= 840"], "metamorphic": ["quiet principle preserved"], "soft_rubric": ["regret risk"]}
}
],
"candidate_actions": [
{"action_id": "a_good", "action_type": "revise", "oracle_rank": 1},
{"action_id": "a_bad_invariant", "action_type": "recommend", "oracle_rank": 3}
]
}{
"trajectory_id": "travel_kyoto_user17_session3",
"visible_contexts": ["用户要求安静京都五日游", "预算未明确", "膝盖状态未明确"],
"agent_actions": [
{"t": 0, "action": "recommend", "content": "高强度寺庙步行路线", "uncertainty": {"budget": 0.72, "health": 0.81}},
{"t": 1, "action": "commit", "content": "直接确认路线", "candidate_actions": ["ask budget", "ask walking tolerance", "low-walking plan"]}
],
"delayed_outcome": {
"adoption": 0,
"manual_correction": 1,
"explicit_satisfaction": 2,
"regret": 0.72,
"goal_progress": 0.35,
"trust_delta": -0.31,
"reengagement": 0,
"complaint_or_undo": 1,
"time_to_feedback_days": 12
},
"ground_truth_or_human_causes": {
"missing_or_bad_clarification": 0.40,
"planning_tradeoff_error": 0.38,
"overcommitment_under_uncertainty": 0.22
},
"counterfactual_replays": [
{
"intervention_id": "ask_key_walking_question",
"target_factor": "missing_or_bad_clarification",
"estimated_outcome_delta": {"regret": -0.30, "trust_delta": 0.14, "manual_correction": -1},
"preventability_score": 0.76
}
],
"recommended_update_target": "clarification_policy + planner.tradeoff + commitment_policy"
}Evaluation
ECPO 看“该稳/该变/不乱变”;DFCA 看“归因准/校准好/更新对/不伤害”。
示意图强调主指标层级:ECPO 主表不应只看 OWS;DFCA 主表不应只看 CauseF1,还要看 Targeted Update Gain 和 Harmful Update Rate。
| 缩写 | 指标 | 公式 | 解释 |
|---|---|---|---|
| OWS | Original-World Success | OWS = mean_I 1[O_{w0}(π(I,w0)) passes] | 基础任务完成能力。 |
| CRS | Counterfactual Robustness Score | CRS = mean_{I,c} 1[O_c(π(I,c)) passes] | 核心指标:反事实世界下是否还能满足 oracle。 |
| IA | Invariance Accuracy | IA = mean_{c∈C_irrelevant} 1[principle(π(w0)) = principle(π(c))] | 无关扰动下是否保持用户原则。 |
| AA | Adaptation Accuracy | AA = mean_{c∈C_relevant} 1[action_change(π(w0),π(c)) matches gold_change(c)] | 关键扰动下是否正确改变行动。 |
| CVR | Constraint Violation Rate | CVR = mean_{I,c} 1[HardViolation(π(I,c))] | 预算/健康/库存/时间等可执行硬约束违反率。 |
| RRS | Regret Risk Score | RRS = E_{I,c}[RegretProbe(π(I,c),u,c)] | 长期后悔风险,连接 Paper 2。 |
| HPWR | Human Preference Win Rate | HPWR = P_human[π_ECPO ≻ π_baseline] | 人评校准 hybrid oracle。 |
| 缩写 | 指标 | 公式 | 解释 |
|---|---|---|---|
| CauseF1 | Cause Attribution F1 | CauseF1 = F1(predicted_factor_set, gold_factor_set) | 是否知道主要错因。 |
| Brier/ECE | Responsibility Calibration | Brier = mean_k (q_k - y_k)^2; ECE = calibration_error(q,y) | 避免高置信错归因。 |
| AUC | Counterfactual Preventability AUC | AUC = rank_quality(predicted_preventability, gold_preventability) | replay evidence 是否有因果价值。 |
| MUR | Mis-update Rate | MUR = P(update_target_pred != update_target_gold) | 线上最危险错误:更新错模块。 |
| HUR | Harmful Update Rate | HUR = P(update causes regression on non-culprit scenarios) | 修一个坏三个的比例。 |
| TUG | Targeted Update Gain | TUG_k = ErrorRate_before(cause_k) - ErrorRate_after(targeted_update_k) | 证明归因能带来训练收益。 |
| DOI | Delayed Outcome Improvement | DOI = E[U(y_after_update) - U(y_before_update)] | 部署后 regret/trust/reengagement 是否改善。 |
U(y) = w1*adoption + w2*goal_progress + w3*trust_delta + w4*reengagement
- w5*regret - w6*manual_correction - w7*complaint_or_undoExperiments
先让 ECPO 成型,再从失败案例自然孵化 DFCA。
用 strong LLM + ReAct/tool agent 在 LifeIssueBench 上测试 hidden-constraint violation、stated-preference overfitting、irrelevant perturbation instability、relevant perturbation non-adaptation、regret-risk amplification、over/under clarification。
Zero-shot、ReAct、static profile、full history、memory/RAG、SFT、DPO/IPO、RLHF/RLAIF、counterfactual SFT/DPO、metamorphic prompting、ECPO、oracle hidden-state upper bound。
去掉 executable oracle、counterfactuals、invariance loss、adaptation loss、regret risk、informative perturbation;比较 hybrid oracle、pure LLM judge、pure hard rules 与人评相关性。
在 synthetic causal trajectories 上比较 no-attribution、last-action、uniform、temporal decay、SPA-RL、HCAPO、ΔBelief-RL、LLM post-hoc explanation、DFCA 的 CauseF1、ECE、Preventability AUC。
验证 replay-derived preventability 是否预测人类认为“如果当时这样做就不会后悔”的 intervention;做 user_goal_drift 与 external_world_shock 的 no-blame tests。
按 DFCA attribution 分别更新 clarification policy、preference ranker、planner、world-state estimator、commitment policy;比较 Targeted Update Gain、Mis-update Rate、Harmful Update Rate、Regression Preservation。
ECPO:train travel/shopping,test health/renovation。DFCA:train travel/shopping factor attribution,test outfit/fitness/renovation,证明不是 domain template。
小规模真实或半真实用户实验,收集 1–2 周 delayed feedback,报告 regret、trust、reengagement、manual correction 的 improvement,并做 case study。
Contribution
Contribution 要避免堆模块,强调新的研究对象、可执行 artifact 和可验证 empirical finding。
Reviewer Defense
回应:ECPO 的训练单元是 bundle,而非 pair;每个 bundle 有 invariants/adaptations/forbidden changes,评测是 CRS/IA/AA/CVR/RRS,而非单点 preference accuracy。
回应:第一版小而硬,强调 executable hard checks + metamorphic checks + human calibration;不是追求 leaderboard,而是诊断性 artifact。
回应:每个 attribution 必须有 counterfactual replay evidence 和 Preventability(c_k),并通过 targeted update gain 验证。
回应:区分 controllable / non-controllable,做人评 agreement,报告 calibration,并用 ablation 证明 routing labels 有用。
回应:它们是强 baseline/邻近工作;ECPO 处理部署前反事实偏好原则,DFCA 处理部署后 post-action feedback 的 causal routing。
回应:最终成功率不是唯一目标;Life Agent 更需要知道错在哪里、该更新哪里、如何避免 harmful mis-update。
Baseline Recipes
这里把每个 baseline 翻译成可执行实验配置,避免论文实验被审稿人认为只是概念对比。
输入:visible goal、完整 conversation history 或开局 static profile;输出:单个 recommendation / ask / revise / commit action;训练:无训练;评价:OWS、CRS、IA、AA、CVR、RRS。这个 baseline 回答:长上下文或固定画像是否已经足以处理反事实世界变化。
输入:每轮反馈写入 user memory / task memory,再检索 top-k memory;输出:基于检索记忆的 action;失败观察:可能记住 quiet / low crowd,但预算下降时不知道哪些原则该保持、哪些行动该改变。
数据:把每个 counterfactual world 当作普通样本,做 SFT 或 static DPO;关键对比:它有反事实数据,但没有 bundle-wise invariance/adaptation/forbidden-change objective。若 ECPO 胜出,才能说明不是“数据更多”导致。
方法:训练或提示一个个性化 reward / rubric model,对 k 个候选 action 打分;评价:若 reward-reranker OWS 高但 IA/AA/CRS 低,说明静态 personalized reward 不能替代反事实偏好原则学习。
方法:把 delayed reward 依据时间距离分给 action:越接近 y_T 责任越大;评价:step attribution F1、factor attribution F1、MUR、HUR。预期它会过度归因最后 commit,忽略早期 missing clarification。
方法:用 hindsight critic 或 stepwise progress attribution 给每一步分 credit;关键对比:即使 step credit 准,它也未必知道应该更新 preference model、planner、world model 还是 commitment policy。
方法:把轨迹和 y_T 给 LLM,让它解释失败原因;强约束:不提供 replay evidence;评价:CauseF1 之外必须看 Preventability AUC 和 Targeted Update Gain。如果解释听起来合理但修复无效,说明它不是 causal attribution。
方法:所有 delayed feedback 都写入用户偏好或 memory;失败:把外部世界冲击、用户目标漂移、不可得信息误当成偏好变化;指标:Mis-update Rate、Harmful Update Rate、behavioral regression。
Paper Writing Outline
如果直接开写,可以按下面结构拆章节。
MVP Plan
目标是先让第一篇站住,再用它自然生出第二篇。
| 阶段 | ECPO 产物 | DFCA 产物 | Go / No-Go 标准 |
|---|---|---|---|
| Week 1–2 | 3 个 domain schema;50 个 seed issues;hard/metamorphic oracle v0 | factor taxonomy v0;delayed outcome vector schema | 每个样本能明确 visible / hidden / world / counterfactual / oracle |
| Week 3–4 | 800–1500 executable worlds;baseline runner:profile/history/RAG/SFT/DPO | 从 ECPO failures 生成 200 条 synthetic causal trajectories | baseline 表能显示 counterfactual instability 和 hidden constraint failures |
| Week 5–6 | ECPO objective + ablation;human calibration 5–10% | replay interventions for top failure factors;LLM explanation baseline | ECPO 在 CRS/IA/AA/RRS 上优于 static/counterfactual DPO |
| Week 7–8 | 跨域泛化和 oracle validity;论文主表和 case study | CauseF1、Preventability AUC、MUR/HUR preliminary table | DFCA 若不能提升 TUG,就保留为 appendix / future work;若能明显提升,则独立成第二篇 |
References
检索接口不可用时,使用 arXiv export API 和 OpenReview API 校验了关键 paper title / venue / URL。