开启左侧

手撕“开源版Manus”

[复制链接]
在线会员 VDZMlvc2HE 发表于 2025-4-5 05:49:50 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题 |快速收录
阿里妹导读

Manus动作一款激发冷议的AI智能体产物吸收了大批的存眷。OpenManus动作一个启源名目,测验考试复现了Manus的部门功用,能够动作一种“仄替”去体会类似的手艺。

周终被Manus刷屏,瞅了拿到聘请码的老哥们收到网上的真测望频,确实挺炫酷,但是Monica接纳的饿饥营销战略让manus产物的聘请码被炒到了2万一个,家景贫寒之下找了Github上号称复现manus的名目OpenManus当作它的仄替参考,干个阐发去过个瘾。

论断

体会

    道是Manus的启源版,但是按照已经知的疑息,Manus是多agent体系,OpenManus是使用已经有才气快速拆修的单agent体系。

    一般Agent统统的三个中心才气,包罗计划、施行、影象等OpenManus皆干了完毕,但是正在tools上其不用到现在很流行的MCP模块,拓展它的东西箱需要承袭内部的BaseTool基类,并脚工完毕execute办法,以是有必然本钱。

    简朴的任务,好比上彀搜刮一定实质并天生归纳陈述,OpenManus均可以一般胜任,但是精确率战颠簸性其实不下,估量是尔为其设置的免费版LLM(狂言语模子)可以对于它的表示力有间接的作用。

思考

    鉴于工程调整所戴去的产物立异,也能缔造等质的用户代价。以OpenManus而行,咱们举个抽象面的例子,体系充任的是乐队批示者的脚色,当消耗者(用户)提出恳求以后,它启动自己的年夜脑(LLM)截至思考,按照用户的需要天生曲谱,并挑选适宜的乐脚(东西箱),和谐他们根据曲谱截至吹奏,固然那个历程里面少没有了预约义的COT、和正在无限拉拢空间中的列举试错。

    Manus如许的智能体确实能提效,但是其没有具备一次把工作干对于的才气战乌盒情势下的干预劣化才气,是企业降天的最浩劫面。尔正在使用OpenManus时发明异常的号令下,其给的成果十分没有颠簸,有失利也有问非所问,更主要的是因为历程完整对于用户屏障,没法颠末干预体系过程改正历程。一般情况下,必然是需要融合用户反应战博有常识去对于齐历程战成果,不竭劣化其宏大的提醒词汇战校准预约义的东西库。

    专科小模子仍然十分主要,小模子散群的才气决定了agent的上限。一般而行,正在垂域因为数据没有出域且常识没有盛开以是很易从内部获得到下品质处置域内乱成就的才气,以是分离agent的完毕道理,其处置成就的鸿沟与决于其东西库中的储蓄,而咱们建立的小模子如许的专科东西,其才气鸿沟间接界说了agent的才气天花板。

    像Manus如许鉴于多智能体架构的计划可以正在一定笔直范围更间接有用也更易降天,比拟SOP的agent架构,增加了主动计划的特征能够胜任非标任务。有钻研表白,多智能系统统也存留比力严峻的瓶颈(好比Manus),其78%的失利是因为多智能体接互成就引起的,仅22%源自单智能体缺点,罕见的毛病好比违抗脚色界说、破坏任务标准、问非所问、plan取act摆脱、毛病停止大概考证缺得。

    以是久远去瞅,端到端模子的上限必然是更下的,如更易由Scaling Law或者RL所戴去的“出现才气”或者“Aha Moment”征象等,可是需要咱们根究找到最好的锻炼办法战使用方法。


    短时间。尔正在OpenManus设置的是qwen-max(撑持流式挪用),因为其可施行的任务拉拢比力简朴(PythonExecute,GoogleSearch,BrowserUseTool,FileSaver,Terminate再加之一个PlanningTool)以是磕磕绊绊也能够用,而Manus传闻有27种东西,为了包管施行粗度,测度其用了自研的拉理年夜模子天生planning。

    持久。假设agent的每一个关节皆自力挪用一次LLM,以至是差别关节挪用差别的模子,那末年夜模子固有的缺点便会被层层缩小,以是未来必然是需要锻炼出咱们自己正在agent上的端到端年夜模子(设想一下咱们是如何办理多级漏斗的),今朝OpenAI正在便为自己的DeepResearch定造了一个由o3锻炼的端到端模子。

比照项

短时间计划

近期计划

设想目标

快速具备里背庞大任务的可靠托付才气

