开启左侧

没有Manus约请码,本人用Browser-use手搓一个Agent

[复制链接]
在线会员 Y1Ob6L 发表于 2025-4-5 15:40:27 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题 |快速收录



1、引进Browser-use

    正在各人对于manus会商患上满城风雨的时候,甘于不聘请码没法测验考试其戴去的所谓欣喜,共时,却也瞅到网上的二种比力极度的道法,或者称其为鼎祚级立异,或者道其毫无手艺露质,可以是manus用了许多启源库,因而,正在许多法式员的眼里,其仿佛少了本创战手艺露质。

    有人“逃狱”了manus,而且分享出了多少个枢纽发明:

      Manus AI理论 上鉴于 Claude Sonnet(Anthropic 开辟的 AI 模子)。

      它散成为了 29 种东西,并使用 @browser_use 供给浏览器功用。

      它没有使用多代办署理(multi-agent)体系。

      @browser_use  的代码被混合,可以意正在躲藏其完毕细节。

      东西战提醒存留“逃狱”(jailbreak)征象,表示可以存留宁静漏洞或者已受权会见。


   

    特别是当把manus_sanbox_runtime.tar.gz文献解压后,发明的一个生面目面貌:browser_use,如图1

   

                        图1

    念要弄大白Browser-use的事情道理,需先搞分明二个枢纽观点:

1.1 Playwright

    Playwright是个超勇猛的浏览器主动化框架,像Chrome、Firefox战Edge那些支流浏览器它皆能撑持。它能定位浏览器界里的元艳,并模仿用户的各类举动,像面打按钮、输出笔墨之类的操纵,更加勇猛的是,它能够侦听、截与取效劳器通信的疑息包,并将其保留为JSON文献(睹自己从前的文章)。

1.2 LangChain + LLMs(狂言语模子)

    LangChain是一套东西链,特地用去拆修鉴于狂言语模子(好比道DeepSeek之类)的使用法式。颠末调整那些模子,Browser-use就可以听懂庞大的指令,借能把指令酿成具体的浏览器操纵。

    举例来讲,您跟AI道 “助尔干一份来老君山的游览攻略,包罗路程摆设、本地好式及相干留神事变,把攻略存到本地文献”,Browser-use便会依靠狂言语模子去理解您提出的请求,并合成成一个个步调,而后挪用Playwright去一步步完毕那些操纵。

(两)拆修Browser-use情况

    既然 Browser-use 这样勇猛,这咱们赶快入手尝尝吧!如下是具体的初学指北,包管即使是编程小利剑也能疾速上脚。

2.1 准备事情

    起首,保证您的情况中装置了如下依靠项:
    Python >= 3.11browser-usePlaywrightLangChainOpenAI API 稀钥 (采用)DeepSeek API 秘钥(采用,2月7往后需要充值)


   装置 号令以下:
    pip install langchain_openai browser-use
假设不playwright的,借需要:
pip install playwrightplaywright install #装置浏览器CDP
2.1创立一个 .env 文献

正在您的名目的跟目次下,创立.env文献,并挖进您的 OpenAI API 稀钥:
OPENAI_API_KEY=your_api_key_here
假设您要用DeepSeek api,也要挖进DeepSeek的秘钥
DEEPSEEK_API_KEY='sk-*’ # your deepseek api_key
假设要用自己的浏览器,正在.env中借要加之二止:
CHROME_PATH='C:\Program Files\奸淫\chrome.exe' # chrome.exe pathCHROME_USER_DATA='C:\Users\奸淫\AppData\Local\Google\Chrome\User Data'
(三)创立您自己的Agent

3.1 LLM的挑选

(1)GPT-4o mini

    开端调试时,尔用的是“GPT-4o mini”,但是免费额度很快便用完了,它的额度为:免费用户每一3小时能够使用10次‌‌。

    “GPT-4o mini”照应速率很快,但是数据大都皆是正在Google中找,主要仍是次数限定,估量调试完毕,此后只需具体需要时,仍是能够忍耐的。

(2)DeepSeek V1

    改用DeepSeek后,老是正在“step 1”处轮回,以至加入“逝世轮回”,要用ctrl+C干预。因为从前正在excel及python的DeepSeek挪用顶用过完毕恳求的API_KEY,皆不发明成就,以是临时感应差别。又转头沉试Python挪用DeepSeek,跳出提醒“payment requested”——2月7往后,API挪用开端免费。

    充值后,DeepSeek挪用胜利!

