在关于思维和智能体模型的思考(1)一文中,我们提出了思维和Agent 模型,提出了使用确定连接的智能体构建的思维模型。本文我们继续讨论思维与智能体,重点探讨另一种智能体-自主智能体,并且提出了自主智能体的运行和调度方法。
思维模型的两种不同形式
在我的上一篇博文中提出,思维模型是由一组相互连接的智能体和环境信息构成的。我们也强调,如果说人类大脑的思维是一组相互连接的智能体的话,那么智能体之间的连接是神秘的,不可预知。
与此同时, 对于许多目标而言,人类已经积累了大量已有的思维过程范式,正是因为如此,我们能够预先规划解决问题,达成目标的智能体网络。从而使思维的效率更高。避免大脑从头全局探索思维路径。在此基础上我们提出了基于智能体网络的思维模型
这个思维模型对于简单目标的实现是有效的,但是对于一些复杂的问题而言,这种思维网络将会变得非常的庞大。
为了解决这个问题,我们可以导入更加灵活的智能体模型-自主智能体。
自主智能体
随着大语言模型的持续火爆,利用其构建 AI 智能体的研究陆续进入人们的视线。AI 智能体这个概念也流行开来,人们研究和描绘了各种形式的智能体,不断突破人们的想象力。
OpenAI 安全系统(Safety Systems)负责人 Lilian Weng 写了一篇关于 AI 智能体的博客。她认为 AI 智能体的核心驱动力是大语言模型,规划(Planning)、 记忆(Memory)和工具使用(Tool Use)是实现它的三个关键组件。
在大语言模型(LLM)赋能的自主智能体系统中,LLM 充当了智能体的大脑,其三个关键组件分别如下:
首先是规划,它又分为以下内容:
子目标和分解。智能体将大型任务分解为更小、可管理的子目标,从而高效处理复杂的任务;
反思和完善:智能体可以对过去的行为展开自我批评和自我反思,从错误中吸取教训,并针对未来的步骤进行完善,提高最终结果的质量。
其次是记忆,分为了短期记忆和长期记忆:
短期记忆:作者认为所有的上下文学习(参见提示工程)都是利用模型的短期记忆来学习。
长期记忆:为智能体提供了长时间保留和回忆(无限)信息的能力,通常利用外部向量存储和快速检索实现。
最后是工具使用:
智能体学习调用外部 API 来获取模型权重中缺失的额外信息(通常在预训练后很难更改),包括当前信息、代码执行能力、对专有信息源的访问等。
上述的智能体模型强调了智能体的自主性。我们将这种智能体称为自主智能体。
----自主智能体是能够感知环境、自主决策并且具备短期与长期记忆的计算机模型,它能够模仿人类大脑工作机制,根据任务目标,主动完成任务。
在自主智能体的概念中,弱化了智能体之间的连接,智能体具备自洽性。它完全根据环境的变化自主地运转。
两种Agent 模型的统一性
两种Agent 模型本质上是一致的,只是方式不同。
对于自主智能体而言,每个智能体自主地根据环境的变化自主运行,同时又将改变环境,智能体的信号是蕴含在环境信息中的,相比信号智能体而言,它们的信号是隐身在环境之中的。
自主智能体思维模型
从前面的讨论可以看出,自主智能体具有规划,记忆和工具三大特征。如果在计算机系统中仿真运行的话。自主智能体的思维模型具有如下特点:
- 每个智能体完成一项单一目标的任务
- 智能体内部维护一种目标链。大的目标是可以分解为一系列更小的目标。
- 智能体的小目标是由其它智能体完成的。智能体之间要共享目标信息。在环境信息中,包含了一个目标队列。智能体可以发布需要实现的小目标。
- 如果一个目标加入了目标队列,承担完成队列中目标的智能体主动地尝试完成这项目标。
- 可以由智能体自主判断是否能够完成目标,也可以通过智能体注册的方式,由运行时判断哪个智能体能够完成目标队列中的目标。
- 智能体的执行可以是轮询方式,也可以是并行方式。
根据上面的特点,可以有两种智能体运行时实现方法:
- 轮询方式
这种方式与信号智能体调度中的信号队列的处理方式是类似的。
- 调度方式
每个Agent 都注册到运行时,注册信息中包括了智能体的描述,调度程序根据目标和智能体的描述,利用大模型LLM调用智能体运行。当智能体能够从环境信息中获取了足够的信息后就执行。这种方式简化了智能体的模型对目标的判断。
自主智能体和信号智能体相结合
自主智能体能够与信号功能块混合使用。在应用中,可能自主智能体是一个“大”的智能体,而信号智能体是“小”的智能体。
智能体OS?
在智能体模型的基础之上,是否会出现支持智能体的操作系统?我想是可能的。下一步,我们将是实现一个自主Agent 的调度系统。
结论
智能体的实现是非常灵活的,不应该是少数固定的几种方式。也绝非靠简单的设置就能实现,也需要进一步的研究。努力吧!别停留在老外的几篇论文之上,创新的机会很多!