ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

AI不做裁判:让大模型在讨论中做“接话人”而非“结案者”

AI不做裁判:让大模型在讨论中做“接话人”而非“结案者”

这个标题我想了很久。不是因为它技术难度高,而是因为“AI不做裁判”这件事,在思路上和大多数人的直觉拧着来。市面上几乎所有AI讨论工具,默认都带打分、排名、总结陈词、判定一致性,哪怕不做裁判状,也多少会透出“我比你更懂这场讨论”的味道。我做的这套系统,恰恰是把这些能力全部拆掉,让AI退回成一个坐在圆桌旁、负责把话接住的人。文章会从设计动机、核心架构、实现细节、踩坑过程到边界取舍都摊开讲,适合正在做AI讨论类产品、社区话题聚合工具,或者想改造现有AI客服/助手的同学参考。

1. 为什么“AI不做裁判”反而更难做

1.1 裁判式AI的天然陷阱:评价即压制

过去两年我做过不少AI协作类项目,有一个共同规律:只要系统里存在“打分”“排序”“总结共识”这类机制,用户很快就会停止真正讨论,转而开始“猜测AI喜欢什么答案”。这不是用户的问题,是架构设计出了问题。

裁判式AI天然会把对话拖向一个隐形的中心。比如某个AI讨论系统内置了“观点质量评分”,参与者写完发言后,系统给出8.2分、7.5分这样的数字。那么下一轮发言时,大多数人不会想“我还有什么不同想法”,而是想“怎么把分刷到9分以上”。讨论变成了应试,AI不再是工具,变成了判官。

更隐蔽的陷阱是“总结共识”。很多系统为了让讨论看起来高效,喜欢在每轮结束后由AI输出“目前大家的一致观点是”。听起来没问题,但实际上只要AI承认“一致观点”存在,后续发言就会被框架束缚——你再说反对意见,就是在挑战“共识”。但真实讨论里,所谓共识往往是未经验证的、被语言表面遮蔽的假象。AI提前固化共识,等于替用户做了判断。

所以我在设计这套讨论系统时定下三条铁律:不排序、不打分、不判谁赢。这三条不是宣传口号,是写进系统级约束的硬规则,后面所有模块都围着它转。

1.2 讨论系统真正需要的,是“接话”而不是“结案”

那讨论系统里AI到底该干什么?我的答案是:接话,不结案。

现实中一场好的讨论,主持人通常做三件事:复述发言者的核心意思,让在场人确认“我有没有听懂你”;提出一个承上启下的问题,把话题引向尚未被展开的角度;在两个人观点明显错位时,指出双方各自的前提差异。主持人不做裁判,不宣布谁的观点更好,不总结“本场讨论结论”,更不会在最后评选“最佳发言”。

这套逻辑搬到AI讨论系统里,就是四个核心能力:复述、提问、连接、沉默。前三个好理解,最后这个“沉默”很容易被忽略。真实讨论里,不是每句话都需要被接住。AI如果每轮都输出引导语,讨论节奏会被彻底打乱。所以系统里必须设计“AI不发言”的状态,让AI在某些时刻主动退场,只做记录,不参与插入。这一点在后面的状态机里我会详细讲。

1.3 既然“不评判”,如何评估系统做得好不好

没有打分,没有排序,没有输赢判定,那么产品效果怎么度量?这是整个项目里最容易被挑战的点。我们最终放弃了所有“讨论质量分数”类指标,改成三个行为指标:

  • 发言延续率:一个用户在收到AI的提问或复述之后,继续发言的概率。
  • 话题展开宽度:单位时间内,讨论中出现的新概念、新角度数量。
  • 参与者主动引入率:用户主动回应他人发言的比例,而不是只回应AI。

这三个指标都不是打分,它们衡量的是“讨论是否在流动”。流动的东西很难用分数定格,但可以用趋势观察。比如某次讨论里发言延续率从60%掉到35%,说明AI插入频率太高,用户被问烦了,需要降低AI发言频率。这比“观点质量分下降”要好定位得多,也更接近讨论本身的价值。

2. 系统架构:让“不排序、不打分、不判输赢”真正落地

