# 解构Project89:一个模块化、高性能的下一代AI Agent框架设计Project89采用了一种全新的方式来设计Agent Framework,这是一个针对游戏开发的高性能Agent Framework,与目前使用的Agent Framework相比更加模块化也有更好的性能。本文将详细介绍Project89中的高性能Agent Framework。## 一、为什么要用ECS来设计Agent FrameworkECS (Entity-Component-System)是一种在游戏开发与模拟系统中常用的架构模式。它将数据与逻辑彻底分离,以便在大规模可扩展场景下高效管理各种实体及其行为:1. Entity(实体):仅仅是一个ID(数字或字符串),不包含任何数据或逻辑。可以根据需要,挂载不同的组件来赋予它各种属性或能力。2. Component(组件):用来存储实体的具体数据或状态。3. System(系统):负责执行与某些组件相关的逻辑。以一个具体的Agent行动的例子来理解这套体系:在ArgOS中将每一个Agent看成一个Entity,它可以注册不同的组件,比如:- Agent Component:主要存储类似Agent名称,模型名字等基础信息- Perception Component:主要用来存储感知到的外界数据 - Memory Component:主要用来存储Agent Entity的Memory数据,类似做过的事情等- Action Component:主要存储要执行的Action数据System的工作流程:1. 感知到自己面前有一个武器,调用Perception System的执行函数来更新Agent Entity的Perception Component里面的数据2. 触发Memory System,同时调用Perception Component和Memory Component,把感知到的数据通过Memory持久化到数据库3. Action System再调用Memory Component和Action Component,从记忆中获取周边环境的信息,然后执行相应的动作4. 得到一个每个Component数据都被更新的Updated Agent Entity所以System主要负责定义要对哪些Component执行对应的处理逻辑。在Project89里,一个世界中充斥着各种类型的Agent,有些Agent不仅拥有基础能力还有做计划的能力。## 二、ArgOS System架构ArgOS中为了让Agent可以进行更加深度的思考执行更复杂的任务,设计了很多Component,以及很多System。ArgOS中将System分为"三种层次"(ConsciousnessLevel):1. 有意识(CONSCIOUS)系统 - 包含RoomSystem、PerceptionSystem、ExperienceSystem、ThinkingSystem、ActionSystem、CleanupSystem - 更新频率通常较高(如每10秒) - 更贴近"实时"或"显意识"层面的处理,如环境感知、实时思考、执行动作等2. 潜意识(SUBCONSCIOUS)系统 - GoalPlanningSystem、PlanningSystem - 更新频率相对较低(如每25秒) - 处理"思考"的逻辑,如周期性检查/生成目标和计划3. 无意识(UNCONSCIOUS)系统 - 目前暂时还没有启用 - 更新频率更慢(如50秒以上)ArgOS中各个system之间的关系极其复杂,主要包括:1. PerceptionSystem:负责从外界或其他实体那里收集"刺激"(stimuli),并将其更新到代理(Agent)的Perception组件中。2. ExperienceSystem:将PerceptionSystem收集到的Stimuli转换为更加抽象的"体验"(Experience)。3. ThinkingSystem:智能体自身的"思考"系统。从Memory、Perception等组件里提取当前状态,通过generateThought(...)与LLM/规则逻辑生成"思考结果"(ThoughtResult)。4. ActionSystem:若某个Agent的Action.pendingAction非空,则通过runtime.getActionManager().executeAction(...)来真正执行动作。5. GoalPlanningSystem:周期性地评估Goal.current[eid]列表中目标的进度,或检查外部/自身记忆是否出现重大变化。6. PlanningSystem:对"已有目标"(Goal.current[eid])生成或更新Plan(执行计划)。7. RoomSystem:处理与房间(Room)相关的更新。8. CleanupSystem:定期查找并移除标记了Cleanup组件的实体。通过这些系统的衔接,AI Agent就实现了:感知环境变化(Perception) → 记录或转化为内在经验(Experience) → 自我思考并决策(Thinking) → 付诸行动(Action) → 动态调整目标与计划(GoalPlanning + Planning) → 同步环境(Room) → 及时回收无用实体(Cleanup)## 三、ArgOS整体架构解析1. 核心架构分层2. 组件(Component)分类 - 核心身份类 - 行为与状态类 - 感知与记忆类 - 环境与空间类 - 外观与交互类 - 辅助或运维类3. System架构4. Manager架构 包括EventBus、RoomManager、StateManager、EventManager、ActionManager、PromptManager等5. 与数据库的交互 通过StateManager/PersistenceManager来完成## 四、架构创新点- 每个System都是独立运行的,不会跟其他的System之间有调用关系- 可以轻易地增加或减少Agent的能力- 性能比传统面向对象架构更强- 将System分成有意识、潜意识和无意识是一个极具创新性的设计总的来说,这是一个极其模块化、性能优秀的框架,代码质量很高并且包含了很好的设计文档。它为游戏团队或Defai团队提供了一种新的潜在的架构选择。
Project89: 模块化高性能的下一代AI Agent框架
解构Project89:一个模块化、高性能的下一代AI Agent框架设计
Project89采用了一种全新的方式来设计Agent Framework,这是一个针对游戏开发的高性能Agent Framework,与目前使用的Agent Framework相比更加模块化也有更好的性能。
本文将详细介绍Project89中的高性能Agent Framework。
一、为什么要用ECS来设计Agent Framework
ECS (Entity-Component-System)是一种在游戏开发与模拟系统中常用的架构模式。它将数据与逻辑彻底分离,以便在大规模可扩展场景下高效管理各种实体及其行为:
Entity(实体):仅仅是一个ID(数字或字符串),不包含任何数据或逻辑。可以根据需要,挂载不同的组件来赋予它各种属性或能力。
Component(组件):用来存储实体的具体数据或状态。
System(系统):负责执行与某些组件相关的逻辑。
以一个具体的Agent行动的例子来理解这套体系:在ArgOS中将每一个Agent看成一个Entity,它可以注册不同的组件,比如:
System的工作流程:
感知到自己面前有一个武器,调用Perception System的执行函数来更新Agent Entity的Perception Component里面的数据
触发Memory System,同时调用Perception Component和Memory Component,把感知到的数据通过Memory持久化到数据库
Action System再调用Memory Component和Action Component,从记忆中获取周边环境的信息,然后执行相应的动作
得到一个每个Component数据都被更新的Updated Agent Entity
所以System主要负责定义要对哪些Component执行对应的处理逻辑。
在Project89里,一个世界中充斥着各种类型的Agent,有些Agent不仅拥有基础能力还有做计划的能力。
二、ArgOS System架构
ArgOS中为了让Agent可以进行更加深度的思考执行更复杂的任务,设计了很多Component,以及很多System。
ArgOS中将System分为"三种层次"(ConsciousnessLevel):
有意识(CONSCIOUS)系统
潜意识(SUBCONSCIOUS)系统
无意识(UNCONSCIOUS)系统
ArgOS中各个system之间的关系极其复杂,主要包括:
PerceptionSystem:负责从外界或其他实体那里收集"刺激"(stimuli),并将其更新到代理(Agent)的Perception组件中。
ExperienceSystem:将PerceptionSystem收集到的Stimuli转换为更加抽象的"体验"(Experience)。
ThinkingSystem:智能体自身的"思考"系统。从Memory、Perception等组件里提取当前状态,通过generateThought(...)与LLM/规则逻辑生成"思考结果"(ThoughtResult)。
ActionSystem:若某个Agent的Action.pendingAction非空,则通过runtime.getActionManager().executeAction(...)来真正执行动作。
GoalPlanningSystem:周期性地评估Goal.current[eid]列表中目标的进度,或检查外部/自身记忆是否出现重大变化。
PlanningSystem:对"已有目标"(Goal.current[eid])生成或更新Plan(执行计划)。
RoomSystem:处理与房间(Room)相关的更新。
CleanupSystem:定期查找并移除标记了Cleanup组件的实体。
通过这些系统的衔接,AI Agent就实现了:感知环境变化(Perception) → 记录或转化为内在经验(Experience) → 自我思考并决策(Thinking) → 付诸行动(Action) → 动态调整目标与计划(GoalPlanning + Planning) → 同步环境(Room) → 及时回收无用实体(Cleanup)
三、ArgOS整体架构解析
四、架构创新点
总的来说,这是一个极其模块化、性能优秀的框架,代码质量很高并且包含了很好的设计文档。它为游戏团队或Defai团队提供了一种新的潜在的架构选择。