
别让 AI 把话说得太好听:人性化输出是 Agent 时代的错误抽象
越来越多人给 LLM 加"人性化"指令——短句、通俗、像人说话。但一位开发者的观点值得停下来想想:人性化是在错误的地方做压缩,Agent 之间传递的应该是高保真的原始状态,而不是加工过的漂亮话。
原文来源:Kuber Studio — Humanising LLM Outputs is Dumb — 让 LLM 输出"更像人话"是在错误的地方做有损压缩,Agent 之间应当传递高保真状态,人性化只该发生在最终输出层。
最近 AI 圈流行一种新玩法:给 LLM 下"人性化"指令。GitHub 上出现了 I have ADHD 这样的 skill,教模型用短句、少术语、别啰嗦地跟用户说话;还有人给 Agent 加 AGENTS.md 指令,要求输出只用 ASD-STE100 简化技术英语——一种为航空维修手册设计的、限制词汇和句式的受控语言。这些 viral 项目动辄几千 star,评论区一片叫好。
Kuber Mehta 在他的博客里泼了一盆冷水,标题就很直接:Humanising LLM Outputs is Dumb(人性化 LLM 输出是愚蠢的)。他说的"蠢"不是指用户想要简洁输出这件事本身,而是指在错误的地方做这件事。
问题出在:压缩发生在工作流程中间
Mehta 的核心论点很清晰:这些指令不是等模型干完活之后再加一层"翻译",而是变成了工作本身的一部分。你告诉 Agent"用短句、别用术语、只说重点",实际上是在要求它在每一轮思考中持续把输出压缩成低带宽格式。
压缩是有损的。更麻烦的是,你根本察觉不到丢了什么——因为输出读起来依然通顺。你以为 Agent 帮你把事情处理好了,实际上它可能把最关键的中间状态(失败的分支、被放弃的方案、某个不确定的假设)在"人性化"的过程中悄悄抹掉了。
ASD-STE 是个绝佳的例子。它被设计出来的目的是让文档对人类无歧义——这是给人类技术作者用的规范。但 Agent 不是人类技术作者,对它来说,"原始状态"往往才是信息密度最高的表示。把风格规则和"解决任务、正确使用工具、别破坏任何东西"塞进同一条指令列表,等于让模型在思考的时候就背着"要说得像人话"的包袱。
—— 广告 ——
Agent 和 Agent 说话时,问题更明显
这段话是全文最值得细读的部分。Mehta 描述了这样一个场景:子 Agent 调查一个 bug,把发现整理成一份"人类可读"的总结;父 Agent 读了这份总结,又把它转述成另一份"人类可读"的总结给你。
中间经过两次有损压缩,你最后看到的可能是:"大部分测试通过了,但有一个问题值得关注。"
而作者真正想要的是:
5/6 PASS
FAIL: test_cache_invalidation
CAUSE: stale key survives restart
REPRO: tests/cache_test.py:184
后者才是能直接动手修的东西。前者读着舒服,但信息量约等于零。人性化在掩盖失败——Agent 会以有用但难看的方式失败:相互矛盾的证据、未解决的分支、栈追踪、不确定的假设。人类语言非常擅长把这些平滑成"这里有几个考虑因素"这样的句子。听起来很得体,但你宁可早点发现 Agent 在幻觉,而不是被一句漂亮话安抚住。
其他系统都不是这么设计的
Mehta 用一个类比把道理讲透了:数据库不会按仪表盘的格式存数据,编译器不会让中间表示变得"易读",API 不会交换友好的摘要。所有工程系统都遵循同一条原则——尽可能长久地保持最高保真度的表示,只在人类消费的边界处做转换。
LLM 工具链正在反着来:在系统内部到处做"人性化",等到了输出层反而没有转换层了。
这个类比一出来,整个问题就清晰了。它不是"要不要人性化"之争,而是"人性化该发生在哪一层"的架构问题。你想要三行答案或简化技术英语?完全没问题——在最后一步做。让 Agent 内部保持详细状态,让子 Agent 之间交换 schema、diff、精确的错误信息、置信度、来源追踪,最后再压缩给你看。
那些 viral 项目可能是 bug report
Mehta 最后给了一个有意思的观察:这些病毒式传播的 skill 可能恰恰指向了正确的未来——但它们是在错误层面打补丁。
"像跟 ADHD 患者说话一样跟我说话"作为渲染器(renderer)是完全合理的,作为操作指令(operating instruction)就很奇怪。用户是在 prompt 层修补一个本该属于更底层的东西。真正持久的解决方案是:Agent 的母语是精确的、面向机器的状态,温暖简洁的人类版本只在边界处生成。
所以这些 viral 项目不是终点,而是 bug report——它们记录了"人性化输出"这个需求真实存在,只是实现它的位置错了。
对我们日常用 AI 的启示
这篇文章的观点如果成立,对我们的实际操作有几条直接启示:
第一,给 Agent 下"风格指令"要分清对象。 如果是最终交付物(发给客户的邮件、写的文章),风格指令合理;如果是对着代码库干活、做调查、写总结,让 Agent 输出原始状态(diff、报错、文件路径、测试结果)通常比让它"说得像人"有用得多。
第二,让子 Agent 之间的通信保持原始。 如果你在用多 Agent 工作流(比如让一个 Agent 调研、另一个 Agent 汇总),明确要求中间产物保留结构化格式,最后只让汇总层"说人话"。
第三,警惕过于流畅的输出。 当 AI 的输出读起来毫无棱角、所有坑都被填平了,反而要留个心眼:是不是有重要的失败信息被"人性化"掉了。问一句"原始输出是什么",往往比接受一句完美的总结更值钱。
第四,把"人性化"从系统提示词里拆出来。 如果你确实需要简洁输出,用后处理(让模型在最后一步重新组织语言)而不是让它从头到尾都背着这个约束。前者损失信息,后者同样损失信息——但前者至少损失在明处,你还能选择不看。
说到底,Mehta 反对的不是"AI 说话好听",而是"AI 内部处理过程也变得好听"。系统内部的语言应该服务于系统,只有边界处才服务于人。这个原则放之四海而皆准——放在 AI Agent 上,尤其成立。
© 2026 四月
原文链接:https://www.aprilzz.com/ramble/humanising-llm-outputs-dumb
相关文章
为什么业余编程社区如此敌视 LLM:他们捍卫的不是代码,是学习的过程
一篇关于业余编程社区为何敌视 LLM 的思考:在 OSDev、模拟器开发、demoscene 这些圈子里,掌握困难领域的过程本身就是产品,LLM 生成成品恰恰绕过了这个核心。这不是守旧,是价值排序的差异。
软件工程 2026:AI 时代,工程师的瓶颈正在转移
AI 编程工具大幅降低了写代码的边际成本,但软件工程的真正瓶颈正从"写代码"转移到"理解系统"和"设计抽象"——2026 年的程序员需要全新的技能组合
LLM 必然主义:为什么大语言模型是不可逆的技术转折点
LLM 不是又一个技术泡沫,而是计算范式的根本转变。就像互联网和智能手机一样,它不会消失,只会越来越深地嵌入基础设施。