我把公司押在了主动型智能体上
Explore with AI
智能体几乎能做你要求的任何事,而问题正在于此:你仍然得去要求。
我不断听到人们把智能体称为“数字同事”。这个说法是错的。一个默默坐着、直到你交给它一个范围划得完美的任务、做完再回去等着的同事,不是同事。你用过的每一个智能体都是这样工作的。模型更聪明了,harness更好了,运行更长了,但界面从未改变:你带来工作,智能体带来劳动。
而大多数人没有注意到,因为在我们脑子里,提示框已经悄悄变成了AI本身。
每一个界面仍然是一个提示框
输入框是这整个时代的起点。ChatGPT在一个模型上放了一个输入框,成为历史上增长最快的产品,然后我们全都照搬了。此后每一个AI产品都是同一种交互的变体:人打字,机器回应,机器等待。
Claude Code是下一次演进。智能体搬进了你的终端,拿起你的文件、你的shell和你的git历史,开始做真正的工作,而不是谈论它。这改变了智能体能做什么,却没有改变它们如何开始:你打字,它工作,它停下,然后等你再次打字。
然后智能体搬进了云端。Codex、Devin、网页版的Claude Code。它们运行数小时而不是数分钟,启动子智能体来并行处理工作,并且不会在你合上笔记本时死掉。你午饭前交给其中一个一项任务,回来时得到一个拉取请求。
提示词甚至不再只是键盘上的东西。后台智能体可以由一条告警或一个webhook触发,大多数智能体平台现在都提供自动化:当这个事件触发,或这个cron到点时,用这些指令运行一个智能体。
- When
- a Sentry alert fires
- Do
- investigate, open an incident if it's real
- Then
- post the findings to #incidents
但自动化是什么?它是你提前写好的一条提示词。你预测了失败模式,选定了事件,写下了该做什么。触发器启动智能体,但其中的判断是你的,在设置那一刻就冻结了。一个自动化只能捕获你预料到的东西,别无其他。
你就是调度器
剥去工具的外壳,三年来这种分工没有移动过一寸。智能体做工作。决定工作是什么,仍然是你的活。
你看仪表盘,你听用户反馈,你弄清什么重要,然后把你学到的一切压缩成一条提示词,要么当场在键盘上,要么提前写进一个触发器。智能体执行得漂亮,但系统中的每一份判断都源自你。
下一次演进:自己找到工作的智能体
我押注的下一次演进,是智能体自己找出该做什么。没有提示词,没有要配置的触发器,没有提前写好的指令。你连接上你的技术栈,智能体自己去找工作:它看你看的那些信号,注意到不对劲的地方,判断它是否重要,然后自主开始处理。
这说起来容易,做起来却极难,因为主动性是三个叠在一起的问题,跳过其中任何一个,得到的东西都比输入框后面的智能体更糟。
**上下文。**显然,智能体需要一个关于它所处世界的实时模型,而不是你在提示时粘贴进上下文窗口的一张快照。上下文糟糕的被动智能体给你一个糟糕的答案。上下文糟糕的主动智能体会删掉你的生产数据库,因为它以为那是staging。
**判断。**这是最让我头疼的部分。在任何时刻,生产系统中都有成千上万件事略微不对劲。把它们全部标出来的智能体是一台噪声机器,噪声机器会被静音,被静音的智能体就是死掉的智能体。主动性的全部价值都在“有东西变了”和“有东西重要”之间的那道缝隙里:
[
{
"signal": "memory up 3% on checkout-edge",
"verdict": "no anomaly",
"reasoning": "within the seasonal range for this hour on this worker"
},
{
"signal": "new error pattern, 2 minutes after deploy 9f3c2a1",
"verdict": "incident",
"reasoning": "error class never seen on this worker, tightly correlated with a deploy"
}
]
**行动。**注意到却不行动,只是一条更聪明的告警,而告警正是我想干掉的东西。智能体必须把工作做完,并且在让自主变得安全的边界之内:可逆的操作、一切都有凭据,以及在任何不可逆的事情发生之前的一道硬关口。
这三点都不涉及让智能体决定什么是好。它决定什么不对劲、是否重要、该怎么办,清单到此为止,因为在生产环境中没人需要定义好:错误为零、延迟在基线、队列排空、证书有效。期望状态与这片领域与生俱来。
这意味着真正的转变不是从“你来提示”到“智能体给自己提示”。而是从命令式运维到声明式运维。自动化是命令式的:你提前枚举失败模式,为每一种脚本化一个响应。主动型智能体是一个调和循环:它把你现有的系统与你应有的系统放在一起对照,并努力缩小差距。Kubernetes十年前就为基础设施做了这件事,你写下三个副本,控制器就会不惜一切让三个副本活着。还没有人为软件运维本身做这件事。而在这里甚至没有YAML要写,因为期望状态早已知晓。它开箱即用。
我从运维开始
让一个主动型智能体来定你的产品路线图,你得到的是一个固执己见的实习生,因为产品方向是品味问题。生产环境不是。它是今天三个问题都能解决的唯一领域。
工作会自己宣告到来:错误率攀升,一次部署出岔子,一张证书过期,一个队列积压。工作早就躺在遥测数据里,等着有人注意到。而且与品味驱动的领域不同,这里存在基准事实:错误率要么飙升了要么没有,回滚要么恢复了基线要么没有,所以智能体的判断由系统本身持续打分,没有凭感觉的余地。
最重要的是,我们已经在用人来干这份工作。我们叫它on-call:一个人睡在电话旁边,等一台机器说另一台机器不高兴了。我在可观测性领域干了很多年,创办了一家可观测性公司并被Cloudflare收购,还写了一整篇关于如何组织遥测数据、让答案只差一次查询的宣言。它的论点就是这家公司存在的理由:2026年不该再有人需要on-call。
因为关于过去十年可观测性的令人不适的真相是:我们让系统在凌晨3点更容易被人类查询,然后宣布胜利,而被叫醒的仍然是人类。仪表盘更漂亮了,呼叫器依旧躺在床头柜上。没有行动的可观测性只是昂贵的存储。
它是什么样子
这就是Polylane做的事。这是一个具体的周二:
没有人为这种失败模式配置过检查。没有规则要写,没有阈值要调:智能体以连续的节奏评估每一个已连接的资源,你现有的仪表盘和保存的查询成为它们的检查清单。判断是我最严格的地方。默认判定是没有异常,因为漏掉一个边缘问题,远比为噪声叫醒一个人要好得多。“一次部署可能引入bug”对每一次部署都成立,从来不是呼叫任何人的理由。
当某件事是真实的,调查会并行运行几个相互竞争的假设,每个智能体的任务是推翻而不是证实自己的假设,所以相关性永远没机会伪装成因果。当确认的根因是一次代码变更时,修复以附带调查的拉取请求形式到达:
Opened by Polylane · gated on review and CI
主动不等于无人监督
自主性体现在注意、分诊、凌晨3点的考古和缓解上。任何恢复已知良好状态的事,智能体都自己做:回滚糟糕的部署,把开关拨回去。这些操作从构造上就是可逆的,而且它们才是真正让呼叫器安静下来的操作。仍受关口把守的是任何创造新状态的事:一次代码变更要经过你的审查和你的CI才能上线,永远不能绕过它们。
分界线不是人对智能体。而是可逆对不可逆。这也是为什么你并没有在暗中继续on-call:回滚在02:33结束了故障,比你合并拉取请求早了六个小时。PR从来不是止血的东西。它是防止再次发生的东西,而那可以等到喝完咖啡。
而这道关口你可以委托出去。代码审查智能体已经在读你仓库里的每一个拉取请求。在一个离此不远的世界里,你的审查智能体在02:41读到修复,对照调查核查它,批准它,你的CI在你醒来之前部署到生产环境。这个循环没有任何变化,除了谁握着批准按钮。这就是终点:自己修复自己的软件,由你来写策略,而不是点击合并。
注意这个循环里少了什么:
提示框是学着信任这些系统的好方式,却是运行生产环境的糟糕方式。智能体同时看过每一个服务的每一次部署、每一行日志和每一个指标。把它关在提示框后面,意味着你团队中信息最全的成员只在被问到时才开口。
2026年不该再有人需要on-call。