Agent OS 的实现

    本文介绍一种基于Agent 的AI 操作系统(Agent OS)。本系统借用了工业自动化领域功能块和功能块网络的概念。实现Agent 的分布式协作控制。

什么是智能体?

     在传统的人工智能中,智能体被定义为感知并作用于其环境的实体。大模型时代Agent 的概念更加狭隘了:

智能体是一个使用 LLM 来决定应用程序的控制流的系统。

我们没有必要寻找一种普遍认可的Agent 的定义,而是研究什么样的系统更具备智能体特性(agentic)。

智能体特性(agentic)

  • 追求复杂目标而没有被告知如何追求目标的系统更具智能体特性
  • 用自然语言指导并代表用户自主行动的人工智能系统更具智能体特性
  • 控制流由LLM驱动的系统是动态的,更具智能体特性
  • LLM 越是决定系统行为方式,系统就越“智能体”。

什么是Agent OS?

      传统操作系统是并发程序的运行平台,它实现程序的建立,运行和调度。与此相同,AgentOS 是运行智能体的运行平台。它支持智能体的建立,运行和调度。

Agent OS的基本架构如下图所示:

     Agent OS是基于Nodejs 平台构建,使用javascript ES6 编程。系统采取的基于模块化设计思想构建,应用程序的基本组件是Agent。多个Agent 通过信号连接和数据连接构成Agent 网络。每个Agent 内部都通过LLM 提供AI 能力。

Agent OS的主要功能

 对话者管理

          Agent OS支持多对话者模式,当一个对话者加入对话后,将对话者名称加入对话者列表。每个对话者构建一个启动智能体(StartAgent)。由启动智能体连接一个智能体网络。结束之后返回智能体。最后将结果返回给对话者。

Agent 管理

        智能体类型定义为javascript 的class 。智能体是智能体类型的实例(instance)。智能体通过智能体网络实现思维链。

Agent 的执行

 Agent 的分类

  基本智能体

  智能体是具有思维能力的实体,它具有如下特征:

    输入信号

          其它智能体发送给智能体的信号 。

    输出信号

         智能体思考后,判断后发出了信号。

   输入信息

        智能体接收到的信息。

输出信息

     智能体向外部提供的信息

 

复合智能体

复合智能体内部包含了一组智能体,并且构成一个智能体网络。

       

智能体分层架构

        复合智能体能够实现AI 应用程序的分层模块化。每个复合智能体都是一个AI 的程序片段,它们根据智能体之间的信号(Signal) 逐段地执行。

Agent OS的数据结构

对话者列表(Talker List)

保留了对话者名称和对话者Agent 对象。

智能体类型列表(Agent Type List)

系统中所又智能体类型表。

智能体堆栈(Agent Stack)

   为了分层执行智能体,保留了一个智能体堆栈,堆栈中的内容是智能体的对象,反映智能体的分层结构,每次进入一个智能体,就将该对象压入智能体堆栈,退出智能体时,就弹出智能体。

基本信息

AgentOS 内部包含了基本的信息,它们主要包括:

     对话者信息

     当前环境信息

这些信息被存储在数据库中,AgentOS 提供了读取数据库的程序。

Agent 架构

       智能体相当于传统OS的进程,在Agent OS 中,智能体是由智能体类型(Agent Type class )和智能体类(Agent class)定义的。 智能体的信息是由智能体对象自带的。AgentOS 根据智能体的数据进行调度执行。

      所有的AgentType 存放在AgentOS 内部的AgentType List 中,Agent_List 存放在相应复合智能体的类中。复合智能体内部的智能体是由Agent 类实例化时创建的。

      每个智能体的所有信息都是在智能体对象自己保存,AgentOS 根据智能体的信息进行调度执行。这类似于传统OS 的进程控制块(PCB)。这种结构简化了Agent 的调度方法,要比由AgentOS 统一管理的方式更加方便。

 为了实现Agent 的嵌套执行,在Agent OS 中设置了一个智能体对象的堆栈(Agent Stack)

智能体基本信息(Agent Base Information)

  •    名称 (Name)
  •    类型(agent Type)
  •    智能体描述(agent description)
  •    父智能体(Parent Agent)
  •    当前目标(Current Goal)
  •    对话者名称
  •   大语言模型名称

智能体描述(Agent Description)

智能体的功能和接口描述。

智能体上下文信息(Agent Context )

   智能体之间通过上下文信息共享信息。

智能体也会将信息返回给上层智能体的上下文信息中。

 上下文信息的主要内容

  每一次对话而言,大语言模型根据提示,做出回答。上下文信息是提示中重要组成部分。它们包括:

对话的目的(Goal)

        当前对话者提出的总目标。比如:购买一件衣服。

智能体目的(Agent Goal)

        当前智能体的目标。

智能体描述

 智能体的功能和接口描述。

对话者的信息 (talker Information)

对话者基本信息(talker Basic Information)

  • 名称
  • 性别
  • 出生地
  • 出生年月
  • 当前所在地

对话者的其它信息

  •     工作经历
  •      教育经历
  •      家庭成员
  •      个人爱好

当前信息(Current Information)

  •     当前时间
  •     当前的温度
  •     当前所处的位置

同层上下文信息(Conext)

    为了完成目标,完成一个目标,可能需要多个智能体协作完成。每个智能体完成子任务后,提供的上下文信息。最顶层的信息放置在AgentOS 中。

智能体列表(Agent List)

如果当前智能体是复合智能体,那么就包括了智能体列表。它们在当前智能体创建时创建和填入

智能体连接表(Agent Connection)

     如果当前智能体是复合智能体,那么就包括了智能连接表,它们在当前智能体创建时填入。智能体连接表由信号连接表(Signal Connection List)和数据连接表(Data Connection List)组成。

复合智能体的执行

        当出现输入信号时,调用Execution 程序,沿着信号调用智能体网络,当结束时,调用Forward 将信号转向上一层智能体网络。

 实验系统

        我们在NodeJS 基础上,构建了一个AgentOS 的最小系统。基于jvascript ES6 编写,使用javascript ES6 的类定义智能体,每个智能体都是智能体类的实例。

   实验项目实现一个对话系统,能够控制家用电器空调和电灯。又能够进行普通的大模型对话。

应用程序是一个复合智能体,称为ApplicationAgent。它包括了两个智能体:

  •    家庭自动化智能体(HomeAutomation Agent)
  •    普通对话智能体(Dialog Agent)

  应用智能体(ApplicationAgent)

 家庭自动化(HomeAutomation Agent)

家庭自动化智能体是一个复合智能体,由三个智能体构成:

  • 控制器智能体
  • 空调智能体
  • 灯光智能体

结束语

我们初步构建了AgentOS 的最小系统,还有许多问题有待解决:

如何开发通用的Agent?实现Agent 的重用

如何构建基于图形的Agent 开发环境(Agent IDE)

  • 31
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值