揭秘AI自动化框架Browser-use(终):利用MCP与Spring AI,3行代码复刻Browser-use实现

192 阅读9分钟

技术背景与目标

在前几篇文章中,我们深入解析了Browser-use框架的核心机制,包括DOM树遍历与分析、提示词构造、任务分解与规划、以及浏览器操作的函数调用。我们将通过Spring AI和Playwright/MCP协议,复刻一个简化版的Browser-use实现,展示如何用3行代码完成复杂的浏览器自动化任务。

上一篇(公众号首发)-# 揭秘AI自动化框架Browser-use(四):Browser-use记忆模块技术解析

Playwright/MCP服务配置

model-context-protocol-architecture.webp

在实现之前,我们需要配置Playwright/MCP服务,以确保Spring AI能够与Playwright的MCP服务协同工作。以下是Playwright/MCP服务的配置示例:

{
  "mcpServers": {
    "Playwright": {
      "command": "npx.cmd",
      "args": [
        "@playwright/mcp@latest"
      ],
      "env": {}
    }
  }
}
  • command: 指定启动命令,这里使用npx.cmd来启动Playwright的MCP服务。
  • args: 传递给命令的参数,这里使用@playwright/mcp@latest来确保使用最新版本的Playwright MCP。
  • env: 环境变量配置,可以根据需要设置。

代码实现解析

以下是基于Spring AI和Playwright/MCP协议的简化版Browser-use实现:

var chatClient = chatClientBuilder
        .defaultSystem("You are a thoughtful assistant that breaks down complex tasks into steps. After planning, execute the steps using available tools.")
        .defaultTools(new SyncMcpToolCallbackProvider(mcpSyncClients))
        .defaultAdvisors(new MessageChatMemoryAdvisor(new InMemoryChatMemory()))
        .build();

String userInput = "通过bing搜索2个关于中国股市消息最权威的网站, 并通过这2个网站获取今天中国股市的情况,分别总结2个网站关于中国股市的情况,最后输出总结报告";

System.out.println("\nASSISTANT: " + chatClient.prompt(userInput).call().content());

代码架构解析

  1. Spring AI与Playwright/MCP协议的结合
    Spring AI框架结合Playwright/MCP协议,实现了工具的动态调用和任务编排。通过McpSyncClientToolCallbackProvider,开发者可以将工具能力暴露给LLM,使其能够动态调用这些工具。

  2. ChatClient的配置与任务执行

    • 系统提示词:通过defaultSystem方法定义AI助手的行为逻辑,明确其任务分解与执行的职责。
    • 工具暴露SyncMcpToolCallbackProvider将Playwright/MCP工具暴露给LLM,使其能够调用预定义的浏览器操作。
    • 记忆管理MessageChatMemoryAdvisor结合InMemoryChatMemory,确保任务执行的连贯性,支持多步骤任务的上下文管理。
  3. 任务执行与结果输出
    用户输入的任务通过chatClient.prompt()传递给LLM,LLM根据任务需求调用Playwright/MCP工具,完成任务执行并返回结果。Spring AI内部处理MCP调用时,会递归调用工具,直到大模型不再执行MCP调用,才会完成一轮对话输出。

任务执行流程

  1. 任务分解
    LLM根据用户输入的任务,将其分解为多个子任务,例如搜索权威网站、导航到目标页面、提取信息等。

  2. 工具调用
    LLM通过Playwright/MCP协议调用预定义的工具,例如Bing搜索引擎、网页导航工具、内容提取工具等。

  3. 结果汇总与输出
    LLM将从多个工具获取的结果进行汇总,生成最终的总结报告。

输出结果示例

以下是任务执行的输出结果:

为了完成这个任务,我将按照以下步骤进行操作:
1. 使用Bing搜索引擎来查找两个关于中国股市消息最权威的网站。
2. 导航到这两个网站,并收集有关今天中国股市的信息。
3. 对从每个网站上获得的信息进行总结。
4. 输出最终的总结报告。

现在,我将开始执行第一步,即使用Bing搜索引擎来查找两个最权威的中国股市消息网站。

1. **中国证券网(China Securities Journal)**
   - 网站地址: https://www.cs.com.cn/
   - 描述: 中国证券网是由新华社主办,是中国证监会指定的信息披露媒体。它提供了全面的证券市场和金融市场的报道,包括最新的股市行情、宏观经济政策、证券市场和上市公司等方面的信息。

2. **上海证券报(Shanghai Securities News)**
   - 网站地址: https://www.cnstock.com/
   - 描述: 上海证券报是上海证券交易所的官方报纸,也是中国证监会指定的信息披露媒体之一。该网站提供了丰富的股市信息,包括市场分析、公司新闻、政策解读等内容。

接下来,我将访问这两个网站,收集今天的中国股市情况。

