# 解構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團隊提供了一種新的潛在的架構選擇。