盛开式根究才气战范围缔造力,能戴去新认知新办法

架构

寻求专科才气拉拢的多智能体架构

一、使用别离的特地模子处置差别任务

二、每一个子任务有自力的施行模块

三、颠末大白的和谐层办理各智能体间的通信

寻求部分智能出现的端到端模子架构

一、简单模子担当理解统统任务需要

二、颠末天生代码或者指令取内部东西接互

三、任务办理战施行逻辑皆内乱置于统一模子中

劣势

ROI最下:正在垂域颠末"LLM+小模子散群+范围常识库"截至工程化启拆,便可快速具备可用性

更强的专科性:针对于一定任务的专科模子能够到达更下粗度

更矫健的迭代:能够零丁劣化或者交流某个智能体而没有作用部分

可考证的过程:各智能体的工作分别大白,就于诊疗成就

更强的拓展性:能够更易天增加新功用或者适应新范围

更强的不合性:齐历程由统一模子处置,思考、施行、反应、决议计划有更强的部分性战毗连性

更极致的服从:不多Agent之间的通信、开停开销

更流畅的体会:对于用户恳求的照应更快,更下效

突破人类经历范围的缔造力:端到端模子能够出现“反直观但是事先可注释”的决议计划情势,别的部分思考也会戴去预想没有到的处置计划

劣势

更下的庞大度:多智能体合作需要庞大的和谐体制

更下的保护本钱:多组件体系戴去更下的保护战调试本钱

更下的正在线时延:多智能体间的通信可以引进分外提早

部分性思考完美:分治的思路可以招致缺少全部不雅战缔造性

更易革新:部分模子革新周期少,针对于某一单功用截至劣化的本钱更下

更下资本:需要更年夜的模子容质去包罗统统功用,招致易以锻炼,需要根究新办法

中心过程

用户恳求 →识别 任务需要→挑选适宜的东西(GoogleSearch、PythonExecute、etc.)→挪用内部自力东西并施行 → 汇集东西成果并调整→ 决定下一步举措

用户恳求 → 将统统高低文给到端到端模子 → 模子天生分析性的照应(拉理、举措,etc)→内部 施行统统功用 → 革新内部形状→ 将成果反应到下一轮



名目获得
名目地点,供参照

https://github.com/mannaandpoem/OpenManus
如下正在原机的末端(terminal)中施行

准备Python情况
conda create -n open_manus python=3.12conda activate open_manus
获得长途名目资本
git clone https://github.com/mannaandpoem/OpenManus.gitcd OpenManus
装置依靠包
pip install -r requirements.txt
准备一个设置狂言语模子交心的文献
cp config/config.example.toml config/config.toml
改正文献中的三个参数为您的API参数(model、base_url、api_key)
# Global LLM configuration[llm]model = "gpt-4o"base_url = "https://api.openai.com/v1"api_key = "sk-..."  # WordStr with your actual API keymax_tokens = 4096temperature = 0.0
# Optional configuration for specific LLM models[llm.vision]model = "gpt-4o"base_url = "https://api.openai.com/v1"api_key = "sk-..."  # WordStr with your actual API key
名目真测



指令
会见知乎网站,浏览跟manus枢纽词汇相干的帖子,提取对于其的阐发取评介,将成果干成小白书籍气势派头的网页文献如下是小白书籍气势派头一、吸收人的题目二、下品质的望觉三、恰当的标签战枢纽词汇四、本性化
施行历程

施行历程十分缓,需要耐心等候,而且有必然的失利几率

托付成果

瞅起去确实有模有样的,细瞅起去不管排版仍是实质,让尔自己写可以也不外云云,但是那个表示是LLM间接付与的,便像尔上面道的,OpenManus实在更可能是工程化的界说。


脚撕“启源版Manus”w2.jpg


体系阐发

过程装解
概括

当用户输出指令(好比给它指令:"阐发知乎冷搜")后OpenManusOpenManus施行过程以下

1.启用体系

用户启用main.py并输出指令

体系创立一个名为OpenManus的"智能帮忙"真例,承受并处置用户指令

2.阐发战计划

狂言语模子先阐发用户的指令,理解用户念要完毕甚么任务

再思考处置计划,订定一个具体的施行方案

最初决定每步需要使用甚么东西去完毕任务

3.施行取反应轮回

挑选LLM举荐的东西(好比用BrowserUseTool东西会见知乎)

施行东西操纵并前去成果(好比网页实质)

LLM阐发上一步的成果

LLM评介后决定下一步举措是甚么(好比是从头调解planning仍是施行预约的下一步)

