3 天搞定 Java 版 AI 智能体!从安装 OpenClaw 到接管浏览器、发消息完整实战

3 天搞定 Java 版 AI 智能体!从安装 OpenClaw 到接管浏览器、发消息完整实战

文章目录

无意间发现了一个ZEEKLOG大神的人工智能教程,忍不住分享一下给大家。很通俗易懂,重点是还非常风趣幽默,像看小说一样。床送门放这了👉 http://blog.ZEEKLOG.net/jiangjunshow

前言

还记得第一次看到AI自己打开浏览器查资料、填表单、发微信消息的那种震撼吗?就像看着自家猫突然学会了自己开罐头——这玩意儿居然真的能动起来!不过作为Java程序员,看着满屏幕的Python教程和Node.js脚本,总感觉像是去火锅店只能看着别人涮毛肚。

别急,今天这篇就是给Java老铁们的专属攻略。咱们不用换技术栈,就用最熟悉的Spring Boot,三天时间手把手搭出一个能控制浏览器、能发消息的AI智能体。坐稳了,这趟车直达"数字员工"终点站。

第一天:给电脑装个"数字大脑"

说白了,OpenClaw就是个住在电脑里的24小时待机小助手。它不像ChatGPT那样问一句答一句,而是像贴心管家一样,你说"帮我查查明天杭州的天气,然后发微信告诉老妈",它真能自己打开网页、查完天气、再点开微信发送——全程不需要你动手。

环境准备:别在第一步就踩坑

工欲善其事,先得把Node.js装好。OpenClaw本体是基于Node.js运行的,去官网下载v22以上的版本,别用 antique 的老版本,不然后面各种报错能让你怀疑人生。

装完验证一下:

node-vnpm-v

接下来是重头戏——安装OpenClaw。2026年的安装已经比早期版本简单太多了,一行命令搞定:

npminstall-g openclaw@latest 

装完记得验证版本,看到2026.x.x这样的版本号才算成功:

openclaw --version

这时候还有个关键组件得装上——mcporter。这货是OpenClaw连接外部世界的"万能转接头",没有它,咱们的Java代码根本没法跟OpenClaw对话。

npminstall-g mcporter 

装完后执行 mcporter list,如果看到提示"无配置"而不是"command not found",恭喜你,第一关过了。

启动你的第一个Agent

现在来唤醒这个数字大脑。在终端输入:

openclaw gateway start 

你会看到控制台开始输出各种日志,最后停在一个本地地址上,比如 http://localhost:18789。这就是你的Agent控制中枢。

第一次用需要生成访问令牌:

openclaw token generate 

生成的token会自动保存在 ~/.openclaw/openclaw.json 里,后续所有操作都需要它。建议把这串字符记在小本本上,丢了就得重新生成。

这时候打开浏览器,访问控制台地址加上token参数,比如 http://localhost:18789/?token=你的Token,如果能看到一个简洁的Web界面,里面有个输入框等着你说点什么,那就说明你的"数字大脑"已经开机成功,就等接上手和脚了。

第二天:Java程序员的"通灵术"——MCP协议

好了,现在咱们有个能听懂话的大脑,但还缺身体——怎么让它真的去操作浏览器、发微信呢?这就要请出今天的主角:MCP(Model Context Protocol)。

你可以把MCP理解成AI界的"USB接口"。就像你的键盘、鼠标、U盘都能插同一个USB口,MCP让AI能插上各种工具:浏览器、数据库、微信、地图……只要有对应的MCP Server,AI就能操控它。

Spring AI在2025年底正式支持了MCP协议,这对Java程序员来说简直是天降福音。不用再写一堆HTTP调用,直接用Spring的方式就能跟AI Agent对话。

搭建Spring Boot项目

新建一个Spring Boot项目,依赖记得加上这些:

  • Spring Boot 3.2+
  • Spring AI MCP(spring-ai-mcp)
  • Playwright(用于浏览器自动化)

pom.xml里的关键配置长这样:

 org.springframework.boot spring-boot-starter-web org.springframework.ai spring-ai-mcp 0.8.1 com.microsoft.playwright playwright 1.44.0 

配置MCP连接

application.yml 里配上连向OpenClaw的桥梁:

spring:ai:mcp:client:enabled:truename: my-java-agent version: 1.0.0 transport:type: stdio command: mcporter args:- call - playwright 