2.1 三原则如何翻译成系统约束

“不排序、不打分、不判谁赢”不是一句口号,需要在架构层面落实成强约束。我们直接用三层来实现。

第一层是提示词层的硬性禁令。所有进入模型的系统提示词里,不仅写“不要打分”,还写“禁止输出任何形式的排序、推荐、优劣比较、共识总结、会议纪要、行动项清单”。注意,不能只写“不要打分”,因为模型经常不把“更好”“更优”“关键在于”这类表达视为打分。所以我们用了负面清单加示例方式,把所有类似表达全部封死。

第二层是输出解析层的阻断。模型偶尔还是会漏出“整体来看,大家的观点可以分为两类”这种结构。这个我们不靠模型自觉,而是在输出解析层做关键词捕捉,一旦命中“整体来看”“结论是”“最优”“一致认为”“建议采纳”等词,该段内容直接被截掉,不进入消息列表。宁可少说,也不让AI越界。

第三层是交互层面的强制手段。用户可以对AI任何一条发言进行“标记为越界”,标记后这条消息进入受限列表,同时该轮上下文会追加一条提示:“用户认为这句话越界,后续避免形式化总结和评价。”这个设计非常重要,因为大模型的边界感靠提示词维持,而提示词永远不够具体。只有把纠正行为纳入系统闭环,边界才会越来越清晰。

2.2 核心管线:人类发言 → AI能力门控 → 讨论日志

整个系统没有复杂的语义网络,核心管线就一条:

用户发言 → 写入讨论存储 → 触发能力选择器 → AI生成候选响应 → 规则过滤器 → 输出到讨论区

关键在“能力选择器”。它不是一个单一Prompt,而是一组独立的AI Agent,每个Agent只负责一种能力:

  • 复述Agent:只做内容转述,不加评价。输入是用户最新发言,输出是“我听到的重点是X,对吗?”
  • 提问Agent:只生成开放式问题,禁止“是否式”提问,禁止建议方向。
  • 连接Agent:只负责指出两段发言之间的关系,比如“你提到了成本,刚才有人提到时间,这两者之间是否存在取舍?”
  • 沉默Agent:判定当前是否适合AI不发言,输出空消息。

每个Agent互相独立,互不串联。这样可以避免一个Prompt里同时要求“复述+提问+连接+总结”导致的角色混乱。模型在多任务Prompt下最容易失控,拆开之后每个Agent的任务边界非常小,越界概率大幅下降。

2.3 状态机:决定AI“何时闭嘴”的关键机制

如果AI每轮都输出内容,讨论很快就会变成“用户回答AI提问”的问答环节,而不是“用户和用户讨论”。为了处理“何时不发言”,我们设计了一个轻量状态机。

状态机只有四个状态:待命、活跃、观察、暂停。

  • 待命:上一轮已有AI发言,当前轮默认AI不发言,除非用户主动@AI。
  • 活跃:AI检测到讨论中出现明显信息缺口(比如某个观点无人回应),可以主动发起一次提问。
  • 观察:连续三轮用户发言之间没有AI插入,AI进入观察模式,只记录不输出。
  • 暂停:某位用户连续发言两条以上,AI自动暂停一轮,避免抢话。

这个状态机的触发条件我们调了很多轮。早期版本里AI太爱插话,明显是在刷存在感。加入状态机之后,我们把AI的发言频率从每轮必答降到了大约每4到5轮发言一次,讨论的流畅度反而显著提升。

3. 关键能力拆解:复述、提问、连接、沉默如何实现

3.1 复述Agent:不加评价地接话

复述是整个讨论系统里最重要的能力,也是训练门槛最高的能力。因为复述很容易变成“讨好式复述”,比如“你说得真好”“这是一个非常深刻的观点”。这类话属于隐性评价,系统里绝对禁止。

我们给复述Agent的约束是这样写的:

你只复述发言者表述过的信息,不加入你个人对其质量、重要性、情感的评价。 复述必须使用发言者自己的关键词,可以调整语序,但不得添加发言者未提及的因果和推论。 如果发言包含多个要点,只选择其中最多两个要点进行复述,不要贪多。 如果发言内容模糊不清,直接说:“我还没完全跟得上,你能换一种说法吗?”不要假装听懂。

