Java版Manus實現來了,Spring AI Alibaba發布開源OpenManus實現

此次官方發布的 Spring AI Alibaba OpenManus 實現,包含完整的多智能體任務規劃、思考與執行流程,可以讓開發者體驗 Java 版本的多智能體效果。它能夠根據用戶的問題進行分析,操作瀏覽器,執行代碼等來完成復雜任務等。

項目源碼及體驗地址:spring-ai-alibaba-openmanus

官網及博客地址:java2ai.com

效果展示

話不多說,先看運行效果,以下是我們通過幾個實際問答記錄展示的 Spring AI Alibaba OpenManus 實際使用效果。

  1. 打開百度瀏覽器,在搜索框輸入:阿里巴巴最最近一周股價,根據搜索到的信息繪制最近一周的股價趨勢圖并保存到本地目錄。

  1. 我計劃在接下來的五一勞動節假期到韓國旅行,行程是從杭州出發到韓國首爾,總預算為10000元。我想體驗韓國的風土人情、文化、普通老百姓的生活,總行程計劃為5天。請提供詳細的行程并制作成一個簡單的HTML旅行手冊,其中包含地圖、景點描述、基本的韓語短語和旅行提示,以供我在整個旅程中參考。

  1. 在本機的/tmp/docs目錄下有一些中文文檔 ,請依次將這些文檔翻譯為中文并保存到一個獨立文件,將新生成的文件都存放到/tmp/endocs目錄下

總體架構與原理

Spring AI Alibaba Openmanus 與 Python 版本 OpenManus 設計理念相似,其總體架構如下圖所示。

分析上圖架構,我們可以把它看作是一款多 Agent 智能自動協作實現,其中:

  • Planning Agent 負責任務的分解與規劃,將用戶問題拆解成幾個可順序執行的 step。planning agent 調用 planning tool 動態生成一個串行的 Manus Agent 子工作流。
  • 多個 Manus Agent 組成一個鏈式、可順序依次執行的子工作流。子工作流中的每個 agent 對應上述規劃的一個 step,每個 agent 都是一個 ReAct 架構設計,即通過多輪 Tool 調用完成具體子任務。
  • Summary Agent 用來做最后的任務總結

實現總結與展望

Spring AI Alibaba OpenManus 實現中的問題

當前的 OpenManus 實現主要有如下問題:

  • 倉庫中 80% 代碼都在解決流程編排問題,入串聯 manus agent 子流程、做消息記憶、轉發工具調用、全局狀態修改等,這部分工作可以交給高度抽象的 agent 框架實現,以簡化開發復雜度。
  • 工具的覆蓋度與執行效果一般,如瀏覽器使用、腳本執行工具等。
  • 規劃及工作流程中無法人為介入進行 review、動態修改、回退等動作。
  • 當前 OpenManus 實現的效果調試相對比較困難。

Spring AI Alibaba 未來規劃與解決方案

Spring AI Alibaba 是面向 Java 開發者的開源 AI 應用開發框架,它與 Spring 生態完美適配,可以基于 Spring AI Alibaba 構建全新的 AI 應用,也可以使用它為傳統 Spring Boot 應用做智能化升級。

從上圖我們可以看出,除了框架原子抽象之外,Spring AI Alibaba 重點規劃了 multi-agent 框架,配套生態如可視化評估平臺、調試 Studio 等。

接下來,我們將會發布 Spring AI Alibaba Graph 多 agent 框架,以及基于 Spring AI Alibaba Graph 的強化版 OpenManus 實現,預期代碼量將比當前減少 70% 以上,整體易讀性與效果大幅提升,讓開發者可以此為基礎構建面向任意場景的智能體應用。

目前 Spring AI Alibaba 已經支持 MCP 工具接入,解析來我們將為 OpenManus 接入更成熟的 MCP server 實現,以提升整體工作表現。

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

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

相關文章

【Linux網絡與網絡編程】02.初識Socket編程

1. 數據傳輸的目的 前一篇文章中我們講解了網絡傳輸的流程,那么網絡傳輸的目的是什么呢?難道我們只是將數據從一臺主機傳輸到另一臺主機嗎? 當然不是的!因為數據是給人用的。比如:聊天是人在聊天,下載是人…

電腦連不上手機熱點會出現的小bug

一、問題展示 注意: 不要打開 隱藏熱點 否則他就會在電腦上 找不到自己的熱點 二、解決辦法 把隱藏熱點打開即可

CUDA專題3:為什么GPU能改變計算?深度剖析架構、CUDA?與可擴展編程

1. 簡介 1.1. 使用 GPU 的優勢 圖形處理器(GPU)在相近的成本和功耗范圍內,能夠提供比中央處理器(CPU)更高的指令吞吐量和內存帶寬。許多應用程序利用這些優勢,在 GPU 上的運行速度遠超 CPU(參見《GPU 應用》)。其他計算設備(如 FPGA)雖然能效也很高,但其編程靈活性…

Linux輸入系統應用編程

什么是輸入系統 Linux 輸入系統是處理用戶輸入設備(如鍵盤、鼠標、觸摸屏、游戲手柄等)的軟件架構。在應用編程層面,它提供了與這些輸入設備交互的接口。 主要組成部分 輸入設備驅動層:直接與硬件交互的驅動程序 輸入核心層:內核中的輸入子…

StarRocks BE宕機排查

