本文非 AI 创作

前言

现在网络上的文章都没人看,是因为很多内容不是人写的。
在网上找参考资料的时候我就发现大量的解析源码的文章全部都是 AI 写的,条条是到,然后观看量几乎没有,人一看到 1、2、3 这样的列举就头疼,现在在这样的时代下,坚持手动创作其实确实挺需要毅力的。
本文主要是我在浏览和思考的过程中,总结的一些我自己在没有看之前想不到的地方。

循环本身

agent-loop-diagram

首先循环如果真的简单说非常简单,其本质是工具的调用。为什么之前的模型只会对话?而现在加了 cc 之后就能工作了,答案就是工具。有了工具就有了手,就能干活了。而整个循环就是不断的在调用工具,直到不需要调用工具为止,工作就结束了。这个设计就像是人在写代码一样,人是先思考,然后再开始写,然后测试,发现不行回来再改再写,再测试再写,最终写完。AI 也是,思考要怎么做,使用哪些工具去做,做完之后要怎么检查等等。最终全部做完,不需要用工具了,只剩下思考总结一下就退出了。

所以 agentic loop 其实说简单就是这样而已。而其中更细节的更难的,其实是工具的调用和执行。

多 agent 的好处

如果让你直接想为什么需要多 agent 同时执行,你没有思考直接给到的想法肯定就一个字 “快”。但是除了快,还有别的什么吗?

我看了解析给我有几个印象深刻的地方:

  1. 每个 agent 的工具不同,效率就能不一样。因为我们直到工具和 mcp 越多,越慢,因为 AI 要做出更多的选择,而由于多 agent 协同工作,每个都负责一定的“螺丝钉”的工作,就不需要那么多工具了,比如你只是单纯写代码,就不用联网去搜了,调研的交给别人去完成了。
  2. 上下文,这个仔细自己想一下还是能想到的,因为上下文现在是有限制的,上下文太大会被压缩,而分给其他 agent 工作之后,细节就不需要管了,我不需要知道这个工作是如何完成的,我只要知道最后已经完成就可以了。最后做一个汇总就好了。
  3. 将通知作为用户消息。多 agent 协作是通过消息机制来沟通的,而对于大模型来说,并不用理解这种消息机制,而将其他 agent 派来的任务直接作为用户的一种行为输入就可以了,将机器命令作为人的命令去执行。这样也是完美覆盖了之前的循环的。

整体实现其实并没有复杂,用的还是那些技术,甚至可以说,这样的协同工作和消息机制我好像在哪里看到过,没错,操作系统里面。

为什么 Claude code 看起来更智能

至少从我使用角度上来说,即使使用相同的模型的情况下 cc 比其他 agent 会更智能。我也看到了其他对于 cc 和 oc(openclaw) 的讨论,包括论文,其实我觉得他们本质没什么不一样。

我的总结是:通过提供工具和调用链将 LLM 和目标结合为 flow 从而实现用户描述的任务。

而区别就在与权限的控制、工具的提供、上下文的提供的等等其他方面。

那么为什么看起来完成任务的效果更好呢?我觉得其中很大一部分原因在于,用更少的上下文和更少的工具完成任务,有时候质量反而会更高。有的时候我觉得过多的 harness 就是跑非的关键,带上了一堆和任务无关的上下文就会影响它的工作效率和状态,而带上了一堆无用的工具就像是累赘让 AI 选择困难。

思考

对我们使用上来说有什么帮助吗?其实几乎没有,我一直相信好的 AI 工具是不需要人过多去介入和使用的,而看完之后给我更多的是对于 agent 设计的思考。

如果现在让我去设计一个新的 agent,抛开 agnet loop 的想法,获取我会用两个系统,一个是有限状态机将工作分成几个形态 agent 在这几个形态中运转,一个是事件总线所有的消息包括用户全部通过统一调度去分发,但依旧没有 AL 来的那么简单直接和优雅。

所以其实我们在设计 agent 的时候,如何让它更简单直接的去完成用户的任务,而不是让它去思考和选择太多的工具和上下文,才是我们应该去思考的。

参考链接