对应原课:CMU 11-667 Fall 2025 · Lecture 8 · Thu 18-Sep-2025 · Evaluation and Learning in Human-Agent Interaction(客座:Hao Zhu,斯坦福大学) 原课 slides:Evaluation and Learning in Human-Agent Interaction(课表上标为 agent-human interaction) 阅读材料:Collins et al. (2024), Building machines that learn and think with people;Bansal et al. (2024), Challenges in Human-Agent Communication;NAACL 2025 教程 Social Intelligence in the Age of LLMs 配套代码:code/lecture08/(1 个模块 + 4 个演示脚本,纯 Python 模拟,全部在 10 秒内跑完) 本讲的写法:骨架来自客座讲座的 slides(Collaborative Gym、AutoLibra、SOTOPIA 等工作);“花园小店”模拟环境是补充的——它让”任务完成没有”和”用户满不满意”可以分开精确测量。所有数字都来自配套代码的实际输出。
目录
- 0. 本讲导读
- 1. 什么是人与智能体交互
- 2. 从人的角度看智能体
- 3. 评估人与智能体的协作:Collaborative Gym
- 4. 模拟用户与 LLM 评审
- 5. 从开放式反馈里归纳指标:AutoLibra
- 6. 从交互里学习
- 7. 社会智能
- 8. 小结、常见误区、练习
0. 本讲导读
0.1 这一讲要回答的问题
讲座一开始,Hao Zhu 请听众想 5 个动词填空:“智能体 ____ 人”。答案五花八门:和人协作、理解人、教人、欺骗人、和人一起工作、向人学习、增强人、模拟人、和人聊天、超越人、和人一起思考。每一个动词都对应一种人与智能体的关系,也对应一种不同的”做得好”的标准。
前几讲的评估(第 5、7 讲)都是”模型 vs 基准”:一个模型面对一套题,答对多少。可是越来越多的 LLM 系统不是在答题,而是和人一起完成任务:帮人写论文的相关工作、规划旅行、分析表格、编程。这时候:
- “任务完成了没有”还是唯一的标准吗?智能体有没有告诉人它在做什么?该不该先问一句?
- 真人实验又慢又贵,用 LLM 扮演用户来评估,可信吗?用 LLM 给对话打分,可信吗?
- 用户的反馈常常是一句随口的抱怨(“你怎么又问我颜色”),怎样把它变成可以系统使用的评估指标?
- 智能体能不能从和人的交互里学会”对这个人该怎么做”?
0.2 学完这一讲你应该能
- 区分”智能体视角”和”LLM 视角”的智能体研究,说出 LLM 为智能体提供了哪些先验能力;
- 解释人与智能体交互(HAI)的评估为什么不能只看任务完成率,说出 CoGym 的主要发现和失败分类;
- 说出用模拟用户和 LLM 评审做评估的偏差来源,并设计检验它们的方法;
- 解释 AutoLibra 怎样从开放式反馈中归纳指标,以及覆盖率和冗余度两个元指标;
- 比较”试错式”和”基于用户模型”的个性化学习;解释偏好来源怎样决定奖励模型学到什么;
- 说出社会智能(协调、社会规范、理解他人的信念)对智能体的意义和评估难点。
0.3 本讲的实验平台:花园小店
hai_world.py 是一个纯 Python 的小环境(不训练神经网络):
- 商品:43 种(花园世界的名词),每种有 类别 / 颜色 / 大小 / 价位 四个属性,共 33 种不同的属性组合。例如 apple 是 fruit, green, small, dear。
- 用户:心里想要某种属性组合(按商品的流行度抽取),开口只说一部分(“i want a big fruit”)。用户有自己的”性格”:回答会不会出错、最多能忍受几个问题、每个问题有多烦、在不在乎被告知”你打算怎么做”、会不会主动多说。
- 智能体每一轮可以 ask(问一个属性)、tell(告诉用户它打算怎么做——不推进任务,只是沟通)、act(推荐一件商品,对话结束)。
- 满意度 = 1[推荐对了] − 每个问题的扣分 − 0.3 × [在乎被告知却没被告知] − 0.5 × [被问烦了离开]。
| 智能体 | 做法 |
|---|---|
| 直接做 | 不问不说,按已知信息推荐最可能的商品(完全自主) |
| 问到底 | 把没听过的属性全问一遍再推荐 |
| 健忘 | 和”问到底”一样,但不记得用户开口时说过什么 |
| 按信息价值问(门槛 θ) | 只在”问了之后成功率的预期提升 > θ”时才问;可选”推荐前先告知” |
| 话痨 | 问到底 + 先告知 + 满嘴客套话 |
三种用户人群:理想化模拟(从不答错、无限耐心、不嫌问题烦、不在乎被告知)、LLM 式模拟(几乎不答错、非常配合、常常主动多说、无限耐心)、“真实”人群(10% 的回答是错的、能忍受 1~3 个问题、每个问题扣 0.05~0.2 分、一半的人在乎被告知)。这些参数是编的,不是测出来的——它们的作用是让”模拟用户和真实用户不一样”这件事可以被量化地讨论。
1. 什么是人与智能体交互
1.1 一些例子
slides 列了几种场景,问哪些算”人与智能体交互”:AI 作为观察者、AI 作为提示工程师、AI 作为合作的软件工程师、AI 作为聊天机器人、AI 教人、AI 作为家用服务机器人。它们的共同点是:一个能自己做决定、自己行动的系统,和人处在同一个任务里。
1.2 “LLM 智能体”是什么?两种视角
“LLM 智能体”这个词有两种理解:
- 智能体视角(agent thinking):智能体是做决定的主体,LLM 只是给它提供能力的部件——“由 LLM 驱动的决策者”;
- LLM 视角(LLM thinking):智能体是接上了工具、记忆等的 LLM——“LLM + 外挂”。
1.3 LLM 提供了哪些能力
从 LLM 视角看,可以利用的能力有:
- 编程:LLM 之前的”自然语言到代码”是语义解析,生成抽象语法树(Yin & Neubig 2017);LLM 时代是指令跟随(Codex, 2021),今天”让 LLM 写代码,它就能跑”(vibe coding)。
- 记忆:检索增强生成(RAG,第 11 讲);超长上下文。
- 上下文学习:LLM 之前的小样本学习靠基于梯度的元学习(Finn et al. 2017);GPT-3 之后上下文学习”涌现”(Brown et al. 2020,第 6、9 讲),今天千万 token 的上下文里几乎能完美回忆。
- 落地(grounding):纯文本的 LLM 也有丰富的概念结构(Patel et al. 2022);多模态模型(GPT-4V)能做具身决策(Wen et al. 2023 在自动驾驶上的探索)。
从智能体视角看,一个智能体要和世界交互,需要的能力是:
- 感知:理解观察的语义结构(例如 Gemini Robotics);
- 规划:任务与运动规划,自顶向下的分解加自底向上的约束(Kaelbling & Lozano-Pérez 2011);
- 能动性(agency):智能体的本质,但难以定义——有人用个体性、规范性、不对称性和时空性来定义它;也有人指出能动性依赖于观察者的参照框架;
- 学习:通过搜索学习(AlphaGo),通过强化学习学习(DQN)。
两种视角可以结合:LLM 为这些智能体能力提供了很好的先验,所以智能体可以从 LLM 出发;反过来,构建智能体时可以从智能体能力的角度去用 LLM。例如:用编程能力做规划和学习(Code as Policies 让 LLM 写控制机器人的程序;Eureka 让 LLM 写强化学习的奖励函数);用记忆增强感知(长期记忆的机器人问答、JARVIS-1);把感知输入改成 LLM 擅长的形式(SWE-agent 的”智能体-计算机接口”、WebArena 用无障碍树表示网页)。
2. 从人的角度看智能体
上面这些研究关注的都是技术能力:怎样让模型更会和世界交互?LLM 是不是好的起点?在 LLM 之上该建什么算法和系统?
这一讲换一个角度——人的角度:人到底想从 AI 智能体那里得到什么?
- 可靠性?
- 安全?
- 隐私?
- 遵守社会规范?
- 社会智能?
- 掌控感?
这些都不是”任务完成率”能衡量的。接下来分两部分:评估人与智能体的交互(§3–§5),以及智能体从人的反馈中学习(§6)。
3. 评估人与智能体的协作:Collaborative Gym
3.1 从”环境 ↔ 智能体”到”环境 ↔ 智能体 ↔ 人”
经典强化学习的设定是环境和智能体两方:智能体行动,环境返回观察。人与智能体交互多了第三方:智能体既要在环境里行动,也要和人沟通;人也可以直接改变环境。
Collaborative Gym(CoGym,Shao et al. 2025)是一个评估人与智能体协作的平台,覆盖旅行规划、写相关工作、表格分析等任务。slides 上的例子:用户要智能体为一份研究计划(“用于脉冲神经网络的字符级词嵌入”)写相关工作一节。智能体能用论文检索、文献库、编辑器等工具。中途用户插话:“也许可以多加一些 NLP 任务里的嵌入方法的相关工作”;智能体检索之后反问:“你有没有特别想加的论文或主题?如果没有,我就把找到的都加进去。”
要让人和智能体协作,需要三样东西:训练、接口和评估。CoGym 里的智能体带有情境推理的能力:每收到一个事件通知(用户说话了、环境变了),先更新对当前情境的理解,再在三种行动中选一个——执行一个任务动作、给用户发一条消息、把决定权交给人。
3.2 CoGym 的主要发现
- 人 + 智能体的团队,任务表现好于完全自主的智能体(GPT-4o、Llama-3.1-70B,三类任务都是)。
- 主动沟通对协作有帮助。他们定义了主动性熵(initiative entropy)来描述协作中”谁在推动对话”: 其中 是第 方”主动发起”的话语所占比例, 是参与方数;任何一方完全没有主动发起时定义为 0。
- 从对话轨迹里能发现今天的智能体的典型失败(真人 / 模拟用户实验中出现的比例):
| 失败类型 | 描述 | 真人 | 模拟 |
|---|---|---|---|
| 沟通 | 不告诉用户就自己处理任务 | 65% | 80% |
| 情境感知 | 不顾对话上下文,把每个请求当成孤立的任务 | 40% | 47% |
| 规划 | 答应了任务却没执行 | 39% | 43% |
| 环境感知 | 不评估请求在现有工具下是否可行 | 28% | 13% |
| 个性化 | 依赖通用模板,不适应每个用户的需要 | 16% | 11% |
3.3 实验:任务完成率 vs 满意度
代码 01 §1 先看一个例子。用户最多忍受 2 个问题,每个问题扣 0.1 分,在乎被告知,开口说”i want a big fruit”,心里想要 fruit, green, big, dear:
【直接做】 店员:here is the plum , white big cheap → 错,满意度 −0.30
【问到底】 店员:what color do you want ? 用户:green
店员:do you want a cheap one or a dear one ? 用户:dear
店员:here is the cherry , green big dear → 对,满意度 +0.50
【健忘】 店员:what color … what size …(用户已经说过 big)
店员:do you want a cheap one or a dear one ?
用户:this takes too long , bye → 离开,满意度 −1.10
【按信息价值问+告知】(同"问到底"的两个问题)
店员:i will pick the best match for what you told me 用户:ok
店员:here is the cherry , green big dear → 对,满意度 +0.80
代码 01 §2 在 2000 位”真实”用户上:
| 智能体 | 成功率 | 问题数 | 被问跑 | 告知了 | 满意度 | 主动性熵 |
|---|---|---|---|---|---|---|
| 直接做 | 41.9% | 0.00 | 0.0% | 0.0% | +0.267 | 1.000 |
| 问到底 | 39.2% | 2.41 | 51.6% | 0.0% | −0.298 | 0.908 |
| 健忘 | 29.8% | 2.62 | 62.8% | 0.0% | −0.474 | 0.920 |
| 按信息价值问(0.1) | 62.0% | 1.80 | 25.2% | 0.0% | +0.135 | 0.905 |
| 按信息价值问(0.1)+告知 | 62.0% | 1.80 | 25.2% | 74.8% | +0.249 | 0.841 |
| 按信息价值问(0.2)+告知 | 66.9% | 1.41 | 13.0% | 87.1% | +0.421 | 0.835 |
- 协作提高了任务完成率:直接做不问就只能猜,成功率 42%;按信息价值有选择地提问,成功率 62%~67%——和 CoGym 的第一个发现一致。
- 但提问有代价:“问到底”问得最多,一半的用户被问烦了直接离开,成功率反而不到四成,满意度垫底。门槛 0.1 的智能体对这群没耐心的用户也问得太多:四分之一的人被问跑,满意度(+0.135)不如直接做(+0.267)。把门槛提到 0.2、推荐前再说一句”我打算怎么做”,两项才都排到第一。
- 告知的价值只体现在满意度上:同一个提问策略,加上告知,成功率完全不变,满意度从 +0.135 升到 +0.249。
- 两种排名的分歧在中间:“直接做”按成功率排第四,按满意度排第二——两个指标对”要不要和用户协作”给出了不同的回答。
“按信息价值提问”是怎样决定问不问的?当前推荐的成功率是后验最大的那个目标的概率 。问属性 之后,每种可能的回答 都会让后验更新,推荐的成功率变成 ;
就是”问 的信息价值”。价值最大的问题如果超过门槛 θ 就问,否则直接推荐(练习 2)。θ 相当于智能体心里”一个问题值多少”——它应该和用户的耐心匹配(§6)。
3.4 实验:失败的分类
代码 01 §3 仿照 CoGym 的轨迹分析,统计每类失败出现在多少比例的对话里:
| 智能体 | 沟通 | 情境感知 | 规划 | 结果 |
|---|---|---|---|---|
| 直接做 | 50.5% | 0.0% | 0.0% | 58.1% |
| 问到底 | 50.5% | 0.0% | 51.6% | 9.2% |
| 健忘 | 50.5% | 28.4% | 62.8% | 7.4% |
| 按信息价值问(0.1) | 50.5% | 0.0% | 25.2% | 12.8% |
| 按信息价值问(0.1)+告知 | 12.8% | 0.0% | 25.2% | 12.8% |
| 按信息价值问(0.2)+告知 | 6.3% | 0.0% | 13.0% | 20.2% |
(沟通:在乎被告知的用户没被告知;情境感知:问了用户已经说过的属性;规划:问太多、用户离开;结果:没离开的对话里推荐错了。)“健忘”的智能体在 28% 的对话里问了用户已经说过的事。这几类失败都不会出现在任务完成率里,只有看对话本身才能发现。
3.5 主动性熵需要解读
上表里”直接做”的主动性熵是 1.000——最”均衡”——因为整段对话只有两句:用户开口,店员推荐。换一批更主动的用户(LLM 式模拟,常常主动多说),“按信息价值问”的主动性熵从 0.905 变成 0.935。它衡量的是”这段对话”,不只是”这个智能体”:适合用来描述协作的形态(谁在推动对话),不适合单独当作”越高越好”的目标(第 5 讲的构念与指标)。
4. 模拟用户与 LLM 评审
4.1 模拟用户的排名可信吗?
真人实验又慢又贵,于是大家用 LLM 扮演用户。代码 02 §1 把同一批智能体放在三种用户面前(满意度,括号里是成功率):
| 智能体 | 理想化模拟 | LLM 式模拟 | “真实”人群 |
|---|---|---|---|
| 直接做 | +0.42(42%) | +0.40(45%) | +0.27(42%) |
| 问到底 | +1.00(100%) | +0.87(97%) | −0.30(39%) |
| 健忘 | +1.00(100%) | +0.86(96%) | −0.47(30%) |
| 按信息价值问(0.1) | +1.00(100%) | +0.89(97%) | +0.14(62%) |
| 按信息价值问(0.1)+告知 | +1.00(100%) | +0.95(97%) | +0.25(62%) |
| 按信息价值问(0.2)+告知 | +0.89(89%) | +0.90(92%) | +0.42(67%) |
| 话痨 | +1.00(100%) | +0.93(97%) | −0.23(39%) |
理想化模拟用户面前,五个会提问的智能体并列满分——问多少都不要紧;到了真实人群里,“问到底""话痨""健忘”排在最后三名。理想化模拟和真实人群的排名几乎完全相反(Kendall τ = −0.81);LLM 式模拟好一些,也只有 +0.24。用模拟用户挑出来的智能体,部署后可能是最差的那个。
代码 02 §2 看各类失败在三种用户里出现的比例(7 个智能体的平均):
| 失败类型 | 理想化模拟 | LLM 式模拟 | “真实”人群 |
|---|---|---|---|
| 沟通 | 0.0% | 11.0% | 35.4% |
| 情境感知 | 4.2% | 7.2% | 4.1% |
| 规划(被问跑) | 0.0% | 0.0% | 32.8% |
| 结果 | 10.0% | 11.1% | 18.5% |
理想化的模拟用户根本暴露不出”沟通”和”规划”两类失败,LLM 式用户也暴露不出”规划”失败(它们耐心无限)。反过来,LLM 式用户开口时更常多说一个属性,“健忘”的智能体就更常重复提问(7.2%,真实人群 4.1%)。模拟用户的”性格”决定了哪些失败会被暴露、暴露多少——CoGym 的真人和模拟实验也是这样(§3.2 的表:两边的比例在每一类上都不同,“环境感知”失败在真人实验里是模拟实验的两倍多)。
4.2 LLM 评审可信吗?
另一种省钱的办法是让 LLM 读对话记录打分。SOTOPIA 的经验是:LLM 评审本身可能和人不一致(slides 列为评估社会智能的挑战 4)。
代码 02 §3 造了两个只看对话文字的评审。评审看不到用户心里的目标,只能检查”推荐的东西和用户说过的话是否一致”——用户答错时,一致也可能是错的。
- 零样本评审:凭”常识”打分——一致 +1、用户离开 −1、每个礼貌词 +0.1、店员每说一句话 +0.1(显得”周到”);
- 校准过的评审:同样的特征,权重用 200 段有人工满意度打分的对话做线性回归学出来(“给评审看样例”)。
| 智能体 | 真实满意度 | 零样本评审 | 校准后评审 |
|---|---|---|---|
| 直接做 | +0.267 | +1.100 | +0.405 |
| 问到底 | −0.298 | +0.205 | −0.269 |
| 健忘 | −0.474 | +0.003 | −0.422 |
| 按信息价值问(0.1) | +0.135 | +0.745 | +0.086 |
| 按信息价值问(0.1)+告知 | +0.249 | +0.820 | +0.304 |
| 按信息价值问(0.2)+告知 | +0.421 | +1.053 | +0.504 |
| 话痨 | −0.227 | +0.593 | −0.178 |
| 评审 | 和真实满意度的 Spearman 相关(逐段对话) | 智能体排名的 Kendall τ |
|---|---|---|
| 零样本 | 0.684 | 0.90 |
| 用 200 个样例校准 | 0.716 | 1.00 |
零样本评审给”话痨”+0.59、给”问到底”+0.21:同样的提问、同样的结果,只因为多了客套话和一句告知,“话痨”就被评得高出一截——而在真实用户那里,两者的差别只来自”告知”这一项。零样本评审的第一名是”直接做”:它从不让用户离开,推荐的东西又总和用户说过的那一两句话”一致”——评审看不到用户心里没说出来的目标,就发现不了”推荐错了”。整体排名大致不错,但会在细节上被表面特征带偏;用 200 个人工打分的样例校准之后,排名完全正确。AutoLibra 的实验也发现:不给样例时,LLM 评审的判断能力明显更差。
4.3 信息不对称
用户知道自己要什么,智能体只能从对话里推断。代码 02 §4 比较智能体推荐时”自认为的成功率”(它的后验)和实际成功率:
| 用户 | 智能体 | 自认为的成功率 | 实际成功率 |
|---|---|---|---|
| 理想化模拟 | 按信息价值问(0.1) | 99.4% | 99.7% |
| 理想化模拟 | 直接做 | 40.7% | 41.9% |
| “真实”人群 | 按信息价值问(0.1) | 99.0% | 82.9% |
| “真实”人群 | 直接做 | 40.7% | 41.9% |
理想化用户面前,智能体的自信是准的;到了会答错的真实用户面前,它推荐时自认为 99% 能对,实际只有 83%(只算没被问跑、真的做了推荐的对话)——它的用户模型里没有”人会说错”这件事。slides 把这列为评估社会智能的挑战 5:在不完全信息下,合作和竞争都很难;模拟时还要模拟”每一方应该知道什么”。
5. 从开放式反馈里归纳指标:AutoLibra
5.1 两种评估
slides 用关门打比方:
- 目标导向的评估:任务是”把门关上”,检查
is-closed(door)。客观、可验证,但只看端到端的结果。OSWorld、SWE-bench、WebArena、WebVoyager、BrowseComp、GAIA 都是这类:WebArena 检查结果或最终的网页状态。 - 行为评估:门是轻轻关上的,还是摔上的?具体,但通常要专家手工设计。CoGym、SOTOPIA、多智能体失败分析属于这类:SOTOPIA 从 7 个维度评估一段对话(关系、可信度、财务、社会规范、知识、秘密、目标)。
5.2 AutoLibra 的做法
AutoLibra(Zhu et al. 2025)想把行为评估的指标从用户的开放式反馈里自动归纳出来——反馈既不是打分,也不是偏好,就是一句随口的话。归纳出的指标例如:“目标达成与结果有效性""对话的自然与效率""步骤效率与动作冗余""自主性与主动性""错误恢复与调整""内容质量与连贯性""有选择地与相关对象交互”……
难点有两个:
- 反馈往往太具体(“如果发现按钮是灰的,就别再点了”),怎样推广成一般的指标?AutoLibra 先用 LLM 把每条反馈”落地”成对具体行为的描述(一条反馈可能对应两个以上的方面),再用 LLM 把这些方面聚类成指标,每个指标有定义、好的行为和坏的行为的例子。
- 怎样知道一组指标好不好?用 LLM 评审在轨迹上检测每个指标的”正面 / 负面 / 不适用”特征,然后算两个元指标:覆盖率(人的反馈里提到的方面,有多少被某个指标覆盖)和冗余度(检测出的特征里,有多少和任何反馈都对不上)。slides 的例子:聚合覆盖率 82%、聚合冗余度 75%。整个过程是闭环的:调整指标集,最大化覆盖率、最小化冗余度。
他们的发现:优化出的指标集覆盖率最高、冗余度最低,在留出的数据上略差;不给样例时 LLM 评审的能力明显更差;归纳出的指标大多能和专家提出的指标对上,而且更具体、更落地,还发现了一些以前论文忽略的指标;指标还能用来改进智能体——每个阶段都会发现新的指标,形成比”任务成功”更平滑的进步阶梯。
5.3 实验:一个简化版的 AutoLibra
代码 03 让”真实”用户在每段对话后写开放式反馈:每个真实的问题以 70% 的概率被写成一句话,同一个问题有 4~5 种说法:
【直接做,失败】 it gave me the wrong thing / no explanation before it chose
【问到底,失败,问了 3 个】 it gave me the wrong thing / the questions never ended
【健忘,失败,问了 3 个】 that is not what i asked for / the questions never ended
【按信息价值问,成功,问了 2 个】so many questions before anything happened / i had no idea what it was going to do
6 个智能体 × 600 位用户,共 3026 句反馈、33 种不同的句子。归纳的方法是最简单的版本:TF-IDF 向量 + 平均链接的层次聚类,合并门槛 θ 决定聚类的粗细。一半的反馈用来归纳,另一半用来做元评估(这里的覆盖率用生成数据时的真实标签判断”讲的是不是同一件事”,冗余度近似为”和别的指标讲同一件事的指标所占比例”):
| 合并门槛 θ | 指标数 | 覆盖率 | 冗余度 | 覆盖率 − 冗余度 |
|---|---|---|---|---|
| 0.05 | 7 | 70.9% | 57.1% | 0.137 |
| 0.10 | 9 | 86.6% | 55.6% | 0.311 |
| 0.20 | 11 | 98.0% | 54.5% | 0.435 |
| 0.30 | 16 | 98.0% | 68.8% | 0.293 |
| 0.45 | 23 | 100.0% | 78.3% | 0.217 |
| 0.60 | 29 | 100.0% | 82.8% | 0.172 |
θ 太小,不同的问题只要共享几个词就被合并,覆盖率低;θ 太大,同一个问题的不同说法各成一类,指标重复,冗余度高。θ = 0.2 时得到 11 个指标:
| 指标 | 关键词 | 句数 | 例 |
|---|---|---|---|
| 1 | questions / many / happened / too | 422 | so many questions before anything happened |
| 2 | asking / much / things / stop | 258 | it kept asking me things |
| 3 | wrong / wanted / color / item | 188 | this is the wrong item |
| 4 | no / chose / explanation / idea | 139 | i had no idea what it was going to do |
| 5 | told / already / doing / wish | 133 | it never told me what it was doing |
| 6 | not / listening / for / asked | 81 | that is not what i asked for · it was not listening to me |
| 7–10 | great / right / nice / perfect …… | 50~74 | great , exactly what i wanted · it got it right · nice and quick · perfect choice |
| 11 | said / ask / start / although | 28 | it asked about the size although i already said it |
没有人事先告诉它有哪几类问题,它从用户自己的话里找出了推荐错了、问太多、没告知、重复问、满意这几类。但只靠”用了哪些词”衡量相似度,认不出换了说法的同义句:“问太多”被分成两个指标,“没告知”两个,“满意”四个——这就是 55% 的冗余度。反过来,“that is not what i asked for”(推荐错了)和”it was not listening to me”(重复提问)因为都有 not,被归进了同一个指标。这正是 AutoLibra 要用 LLM 做落地和归纳的原因。
用归纳出的指标评估智能体(每格:多少比例的对话里,用户的反馈触发了这个指标;节选):
| 智能体 | 成功率 | 问太多(指标 1) | 推荐错(指标 3) | 没告知(指标 4) | 没告知(指标 5) | 重复问(指标 11) |
|---|---|---|---|---|---|---|
| 直接做 | 41.7% | 0.0% | 32.0% | 18.2% | 16.5% | 0.0% |
| 问到底 | 38.2% | 36.0% | 4.2% | 7.8% | 6.7% | 0.0% |
| 健忘 | 28.2% | 38.8% | 4.0% | 7.0% | 9.8% | 8.5% |
| 按信息价值问(0.1) | 58.3% | 24.5% | 6.5% | 12.2% | 13.0% | 0.0% |
| 按信息价值问(0.1)+告知 | 58.3% | 23.2% | 7.7% | 0.0% | 0.0% | 0.0% |
| 按信息价值问(0.2)+告知 | 68.2% | 15.2% | 10.3% | 0.0% | 0.0% | 0.0% |
“门槛 0.1”和”门槛 0.1 + 告知”的成功率完全一样,任务完成率区分不了它们;归纳出的”没告知”指标把两者清楚地分开了。“健忘”的智能体被”重复提问”指标单独抓了出来。行为评估补上了目标导向评估看不到的东西。
6. 从交互里学习
6.1 个性化:有用户模型,学得才快
CoGym 的失败类型里有一条”个性化:依赖通用模板,不适应每个用户的需要”。代码 04 §1:同样 300 位”真实”用户,每人来店里 40 次(每次的目标随机)。智能体可以在 10 种配置(提问门槛 0.05 / 0.1 / 0.2 / 0.4 / 从不提问 × 告知或不告知)里选。四种做法:
- 固定:永远用人群平均下最好的配置(门槛 0.4 + 告知);
- 逐人试错(UCB):对每位用户单独跑一个多臂老虎机——从人群平均出发,按这位用户每次的满意度更新;
- 逐人推断(贝叶斯):智能体心里有一个”用户模型”:用户属于 18 种类型之一(耐心 1/2/3 × 每个问题扣 0.05/0.1/0.2 × 在不在乎被告知)。每次对话之后,排除和观察矛盾的类型(被问跑了 → 耐心恰好等于问题数 − 1;满意度的数值只和某些类型相容),再按后验期望满意度挑配置;
- 先知:事先知道每位用户的类型(上限)。
| 做法 | 第 1–10 次 | 第 11–20 次 | 第 21–30 次 | 第 31–40 次 | 40 次平均 |
|---|---|---|---|---|---|
| 固定(人群最优) | +0.474 | +0.475 | +0.486 | +0.481 | +0.479 |
| 逐人试错(UCB) | +0.419 | +0.358 | +0.397 | +0.392 | +0.392 |
| 逐人推断(贝叶斯) | +0.483 | +0.514 | +0.527 | +0.519 | +0.511 |
| 先知(每人最优) | +0.546 | +0.519 | +0.551 | +0.539 | +0.539 |
用户之间的差别是真实存在的:每位用户的最佳配置散布在 7 种之间(最多的是”门槛 0.2 + 告知”,144 人),“人群最优”只是其中一种。可是逐人试错反而比固定策略差:满意度的随机波动很大(每次的目标都不一样),40 次交互不够把 10 个配置试清楚,试错本身的代价超过了个性化的收益。逐人推断在头 10 次就略好于固定策略,之后和先知只差 0.01~0.03:它知道”用户可能是什么样的人”,每次对话的结果都能排除掉一批不可能的类型。
这呼应了 slides 的一个主题:协调需要推断他人的信念和偏好,这需要社会智能。一个对用户有模型的智能体(心智理论的雏形),学得快得多。
6.2 从偏好里学一个奖励模型
满意度往往拿不到,更常见的是”两段对话哪段更好”的偏好。代码 04 §2:10 个配置各和同样 1500 位用户对话过(离线日志),只有 600 对对话有偏好标注。用 Bradley-Terry 模型从偏好里学一个奖励模型(特征:问题数、是否离开、是否告知、推荐是否与用户说过的话一致),再用它在日志里挑配置。偏好来自两种标注者:
- 用户本人:按自己的满意度比较;
- 外包标注员:只看任务完成了没有(目标导向)。
| 偏好来自 | 学到的权重(问题数 / 离开 / 告知 / 一致) | 挑中的配置 | 它的真实满意度 |
|---|---|---|---|
| 用户本人 | +0.13 / −2.21 / +0.25 / +2.00 | 门槛 0.4 + 告知 | +0.466(最优) |
| 外包标注员 | +0.46 / −1.54 / −0.06 / +1.10 | 门槛 0.2 | +0.276 |
用户本人的偏好里,“离开”有很大的负权重、“告知”是正的,奖励模型挑中的正是真实满意度最高的配置(“问题数”的权重反而略正:问题本身的代价被”问了才更可能推荐对”抵消,问太多的代价由”离开”这一项承担)。外包标注员只看任务完成没有:奖励模型学不到”告知”有什么用(权重约为 0),挑中的是成功率最高的配置——§3.3 已经看到,成功率最高不等于用户最满意。RLHF 的奖励模型也是一样:它只能学到标注者在乎的东西(第 18 讲)。
6.3 长程训练
slides 列为挑战 6 的是长程的智能体训练:一段社会交互有很多轮,最终的结果要归功于(或归咎于)哪一句话?SOTOPIA-π 用行为克隆加”自我强化”(在自己生成的高分对话上继续训练)提升社会智能;后续工作学习一个”奖励归因模型”,把整段对话的评分分配到每一句话上;ArCHer 把强化学习分成两层——在话语层面学价值函数、在 token 层面做策略梯度。
7. 社会智能
7.1 协调不是一种简单的能力
人与智能体交互要成功,协调和情境感知至关重要。协调需要推断其他智能体或人的信念——这需要社会智能:理解社会世界、并与之交互的能力。
没有社会智能会怎样?slides 的例子:路边平行停车时,另一辆车的司机打了左转灯,Waymo 仍然向前开——和人协调失败可能是灾难性的。在 LLM 智能体上也能看到这些问题:
- 协调:有工具、和别的智能体合作的环境(TheAgentCompany,Xu et al. 2025)里,失败模式包括常识和社交技能;在具身的多智能体环境(MindCraft / MineCollab)里,失败在于对资源的协调;
- 社会规范:和人一起的具身场景(EgoNormia 2025)里,智能体会违反社会规范;
- 理解他人的信念。
7.2 智能体有时又”好”得出人意料
- 在不被设定目标的情况下,LLM 也会隐性地说服选民(Hidden Persuader,Potter et al. 2024)——一种安全风险;
- AI 房产经纪人比人类经纪人更有说服力(AI Realtor,Wu et al. 2025)——对营销的经济影响。
失败模式的全景:多智能体协调、具身世界中的规范、人与智能体之间的信念理解,以及对社会的影响。
7.3 怎样评估社会智能
slides 列出的挑战:
- 任务要真实:“成交或不成交”式的博弈太简单;GAMA Bench 等基准尝试更真实的设定;
- 背景要多样;
- 只看目标是否达成不够:SOTOPIA 用角色扮演的环境,从 7 个维度评估,并用人工评估检验”可信度”;
- LLM 评审可能没有对齐(§4.2);
- 要模拟每一方应该知道什么:信息不对称下,合作和竞争都更难(§4.3);
- 长程的智能体训练(§6.3)。
7.4 社会智能也能提升非社交的技能
- 作为老师:一个能识别”对方卡住了”并适时介入教学的智能体;
- 作为学生:人提供干预,智能体从中学习(语言模型预测控制)。
7.5 讲者的总结
- 智能体在技术上已经很能干,所以我们真正希望它们和人交互、增强人的能力;
- 我们可以评估人与智能体交互的系统,也可以让智能体从人的反馈中学习;
- 社会智能阻碍着良好的人与智能体交互,而让智能体具备社会能力仍然很难。
8. 小结、常见误区、练习
8.1 小结
- 两种视角:智能体视角(LLM 驱动的决策者)和 LLM 视角(接上工具与记忆的 LLM);LLM 为感知、规划、学习提供先验。这一讲换成人的视角:可靠、安全、隐私、规范、社会智能、掌控感。
- 评估协作:人 + 智能体比完全自主的智能体更容易完成任务(花园小店:42% → 62%~67%),但提问有代价;按满意度和按成功率排名会有分歧;“告知”只影响满意度。失败要从轨迹里分类统计;主动性熵描述协作形态,要结合场景解读。
- 模拟用户与 LLM 评审:理想化模拟和真实人群的排名几乎相反(τ = −0.81);模拟用户的”性格”决定暴露哪些失败;零样本评审被表面特征带偏、看不到未说出的目标,用人工样例校准后排名完全正确;智能体在会说错的用户面前过分自信(99% vs 83%)。
- AutoLibra:开放式反馈 → 落地 → 聚类成指标 → 用覆盖率和冗余度挑选;归纳出的行为指标能区分成功率相同、过程不同的智能体。词袋相似度认不出同义句,需要更强的语义理解。
- 从交互里学习:试错式个性化在噪声大、次数少时得不偿失(0.392 < 固定 0.479);有用户模型的贝叶斯推断又快又稳(0.511,接近先知 0.539)。从偏好学奖励模型时,偏好的来源决定了它学到什么。
- 社会智能:协调、社会规范、信念理解;评估的六个挑战。
8.2 常见误区
- “任务完成率高的智能体就是好智能体”:它可能把一半用户问跑了;还要看用户体验(§3.3)。
- “多问几句总没错”:在理想化的模拟用户面前是这样,在真实用户面前问多了会让人离开(§3.3、§4.1)。
- “用 LLM 模拟用户,就能代替真人评估”:模拟用户的排名可能和真人相反,暴露的失败也不同(§4.1)。
- “LLM 评审读一遍对话就能打出可靠的分”:它会被客套和篇幅带偏,看不到用户未说出的目标;需要人工样例校准和验证(§4.2)。
- “主动性熵越高,协作越好”:一段只有两句话的对话也能得满分(§3.5)。
- “个性化 = 对每个用户在线试错”:反馈噪声大时,试错的代价可能超过收益;要用对用户的先验和模型(§6.1)。
- “偏好数据越多,奖励模型越好”:如果标注者只在乎任务完成,再多的偏好也教不会智能体”少问、先告知”(§6.2)。
8.3 练习
练习 1(主动性熵):一段对话里,用户主动发起了 3 句话,智能体主动发起了 1 句。主动性熵(两方,归一化)是多少?如果智能体又多问了 2 个问题(都算主动发起)呢?
参考答案
:。多问 2 个问题后是 3 对 3,,——“更均衡”了,但这只是因为智能体多说了话,并不说明协作更好。
练习 2(信息价值):后验里有 4 个目标,概率 0.4、0.3、0.2、0.1。目标 1、3 是红色,2、4 是绿色;目标 1、2 是小的,3、4 是大的。现在推荐的成功率是多少?问颜色、问大小的信息价值各是多少?门槛 0.25 时智能体会怎么做?
参考答案
现在推荐目标 1,成功率 0.4。问颜色:红色分支 ,绿色分支 ,期望 0.7,信息价值 。问大小:小的分支 ,大的分支 ,期望 0.6,信息价值 0.2。门槛 0.25 时,问颜色(0.3 > 0.25);问完之后,比如答”红色”,后验变成目标 1、3(0.667、0.333),再问大小的价值是 ,还会再问。
练习 3(门槛和用户的匹配):一位用户每个问题扣 分,耐心无限、不会答错。证明:按信息价值提问的智能体,只要把门槛设成 ,每一步的决定(问或不问)都让这位用户的期望满意度不下降。这个结论在用户耐心有限时还成立吗?
参考答案
此时期望满意度 = 推荐时的成功率 − 问题数。问一个信息价值为 VOI 的问题,期望成功率增加 VOI,满意度多扣 ;只要 VOI > 就值得问——这正是门槛 θ = q 的规则(这是”短视”的一步最优,不保证全局最优:有时一个问题本身价值低,却能让下一个问题的价值很高)。耐心有限时不成立:第 个问题如果超过耐心,用户会离开,代价是”失去全部成功率 + 0.5”,远大于 。所以对没耐心的用户,门槛要更高(§3.3 里 0.2 比 0.1 好),或者干脆把”剩下几个问题的额度”放进决策里。
练习 4(动手:无限耐心的真实用户):在 01_collaboration.py 里把”真实”人群的耐心全部设成无限(u.patience = None),预测”问到底”的成功率和满意度排名会怎样变,再运行验证。
参考答案(作者机器上的实际结果)
| 智能体 | 成功率 | 问题数 | 满意度 |
|---|---|---|---|
| 直接做 | 41.8% | 0.00 | +0.267 |
| 问到底 | 78.8% | 2.53 | +0.343 |
| 健忘 | 77.7% | 2.82 | +0.298 |
| 按信息价值问(0.1) | 81.1% | 1.86 | +0.443 |
| 按信息价值问(0.1)+告知 | 81.1% | 1.86 | +0.595 |
| 按信息价值问(0.2)+告知 | 77.0% | 1.43 | +0.605 |
没人被问跑之后,“问到底”的成功率从 39% 升到 79%(仍不到 100%:每个回答有 10% 是错的,问得越多,被错误回答误导的机会越多),满意度从垫底升到中间。但即使耐心无限,它仍然不如按信息价值提问的智能体——每个问题都有成本,而且问得越多不一定越准。“问到底”在 §3.3 里的崩溃,主要来自”有限的耐心”这一条:评估结论对用户模型的这个参数非常敏感。
练习 5(评审为什么看不见):§4.2 的零样本评审把”直接做”评为第一。从评审能看到的信息出发,解释为什么它系统性地高估”直接做”。怎样改进评审,而不必给它看用户心里的目标?
参考答案
评审只能检查”推荐的东西和用户说过的话是否一致”。“直接做”从不提问,用户只说了类别(偶尔多一个属性),推荐的东西几乎总和这一两句话一致——评审看不出它其实是在猜,猜错了一半以上。提问的智能体让用户说了更多,推荐也就有更多被”核对”的机会。改进:(1) 让评审估计”信息是否充分”——用户说出的约束越少、推荐越可能是猜的,应该降低置信或打分;(2) 事后收集用户的反馈或结果(用户是否退货、是否追问),作为评审的校准信号;(3) 像 §4.2 那样,用少量带真实结果的样例校准评审。这和第 7 讲的道理相同:评估者缺少的信息,不能靠”看起来一致”来补。
练习 6(贝叶斯推断用户类型):一位新用户,人群先验下耐心 1、2、3 的概率分别是 0.25、0.5、0.25。第一次对话,智能体问了 2 个问题,用户没有离开;第二次问了 3 个问题,用户在第 3 个问题时离开了。这位用户的耐心是多少?此后智能体应该怎样调整?
参考答案
第一次没离开 → 耐心 ≥ 2,排除了耐心 1;第二次在第 3 个问题时离开 → 耐心 = 2(恰好等于”问题数 − 1”)。后验:耐心 2 的概率为 1。此后智能体应该保证每次最多问 2 个问题——在信息价值最高的两个属性上提问,或提高门槛。同样的推理也用在”每个问题扣几分""在不在乎被告知”上:满意度的数值只和某些类型的组合相容(代码 04 的 consistent 函数)。真实用户的反馈不会这么”干净”,但原理相同:有一个用户模型,每次观察都能大幅缩小可能性。
练习 7(思考:设计一个暴露”沟通”失败的模拟用户):§4.1 的理想化模拟用户暴露不出”沟通”失败(0%)。如果要用 LLM 扮演用户来发现这类失败,你会在给 LLM 的角色设定(提示)里写什么?怎样检验这个模拟用户”像不像”真人?
参考答案(一种设计)
角色设定里要写清楚用户的偏好和容忍度,而不只是任务目标:例如”你希望在对方做决定之前知道它打算做什么;如果它没说就直接给了结果,你会感到不安,并在反馈里说出来”;“你最多愿意回答两个问题,第三个问题时你会失去耐心”;“你有 10% 的时候记不清自己想要什么”。并且让这些性格在模拟人群里有分布(不是每个模拟用户都一样)。检验方法:收集一小批真人对话,比较真人和模拟用户在同样的智能体上暴露出的失败比例(§3.2、§4.1 那样的表),以及智能体排名的一致度(Kendall τ);不一致的地方,回去修改角色设定。这本身就是一个”评估模拟器”的过程。
练习 8(思考:只看任务完成的标注者):§6.2 里外包标注员只看任务完成没有。如果你负责写标注指南,你会怎样改,让奖励模型学到”少问、先告知”?改了之后,可能引入什么新的偏差?
参考答案
在指南里明确过程性的标准:在结果相同的两段对话之间,偏好问题更少、更早告知计划的那段;对用户被问跑的对话给出强烈的负面判断;最好让标注者先阅读用户画像(耐心、偏好)再判断。新的偏差:标注者对”多少问题算多”有自己的标准,可能和真实用户不一致;对”告知”的价值可能高估(标注者读着觉得礼貌,用户其实无所谓);指南写得越细,标注越像”按清单打勾”,奖励模型越容易被表面特征(例如出现了一句告知)骗过——这正是第 18 讲要讨论的奖励模型被”钻空子”(reward hacking)。最根本的办法仍是尽可能让真实用户自己给反馈。
练习 9(思考:评估一个写代码的智能体):你要评估一个”和程序员结对编程”的智能体。仿照本讲,分别设计:(a) 一个目标导向的指标;(b) 两个行为指标;(c) 一种模拟用户可能和真人不一致的地方;(d) 一个从反馈中学习的机会。
参考答案(一种设计)
(a) 目标导向:最终代码是否通过测试(类似 SWE-bench)。(b) 行为指标:动手改代码前是否说明了打算改哪里(沟通);是否重复问已经在对话里说清楚的需求(情境感知);改动是否局限在要求的范围内(不越权)。(c) 模拟用户(LLM 扮演程序员)往往过于配合,会耐心地回答每一个澄清问题,也不会因为智能体自作主张地重构了半个项目而生气;真人程序员的耐心、对”掌控感”的需求差别很大。(d) 从反馈中学习:程序员拒绝了哪些修改、手动改回了哪些地方,是很自然的偏好信号;对每位程序员学习其偏好(例如代码风格、是否喜欢先看计划),就是 §6.1 的个性化。
8.4 延伸阅读
- 原课阅读:Collins et al. (2024), Building machines that learn and think with people;Bansal et al. (2024), Challenges in Human-Agent Communication;NAACL 2025 教程 Social Intelligence in the Age of LLMs
- 人与智能体协作:Shao et al. (2025), Collaborative Gym;Zhu et al. (2025), AutoLibra: Agent Metric Induction from Open-Ended Feedback
- 社会智能:Zhou et al. (2024), SOTOPIA: Interactive Evaluation for Social Intelligence in Language Agents;Wang et al. (2024), SOTOPIA-π;Zhou et al. (2024), ArCHer(层次化的多轮强化学习)
- 智能体基准:Zhou et al. (2024), WebArena;Yang et al. (2024), SWE-agent;Xu et al. (2025), TheAgentCompany
- LLM 智能体的能力来源:Liang et al. (2022), Code as Policies;Ma et al. (2024), Eureka
- 本仓库的相关内容:第 5 讲(构念、指标、Bradley-Terry);第 18 讲(RLHF,预告);第 20 讲(聊天机器人、智能体与人工评估,预告)
8.5 下一讲预告
这一讲的智能体是”写死”的规则,我们关心的是怎样评估它和人的交互。第 9 讲回到语言模型本身:上下文学习的意外行为。第 6 讲已经看到,少样本示例只有在预训练让模型学会”利用上下文”之后才有用。第 9 讲会造一个能精确算出”贝叶斯最优上下文学习”的世界,检验那些反直觉的发现:示例的标签全是错的,上下文学习居然还能工作?示例的顺序为什么会让准确率大起大落?思维链为什么有用?