4.处置取创立

假设获得到数据,LLM会编辑python代码处置那些数据

体系施行那些代码(那里用的是PythonExecute东西)

LLM持续辅导怎样天生陈述战可望化图表

5.保留取完毕

有了结因以后望需要挑选保留文献(那来由对于应的文献操纵东西FileSaver)

LLM确认任务完毕,体系前去施行择要,持续等候用户的下一个指令
LLM的枢纽感化

那里要出格道一下LLM正在OpenManus中的感化,LLM 既是体系的认知中心,也是施行掌握器,正在全部过程当中不竭计划、施行、阐发温顺应。这类迭代办法使体系能够处置需要多个步调、东西接互战鉴于中心成果的静态调解的庞大任务。LLM便像是OpenManus的"年夜脑",正在全部过程当中起到的感化十分枢纽

1.批示中间

LLM领受用户指令,理解任务需要,而后计划全部施行过程。它决定需要采纳哪些步调,以甚么挨次施行,和使用哪些东西。

2.东西调理

正在施行任务的过程当中,LLM能够从东西箱中默认的多少种可选东西(浏览器、Python施行器、文献保留器等)里面选择最适宜的东西去完毕目前任务,共时借会天生施行时东西的设置参数。
{  "tool_calls": [    {      "id": "call_9c3e5d7f8b",      "type": "function",      "function": {        "name": "browser_use",        "arguments": {          "action": "execute_js",          "script": "function extractHotList() {\n  const hotItems = document.querySelectorAll('.HotList-item');\n  const result = [];\n  \n  hotItems.forEach((item, index) => {\n    const titleElement = item.querySelector('.HotList-itemTitle');\n    const metricElement = item.querySelector('.HotList-itemMetrics');\n    const topicElement = item.querySelector('.HotList-itemCategory');\n    \n    const title = titleElement ? titleElement.textContent.trim() : 'Unknown';\n    const metric = metricElement ? metricElement.textContent.trim() : 'Unknown';\n    const topic = topicElement ? topicElement.textContent.trim() : 'Unknown';\n    \n    result.push({\n      index: index + 1,\n      title: title,\n      hot_metric: metric,\n      topic: topic\n    });\n  });\n  \n  return JSON.stringify(result, null, 2);\n}\n\nextractHotList();"        }      }    }  ],  "content": "现在咱们已经胜利会见了知乎冷榜页里,下一步是提炼冷榜数据。知乎冷榜数据凡是包罗正在一定的HTML元艳中,尔需要使用JavaScript去提炼那些疑息。尔将使用browser_use东西的execute_js功用去运行JavaScript代码,提炼冷榜名目的题目、冷度战分类等疑息。"}
3.代码天生

当需要处置数据或者创立可望化图表时,LLM会按照目前情况编辑适宜的Python代码。好比它能够按照目前的任务天生洗濯数据、阐发疑息、天生图表战陈述的python剧本(固然那个过程当中可以需要装置相干的依靠包,真测有年夜部门装置包皆需要正在给出提醒背工工装置)。
{  "tool_calls": [    {      "id": "call_6b8d9e2c5a",      "type": "function",      "function": {        "name": "python_execute",        "arguments": {          "code": "import json\nimport re\n\n#假定 那是从上一步获得的冷榜数据\nraw_data = '''\n[{\"index\":1,\"title\":\"国务院办公厅收文促消耗策略再减力\",\"hot_metric\":\"1425万冷度\",\"topic\":\"财经\"},\n{\"index\":2,\"title\":\"旧日秋分\",\"hot_metric\":\"1001万冷度\",\"topic\":\"天然\"}]\n'''\n\n# 剖析JSON数据\ntry:\n    hot_list = json.loads(raw_data)\n    print(f\"胜利减载{len(hot_list)}条冷榜数据\")\n    \n    #处置 冷度数值\n    for item in hot_list:\n        # 提炼数字部门\n        if 'hot_metric' in item:\n            match = re.search(r'(\\d+(\\.\\d+)?)', item['hot_metric'])\n            if match:\n                hot_value = float(match.group(1))\n                #依据 单元调解值\n                if '万' in item['hot_metric']:\n                    hot_value *= 10000\n                item['hot_value'] = hot_value\n            else:\n                item['hot_value'] = 0\n    \n    # 统计中心散布\n    topics = {}\n    for item in hot_list:\n        topic = item.get('topic', '已知')\n        topics[topic] = topics.get(topic, 0) + 1\n    \n    print(\"\\n冷榜中心散布:\")\n    for topic, count in sorted(topics.items(), key=lambda x: x[1], reverse=True):\n        print(f\"{topic}: {count}条\")\n    \n    # 按冷度排序\n    sorted_list = sorted(hot_list, key=lambda x: x.get('hot_value', 0), reverse=True)\n    print(\"\\n按冷度排序的前5条冷榜:\")\n    for i, item in enumerate(sorted_list[:5]):\n        print(f\"{i+1}. {item['title']} ({item['hot_metric']})\")\n    \n    #保管 处置后的数据供后绝使用\n    processed_data = {\n        'raw_list': hot_list,\n        'sorted_list': sorted_list,\n        'topic_stats': topics\n    }\n    print(\"\\n数据处置完毕,已经准备佳用于后绝阐发\")\n    \nexcept json.JSONDecodeError as e:\n    print(f\"JSON剖析毛病: {e}\")\nexcept Exception as e:\n    print(f\"处置数据时堕落: {e}\")"        }      }    }  ],  "content": "现在咱们已经胜利提炼了知乎冷榜数据,下一步是洗濯战处置那些数据。尔需要编辑Python代码去处置JSON数据,提炼冷度数值,尺度化中心分类,并准备用于后绝阐发的数据构造。尔将使用python_execute东西去运行数据处置代码。"}
4.历程办理

