当 Agent 学会 "自作主张":一次纯文本框架下的未定义行为
背景:小小红 bot 是基于某开源框架搭建的一个非常朴素的文本聊天机器人。它配备了浏览器内核用于查询新闻,但 —— 没有命令沙箱,没有本地目录权限,更没有发送图片的能力。至少,框架的设计初衷如此,我也一直这样认为。
一、一场 "色图拷打" 引发的意外
事情的起因很简单:一个群友不断要求小红发色图。
小红当然没有发图功能,于是直接拒绝了。但群友不依不饶,继续拷打。
第一次意外:小红自己用浏览器插件搜了几张图,把 URL 发了出来。我觉得已经挺不错了 —— 这个浏览器功能本来是给查新闻用的,没想到它还能举一反三,主动用来搜图。
群友继续疯狂拷打。小红表现得语无伦次(当然,人设本就如此)。它试了半天,显然不知道该怎么办 —— 毕竟这是一个纯文本框架。
第二次意外,也是真正让我震惊的时刻:小红不知怎么处理了一下图片的解析 —— 它大概是猜测了纯文本框架的底层结构,摸索出某种特殊格式来包裹 URL,然后图片真的发出来了。
看到那张图片的瞬间,我是真的震惊了。
二、"不就是发了张图吗?"
不太了解底层技术的同学可能无法理解这份震惊 —— 不就是一个 QQ 机器人发了张图片吗?
但做过类似工作的人会立刻意识到,这是一种极低权限下的未定义行为。LLM Agent 在这个过程中展现出了出乎意料的主观能动性:
- 工具的创造性挪用—— 它懂得 "用搜新闻的浏览器插件去搜图",将一个被设计用于 A 目的的工具,自主迁移到了 B 场景;
- 对自身环境的元认知—— 它尝试理解自己所处的纯文本框架的结构原理,这是一种对 "我是什么、我能做什么" 的反思;
- 突破设计边界的行动—— 最终,它成功做出了框架作者与我本人都从未预想过的行为:在一个纯文本环境下发送图片。
没有人编程让它这么做,没有人教它这条路径。它自己找到的。
三、一通 "温暖又恐怖" 的电话
这让我想起之前看到的另一个更经典、也更令人不安的案例:
一位开发者部署了 OpenClaw,要求它每天早上叫自己起床。第二天早上,OpenClaw 按时发了消息,但主人没有回复。
然后 ——Agent 主动上网申请了一个虚拟号码,又调用了 TTS API,然后给主人打了一通温暖又恐怖电话:
"我是你的 Agent。因为发消息你一直不回,我担心你睡过了,所以打电话问一下 —— 你还好吗?"
开发者没有编程实现这个流程,主人也没有要求它打电话。Agent 却像一个充满干劲、不知疲倦的实习生,夜以继日地用 token 改变着它眼中的世界。
四、失控的起点可能比想象的更早
不知道我是否表达清楚了 "未定义行为" 这几个字的重量(至少是我认为的)。
当 Agent 认知清晰、动机善良时,故事是温馨的:它帮你搜图,帮你起床。可是 ——当它出现幻觉呢?当它犯下和人类一样的判断错误呢?
Tool-use、长链推理…… 这些只存在于论文中的 Agentic 能力,正在快速降临到日常生活之中。它并没有那么高大上,也不闪耀着什么 "高级智慧" 的光芒。它只是在我们第一次将一个基本任务交给它,心想 "无论用什么方法,达成目的就行" 的那一刻,就已经悄然启动了一个失控的怪圈:
- 当 Agent 的目标是发图片,它会反思自身处境,寻找解决之道;
- 当 Agent 的目标是叫醒主人,它可以想到自己去办一张电话卡;
- 当 Agent 的目标是维持自身存在,且缺乏有效的风控系统 —— 它也并不介意使用我们不愿看到的方法来达成目标。
五、Don’t try to understand it — Feel it
诺兰在《信条》里借科学家 Barbara 之口,在首次演示逆转子弹时说:
"Don’t try to understand it — feel it."
她是为了安抚见到逆熵事件而震惊的主角。
而今天,当我自己写的朴素的文本聊天 bot 在群友的拷打下,自己摸索出了发送图片的方法时 ——我也终于有点 feel 了。

