返回首页
ArchitectureAgent

writing

轮询是平台功能,不是智能体功能

一件周而复始的事,不该交给一个会思考、会烧钱的智能体去做。把调度留给平台,把判断留给智能体。

我搭 AI 系统的时候踩过一个坑:为了让一个智能体「自动」去检查有没有新任务,我让它每隔一段时间去问一次。

听起来很合理——直到它真的跑起来。一个本来该用来做判断、写内容、处理业务的智能体,把大量的算力花在「看一眼,没有,继续等」上。每一次空转都是一次完整的模型调用,烧的是真金白银。更糟的是,它的生命周期被这件事扭曲了:本该干完一件事就停下,现在却变成一个永远不睡觉、永远在原地打转的循环。

后来我想明白了一件事:轮询是平台功能,不是智能体功能。

机制和业务,不该混在一起

一个系统里其实有两层完全不同的东西:

  • 机制层:时间、轮询、队列、互斥、事件感知、重试退避。这些是周而复始的、可预测的、不需要任何判断的。
  • 业务层:内容、判断、上下文、规则、拆分。这些是需要思考的、一次性的、有结果的。

把这两层混在一起,就是问题的根源。一个智能体如果同时承担「定时去看」和「看到后怎么处理」,它就被迫同时扮演时钟和决策者——而时钟这个角色,恰恰是它最不擅长、最浪费的。

平台该干的活

凡是周而复始的事,都应该交给平台层,而不是智能体。平台层不需要调用模型,它只需要:

  • 时间触发:到点了,唤醒该醒的智能体。
  • 事件感知:某件事完成了,主动通知下一个该动的智能体。
  • 互斥保护:同一个智能体正在忙,就不给它派新活,免得它的记忆被多个任务搅乱。
  • 重试退避:失败了,按节奏再来,而不是无脑立刻重试。

这些全是规则,全是机械动作,不需要一个会思考的大脑来做。用一个轻量的、不烧钱的调度器去做,既干净又便宜。

智能体该干的事

智能体被唤醒之后,只做一件事:处理这一条任务。处理完,就结束这一个回合(turn),然后回到静默。

  • 不扛队列。
  • 不自己轮询。
  • 不常驻。

为什么必须这样?因为智能体的「记忆」是一种稀缺且容易污染的资源。如果让一个智能体同时扛着一串任务、或者在等待中保持「常驻」,它的上下文会被塞满,判断质量会下降,甚至会把上一个任务的残留带进下一个任务。

一次回合,一件事。 智能体被叫醒,处理眼前这一件事,处理完就睡。下一件事由平台在下一个合适的时机再叫它。

这么分的好处

把机制和业务正交开之后,几件事自然就顺了:

  • 省钱:智能体不再空转,只在真有事的时候被唤醒、跑一次。
  • 不扭曲生命周期:智能体干完即停,不会被「等待」拖成一个常驻进程。
  • 关注点干净:调度逻辑归平台,智能体只关心「怎么把这一件事做好」。
  • 可替换:平台的调度器换成别的实现,不影响智能体;智能体换一个模型,也不影响调度规则。

一句话

一个会思考、会烧钱的智能体,最不该干的事就是原地打转。凡是周而复始的,交给不会思考、不烧钱的平台层;把判断和内容,留给真正擅长它的智能体。

这是我在搭这套系统时最早确定下来的几条原则之一,也是后来很多设计能站住脚的地基。