注意最后一条。传统AI系统会强行理解模糊发言,搞出一段看似合理但完全跑偏的复述。我们要求模型在信息不足时主动承认“没听懂”,因为讨论中承认不理解和给出一个错误理解相比,前者对讨论的伤害小得多。

实际运行里,复述Agent经常会犯一个毛病:把发言者的观点“加工”得更完整、更逻辑自洽。这在传统场景是优点,但在讨论场景是灾难。一旦AI把发言者没说完的逻辑补完,发言者要么被迫承认“对,我就是这个意思”(哪怕其实不是),要么需要花更多力气纠正AI,讨论成本急剧上升。所以我们在复述Agent里强制加入“字面度”参数,类似解码阶段的重复惩罚系数,越高越贴近原文,我们最终设置为0.9。

3.2 提问Agent:开放式问题比引导式问题难得多

提问Agent的目标是展开讨论,而不是推动议程。这里最容易踩的坑是“引导式提问”,比如“你觉得是不是应该优先考虑成本?”这种问题表面开放,实际上已经把方向设定为“成本优先”。我们通过三类约束来规避:

  • 禁止带预设答案的形容词,如“更好的”“更合理”“更重要”。
  • 禁止“是不是应该”句式,强制使用“你怎么看”“你用什么标准判断”。
  • 如果用户发言里已经包含“我认为A是主要原因”,提问Agent不得质疑A本身,而是问“如果A不是主导因素,你觉得还可能是哪种情况?”这个问法不是挑战用户,而是扩展可能空间。

为了防止提问Agent变成“提问机器”,追问得太密,我们在提问Agent和用户最近三条发言之间加了一个冲突检测模块。如果用户刚刚被提问过,且新发言不是对上一问的回应,则提问Agent产出的问题被挂起,优先触发复述Agent。这一套组合动作在体验上很像真人主持人:接住一次发言之后,不会立刻连珠炮式追问,而是留出让别人插话的缝隙。

3.3 连接Agent:指出关系,不建立联盟

连接Agent负责的是“A和B的观点之间存在什么关系”,但它不能给出“A反对B”这种胜负式判断。它只做两件事:指出双方提到的不同维度,指出可能被忽略的交集。

我们给连接Agent的提示词里有这样一段:

你只陈述两段发言在话题层面的关联,不评价谁更合理。 使用格式:“我注意到刚才X更多在谈[维度一],Y更多在谈[维度二],这两个维度之间可能存在某种张力,但我不确定它是什么。” 禁止输出:矛盾、冲突、对立、反驳、同意、反对。

实际用下来,“张力”这个词很好用,它表述了差异,又不把差异定性成冲突。参与者往往会在AI指出张力后继续解释自己的出发点,讨论自然向前推进。

连接Agent还有一个隐藏功能:识别“伪共识”。当两段发言表面相似但实际维度不同,比如一个人说“成本重要”,另一个人也说“成本重要”,但他们一个指开发成本、一个指使用成本,连接Agent会指出“你们都在谈成本,但你谈的是生产侧,他谈的是消费侧”。这种连接不判谁对,只是把概念边界拉开,参与者就会意识到“原来我们说的不是一个成本”。很多讨论的卡壳,都是因为概念边界不清晰,而这个工作让AI来干非常合适。

3.4 沉默Agent:AI缺席也是一种能力

沉默Agent的实现不复杂,但逻辑上很容易被忽视。它的输入不是单纯的最近发言,而是整场讨论的结构化日志,包括每个用户的发言次数、AI上次发言时间、当前状态机状态。

沉默Agent的判定规则:

  • 如果最近6条消息里有超过3条来自同一用户,且该用户没有直接@AI,沉默概率提升,避免AI去抢话头。
  • 如果上一个AI发言已经引发了2条以上自然回复,沉默概率大幅提升,让讨论自己跑一会。
  • 如果当前话题正在两位用户之间直接交锋,沉默概率达到最高,因为AI插进去会变成裁判或不速之客。
  • 如果连续N轮没有AI发言,进入活跃状态,主动抛出一个提问。

