Manus的開源替代者之一:OpenManus通用AI智能體框架解析及產品試用

引言

在AI智能體領域,Monica團隊近期發布的Manus被譽為全球首個通用型AI智能體。該項目推出后迅速爆紅,邀請碼一號難求,隨之而來的是各路開發者快速構建了眾多類似的開源替代方案。其中,MetaGPT團隊的5位工程師僅用3小時就開發完成了一個開源版本——OpenManus,短短幾天時間便獲得超過3萬的GitHub星標,再次引發行業廣泛關注。本文將深入解析OpenManus的核心技術原理、架構設計和實際使用體驗,帶領讀者一起探索這個備受矚目的開源AI智能體框架。

OpenManus項目全面概述

OpenManus是一個完全開源的通用AI智能體框架,其核心理念是"No fortress, purely open ground"(無堡壘,純開放之地)。

項目核心特點

  • 完全開源,無需任何邀請碼即可立即使用
  • 支持多種復雜任務類型的智能處理
  • 提供強大的瀏覽器自動化能力
  • 內置Python代碼執行環境
  • 實現了高效的多智能體協作流程
  • 提供豐富且可擴展的工具調用機制

OpenManus的核心技術原理

精心設計的架構體系

OpenManus采用了高度模塊化、分層的架構設計,大量運用了面向對象的設計模式和最佳實踐。系統按照模塊職責清晰劃分為多個功能層次:

  • 應用層:主入口和運行文件(main.py、run_flow.py等)
  • 智能體層:實現各種代理的核心行為(app/agent/)
  • 工具層:提供各種功能工具的實現(app/tool/)
  • 基礎設施層:配置管理、日志系統、LLM接口等

項目目錄結構清晰直觀

  • app/:核心應用代碼
    • agent/:各類智能體實現(Manus、Browser、Tool call等)
    • tool/:工具集合實現(Python執行器、瀏覽器操作、文件處理等)
    • flow/:多智能體協作的流程管理系統
    • prompt/:存儲系統提示模板和指令集
  • config/:配置文件目錄
  • examples/:示例代碼和使用案例
  • workspace/:工作區文件夾,用于存儲智能體生成的所有文件

OpenManus的工作流程詳解

OpenManus的工作流程主要遵循"plan->action->review->action->review…"的循環模式,直到觸發結束條件。具體流程如下:

  1. 用戶輸入處理階段

    • 用戶輸入prompt后,系統自動創建智能體實例并傳遞用戶指令
    • 智能體將用戶輸入存儲到內部記憶系統(Memory)中
  2. 任務計劃制定階段

    • 專門的規劃智能體調用LLM針對prompt進行系統化的任務拆分
    • 將復雜問題科學地拆解成一系列邏輯連貫的子任務序列
  3. 思考與行動循環階段

    • 思考(Think):分析當前狀態和歷史記錄,智能選擇最合適的工具
    • 行動(Act):精確執行選定的工具完成特定任務
    • 觀察(Observe):全面收集工具執行的所有結果數據
    • 更新記憶:將執行結果記錄到內部記憶系統
  4. 結果輸出階段

    • 當滿足終止條件(達到最大步數或任務完成標志)時,返回完整結果給用戶

以下是OpenManus核心工作流程的詳細流程圖:

OpenManus智能體工作流程圖

核心代碼實現解析

agent/planning.py文件中,OpenManus通過以下關鍵代碼創建初始任務計劃:

async def create_initial_plan(self, request: str) -> None:"""Create an initial plan based on the request."""logger.info(f"Creating initial plan with ID: {self.active_plan_id}")messages = [Message.user_message(f"Analyze the request and create a plan with ID {self.active_plan_id}: {request}")]self.memory.add_messages(messages)response = await self.llm.ask_tool(messages=messages,system_msgs=[Message.system_message(self.system_prompt)],tools=self.available_tools.to_params(),tool_choice=ToolChoice.AUTO,)# ... 后續處理代碼

而在agent/toolcall.py文件中,實現了智能體思考和行動的核心功能:

async def think(self):"""Process current state and decide next actions using tools"""# ... 讓LLM智能選擇最合適的工具執行任務response = await self.llm.ask_tool(messages=self.messages,system_msgs=[Message.system_message(self.system_prompt)]if self.system_promptelse None,tools=self.available_tools.to_params(),tool_choice=self.tool_choices,)# ... 后續處理代碼async def act(self):"""Execute tool calls and handle their results"""# ... 調用具體的工具執行任務for command in self.tool_calls:result = await self.execute_tool(command)# ... 后續處理代碼

OpenManus詳細安裝與使用指南

安裝OpenManus環境

OpenManus提供了兩種便捷的安裝方法,強烈推薦使用uv方式進行安裝。

方法一:使用conda環境管理
conda create -n open_manus python=3.12
conda activate open_manus
git clone https://github.com/mannaandpoem/OpenManus.git
cd OpenManus
pip install -r requirements.txt
方法二:使用uv包管理工具(推薦方式)

本文測試環境為Windows 11系統,因此下面腳本使用的是Windows PowerShell命令。不過Linux/macOS用戶也可參考注釋中的對應命令。

# 安裝uv工具
# Linux/macOS系統使用:
# curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows PowerShell使用:
iwr -useb https://astral.sh/uv/install.ps1 | iex# 安裝OpenManus項目
git clone https://github.com/mannaandpoem/OpenManus.git
cd OpenManus
uv venv --python 3.12
# source .venv/bin/activate  # Unix/macOS系統使用
.venv\Scripts\activate # Windows系統使用
uv pip install -r requirements.txt# 安裝瀏覽器自動化工具(可選但推薦)
playwright install
為什么強烈推薦使用uv?

uv是一款現代化的Python包管理工具,相比傳統的pip和conda,它具有以下顯著優勢:

  1. 極速安裝效率:uv采用Rust語言編寫,安裝依賴包的速度比傳統pip快5-10倍
  2. 智能依賴解析:uv能更準確地解析和處理復雜的依賴關系網絡
  3. 并行下載與安裝:uv支持多線程并行下載和安裝包,大幅提高配置效率
  4. 高效緩存機制:uv擁有更智能的緩存策略,有效減少重復下載
  5. 一體化虛擬環境管理:uv集成了虛擬環境創建和管理功能
  6. 最小化依賴沖突:uv的先進依賴解析算法可以有效減少依賴沖突問題

對于大型復雜項目如OpenManus,使用uv可以顯著減少環境配置時間,并有效降低依賴沖突的風險。

配置OpenManus連接大語言模型

OpenManus需要正確配置LLM API才能正常使用。詳細步驟如下:

  1. 創建個人配置文件:
cp config/config.example.toml config/config.toml
  1. 編輯config/config.toml添加您的API密鑰和自定義設置:
# 全局LLM配置
[llm]
model = "gpt-4o"  # 默認使用OpenAI的gpt-4o模型
base_url = "https://api.openai.com/v1"
api_key = "sk-..."  # 替換為您的OpenAI API密鑰
max_tokens = 4096
temperature = 0.0

值得特別注意的是,雖然官方文檔默認推薦使用OpenAI的gpt-4o模型,但只要遵守OpenAI接口協議規范的其他API服務商也完全可用。在本文測試中,我成功將配置更換為常用的API供應商OpenRouter,并成功調用了目前Agent能力最強的大語言模型Claude 3.7 Sonnet。

只需按照下面的示例修改配置文件中的相關參數即可輕松完成替換:

[llm]
model = "anthropic/claude-3.7-sonnet"        # 使用的大語言模型
base_url = "https://openrouter.ai/api/v1"  # API服務端點URL
api_key = "sk-or-..."  # 替換為您的OpenRouter API密鑰
max_tokens = 8192                           # 響應中的最大token數量
temperature = 0.0                           # 控制生成結果的隨機性

OpenManus實戰測試與效果展示

安裝配置完成后,只需執行一行簡單命令即可立即運行OpenManus:

python main.py

為了與原版Manus的運行效果進行直觀對比,我在Manus上選取了一個Tesla股票分析案例作為測試基準。如下圖所示,Manus通過系統規劃、數據搜集、綜合分析等一系列步驟,最終生成了一份完整的專業分析報告。

Manus生成的Tesla股票分析報告示例

因此,在OpenManus的命令行交互界面中,我輸入了完全相同的指令:“幫我做一下Tesla的股票投資分析報告,以Markdown格式輸出”。隨后,OpenManus立即開始執行任務規劃,自動啟動瀏覽器搜集相關資料,最后成功撰寫了一份結構完整的專業分析報告。

下圖展示了OpenManus工作過程的實時截圖,可以清晰看到OpenManus自動打開了瀏覽器并主動搜集Tesla相關財務數據和市場信息:

OpenManus智能體工作場景實錄

最終,OpenManus按照用戶要求將分析結果以Markdown格式保存到了workspace目錄下。我使用Markdown Preview Enhanced插件在Cursor編輯器中打開了生成的文件,效果如下圖所示。不難發現,OpenManus生成的報告在結構組織和內容質量上與原版Manus的效果高度相似。

OpenManus生成的Tesla股票分析報告

OpenManus多模型性能測試與成本分析

借助OpenRouter的靈活接口,我得以自由切換不同大語言模型來執行相同的股票分析任務。下面是詳細的測試結果記錄:

  1. GPT-4o測試

    • 實驗結果:20步操作后卡死,重復困在某個特定步驟上
    • 任務完成情況:任務未能成功完成
    • API調用成本:0.6美元
  2. Claude 3.7 Sonnet測試

    • 實驗結果:僅用17步順利完成所有任務
    • 任務完成質量:生成的分析報告專業度高,內容豐富
    • API調用成本:0.912美元
  3. Gemini Flash 2.0測試

    • 實驗結果:同樣用17步完成全部任務
    • 任務完成質量:生成的報告質量一般,部分分析深度不足
    • API調用成本:僅需0.028美元,極具成本優勢

需要說明的是,20步操作是OpenManus的默認最大嘗試步數限制。通過以上對比測試可以清晰看出,OpenManus與不同大語言模型的適配效果存在明顯差異。即便是高端的GPT-4o模型也不能保證每次都能成功執行完整流程,而Claude 3.7 Sonnet在任務完成效率和輸出質量上表現最為出色,但成本也相對較高。從性價比角度考慮,Gemini Flash 2.0雖然輸出質量稍遜,但其極低的調用成本使其成為預算有限場景下的理想選擇。

應用前景與發展趨勢

隨著AI智能體技術的迅猛發展,以下幾個方向將成為行業未來發展的重點:

  1. 多模態交互能力:智能體將能同時處理文本、圖像、音頻等多種輸入和輸出
  2. 更強大的推理能力:通過工具鏈優化和新型架構提升智能體的理解和推理能力
  3. 自主學習與適應:智能體將具備從交互中學習和改進自身能力的特性
  4. 更低的使用門檻:簡化部署流程,降低技術門檻,實現更廣泛的應用

OpenManus作為一個開源項目,有望在這些趨勢中保持活躍發展,并通過社區協作不斷完善功能。

結論與展望

OpenManus作為一個純開源的通用AI智能體框架,充分展示了如何構建一個功能強大且架構優雅的智能體系統。它采用了模塊化、分層的設計理念,具有出色的可擴展性和靈活性,同時該項目也在持續優化中,未來表現值得期待。

隨著人工智能領域的快速發展,智能體技術將在更多場景中發揮關鍵作用。OpenManus作為一個開源的通用智能體框架,為研究人員和開發者提供了一個極具價值的起點和參考實現,非常值得AI領域從業者深入研究和關注。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/73661.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/73661.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/73661.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux MariaDB部署