从中国证券网(China Securities Journal)获取到的今日中国股市情况如下:
- **中央汇金公告**:中央汇金公告表示充分认可当前A股的配置价值,并已再次增持ETF。这表明了中央汇金对中国股市的信心。
- **A股尾盘大举加仓**:尾盘时段,A股市场出现了大举加仓的现象,特别是农业股走强,沪深300ETF集体放量,显示出市场资金的活跃度。
- **汇丰最新调查**:汇丰最新调查显示,全球机构投资者看好中国市场前景,这为中国股市带来了正面的外部支持。
- **上交所确认国泰君安会员名称变更**:上交所确认国泰君安会员名称变更为国泰海通,这可能涉及一些内部调整,但对整体市场的影响不大。
- **中国外汇储备**:中国外汇储备连续16个月稳定在3.2万亿美元以上,反映出国家经济基本面的稳固。

从上海证券报(Shanghai Securities News)获取到的今日中国股市情况如下:
- **中央汇金公司再次增持**:中央汇金公司已再次增持A股ETF,并表示未来将继续增持,显示出其对中国股市的长期看好。
- **南向资金放量**:南向资金出现明显的放量迹象,这表明部分投资者对港股市场的兴趣增加,同时也可能影响A股市场的情绪。
- **美股指期货大跌**:美股指期货在新的一周交易中继续下跌,这对全球股市包括中国股市可能产生一定的负面影响。
- **央行连续第五个月增持黄金储备**:中国央行连续第五个月增持黄金储备,环比增加9万盎司。这反映了央行对黄金作为一种避险资产的需求增加。
- **证监会支持优质民营企业**:证监会发布专题,强调将加力支持优质民营企业做强做优做大,这对中国股市中的民营企业板块是一个积极的信号。

### 总结报告
#### 中国证券网(China Securities Journal)
- **中央汇金公告**:中央汇金公告表示充分认可当前A股的配置价值,并已再次增持ETF。
- **A股尾盘大举加仓**:尾盘时段,A股市场出现了大举加仓的现象,特别是农业股走强。
- **汇丰最新调查**:全球机构投资者看好中国市场前景。
- **上交所确认国泰君安会员名称变更**:上交所确认国泰君安会员名称变更为国泰海通。
- **中国外汇储备**:中国外汇储备连续16个月稳定在3.2万亿美元以上。

#### 上海证券报(Shanghai Securities News)
- **中央汇金公司再次增持**:中央汇金公司已再次增持A股ETF,并表示未来将继续增持。
- **南向资金放量**:南向资金出现明显的放量迹象。
- **美股指期货大跌**:美股指期货在新的一周交易中继续下跌。
- **央行连续第五个月增持黄金储备**:中国央行连续第五个月增持黄金储备。
- **证监会支持优质民营企业**:证监会强调将加力支持优质民营企业做强做优做大。

### 结论
综合两家权威网站的信息,可以得出以下结论:
- **市场情绪积极**:中央汇金公司的增持和汇丰的调查均显示了市场对中国股市的积极看法。
- **资金活跃**:A股尾盘的大举加仓和南向资金的放量表明市场资金较为活跃。
- **外部因素影响**:美股指期货的下跌可能对全球股市包括中国股市产生一定的负面影响,但这种影响暂时被国内的积极因素所抵消。
- **经济基本面稳固**:中国外汇储备的稳定和央行连续增持黄金储备反映了国家经济基本面的稳固。
- **政策支持**:证监会对优质民营企业的支持政策将进一步提升市场对这些企业的信心。

总体来看,尽管存在一些外部不确定性,但中国股市的基本面和政策环境依然稳健,市场情绪保持积极。

今天是2025-04-07,股市大跌,不知道各位炒股的兄弟咋样了。😔😔😔

问题与优化方向

  1. 上下文管理问题
    Spring AI在执行MCP调用时,如果内部有循环调用,会携带全量的上下文(包含每次MCP服务返回的内容),导致上下文过长,可能引发大模型异常和数据提取异常。

  2. 优化建议

    • 上下文裁剪:引入滑动窗口算法或上下文裁剪机制,保留最近的对话内容,避免上下文过长。
    • 多模态信息集成:结合视觉和文本信息,提升任务执行的准确性。
    • 提示词模板化:通过模板化与参数化提示词,提升任务分解与规划的效率。

总结与展望

通过Spring AI和Playwright/MCP协议,我们成功复刻了一个简化版的Browser-use框架。这种实现不仅展示了现代AI工程中提示词工程和上下文管理的核心实践,还为开发者提供了一个高效、模块化的实现思路。未来,我们可以通过优化上下文管理和提示词模板化,进一步提升系统的性能和扩展性。

如果您对本文的技术细节和源码实现感兴趣,欢迎关注我的微信公众号**【松哥ai自动化】**。每周我都会在公众号首发一篇深度技术文章,从源码角度剖析各种实用工具的实现原理。在公众号后台回复关键词“Browser-use”,即可获取本文涉及的代码仓库链接。。

别让技术的浪潮落下你,赶紧关注**【松哥ai自动化】**,一起探索AI自动化技术的无限可能!