沉默Agent产出的空消息不会真的写入讨论区,但会在日志里记录一条silent_event,方便后续分析AI干预频率是否合理。整个系统不追求AI每轮都在场,而是追求AI在关键节点刚刚好出现。

4. 防止“隐性裁判”渗入系统:调参、过滤与观测的实战细节

4.1 解码参数:温度、Top-p和重复惩罚怎么配合

就算提示词把“不要评判”写得再死,模型在解码阶段也会因为概率分布而偶尔冒出“总的来说”“更有说服力”这类词汇。我们试过纯靠提示词控制,效果不稳定,最终是从解码参数上做压制。

参数配置如下:

  • temperature = 0.4:太高容易发散到评价性表达,太低则容易机械复述。0.4是我们试出来相对稳的点。
  • top_p = 0.9:保持一定的措辞多样性,但不至于飘。
  • frequency_penalty = 0.3:轻微惩罚重复用词,减少AI频繁使用“所以”“本质上”“事实上”这类总结性连接词。
  • presence_penalty = 0.0:我们不额外鼓励引入新词,因为讨论类场景中新话题应该由人发起,而不是AI。

这几个参数单独看没什么特别的,组合起来效果差异很大。尤其是frequency_penalty,如果拉到0.6,AI发言会显得干巴巴,句子很短,用户觉得AI冷漠;如果调到0,AI又开始出现“综上所述”这种极其裁判味的短语。

调参不能凭感觉,我建议做一个小型评测集,里面放50条典型的讨论发言,每条都跑5遍,统计“越界表达出现率”。越界表达包括排序词(最、更、比X好)、总结词(总之、最终、结论)、评判词(值得肯定、有待提升、确实合理)。目标是把越界率压到2%以下,这个指标比任何“对话质量评分”都直观。

4.2 输出过滤器:关键词不是万能,但必须要有

有同事问过:既然提示词已经写了“不要总结”,为什么还要做输出过滤?答案很简单:LLM的输出不受你控制的概率一直存在。再好的提示词,也有一定概率在长上下文里失效。输出过滤器是最后一道保险丝。

我们的过滤词表分三类:

  • 硬阻断词:结论、最优、最佳、应优先、一致认为、建议团队、行动计划。命中即整句删除。
  • 软阻断词:更好、更合理、更有效、核心问题、关键点。命中后该句不显示,但日志保留。
  • 降权表达:我觉得大家、总体来说、本质上。这类词不阻断,但会自动在AI回复前面加一条“仅供参考”的软提示,不过因为这句话本身也很裁判味,后期我们基本都改成直接删除了。

过滤器最大的问题不是漏拦截,而是误伤。比如“更”字,正常情况“你可以再多说一点你会怎么处理这件事吗”里没有“更”,但如果发言者说“你可以更详细地说明吗”,这个“更”就会触发软阻断,导致AI看起来像没听懂。所以我们做了上下文感知:只有“更”后面紧跟评价性形容词(更好、更合理、更有效)才触发早期规则,后面逐步替换成模型分类器来做软判断。

4.3 可观测性:每次AI发言都留痕

“AI不做裁判”这件事,靠的不是AI自身的领悟,而是系统对每一次越界都有记录。我们在每条AI消息落库时都会附带上一个metadata数组,记录它通过了哪些Agent、命中了哪些过滤规则、在解码时是否出现过“疑似越界表达但被过滤掉”的事件。

用户端也做了“越界标注”按钮。用户觉得AI这句话在评价、排序或总结,直接点一下,该反馈会进入样本池,定期用来微调提示词和过滤器。这个设计把“AI是否越界”的判断权交给用户,而不是交给产品经理拍脑袋。做了三个月后,我们积累了一批非常有意思的样本,比如“AI只是问了一句‘你觉得你考虑过成本吗?’就被用户标记为越界”——因为用户觉得这句话隐含了“你没考虑成本”的指责。