1:查看Linux系統版本 cat /etc/os-release#返回結果: NAME"CentOS Linux" VERSION"7 (Core)" ID"centos" ID_LIKE"rhel fedora" VERSION_ID"7" PRETTY_NAME"CentOS Linux 7 (Core)" ANSI…

PHP MySQL 預處理語句

PHP MySQL 預處理語句 引言 在PHP中與MySQL數據庫進行交互時,預處理語句是一種非常安全和高效的方法。預處理語句不僅可以防止SQL注入攻擊,還可以提高數據庫查詢的效率。本文將詳細介紹PHP中預處理語句的用法,包括其基本概念、語法、優勢以及在實際開發中的應用。 預處理…

算法 | 2024最新算法:鳑鲏魚優化算法原理,公式,應用,算法改進研究綜述,matlab代碼

2024最新鳑鲏魚優化算法(BFO)研究綜述 鳑鲏魚優化算法(Bitterling Fish Optimization, BFO)是2024年提出的一種新型群智能優化算法,受鳑鲏魚獨特的繁殖行為啟發,通過模擬其交配、產卵和競爭機制進行全局優化。該算法在多個領域展現出優越性能,尤其在解決復雜非線性問題中…

HDR(HDR10/ HLG),SDR

以下是HDR(HDR10/HLG)和SDR的詳細解釋: 1. SDR(Standard Dynamic Range,標準動態范圍) ? 定義:SDR是傳統的動態范圍標準,主要用于8位色深的視頻顯示,動態范圍較窄&…

uni-app頁面怎么設計更美觀

頂部 頁面最頂部要獲取到手機設備狀態欄的高度&#xff0c;避免與狀態欄重疊或者被狀態欄擋住 // 這是最頂部的父級容器 <view :style"{ paddingTop: ${statusBarHeight extraPadding}px }">.... </view> export default {data() {return {statusBarH…

江西核威環保科技:打造世界前沿的固液分離設備高新企業

隨著市場經濟的不斷發展&#xff0c;消費者的需求越來越大&#xff0c;為了更好的服務廣大新老客戶&#xff0c;作為知名品牌的“江西核威環保科技有限公司&#xff08;以下簡稱江西核威環保科技&#xff09;”&#xff0c;將堅持以“服務為企業宗旨&#xff0c;全力打造世界前…

Ethernet(以太網)詳解

一、Ethernet的定義與核心特性 以太網&#xff08;Ethernet&#xff09;是一種 基于IEEE 802.3標準的局域網&#xff08;LAN&#xff09;技術&#xff0c;用于設備間通過有線或光纖介質進行數據通信。其核心特性包括&#xff1a; 標準化&#xff1a;遵循IEEE 802.3系列協議&am…

JBDev - Theos下一代越獄開發工具

JBDev - Theos下一代越獄開發工具 自越獄誕生以來&#xff0c;Theos一直是越獄開發的主流工具&#xff0c;大多數開發者使用Theos編譯代碼&#xff0c;再用lldb手動調試。JBDev簡化了這個過程&#xff0c;項目地址https://github.com/lich4/JBDev 簡介 JBDev用于Xcode越獄開…

黑蘋果及OpenCore Legacy Patcher

黑蘋果及OpenCore Legacy Patcher OpenCoreUnable to resolve dependencies, error code 71 OpenCore Unable to resolve dependencies, error code 71 黑蘋果升級后打補丁不成功&#xff0c;比如提示以下錯誤&#xff0c;可參考官方文檔進行修復。 Open TerminalType sudo …

el-table + el-pagination 前端實現分頁操作

el-table el-pagination 前端實現分頁操作 后端返回全部列表數據&#xff0c;前端進行分頁操作 html代碼 <div><el-table :data"tableData" border><el-table-column label"序號" type"index" width"50" /><el…

PTA 1097-矩陣行平移

給定一個&#x1d45b;&#x1d45b;nn的整數矩陣。對任一給定的正整數&#x1d458;<&#x1d45b;k<n&#xff0c;我們將矩陣的奇數行的元素整體向右依次平移1、……、&#x1d458;、1、……、&#x1d458;、……1、……、k、1、……、k、……個位置&#xff0c;平移…