StarRocks BE宕機排查 排查是否OOM dmesg -T|grep -i oom #排查是否oom原因: 2.X版本OOM原因 BE 的配置文件 (be.conf) 中 mem_limit 配置不合理,需要配置mem_limit(機器總內存-其他服務占用內存-1~2g(系統預留)) 比如機器內存40G,上面有…

邏輯回歸(Logistic Regression)模型的概率預測函數

以二分類問題為例,常見的損失函數有 負對數似然損失(neg log-likelihood loss),交叉熵損失(cross entropy loss),deviance loss指數損失(exponential loss)。 前三者雖然名字不同,但卻具有相同的表達形式。此外,neg …

函數式組件中的渲染函數 JSX

在 Vue.js 和 React 等現代前端框架中,函數式組件已成為一種非常流行的設計模式。函數式組件是一種沒有內部狀態和生命周期方法的組件,其主要功能是接受 props 并渲染 UI。隨著這些框架的演進,渲染函數和 JSX(JavaScript XML&…

Android 動態設置默認Launcher(默認應用 電話-短信-瀏覽器-主屏幕應用))

Android 動態設置默認Launcher(默認應用 電話-短信-瀏覽器-主屏幕應用)) 文章目錄 場景需求參考資料思路期待效果 實現方案源碼流程分析和思路實現DefaultAppActivityHandheldDefaultAppFragmentHandheldDefaultAppPreferenceFragmentDefaultAppChildFragmentDefaul…

Qt下載模板到本地文件內容丟失問題

上源碼 關鍵點已標注在源碼中 A, B… // 保存的文件路徑后綴QString dateTime Myapp::getCurrentTimeDescYMDHms().replace(" ", "").replace("-", "").replace(":", "");// 臨時文件名稱QString newFileName Q…

【數學建模】動態規劃算法(Dynamic Programming,簡稱DP)詳解與應用

動態規劃算法詳解與應用 文章目錄 動態規劃算法詳解與應用引言動態規劃的基本概念動態規劃的設計步驟經典動態規劃問題1. 斐波那契數列2. 背包問題3. 最長公共子序列(LCS) 動態規劃的優化技巧動態規劃的應用領域總結 引言 動態規劃(Dynamic Programming,簡稱DP)是一…

藍橋杯備考------>雙指針(滑動窗口)

來看哈我們這道例題 我們第一種想法應該就是暴力求解,枚舉每個子數組 當我們枚舉第一個數的時候,我們要從第一個數開始挨個枚舉每個結尾 如圖,以第一個數開頭的最長不重復數我們就枚舉完了 然后我們讓兩個指針全部到第二個數 再枚舉第二個…

python實現股票數據可視化

最近在做一個涉及到股票數據清洗及預測的項目,項目中需要用到可視化股票數據這一功能,這里我與大家分享一下股票數據可視化的一些基本方法。 股票數據獲取 目前,我已知的使用python來獲取股票數據方式有以下三種: 爬蟲獲取,實現…

【15】Selenium 爬取實戰

一、selenium適用場景 二、爬取目標 三、爬取列表頁 (1)初始化 (2)加載列表頁 (3)解析列表頁 (4)main 四、爬取詳情頁 (1)加載詳情頁 (2…

如何封裝一個上傳文件組件

#今天用el-upload感到很多不方便,遂決定自己封裝一個。注:本文不提供表面的按鈕樣式和文件上傳成功后的樣式,需要自己創建。本文僅介紹邏輯函數# 1,準備幾個表面用來指引上傳的元素 2,創造統一的隱藏文件上傳輸入框&…

【計網】數據包

期末復習自用的,處理得比較草率,復習的同學或者想看基礎的同學可以看看,大佬的話可以不用浪費時間在我的水文上了 1.數據包的定義: 數據包是網絡通信中的基本單元,它包含了通過網絡傳輸的所有必要信息。數據包的結構…

HTTP抓包Websocket抓包(Fiddler)

近期時常要和各個廠商的java云平臺打交道:登錄、上傳、下載等,程序的日志雖必不可少,但前期調試階段,免不了遇到問題,這時有一個稱手的抓包工具就顯得尤為重要了。 Fiddler Everywhere是一款跨平臺的網絡調試工具&…

Git和GitCode使用(從Git安裝到上傳項目一條龍)

第一步 菜鳥教程-Git教程 點擊上方鏈接,完成Git的安裝,并了解Git 工作流程,知道Git 工作區、暫存區和版本庫的區別 第二步 GitCode官方幫助文檔-SSH 公鑰管理 點擊上方鏈接,完成SSH公鑰設置 第三步(GitCode的官方引…

基于 WebAssembly 的 Game of Life 交互實現

一、前言 在前期的實現中,我們使用 Rust 編寫核心邏輯,并通過 WebAssembly 將其引入到 Web 環境中,再利用 JavaScript 進行渲染。接下來,我們將在這一基礎上增加用戶交互功能,使模擬過程不僅能夠自動演化,…

【keil】單步調試

一、步驟 1、打開stc-isp軟件 2.打開keil仿真設置,選擇對應的單片機型號 3.點擊將所選目標單片機設置為仿真芯片,點擊下載,按一下單片機打下載按鈕 4.此時已經將仿真程序下載到單片機 5.此時點擊options,找到debug選擇STC Montor 51 Driv…

c++弱指針實現原理

在 C 中,弱指針(std::weak_ptr)是一種特殊的智能指針,其核心目標是?解決 std::shared_ptr 的循環引用問題?,同時不增加對象的引用計數。它的實現原理基于與 std::shared_ptr 共享的 ?控制塊(Control Blo…