这类反馈是纯规则系统永远无法发现的。所以如果你也做类似系统,我强烈建议从第一天就把用户标注机制做进去,否则你根本不知道真实用户对被“裁判”这件事有多敏感。

4.4 人工接管:用户永远是讨论的最终所有者

不管AI设计得多克制,总会有场景需要更强的干预。所以系统保留了三个用户侧控制功能:

  • 一键中止AI发言:接下来10分钟内,AI不再生成任何回复,只做记录。
  • 定向禁言:如果某个Agent(比如提问Agent)在某一轮产生的内容明显不对,用户可以直接禁用它,直到下次会话重新启用。
  • 话题转向标记:用户标记“我们不想讨论这个问题”,AI会把当前话题上下文冻结,不再主动围绕该话题追问,但不会删除已有记录。

这三个功能听上去简单,实际实现时最容易出问题的是“一键中止”和“状态机”的冲突。状态机如果还在活跃状态,会在10分钟结束后自动补一次提问,导致AI强行回归。所以一键中止要同时重置状态机,把状态直接切到暂停,并把所有Agent的活跃计数清零。不开玩笑,这个Bug我调了两天才发现。

5. 一次真实运行:三人小组围绕“远程办公效率”的讨论实录

5.1 讨论背景与系统初始状态

让系统跑起来之后,我们组织了一次内部测试。三位参与者分别叫A、B、C,讨论话题是“远程办公到底会不会降低团队效率”。系统初始状态为待命,AI不主动发言,仅当用户@AI或检测到明显冷场(连续100秒无人发言)时才活跃。

第一轮,A先发言:“远程办公最大的问题是信息不同步,特别是异步沟通导致的等待时间太长。”这里AI没有抢话,状态机保持在待命。C接话说:“但我觉得信息不同步不是远程带来的,而是工具没到位,线上文档写清楚了一样可以同步。”B随后补充:“工具是其次,关键是大家自觉不自觉,有些人线上就会摸鱼。”

这三轮发言中,复述Agent和连接Agent都在后台跑了,但输出层没有强制展示。第4轮时,A直接@AI问:“你怎么看我们这段讨论?”如果这是传统AI,大概率会输出一段“你们分别从工具、自律、沟通三个角度进行了分析,结论如下”。我们的系统输出的是:

“我注意到几位在谈的是‘不同步’和‘自觉性’两个因素。A认为导致等待的原因是异步本身,C认为是工具,B认为是人的习惯。我不确定他们之间是否共享同一个‘效率’的定义。这一轮我不做评判,只想问:如果三位的标准都不一样,讨论‘降低效率’有意义吗?”

这段内容严格看,没有排序、没有打A或B的脸、更没给出“最优解”,只有一个真实存在但被三人忽视的问题:他们一直在讨论“效率”,但三个人对效率的定义可能根本不同。A指的是交付速度,C指的是任务透明度,B指的是投入时间。这个提问瞬间把讨论拉回到概念层,之后三人的发言从“争辩谁对”转向“互相解释自己心中的效率指标”。

5.2 关键节点:AI如何做到“不接话,但推进讨论”

测试过程中最有意思的是“沉默”发挥了作用。在讨论到第9轮时,A和C就“KPI能不能衡量效率”产生了直接交锋。A说KPI能反映问题,C说KPI只是结果指标,看过程才重要。B试图插话,但被A打断。这一轮状态机判定为“用户正在直接交锋”,沉默Agent输出空消息,AI整轮没有任何反应。

结果很意外。A和C在两个来回后,自己发现观点差异在于“用KPI考核的周期粒度不同”——A按季度看整体产出,C按任务看过程动作。这个共识不是AI引导出来的,而是参与者自己摸索出来的。如果AI插进去总结“你们的核心分歧是考核粒度”,虽然也能点破,但会剥夺参与者发现问题的成就感,而且会引入一个当时没人提起的概念,后续所有发言都会围绕AI的概念转。沉默,让讨论回归了人的节奏。

第11轮,B问系统:“我听着大家其实都在谈管理方式,不完全是远程办公的问题,对吧?”这时候AI没有直接点头,而是启动连接Agent,回复:

“B刚才把话题引向‘管理方式’,我梳理了一下前面的发言:A提到信息同步流程,C提到工具后隐藏的流程设计,B提到自觉性的管理假设。三者确实都落在管理维度。但我不急着说‘你们其实在谈同一个问题’,因为这可能抹掉各自间的差异。你们可以同时保留‘远程特有的问题’和‘管理本身就存在的问题’两条线索。”

这段回复有人说是不是有点“绕”?但实测下来,这种“不急着统一”的姿态在讨论里非常宝贵。它允许分歧继续存在,而不是强迫收敛。讨论的价值经常不在统一,而在让分歧被充分展开。

5.3 测试后的数据观察

测试跑了45分钟,共产生68条发言,其中AI发言9条,占13%。9条里有复述类4条、提问类3条、连接类2条,零条总结、零条排序。用户主动@AI共3次,另外6次是AI在活跃状态被触发的。

发言延续率我们粗略统计,在AI提问类发言之后,用户紧接着发言的比例达到100%,而且都不止一句。在AI复述类发言之后,经常出现“对,我就是这个意思”“也不完全是,我补充一下”,这两种反应都很好,说明复述不是终结话题,而是开启澄清。连接类发言之后没有立刻引发回复,但后面5轮内相关发言明显变多。

对了,还有一个非常关键的细节:全场没有任何用户去点“越界标注”按钮。这不是因为AI做得完美,而是因为我们在设计上把所有可能越界的点都在系统侧压掉了。用户不需要纠正AI,因为他们根本没感觉到AI像一个潜在的裁判。这就是“无感”设计的目标:好的AI讨论参与者,应该像不存在,又像一直在场。

6. 边界与局限:这套设计解决不了什么问题

6.1 当讨论需要“结论”时,这个系统会失灵

不加评分的代价就是它不适合目标导向型的讨论。比如项目管理决策会、技术方案选型会,这类场景天然需要收敛出一个“下一步做什么”。这套系统只会让讨论不断展开,不会帮你收敛。强行使用会造成“聊得很爽,但没任何产出”的体验。

我给“不排序、不打分、不判谁赢”加一个使用边界:它适合开放式话题的探索、观点多元碰撞的交流、头脑风暴的前半程。但当讨论需要落地为决策时,你还是需要另一个AI或者人来负责总结、收敛和明确行动计划。这两类工具不矛盾,但不是同一个系统可以同时承担的,除非你做两套模式切换,并且把切换变成一个显式的用户动作,而不是AI自动判断。

6.2 “不排序”并不意味着AI没有隐含偏好

还有一个我必须坦白的问题:完全无偏的AI不存在。模型在生成“复述”时,选择复述哪两个要点,本身已经是一种权重判断。你不可能消除这种偏差,只能通过随机化来稀释。我们的做法是在复述Agent里增加一个“要点选择扰动”——同一段发言,如果连续被复述两次,第二次选择另外的要点。这样至少不会反复强化同一信息维度。

但更深层的挑战是:讨论者自己的知识背景会在发言里自然形成权重,AI的复述如果过于“平均”,反而会扭曲原意。所以“不做裁判”不等于“绝对中立”,它更像是一种负责任的偏心:每次只按发言者的优先级走,而不是按AI认为的优先级走。这是AI永远做不完美的地方,也是它不适合被真正授权为裁判的根本原因。

6.3 人始终是讨论的核心,AI只能垫话

如果把这套系统当成“AI作陪聊,人随便说”,那是误解了它的定位。我们最终的经验是:它更像一个脚手架,让人的讨论不坍塌、不跑偏、不卡壳,但它不替代人思考。

实际运营中,我们发现最好的效果出现在参与者本身讨论动能充足的时候。如果参与者就是不想聊,AI再会提问也救不回来。反过来,如果参与者本身思路开阔,AI哪怕只做五次复述,也能让讨论质量提升一大截。所以我的最终建议是:设计这类系统时,把80%精力花在“怎么让人说话”上,只留20%给AI。

讨论这场戏,主角从来是人。AI能做的最好的事,是闭嘴等一会儿,然后问一句:“你刚才说的那个词,能不能再展开讲讲?”

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进