这里有个坑得注意:OpenClaw通过mcporter去启动各种MCP服务。咱们要控制浏览器,就用Playwright的MCP Server。它内置了22个浏览器操作工具,点开网页、填表单、截图、爬数据,样样精通。

写个能控制浏览器的Java代码

来,看点实在的。下面这段代码能让AI自动打开京东,搜索"机械键盘",然后把第一页的商品标题都抓回来:

importorg.springframework.web.bind.annotation.PostMapping;importorg.springframework.web.bind.annotation.RequestBody;importorg.springframework.web.bind.annotation.RestController;importjava.util.Map;@RestControllerpublicclassAgentController{privatefinalMcpClient mcpClient;publicAgentController(McpClient mcpClient){this.mcpClient = mcpClient;}@PostMapping("/search")publicStringautoSearch(@RequestBodyString keyword){// 告诉AI:打开京东首页 mcpClient.callTool("browser_navigate",Map.of("url","https://www.jd.com"));// 等待页面加载,找到搜索框 mcpClient.callTool("browser_wait_for",Map.of("selector","#key"));// 在搜索框里输入关键词 mcpClient.callTool("browser_type",Map.of("selector","#key","text", keyword));// 点击搜索按钮 mcpClient.callTool("browser_click",Map.of("selector",".button"));// 等待结果页加载 mcpClient.callTool("browser_wait_for",Map.of("time",3));// 执行JS代码抓取商品标题String script =""" return Array.from(document.querySelectorAll('.p-name a')) .slice(0, 5) .map(a => a.textContent.trim()); """;var result = mcpClient.callTool("browser_evaluate",Map.of("function", script));return"抓到的数据:"+ result;}}

这段代码看起来简单,但背后全是门道。McpClient就是Spring AI给的"遥控器",每个callTool都是在指挥远端的OpenClaw去操作Playwright控制的浏览器。

关键点在于 browser_evaluate 这个工具,它能让我们在页面里执行任意JavaScript代码。这就好比AI不仅能帮你点开网页,还能在页面里"翻箱倒柜"找数据,甚至直接操作DOM。

让AI自己决定怎么干

上面的代码是指令式的——咱们一步步告诉AI先干嘛后干嘛。但真正的智能体应该是目标式的——咱们只说"我要什么",AI自己规划步骤。

Spring AI支持这种方式,只需要改一下调用方式:

importorg.springframework.web.bind.annotation.PostMapping;importorg.springframework.web.bind.annotation.RequestBody;importorg.springframework.web.bind.annotation.RestController;@RestControllerpublicclassAgentController{privatefinalMcpClient mcpClient;publicAgentController(McpClient mcpClient){this.mcpClient = mcpClient;}@PostMapping("/smart-search")publicStringsmartSearch(@RequestBodyString goal){// 让AI自己理解目标并规划步骤String prompt =""" 目标:%s 你可以使用以下工具: - browser_navigate: 打开指定URL - browser_type: 在输入框填入文字 - browser_click: 点击元素 - browser_evaluate: 执行JavaScript获取数据 请规划步骤并完成目标,最后返回获取的数据。 """.formatted(goal);return mcpClient.executeWithPrompt(prompt);}}

这时候AI会像人一样思考:“要去京东搜机械键盘?那我得先打开jd.com,然后找到搜索框……” 自动就把活干了。这种感觉,就像雇了个不用睡觉的实习生,而且还不用买咖啡。

第三天:打通微信,让你的Agent学会"社交"

浏览器自动化只是基本功,真正的杀手锏是让Agent能替你发消息。想象一下:每天下班前,Agent自动帮你给团队发日报,还能根据聊天记录总结待办事项——这不就是每个打工人的梦想吗?

企业微信集成方案

2026年最稳的方案是通过企业微信的Webhook或者私有部署的WorkBuddy。腾讯基于OpenClaw封装的WorkBuddy已经支持通过WebSocket协议与企业微信对接。

首先在OpenClaw里配置企业微信的MCP Server:

mcporter config add wecom \--url"https://work.weixin.qq.com/api/mcp"\--envWECHAT_KEY=你的企业微信密钥 

然后在Java代码里就能直接发消息了:

importorg.springframework.stereotype.Service;importjava.util.Map;@ServicepublicclassWeChatService{privatefinalMcpClient mcpClient;publicWeChatService(McpClient mcpClient){this.mcpClient = mcpClient;}publicvoidsendDailyReport(String content){// 调用企业微信MCP工具发送群消息 mcpClient.callTool("wecom_send_message",Map.of("chat_id","部门群ID","msg_type","text","content", content ));}publicStringfetchUnreadMessages(){// 获取未读消息并总结var messages = mcpClient.callTool("wecom_get_unread",Map.of());// 这里可以接大模型做总结returnsummarizeWithAI(messages);}}

完整的日报自动化流程

来个完整的例子,展示如何把这些能力串起来:

importorg.springframework.scheduling.annotation.Scheduled;importorg.springframework.stereotype.Component;@ComponentpublicclassDailyReportJob{@Scheduled(cron ="0 0 18 * * MON-FRI")publicvoidgenerateAndSendReport(){// 1. 打开项目管理系统获取今日完成任务var tasks =fetchTodayTasks();// 2. 打开GitLab获取今日提交记录var commits =fetchTodayCommits();// 3. 让AI总结成日报格式String report =aiSummarize(tasks, commits);// 4. 自动发到企业微信群sendToWeCom(report);// 5. 截图备份发到个人微信文件传输助手backupScreenshot(report);}privateStringfetchTodayTasks(){// 通过Playwright登录Jira/禅道等系统爬取数据 mcpClient.callTool("browser_navigate",Map.of("url","https://jira.company.com"));// ... 自动化操作return extractedData;}privatevoidbackupScreenshot(String content){// 生成HTML报告并截图// 使用browser工具打开本地HTML文件截图 mcpClient.callTool("browser_navigate",Map.of("url","file:///tmp/report.html")); mcpClient.callTool("browser_take_screenshot",Map.of("filename","daily-report.png"));}}

这套组合拳打下来,原本每天花半小时整理的日报,现在Agent 30秒就搞定了。而且因为它跑在你本地机器上,数据安全性比那些云上的SaaS工具强多了——毕竟代码和密钥都捏在自己手里。

避坑指南:那些血泪换来的经验

走到这儿,你的Java Agent基本能跑起来了。但有几个坑我必须提前给你打预防针,这都是我踩过的真坑:

  1. 超时问题:Playwright操作如果超过60秒,默认的WebSocket连接会熔断。解决办法是在Spring AI的配置里调高超时,或者改用异步回调模式。
  2. 环境隔离:强烈建议用WSL2或者Docker跑OpenClaw,特别是Windows用户。有些npm包在Windows下编译会报错,Linux环境稳得多。
  3. 密钥管理:千万别把API Key硬编码在代码里。用Spring的@Value注入,配合环境变量或者阿里云Secrets Manager,这是生产环境的基本修养。
  4. 资源释放:Playwright的浏览器实例很吃内存,用完记得调用 browser_close。否则跑几天你的电脑会变卡,风扇狂转像要起飞。

写在最后:这只是开始

三天时间,我们从零搭出了一个能看网页、能发消息、能自动执行定时任务的Java版AI智能体。但这只是OpenClaw能力的冰山一角。

现在ClawHub技能市场上已经有3200多个MCP服务,从查天气到操作数据库,从发邮件到控制智能家居,你能想到的功能基本都有现成的"USB接口"。作为Java程序员,咱们终于不用看着Python开发者炫技了,Spring AI + MCP的组合完全能打出更漂亮的组合拳。

更妙的是,这套架构是开放的。你们公司内部的OA系统、财务系统,只要包装成MCP Server,Agent就能操作。这比传统的RPA工具灵活得多,因为AI理解自然语言,稍微改改需求不用重新写脚本,Agent自己就能适应。

赶紧去试试吧,说不定下周你就能给老板演示"一句话让AI自动整理周报并群发"的神奇操作了。到时候别忘了回来点个赞,咱们Java程序员也能在AI时代玩出花样。

Read more

手把手教程:用LingBot-Depth快速搭建机器人抓取感知系统

手把手教程:用LingBot-Depth快速搭建机器人抓取感知系统 1. 引言 你有没有想过,为什么家里的扫地机器人有时候会卡在椅子腿旁边,或者对着地上的拖鞋犹豫半天?又或者,为什么工业流水线上的机械臂,偶尔会把零件抓歪甚至掉在地上? 这背后一个关键原因,是机器人“看”得不够清楚。 机器人不像我们人类,用眼睛就能轻松判断物体的远近、形状和位置。它们依赖深度相机——一种能测量每个像素点距离的设备。但问题来了,深度相机拍出来的原始数据,就像一张布满雪花点和空洞的模糊照片。物体边缘不清晰,反光表面一片空白,远处细节完全丢失。用这样的“视力”去抓取物体,就像让你蒙着一层磨砂玻璃去拿东西,成功率可想而知。 今天,我要带你解决的就是这个核心痛点。我们将用一个叫 LingBot-Depth 的模型,给机器人的深度视觉做一次“高清修复”。它能将粗糙、不完整的原始深度图,转换成清晰、完整、精确的3D地图。有了这副“高清眼镜”,你的机器人才能真正“看清”世界,稳稳地抓住目标。 这篇教程,我会用最直白的方式,

智能家居笔记Home-Assistant+小智AI

智能家居笔记Home-Assistant+小智AI

设备框架图 概述: 总体而言借用各种开源项目,致力做到好用可控。输入设备小智AI作为用户前端,后端用小智AI华南理工开源服务器。智能家庭中控采用树莓派5搭载HAOS,用homeassistant,包括手机APP。各种终端设备,支持zigbee通信协议,wifi通信协议,小米设备支持milot的设备可以连接,其他类似美的海尔的设备也看home assistant的插件支持程度,没有本身开源的使用舒适。 主机: thinkpad-S5-yoga 地址xxxxxxxxxxxxx 用户:xxxxxxxxxxx 服务备注服务端口frigate5000sambamnt/media/usbsharehttp/mnt/usb_share/podcast10086mediamtx.servicexxxxxxxxxxx8554napcatkoimilocomicamxxxxxxxxxxxxxxastra-color.servicezaokafei-fetch.timer/mnt/usb_share/podcast/zaokafeibambucam.serviceDesktop/bambustud

3、超越CRUD:用JeecgBoot低代码模式,一天搭建功能完备的请假审批系统

3、超越CRUD:用JeecgBoot低代码模式,一天搭建功能完备的请假审批系统

超越CRUD:用JeecgBoot低代码模式,一天搭建功能完备的请假审批系统 引言:低代码革命与JeecgBoot的崛起 在当今快速变化的商业环境中,企业应用开发的传统瓶颈日益凸显:开发周期长、成本高、对专业开发人员依赖度强、难以快速响应业务变化。根据Forrester Research的报告,超过60%的企业应用开发项目存在延期交付问题,而低代码开发平台正成为解决这一困境的关键技术。 JeecgBoot作为国内领先的Java低代码开发平台,凭借其强大的代码生成能力和可视化开发工具,让开发者能够以惊人的速度构建企业级应用。本文将通过一个完整的“请假审批系统”实战案例,深入解析JeecgBoot的低代码核心原理,并展示如何在一天内完成一个功能完备的后台系统开发。 一、JeecgBoot低代码架构深度解析 1.1 JeecgBoot整体架构概览 JeecgBoot采用经典的前后端分离架构,但其核心价值在于提供了一系列可视化低代码工具,大幅降低了开发门槛。下面的架构图展示了JeecgBoot的核心组件及其协作关系: 这种架构设计的核心优势在于分层解耦和工具集成。Jeecg

(保姆级教程)通过官方API搭建一个自己的QQ群聊机器人

(保姆级教程)通过官方API搭建一个自己的QQ群聊机器人

简介 用官方api做了一个qq群聊机器人的demo,有获取天气、简单编辑待办、从本地发送图片等功能。 建了个群,欢迎来交流( QQ群号:710101225 重新写了个基于nonebot框架的教程,个人认为比官方sdk更容易开发:https://blog.ZEEKLOG.net/Clovertaa/article/details/145452834 获取 机器人demo GitHub仓库:GitHub - ClovertaTheTrilobita/SanYeCao-bot: 一个基于官方API的QQ群聊机器人 官方SDK GitHub仓库:GitHub - tencent-connect/botpy: QQ频道机器人PythonSDK 教程 前置需求 本项目使用conda环境和git操作。如果未安装这两个工具请首先移步 史上最全最详细的Anaconda安装教程-ZEEKLOG博客 Git 详细安装教程(详解 Git 安装过程的每一个步骤)_git安装-ZEEKLOG博客 (这俩教程我粗略看了下感觉挺好的,如果不适合你那烦请自行百度了qwq) 一