仪表盘
2026年7月5日
作者: Boris Tane

我把公司押在了主动型智能体上

Explore with AI

智能体几乎能做你要求的任何事,而问题正在于此:你仍然得去要求

我不断听到人们把智能体称为“数字同事”。这个说法是错的。一个默默坐着、直到你交给它一个范围划得完美的任务、做完再回去等着的同事,不是同事。你用过的每一个智能体都是这样工作的。模型更聪明了,harness更好了,运行更长了,但界面从未改变:你带来工作,智能体带来劳动。

而大多数人没有注意到,因为在我们脑子里,提示框已经悄悄变成了AI本身

Ask anything about your stack...
AI的默认界面。

每一个界面仍然是一个提示框

输入框是这整个时代的起点。ChatGPT在一个模型上放了一个输入框,成为历史上增长最快的产品,然后我们全都照搬了。此后每一个AI产品都是同一种交互的变体:人打字,机器回应,机器等待。

Claude Code是下一次演进。智能体搬进了你的终端,拿起你的文件、你的shell和你的git历史,开始做真正的工作,而不是谈论它。这改变了智能体能做什么,却没有改变它们如何开始:你打字,它工作,它停下,然后等你再次打字。

~/app
$ claude
✳ 12 files · main · last session 2h ago
> fix the failing checkout tests
? for shortcuts
同一个输入框,在终端里。

然后智能体搬进了云端。Codex、Devin、网页版的Claude Code。它们运行数小时而不是数分钟,启动子智能体来并行处理工作,并且不会在你合上笔记本时死掉。你午饭前交给其中一个一项任务,回来时得到一个拉取请求。

graph TD
    A[You write the task] --> B[Cloud agent]
    B --> C[Sub-agent]
    B --> D[Sub-agent]
    B --> E[Sub-agent]
    C --> F[Pull request]
    D --> F
    E --> F
    style F fill:#d1fae5,stroke:#6ee7b7,color:#065f46

提示词甚至不再只是键盘上的东西。后台智能体可以由一条告警或一个webhook触发,大多数智能体平台现在都提供自动化:当这个事件触发,或这个cron到点时,用这些指令运行一个智能体。

Triage Sentry alerts Enabled
When
a Sentry alert fires
Do
investigate, open an incident if it's real
Then
post the findings to #incidents
一个自动化:智能体按你写好的指令对事件做出反应。

但自动化是什么?它是你提前写好的一条提示词。你预测了失败模式,选定了事件,写下了该做什么。触发器启动智能体,但其中的判断是你的,在设置那一刻就冻结了。一个自动化只能捕获你预料到的东西,别无其他。

你就是调度器

剥去工具的外壳,三年来这种分工没有移动过一寸。智能体做工作。决定工作是什么,仍然是你的活。

你看仪表盘,你听用户反馈,你弄清什么重要,然后把你学到的一切压缩成一条提示词,要么当场在键盘上,要么提前写进一个触发器。智能体执行得漂亮,但系统中的每一份判断都源自你。

graph TD
    A[Dashboards] --> D[You]
    B[Alerts] --> D
    C[User complaints] --> D
    D --> E[The prompt you type today]
    D --> F[The automation you configured last month]
    E --> G[Agent]
    F --> G
    style D fill:#fee2e2,stroke:#fca5a5,color:#991b1b

下一次演进:自己找到工作的智能体

我押注的下一次演进,是智能体自己找出该做什么。没有提示词,没有要配置的触发器,没有提前写好的指令。你连接上你的技术栈,智能体自己去找工作:它看你看的那些信号,注意到不对劲的地方,判断它是否重要,然后自主开始处理。

这说起来容易,做起来却极难,因为主动性是三个叠在一起的问题,跳过其中任何一个,得到的东西都比输入框后面的智能体更糟。

**上下文。**显然,智能体需要一个关于它所处世界的实时模型,而不是你在提示时粘贴进上下文窗口的一张快照。上下文糟糕的被动智能体给你一个糟糕的答案。上下文糟糕的主动智能体会删掉你的生产数据库,因为它以为那是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做的事。这是一个具体的周二:

graph TD
    A["02:14 — checkout p99 jumps from 180ms to 2.1s"] --> B["02:15 — agent flags it: new error pattern, right after the 01:52 deploy"]
    B --> C["02:16 — incident opens, 3 hypotheses investigated in parallel"]
    C --> D["02:31 — verdict: connection pool exhausted by a new N+1 query"]
    D --> R["02:33 — the 01:52 deploy is rolled back, p99 back to 180ms. The incident is over."]
    R --> E["02:38 — PR opened with the fix and the evidence attached"]
    E --> F["08:30 — you wake up, read the investigation, merge"]
    style A fill:#fee2e2,stroke:#fca5a5,color:#991b1b
    style R fill:#d1fae5,stroke:#6ee7b7,color:#065f46
    style E fill:#d1fae5,stroke:#6ee7b7,color:#065f46

没有人为这种失败模式配置过检查。没有规则要写,没有阈值要调:智能体以连续的节奏评估每一个已连接的资源,你现有的仪表盘和保存的查询成为它们的检查清单。判断是我最严格的地方。默认判定是没有异常,因为漏掉一个边缘问题,远比为噪声叫醒一个人要好得多。“一次部署可能引入bug”对每一次部署都成立,从来不是呼叫任何人的理由。

当某件事是真实的,调查会并行运行几个相互竞争的假设,每个智能体的任务是推翻而不是证实自己的假设,所以相关性永远没机会伪装成因果。当确认的根因是一次代码变更时,修复以附带调查的拉取请求形式到达:

Restore Hyperdrive pool size in checkout-edge
PR open coreplane/checkout-edge
Investigation report attached Checks passing
修复以PR的形式到达。你审查,它合并。

Opened by Polylane · gated on review and CI

主动不等于无人监督

自主性体现在注意、分诊、凌晨3点的考古和缓解上。任何恢复已知良好状态的事,智能体都自己做:回滚糟糕的部署,把开关拨回去。这些操作从构造上就是可逆的,而且它们才是真正让呼叫器安静下来的操作。仍受关口把守的是任何创造新状态的事:一次代码变更要经过你的审查和你的CI才能上线,永远不能绕过它们。

分界线不是人对智能体。而是可逆对不可逆。这也是为什么你并没有在暗中继续on-call:回滚在02:33结束了故障,比你合并拉取请求早了六个小时。PR从来不是止血的东西。它是防止再次发生的东西,而那可以等到喝完咖啡。

而这道关口你可以委托出去。代码审查智能体已经在读你仓库里的每一个拉取请求。在一个离此不远的世界里,你的审查智能体在02:41读到修复,对照调查核查它,批准它,你的CI在你醒来之前部署到生产环境。这个循环没有任何变化,除了谁握着批准按钮。这就是终点:自己修复自己的软件,由你来写策略,而不是点击合并。

graph TD
    A[Signals] --> B[Detection]
    B --> C[Investigation]
    C --> R[Rollback, on its own]
    C --> D[Pull request]
    D --> E[You or your agent review, it merges]
    R --> F[Memory]
    E --> F
    F --> B
    style R fill:#d1fae5,stroke:#6ee7b7,color:#065f46
    style D fill:#d1fae5,stroke:#6ee7b7,color:#065f46
    style F fill:#dbeafe,stroke:#93c5fd,color:#1e40af

注意这个循环里少了什么:

Ask anything about your stack...
没有人打字。没有人配置。

提示框是学着信任这些系统的好方式,却是运行生产环境的糟糕方式。智能体同时看过每一个服务的每一次部署、每一行日志和每一个指标。把它关在提示框后面,意味着你团队中信息最全的成员只在被问到时才开口。

2026年不该再有人需要on-call。

2026年,不该再有人需要on-call。 Polylane观察你的基础设施,进行调查,并修复出问题的地方。

加入候补名单