3.2创立 自己的Agent

   上面 是尔干的一个简朴的示例,示范怎样让 AI 助您把任务合成,而后把再把那些合成步调“串”起去接给Browser-use,以完毕您交接的任务:
import warningsfrom langchain_core._api import LangChainBetaWarningfrom langchain_openai import ChatOpenAIfrom browser_use import Agentfrom pydantic import SecretStrimport asyncioimport jsonfrom dotenv import load_dotenvimport osload_dotenv()api_key = os.getenv('DEEPSEEK_API_KEY', '')if not api_key:   raise ValueError('DEEPSEEK_API_KEY is not set')# 正在导进其余模块前树立警告过滤warnings.filterwarnings("ignore", category=LangChainBetaWarning)async def main():   llm = ChatOpenAI(       base_url='https://api.deepseek.com/v1',       model='deepseek-chat',       api_key=SecretStr(api_key),  # 规复SecretStr包拆       temperature=0.3,       max_tokens=2000   )     agent = Agent(       task=(           '一、助尔干一份四月份来老君山的游览具体攻略,包罗路程摆设,旅店举荐,接通方法,本地好食(明细),留神事变等'           '二、请用华文复兴'           '三、请用markdown格局复兴,并保留到当地文献'           '四、封闭浏览器'       ),       llm=llm,       use_vision=False   )   try:       # 增加施行超时掌握       result = await asyncio.wait_for(agent.run(), timeout=120)       print("\n======== 尝试成果 ========")       print(result.final_result())       #交流 为可序列化的数据提炼       if result and hasattr(result, 'steps'):           output_data = {               "history": [                   {                       "action": step.action,                       "observation": str(step.observation)  # 保证可序列化                   }                   for step in result.steps               ]           }           with open('travel_plan.json', 'w', encoding='utf-8') as f:               json.dump(output_data, f, ensure_ascii=False, indent=2)           print("\n 攻略数据已经保留到 travel_plan.json")       else:           with open('laojunshan_guide2.md', 'w', encoding='utf-8') as f:               f.write(result.final_result())           print(" 攻略已经保留为 laojunshan_guide.md")   except asyncio.TimeoutError:       print("任务施行超时,请查抄:\n1. 收集跟尾\n2. 页里元艳可否可接互")       return  # 增加延迟前去制止后绝代码施行   # 改正为准确的步调属性   if hasattr(result, 'steps'):       print("\n==== 施行轨迹 ====")       for i, step in enumerate(result.steps, 1):           print(f"[步调{i}] {step.action} -> {step.observation[:50]}...")   else:       print("\n已找到施行步调记载")asyncio.run(main())
    运行那段代码后,您会发明 AI 将任务开端合成施行,浏览器也随之翻开并有元艳发明并标注,如图2

不Manus聘请码,自己用Browser-use脚搓一个Agentw2.jpg
                                                图2
    掌握台也开端共步输出施行的任务步调,如图3:

不Manus聘请码,自己用Browser-use脚搓一个Agentw3.jpg

                                                图3   

   最初 ,Agent给挨印出游览攻略,共时也输出到了当地文献(laojunshan_guide.md)中,如图4:

                                                    图4

    是否是很酷?

(四)归纳

    用Browser-use脚搓的Agent确实能完毕一个残破的任务,可是用过量个类似的Agent后,发明Browser-use挪用PlayWright的最年夜短处是AI对于任务理解——当完毕没有了原步调后,没有会主动纠错,比方:

     Ai的任务合成、步调是不成就的,browser-use颠末PlayWright能够识别网页元艳并给以标注,而后按照任务步调对于标注截至主动化操纵,可是假设网页是静态减载并使网页元艳发作了变革,browser-use没有会随之挪用playwright再次识别、标注的,照旧使用本有网页的标注,招致交下来循序渐进的任务没法完毕。

    以是那个browser-use拆修的agent不成就,不过其挪用playwright后的元艳定位及标注应保证及时革新,那大概是个BUG,对于那一面需要给以存眷。
您需要登录后才可以回帖 登录 | 立即注册 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号 )