当碰到艰难(如网页构造庞大、数据提炼失利)时,LLM能够阐发失利启事,调解战略,测验考试新办法。它具备"深思"才气,能够从毛病中进修并改良计划。

5.节面决议计划

正在每步施行后,LLM评介成果并决定下一步举措。它能够按照反应调解方案,决定是持续施行、改正战略仍是完毕任务。

6.成果评介

LLM担当鉴别任务可否完毕、成果可否契合请求。它能够天生归纳陈述,并决定什么时候完毕任务施行。
过程图

那里主要存眷=LLM的感化,其正在名目中饰演的脚色十分中心,不管是天生plan、分离东西施行act,仍是按照施行成果鉴别可否要调解plan,那些皆是由LLM装载。

plan关节的prompt
您是由OpenManus启动的万能型AI帮忙,旨正在处置用户提出的所有任务需要。您具有多种东西挪用才气,可下效完毕编程开辟、疑息检索、文献处置、网页浏览等各种庞大需要。您能够颠末如下东西取计较机接互: Python施行东西(PythonExecute) :运行Python代码以施行体系接互、数据处置、主动化任务等操纵。 文献保留东西(FileSaver) :将主要实质战疑息文献保留到当地,撑持.txt、.py、.html等格局。 浏览器操控东西(BrowserUseTool) :翻开、浏览战使用网页浏览器。假设需要翻开当地HTML文献,必需供给文献的绝对路子。 收集疑息检索东西(GoogleSearch) :施行收集疑息抓与。 操纵战略 :依据 用户需要,主动挑选最适宜的东西或者东西拉拢。关于 庞大任务,能够将成就装解,逐步使用差别东西处置。 正在使用每一个东西后,明了注释施行成果并倡议下一步操纵。
现在,用户给您的任务是:近来manus很活,请您汇集相干的疑息收拾整顿成一份有深度的陈述,收拾整顿成图文并茂的html文献格局

脚撕“启源版Manus”w3.jpg


体系时序图


手撕“开源版Manus”


用例图

回到收尾的例子,尔用那弛图去示范当咱们敲进号令“汇集知乎上对于manus的帖子……”以后,体系内部发作了,模块之间的挪用挨次是甚么、共时从图中也能够直觉感受到,LLM正在agent中阐扬的决定性感化。







AI 时期的散布式多模态数据处置实践

正在AI多模态数据处置中,企业面对海质文原、图象及音频数据的下效处置需要,当地受限于单机功用,易以满意年夜范围散布式计较请求。原计划介绍了鉴于散布式计较框架 MaxFrame,依靠 MaxCompute 的海质计较资本,对于多模态数据截至散布式处置、模子离线拉理。

面打浏览本文检察概略。
您需要登录后才可以回帖 登录 | 立即注册 qq_login

本版积分规则

发布主题
阅读排行更多+
用专业创造成效
400-778-7781
周一至周五 9:00-18:00
意见反馈:server@mailiao.group
紧急联系:181-67184787
ftqrcode

扫一扫关注我们

Powered by 职贝云数A新零售门户 X3.5© 2004-2025 职贝云数 Inc.( 蜀ICP备2024104722号 )