C++藍橋杯實訓篇(一)

片頭 嗨~小伙伴們&#xff0c;大家好&#xff01;現在我們來到實訓篇啦~本篇章涉及算法知識&#xff0c;比基礎篇稍微難一點&#xff0c;我會盡量把習題講的通俗易懂。準備好了嗎&#xff1f;咱們開始咯&#xff01; 第1題 遞歸實現指數型枚舉 我們先畫個圖~ 從圖中&#xff…

#C8# UVM中的factory機制 #S8.5# 對factory機制的重載進一步思考

前面的重載,我們已經談了很多,為什么還需要進一步聊聊呢。作為碼農,我們喜歡拿來多種相近語言,進行對比理解,相信這是一種加深對問題理解的方式。 一 C++ 重載 在 C++ 中,重載 和 多態 的英文術語分別是:重載 → Overloading ;多態 → Polymorphism 重載的定義:在…

CentOS(最小化)安裝之后,快速搭建Docker環境

本文以VMware虛擬機中安裝最小化centos完成后開始。 1. 檢查網絡 打開網卡/啟用網卡 執行命令ip a查看當前的網絡連接是否正常&#xff1a; 如果得到的結果和我一樣&#xff0c;有ens網卡但是沒有ip地址&#xff0c;說明網卡未打開 手動啟用&#xff1a; nmcli device sta…

力扣刷題第一遍

https://leetcode.cn/problemset/algorithms/ 棧 有效的括號 接雨水&#xff08;單調遞減棧&#xff09; 柱狀圖中最大的矩形&#xff08;單調遞減棧&#xff09; 逆波蘭表達式求值 基本計算器 最小棧 每日溫度&#xff08;單調遞減棧&#xff09; 用棧實現隊列 驗證棧…

藍橋杯經典題解:班級活動分組問題的深度解析與優化實現

目錄 一、問題背景與描述 二、問題分析與核心思路 2.1 問題本質&#xff1a;統計與配對優化 2.2 關鍵觀察 2.3 數學建模 三、算法設計與實現步驟 3.1 算法步驟 3.2 代碼實現&#xff08;Python&#xff09; 3.3 優化點分析 四、關鍵細節與常見誤區 4.1 細節處理 4.…

軟考《信息系統運行管理員》- 5.3 信息系統數據資源備份

文章目錄 數據資源備份類型按數據備份模式分按備份過程中是否可接收用戶響應和數據更新分按數據備份策略分按備份的實現方式分按數據備份的存儲方式分 常用備份相關技術磁盤陣列技術雙機熱備 某公司數據備份管理制度實例 數據資源備份類型 數據備份系統由硬件和軟件兩部分組成…

【藍橋杯】3月27日筆記

1.暴力枚舉 給定一個正整數n&#xff0c;請找出所有滿足a b n的整數對(a, b)&#xff0c;其中a和b都是正整數&#xff0c;且a ≤ b。 輸入格式&#xff1a;一個正整數n (1 ≤ n ≤ 10?) 輸出格式&#xff1a;所有符合條件的(a, b)對&#xff0c;每行一對&#xff0c;按a的…

H3CNE綜合小實驗之電視機

H3CNE綜合小實驗之電視機 一、實驗拓撲圖 二、實驗要求 按照圖示配置IP地址&#xff1b;按照圖示區域劃分配置對應的動態路由協議&#xff1b;在R7上配置dhcp服務器&#xff0c;能夠讓pc可以獲取IP地址&#xff1b;將所有環回?宣告進ospf中&#xff0c;將環回?7宣告進rip中…

Axios企業級封裝實戰:從攔截器到安全策略!!!

&#x1f680; Axios企業級封裝實戰&#xff1a;從攔截器到安全策略 &#x1f527; 核心代碼解析 // 創建Axios實例 const service axios.create({baseURL: api, // &#x1f310; 全局API前綴timeout: 0, // ? 永不超時&#xff08;慎用&#xff01;&#xff09;withCrede…