[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-platonai--Browser4":3,"tool-platonai--Browser4":61},[4,18,26,36,44,52],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",143909,2,"2026-04-07T11:33:18",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":53,"name":54,"github_repo":55,"description_zh":56,"stars":57,"difficulty_score":10,"last_commit_at":58,"category_tags":59,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,60],"视频",{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":76,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":119,"forks":120,"last_commit_at":121,"license":122,"difficulty_score":123,"env_os":124,"env_gpu":125,"env_ram":125,"env_deps":126,"category_tags":133,"github_topics":134,"view_count":10,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":141,"updated_at":142,"faqs":143,"releases":179},2957,"platonai\u002FBrowser4","Browser4","Browser4: a lightning-fast, coroutine-safe browser for your AI.","Browser4 是一款专为 AI 设计的超高速、协程安全浏览器引擎。它旨在解决传统自动化工具在处理复杂网页时速度慢、并发能力弱以及难以理解动态内容的问题，让 AI 智能体能够像人类一样自主地规划、导航并执行端到端的网页任务。\n\n这款工具特别适合开发者、研究人员以及需要构建高级自动化工作流的技术团队使用。无论是进行大规模数据采集、跨网站信息比对，还是让 AI 自主完成购物搜索与分析，Browser4 都能提供强大的底层支持。\n\n其核心技术亮点在于极致的性能与智能化结合：它不仅完全协程安全，单机日均能处理 10 万至 20 万次复杂页面访问，还创新性地融合了大型语言模型（LLM）、机器学习与选择器技术。这种混合架构使其能在不消耗额外 Token 的情况下学习复杂页面结构，从混乱的网页中提取干净数据。用户只需通过自然语言下达指令，Browser4 即可作为 AI 的“手和眼”，高效完成从浏览到数据整理的全流程，是实现高性能浏览器自动化的理想选择。","# 🤖 Browser4\n\n[![Docker Pulls](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fpulls\u002Fgalaxyeye88\u002Fbrowser4?style=flat-square)](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fgalaxyeye88\u002Fbrowser4)\n[![License: APACHE2](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-APACHE2-green?style=flat-square)](https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fbrowser4\u002Fblob\u002Fmain\u002FLICENSE)\n\n---\n\nEnglish | [简体中文](README.zh.md) | [中国镜像](https:\u002F\u002Fgitee.com\u002Fplatonai_galaxyeye\u002FBrowser4)\n\n\u003C!-- TOC -->\n**Table of Contents**\n- [🤖 Browser4](#-browser4)\n    - [🌟 Introduction](#-introduction)\n        - [✨ Key Capabilities](#-key-capabilities)\n    - [🎥 Demo Videos](#-demo-videos)\n    - [🚀 Quick Start](#-quick-start)\n    - [💡 Usage Examples](#-usage-examples)\n        - [Browser Agents](#browser-agents)\n        - [Workflow Automation](#workflow-automation)\n        - [LLM + X-SQL](#llm--x-sql)\n        - [High-Speed Parallel Processing](#high-speed-parallel-processing)\n        - [Auto Extraction](#auto-extraction)\n    - [📦 Modules Overview](#-modules-overview)\n    - [📜 Documentation](#-documentation)\n    - [🔧 Proxies - Unblock Websites](#-proxies---unblock-websites)\n    - [✨ Features](#-features)\n    - [🤝 Support & Community](#-support--community)\n\u003C!-- \u002FTOC -->\n\n## 🌟 Introduction\n\n💖 **Browser4: a lightning-fast, coroutine-safe browser engine for your AI** 💖\n\n### ✨ Key Capabilities\n\n* 👽 **Browser Agents** — Fully autonomous browser agents that reason, plan, and execute end-to-end tasks.\n* 🤖 **Browser Automation** — High-performance automation for workflows, navigation, and data extraction.\n* ⚙️ **Machine Learning Agent** - Learns field structures across complex pages without consuming tokens.\n* ⚡  **Extreme Performance** — Fully coroutine-safe; supports 100k ~ 200k complex page visits per machine per day.\n* 🧬 **Data Extraction** — Hybrid of LLM, ML, and selectors for clean data across chaotic pages.\n\n## ⚡ Quick Example: Agentic Workflow\n\n```kotlin\n\u002F\u002F Give your Agent a mission, not just a script.\nval agent = AgenticContexts.getOrCreateAgent()\n\n\u002F\u002F The Agent plans, navigates, and executes using Browser4 as its hands and eyes.\nval result = agent.run(\"\"\"\n    1. Go to amazon.com\n    2. Search for '4k monitors'\n    3. Analyze the top 5 results for price\u002Fperformance ratio\n    4. Return the best option as JSON\n\"\"\")\n```\n\n---\n\n## 🎥 Demo Videos\n\n🎬 YouTube:\n[![Watch the video](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fplatonai_Browser4_readme_d1e2b9b3d622.jpg)](https:\u002F\u002Fyoutu.be\u002FrJzXNXH3Gwk)\n\n📺 Bilibili:\n[https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1fXUzBFE4L](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1fXUzBFE4L)\n\n---\n\n## 🚀 Quick Start\n\n**Prerequisites**: Java 17+\n\n1. **Clone the repository**\n   ```shell\n   git clone https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fbrowser4.git\n   cd browser4\n   ```\n\n2. **Configure your LLM API key**\n\n   > Edit [application.properties](application.properties) and add your API key.\n\n3. **Build the project**\n   ```shell\n   .\u002Fmvnw -DskipTests\n   ```\n\n4. **Run examples**\n   ```shell\n   .\u002Fmvnw -pl examples\u002Fbrowser4-examples exec:java -D\"exec.mainClass=ai.platon.pulsar.examples.agent.Browser4AgentKt\"\n   ```\n   If you have encoding problem on Windows:\n   ```shell\n   .\u002Fbin\u002Frun-examples.ps1\n   ```\n\n   Explore and run examples in the `browser4-examples` module to see Browser4 in action.\n\nFor Docker deployment, see our [Docker Hub repository](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fgalaxyeye88\u002Fbrowser4).\n\n**Windows Users**: You can also build Browser4 as a standalone Windows installer. See the [Windows Installer Guide](browser4\u002Fbrowser4-agents\u002FREADME.md) for details.\n\n---\n\n## 💡 Usage Examples\n\n### Browser Agents\n\nAutonomous agents that understand natural language instructions and execute complex browser workflows.\n\n```kotlin\nval agent = AgenticContexts.getOrCreateAgent()\n\nval task = \"\"\"\n    1. go to amazon.com\n    2. search for pens to draw on whiteboards\n    3. compare the first 4 ones\n    4. write the result to a markdown file\n    \"\"\"\n\nagent.run(task)\n```\n\n### Workflow Automation\n\nLow-level browser automation & data extraction with fine-grained control.\n\n**Features:**\n- Both live DOM access and offline snapshot parsing\n- Direct and full Chrome DevTools Protocol (CDP) control, coroutine safe\n- Precise element interactions (click, scroll, input)\n- Fast data extraction using CSS selectors\u002FXPath\n\n```kotlin\nval session = AgenticContexts.getOrCreateSession()\nval agent = session.companionAgent\nval driver = session.getOrCreateBoundDriver()\n\n\u002F\u002F Load the initial page referenced by your input URL\nvar page = session.open(url)\n\n\u002F\u002F Drive the browser with natural-language instructions\nagent.act(\"scroll to the comment section\")\n\u002F\u002F Read the first matching comment node directly from the live DOM\nval content = driver.selectFirstTextOrNull(\"#comments\")\n\n\u002F\u002F Snapshot the page to an in-memory document for offline parsing\nvar document = session.parse(page)\n\u002F\u002F Map CSS selectors to structured fields in one call\nvar fields = session.extract(document, mapOf(\"title\" to \"#title\"))\n\n\u002F\u002F Let the companion agent execute a multi-step navigation\u002Fsearch flow\nval history = agent.run(\n    \"Go to amazon.com, search for 'smart phone', open the product page with the highest ratings\"\n)\n\n\u002F\u002F Capture the updated browser state back into a PageSnapshot\npage = session.capture(driver)\ndocument = session.parse(page)\n\u002F\u002F Extract additional attributes from the captured snapshot\nfields = session.extract(document, mapOf(\"ratings\" to \"#ratings\"))\n```\n\n### LLM + X-SQL\n\nIdeal for high-complexity data-extraction pipelines with multiple-dozen entities and several hundred fields per entity.\n\n**Benefits:**\n- Extract 10x more entities and 100x more fields compared to traditional methods\n- Combine LLM intelligence with precise CSS selectors\u002FXPath\n- SQL-like syntax for familiar data queries\n\n```kotlin\nval context = AgenticContexts.create()\nval sql = \"\"\"\nselect\n  llm_extract(dom, 'product name, price, ratings') as llm_extracted_data,\n  dom_first_text(dom, '#productTitle') as title,\n  dom_first_text(dom, '#bylineInfo') as brand,\n  dom_first_text(dom, '#price tr td:matches(^Price) ~ td, #corePrice_desktop tr td:matches(^Price) ~ td') as price,\n  dom_first_text(dom, '#acrCustomerReviewText') as ratings,\n  str_first_float(dom_first_text(dom, '#reviewsMedley .AverageCustomerReviews span:contains(out of)'), 0.0) as score\nfrom load_and_select('https:\u002F\u002Fwww.amazon.com\u002Fdp\u002FB08PP5MSVB -i 1s -njr 3', 'body');\n\"\"\"\nval rs = context.executeQuery(sql)\nprintln(ResultSetFormatter(rs, withHeader = true))\n```\n\nExample code:\n\n* [X-SQL to scrape 100+ fields from an Amazon's product page](https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fexotic-amazon\u002Ftree\u002Fmain\u002Fsrc\u002Fmain\u002Fresources\u002Fsites\u002Famazon\u002Fcrawl\u002Fparse\u002Fsql\u002Fcrawl)\n* [X-SQLs to crawl all types of Amazon webpages](https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fexotic-amazon\u002Ftree\u002Fmain\u002Fsrc\u002Fmain\u002Fresources\u002Fsites\u002Famazon\u002Fcrawl\u002Fparse\u002Fsql\u002Fcrawl)\n\n### High-Speed Parallel Processing\n\nAchieve extreme throughput with parallel browser control and smart resource optimization.\n\n**Performance:**\n- 10k ~ 20k complex page visits per machine per day\n- Concurrent session management\n- Resource blocking for faster page loads\n\n```kotlin\nval args = \"-refresh -dropContent -interactLevel fastest\"\nval blockingUrls = listOf(\"*.png\", \"*.jpg\")\nval links = LinkExtractors.fromResource(\"urls.txt\")\n    .map { ListenableHyperlink(it, \"\", args = args) }\n    .onEach {\n        it.eventHandlers.browseEventHandlers.onWillNavigate.addLast { page, driver ->\n            driver.addBlockedURLs(blockingUrls)\n        }\n    }\n\nsession.submitAll(links)\n```\n\n🎬 YouTube:\n[![Watch the video](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fplatonai_Browser4_readme_af99ba537af1.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=_BcryqWzVMI)\n\n📺 Bilibili:\n[https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1kM2rYrEFC](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1kM2rYrEFC)\n\n\n---\n\n### Auto Extraction\n\nAutomatic, large-scale, high-precision field discovery and extraction powered by self-\u002Funsupervised machine learning — no LLM API calls, no tokens, deterministic and fast.\n\n**What it does:**\n- Learns every extractable field on item\u002Fdetail pages (often dozens to hundreds) with high precision.\n- Open source when browser4 has 10K stars on GitHub.\n\n**Why not just LLMs?**\n- LLM extraction adds latency, cost, and token limits.\n- ML-based auto extraction is local, reproducible, and scalable to 100k+ ~ 200k pages\u002Fday.\n- You can still combine both: use Auto Extraction for structured baseline + LLM for semantic enrichment.\n\n**Quick Commands (PulsarRPAPro):**\n```bash\n# NOTE: MongoDB required\ncurl -L -o PulsarRPAPro.jar https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPAPro\u002Freleases\u002Fdownload\u002Fv4.6.0\u002FPulsarRPAPro.jar\n```\n\n**Integration Status:**\n- Available today via the companion project [PulsarRPAPro](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPAPro).\n- Native Browser4 API exposure is planned; follow releases for updates.\n\n**Key Advantages:**\n- High precision: >95% fields discovered; majority with >99% accuracy (indicative on tested domains).\n- Resilient to selector churn & HTML noise.\n- Zero external dependency (no API key) → cost-efficient at scale.\n- Explainable: generated selectors & SQL are transparent and auditable.\n\n👽 Extract data with machine learning agents:\n\n![Auto Extraction Result Snapshot](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fplatonai_Browser4_readme_ab57e7308110.png)\n\n(Coming soon: richer in-repo examples and direct API hooks.)\n\n---\n\n## 📦 Modules Overview\n\n| Module            | Description                                             |\n|-------------------|---------------------------------------------------------|\n| `pulsar-core`     | Core engine: sessions, scheduling, DOM, browser control |\n| `pulsar-agentic`  | Agent implementation, MCP, and skill registration       |\n| `pulsar-rest`     | Spring Boot REST layer & command endpoints              |\n| `browser4-spa`    | Single Page Application for browser agents              |\n| `browser4-agents` | Agent & crawler orchestration with product packaging    |\n| `sdks`            | Kotlin\u002FPython SDKs plus tests and examples              |\n| `examples`        | Runnable examples and demos                             |\n| `pulsar-tests`    | E2E & heavy integration & scenario tests                |\n\n---\n\n## 📜 SDK\n\nSDKs are available under `sdks\u002F`, current language support includes:\n\n- [Kotlin](sdks\u002Fbrowser4-sdk-kotlin) (native API, REST client)\n- [Python](sdks\u002Fbrowser4-sdk-python) (REST client)\n- [Node.js](sdks\u002Fbrowser4-sdk-nodejs) (REST client)\n\n---\n\n## ✨ Features\n\nStatus: [Available] in repo, [Experimental] in active iteration, [Planned] not in repo, [Indicative] performance target.\n\n### AI & Agents\n- [Available] Problem-solving autonomous browser agents\n- [Available] Parallel agent sessions\n- [Experimental] LLM-assisted page understanding & extraction\n\n### Browser Automation & RPA\n- [Available] Workflow-based browser actions\n- [Available] Precise coroutine-safe control (scroll, click, extract)\n- [Available] Flexible event handlers & lifecycle management\n\n### Data Extraction & Query\n- [Available] One-line data extraction commands\n- [Available] X-SQL extended query language for DOM\u002Fcontent\n- [Experimental] Structured + unstructured hybrid extraction (LLM & ML & selectors)\n\n### Performance & Scalability\n- [Available] High-efficiency parallel page rendering\n- [Available] Block-resistant design & smart retries\n- [Indicative] 100,000+ complex pages\u002Fday on modest hardware\n\n### Stealth & Reliability\n- [Experimental] Advanced anti-bot techniques\n- [Available] Proxy rotation via `PROXY_ROTATION_URL`\n- [Available] Resilient scheduling & quality assurance\n\n### Developer Experience\n- [Available] Simple API integration (REST, native, text commands)\n- [Available] Rich configuration layering\n- [Available] Clear structured logging & metrics\n\n### Storage & Monitoring\n- [Available] Local FS & MongoDB support (extensible)\n- [Available] Comprehensive logs & transparency\n\n---\n\n## 🤝 Support & Community\n\nJoin our community for support, feedback, and collaboration!\n\n- **GitHub Discussions**: Engage with developers and users.\n- **Issue Tracker**: Report bugs or request features.\n- **Social Media**: Follow us for updates and news.\n\nWe welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for details.\n\n---\n\n## 📜 Documentation\n\nComprehensive documentation is available in the `docs\u002F` directory and on our [GitHub Pages site](https:\u002F\u002Fplatonai.github.io\u002Fbrowser4\u002F).\n\n---\n\n## 🔧 Proxies - Unblock Websites\n\n\u003Cdetails>\n\nSet the environment variable PROXY_ROTATION_URL to the URL provided by your proxy service:\n\n```shell\nexport PROXY_ROTATION_URL=https:\u002F\u002Fyour-proxy-provider.com\u002Frotation-endpoint\n```\n\nEach time the rotation URL is accessed, it should return a response containing one or more fresh proxy IPs.\nAsk your proxy provider for such a URL.\n\n\u003C\u002Fdetails>\n\n---\n\n## License\n\nApache 2.0 License. See [LICENSE](LICENSE) for details.\n\n---\n\n## 🤝 Support & Community\n\n- 💬 WeChat: galaxyeye\n- 🌐 Weibo: [galaxyeye](https:\u002F\u002Fweibo.com\u002Fgalaxyeye)\n- 📧 Email: galaxyeye@live.cn, ivincent.zhang@gmail.com\n- 🐦 Twitter: [galaxyeye8](https:\u002F\u002Fx.com\u002Fgalaxyeye8)\n- 🌍 Website: [browser4.io](https:\u002F\u002Fbrowser4.io)\n\n\u003Cdiv style=\"display: flex;\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fplatonai_Browser4_readme_bae9b28822bd.png\" width=\"300\" height=\"365\" alt=\"微信二维码\" \u002F>\n\u003C\u002Fdiv>\n","# 🤖 Browser4\n\n[![Docker Pulls](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fpulls\u002Fgalaxyeye88\u002Fbrowser4?style=flat-square)](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fgalaxyeye88\u002Fbrowser4)\n[![License: APACHE2](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-APACHE2-green?style=flat-square)](https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fbrowser4\u002Fblob\u002Fmain\u002FLICENSE)\n\n---\n\n英语 | [简体中文](README.zh.md) | [中国镜像](https:\u002F\u002Fgitee.com\u002Fplatonai_galaxyeye\u002FBrowser4)\n\n\u003C!-- TOC -->\n**目录**\n- [🤖 Browser4](#-browser4)\n    - [🌟 简介](#-introduction)\n        - [✨ 核心能力](#-key-capabilities)\n    - [🎥 演示视频](#-demo-videos)\n    - [🚀 快速入门](#-quick-start)\n    - [💡 使用示例](#-usage-examples)\n        - [浏览器代理](#browser-agents)\n        - [工作流自动化](#workflow-automation)\n        - [LLM + X-SQL](#llm--x-sql)\n        - [高速并行处理](#high-speed-parallel-processing)\n        - [自动提取](#auto-extraction)\n    - [📦 模块概览](#-modules-overview)\n    - [📜 文档](#-documentation)\n    - [🔧 代理 - 解锁网站](#-proxies---unblock-websites)\n    - [✨ 特性](#-features)\n    - [🤝 支持与社区](#-support--community)\n\u003C!-- \u002FTOC -->\n\n## 🌟 简介\n\n💖 **Browser4：专为您的AI打造的闪电般快速、协程安全的浏览器引擎** 💖\n\n### ✨ 核心能力\n\n* 👽 **浏览器代理** — 完全自主的浏览器代理，能够推理、规划并执行端到端任务。\n* 🤖 **浏览器自动化** — 高性能的工作流、导航和数据提取自动化工具。\n* ⚙️ **机器学习代理** - 能够在复杂页面中学习字段结构，且无需消耗任何token。\n* ⚡  **极致性能** — 完全协程安全；每台机器每天可支持10万至20万次复杂页面访问。\n* 🧬 **数据提取** — 结合了LLM、ML和选择器技术，可在混乱的页面中提取干净的数据。\n\n## ⚡ 快速示例：代理式工作流\n\n```kotlin\n\u002F\u002F 给你的代理一个使命，而不仅仅是一段脚本。\nval agent = AgenticContexts.getOrCreateAgent()\n\n\u002F\u002F 代理会利用Browser4作为它的“手”和“眼”，进行规划、导航和执行。\nval result = agent.run(\"\"\"\n    1. 前往amazon.com\n    2. 搜索‘4k显示器’\n    3. 分析前5个结果的性价比\n    4. 将最佳选项以JSON格式返回\n\"\"\")\n```\n\n---\n\n## 🎥 演示视频\n\n🎬 YouTube:\n[![观看视频](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fplatonai_Browser4_readme_d1e2b9b3d622.jpg)](https:\u002F\u002Fyoutu.be\u002FrJzXNXH3Gwk)\n\n📺 Bilibili:\n[https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1fXUzBFE4L](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1fXUzBFE4L)\n\n---\n\n## 🚀 快速入门\n\n**先决条件**: Java 17+\n\n1. **克隆仓库**\n   ```shell\n   git clone https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fbrowser4.git\n   cd browser4\n   ```\n\n2. **配置你的LLM API密钥**\n\n   > 编辑 [application.properties](application.properties)，添加你的API密钥。\n\n3. **构建项目**\n   ```shell\n   .\u002Fmvnw -DskipTests\n   ```\n\n4. **运行示例**\n   ```shell\n   .\u002Fmvnw -pl examples\u002Fbrowser4-examples exec:java -D\"exec.mainClass=ai.platon.pulsar.examples.agent.Browser4AgentKt\"\n   ```\n   如果你在Windows上遇到编码问题：\n   ```shell\n   .\u002Fbin\u002Frun-examples.ps1\n   ```\n\n   浏览并运行`browser4-examples`模块中的示例，即可体验Browser4的实际效果。\n\n如需使用Docker部署，请参阅我们的[Docker Hub仓库](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fgalaxyeye88\u002Fbrowser4)。\n\n**Windows用户**: 你也可以将Browser4构建为独立的Windows安装程序。详情请参阅[Windows安装指南](browser4\u002Fbrowser4-agents\u002FREADME.md)。\n\n---\n\n## 💡 使用示例\n\n### 浏览器代理\n\n能够理解自然语言指令并执行复杂浏览器工作流的自主代理。\n\n```kotlin\nval agent = AgenticContexts.getOrCreateAgent()\n\nval task = \"\"\"\n    1. 前往amazon.com\n    2. 搜索用于白板绘画的笔\n    3. 对前4款产品进行比较\n    4. 将结果写入Markdown文件\n    \"\"\"\n\nagent.run(task)\n```\n\n### 工作流自动化\n\n低层级的浏览器自动化与数据提取，具备精细的控制能力。\n\n**特性:**\n- 同时支持实时DOM访问和离线快照解析\n- 直接且完全兼容Chrome DevTools Protocol (CDP)的控制，协程安全\n- 精确的元素交互（点击、滚动、输入）\n- 使用CSS选择器\u002FXPath实现快速数据提取\n\n```kotlin\nval session = AgenticContexts.getOrCreateSession()\nval agent = session.companionAgent\nval driver = session.getOrCreateBoundDriver()\n\n\u002F\u002F 加载由输入URL引用的初始页面\nvar page = session.open(url)\n\n\u002F\u002F 使用自然语言指令驱动浏览器\nagent.act(\"滚动到评论区\")\n\u002F\u002F 直接从实时DOM中读取第一个匹配的评论节点内容\nval content = driver.selectFirstTextOrNull(\"#comments\")\n\n\u002F\u002F 将页面快照保存为内存中的文档，以便离线解析\nvar document = session.parse(page)\n\u002F\u002F 通过一次调用将CSS选择器映射到结构化字段\nvar fields = session.extract(document, mapOf(\"title\" to \"#title\"))\n\n\u002F\u002F 让同伴代理执行一个多步骤的导航\u002F搜索流程\nval history = agent.run(\n    \"前往amazon.com，搜索‘智能手机’，打开评分最高的产品页面\"\n)\n\n\u002F\u002F 将更新后的浏览器状态捕获回PageSnapshot\npage = session.capture(driver)\ndocument = session.parse(page)\n\u002F\u002F 从捕获的快照中提取额外的属性\nfields = session.extract(document, mapOf(\"ratings\" to \"#ratings\"))\n```\n\n### LLM + X-SQL\n\n非常适合包含数十个实体、每个实体拥有数百个字段的高复杂度数据提取管道。\n\n**优势:**\n- 提取的实体数量是传统方法的10倍，字段数量更是高达100倍\n- 结合了LLM智能与精确的CSS选择器\u002FXPath\n- 类似SQL的语法，便于熟悉的数据查询操作\n\n```kotlin\nval context = AgenticContexts.create()\nval sql = \"\"\"\nselect\n  llm_extract(dom, '产品名称, 价格, 评分') as llm_extracted_data,\n  dom_first_text(dom, '#productTitle') as title,\n  dom_first_text(dom, '#bylineInfo') as brand,\n  dom_first_text(dom, '#price tr td:matches(^Price) ~ td, #corePrice_desktop tr td:matches(^Price) ~ td') as price,\n  dom_first_text(dom, '#acrCustomerReviewText') as ratings,\n  str_first_float(dom_first_text(dom, '#reviewsMedley .AverageCustomerReviews span:contains(out of)'), 0.0) as score\nfrom load_and_select('https:\u002F\u002Fwww.amazon.com\u002Fdp\u002FB08PP5MSVB -i 1s -njr 3', 'body');\n\"\"\"\nval rs = context.executeQuery(sql)\nprintln(ResultSetFormatter(rs, withHeader = true))\n```\n\n示例代码：\n\n* [使用X-SQL从亚马逊商品页面抓取100多个字段](https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fexotic-amazon\u002Ftree\u002Fmain\u002Fsrc\u002Fmain\u002Fresources\u002Fsites\u002Famazon\u002Fcrawl\u002Fparse\u002Fsql\u002Fcrawl)\n* [用于爬取各类亚马逊网页的X-SQL集合](https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fexotic-amazon\u002Ftree\u002Fmain\u002Fsrc\u002Fmain\u002Fresources\u002Fsites\u002Famazon\u002Fcrawl\u002Fparse\u002Fsql\u002Fcrawl)\n\n### 高速并行处理\n\n通过并行浏览器控制和智能资源优化，实现极致吞吐量。\n\n**性能：**\n- 每台机器每天可完成1万至2万次复杂页面访问\n- 并发会话管理\n- 资源阻塞以加快页面加载速度\n\n```kotlin\nval args = \"-refresh -dropContent -interactLevel fastest\"\nval blockingUrls = listOf(\"*.png\", \"*.jpg\")\nval links = LinkExtractors.fromResource(\"urls.txt\")\n    .map { ListenableHyperlink(it, \"\", args = args) }\n    .onEach {\n        it.eventHandlers.browseEventHandlers.onWillNavigate.addLast { page, driver ->\n            driver.addBlockedURLs(blockingUrls)\n        }\n    }\n\nsession.submitAll(links)\n```\n\n🎬 YouTube:\n[![观看视频](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fplatonai_Browser4_readme_af99ba537af1.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=_BcryqWzVMI)\n\n📺 Bilibili:\n[https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1kM2rYrEFC](https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1kM2rYrEFC)\n\n\n---\n\n### 自动提取\n\n基于自监督\u002F无监督机器学习的自动、大规模、高精度字段发现与提取——无需调用LLM API，不消耗token，确定且快速。\n\n**功能：**\n- 以高精度学习商品\u002F详情页上所有可提取字段（通常为数十到数百个）。\n- 当browser4在GitHub上达到1万颗星时将开源。\n\n**为何不直接使用LLMs？**\n- LLM提取会增加延迟、成本，并受限于token数量。\n- 基于机器学习的自动提取是本地化的、可复现的，且可扩展至每天10万至20万页。\n- 您仍可结合两者：使用自动提取作为结构化基准，再用LLM进行语义增强。\n\n**快速命令（PulsarRPAPro）：**\n```bash\n# 注意：需要MongoDB\ncurl -L -o PulsarRPAPro.jar https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPAPro\u002Freleases\u002Fdownload\u002Fv4.6.0\u002FPulsarRPAPro.jar\n```\n\n**集成状态：**\n- 即日起可通过配套项目[PulsarRPAPro](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPAPro)使用。\n- 计划原生暴露Browser4 API；请关注后续发布以获取更新。\n\n**主要优势：**\n- 高精度：>95%的字段被发现；多数字段准确率超过99%（基于测试域名）。\n- 对选择器变化及HTML噪声具有较强鲁棒性。\n- 无外部依赖（无需API密钥）→规模化部署时成本更低。\n- 可解释性：生成的选择器与SQL透明且可审计。\n\n👽 使用机器学习代理提取数据：\n\n![自动提取结果截图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fplatonai_Browser4_readme_ab57e7308110.png)\n\n（更多仓库内示例及直接API接口即将推出。）\n\n---\n\n## 📦 模块概览\n\n| 模块            | 描述                                             |\n|-------------------|---------------------------------------------------------|\n| `pulsar-core`     | 核心引擎：会话、调度、DOM、浏览器控制               |\n| `pulsar-agentic`  | 代理实现、MCP及技能注册                           |\n| `pulsar-rest`     | Spring Boot REST层及命令端点                     |\n| `browser4-spa`    | 浏览器代理的单页应用                             |\n| `browser4-agents` | 代理与爬虫编排及产品打包                         |\n| `sdks`            | Kotlin\u002FPython SDK以及测试和示例                  |\n| `examples`        | 可运行示例及演示                                 |\n| `pulsar-tests`    | 端到端、重度集成及场景测试                       |\n\n---\n\n## 📜 SDK\n\nSDK位于`sdks\u002F`目录下，目前支持的语言包括：\n\n- [Kotlin](sdks\u002Fbrowser4-sdk-kotlin)（原生API、REST客户端）\n- [Python](sdks\u002Fbrowser4-sdk-python)（REST客户端）\n- [Node.js](sdks\u002Fbrowser4-sdk-nodejs)（REST客户端）\n\n---\n\n## ✨ 功能\n\n状态：[可用]已在仓库中，[实验性]正在迭代中，[计划中]尚未入库，[指示性]为性能目标。\n\n### AI与代理\n- [可用] 解决问题的自主浏览器代理\n- [可用] 并行代理会话\n- [实验性] LLM辅助的页面理解和提取\n\n### 浏览器自动化与RPA\n- [可用] 基于工作流的浏览器操作\n- [可用] 精确的协程安全控制（滚动、点击、提取）\n- [可用] 灵活的事件处理器与生命周期管理\n\n### 数据提取与查询\n- [可用] 一行式数据提取命令\n- [可用] X-SQL扩展查询语言用于DOM\u002F内容\n- [实验性] 结构化与非结构化混合提取（LLM、ML及选择器）\n\n### 性能与可扩展性\n- [可用] 高效并行页面渲染\n- [可用] 抗阻塞性设计与智能重试\n- [指示性] 在普通硬件上每日处理10万+复杂页面\n\n### 隐蔽性与可靠性\n- [实验性] 先进的反机器人技术\n- [可用] 通过`PROXY_ROTATION_URL`轮换代理\n- [可用] 强韧的调度与质量保证\n\n### 开发者体验\n- [可用] 简单的API集成（REST、原生、文本命令）\n- [可用] 丰富的配置分层\n- [可用] 清晰的结构化日志与指标\n\n### 存储与监控\n- [可用] 支持本地文件系统与MongoDB（可扩展）\n- [可用] 全面的日志记录与透明度\n\n---\n\n## 🤝 支持与社区\n\n加入我们的社区，获取支持、反馈与合作！\n\n- **GitHub Discussions**：与开发者和用户互动。\n- **Issue Tracker**：报告Bug或请求功能。\n- **社交媒体**：关注我们以获取最新动态。\n\n我们欢迎贡献！详情请参阅[CONTRIBUTING.md](CONTRIBUTING.md)。\n\n---\n\n## 📜 文档\n\n全面的文档可在`docs\u002F`目录及我们的[GitHub Pages站点](https:\u002F\u002Fplatonai.github.io\u002Fbrowser4\u002F)上找到。\n\n---\n\n## 🔧 代理——解锁网站\n\n\u003Cdetails>\n\n将环境变量PROXY_ROTATION_URL设置为您代理服务提供的URL：\n\n```shell\nexport PROXY_ROTATION_URL=https:\u002F\u002Fyour-proxy-provider.com\u002Frotation-endpoint\n```\n\n每次访问该轮换URL时，应返回包含一个或多个新鲜代理IP的响应。\n请向您的代理提供商索取此类URL。\n\n\u003C\u002Fdetails>\n\n---\n\n## 许可证\n\nApache 2.0许可证。详情请参阅[LICENSE](LICENSE)。\n\n---\n\n## 🤝 支持与社区\n\n- 💬 微信：galaxyeye\n- 🌐 微博：[galaxyeye](https:\u002F\u002Fweibo.com\u002Fgalaxyeye)\n- 📧 邮箱：galaxyeye@live.cn, ivincent.zhang@gmail.com\n- 🐦 Twitter：[galaxyeye8](https:\u002F\u002Fx.com\u002Fgalaxyeye8)\n- 🌍 官网：[browser4.io](https:\u002F\u002Fbrowser4.io)\n\n\u003Cdiv style=\"display: flex;\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fplatonai_Browser4_readme_bae9b28822bd.png\" width=\"300\" height=\"365\" alt=\"微信二维码\" \u002F>\n\u003C\u002Fdiv>","# Browser4 快速上手指南\n\nBrowser4 是一款专为 AI 设计的高速、协程安全的浏览器引擎，支持自主代理（Agents）、工作流自动化及大规模数据提取。\n\n## 🛠️ 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS, 或 Windows\n*   **JDK 版本**：Java 17 或更高版本\n*   **构建工具**：项目内置 Maven Wrapper (`mvnw`)，无需单独安装 Maven\n*   **网络环境**：需能访问 GitHub 或配置好代理以拉取依赖；若使用 LLM 功能，需准备 API Key\n\n> 💡 **国内开发者提示**：如果您在国内访问 GitHub 较慢，可以使用 [Gitee 镜像仓库](https:\u002F\u002Fgitee.com\u002Fplatonai_galaxyeye\u002FBrowser4) 克隆代码。\n\n## 🚀 安装步骤\n\n### 1. 克隆项目\n\n**方式 A：从 GitHub 克隆（推荐国际用户）**\n```shell\ngit clone https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fbrowser4.git\ncd browser4\n```\n\n**方式 B：从 Gitee 克隆（推荐国内用户）**\n```shell\ngit clone https:\u002F\u002Fgitee.com\u002Fplatonai_galaxyeye\u002FBrowser4.git\ncd Browser4\n```\n\n### 2. 配置 LLM API Key\n\n编辑项目根目录下的 `application.properties` 文件，填入您的大模型 API Key：\n\n```properties\n# 示例：编辑 application.properties\nllm.api.key=YOUR_API_KEY_HERE\n```\n\n### 3. 构建项目\n\n使用自带的 Maven Wrapper 进行构建（跳过测试以加快速度）：\n\n```shell\n.\u002Fmvnw -DskipTests\n```\n\n*Windows PowerShell 用户请使用:* `.\\mvnw.cmd -DskipTests`\n\n## 💡 基本使用\n\n构建完成后，您可以直接运行官方提供的示例来体验 Browser4 的核心功能——**自主代理（Agentic Workflow）**。\n\n### 运行示例：让 Agent 自主完成任务\n\n以下命令将启动一个 Agent，让它自动访问亚马逊、搜索商品、分析性价比并返回结果。\n\n**Linux \u002F macOS:**\n```shell\n.\u002Fmvnw -pl examples\u002Fbrowser4-examples exec:java -D\"exec.mainClass=ai.platon.pulsar.examples.agent.Browser4AgentKt\"\n```\n\n**Windows (如遇编码问题):**\n```shell\n.\u002Fbin\u002Frun-examples.ps1\n```\n\n### 代码示例：自定义任务\n\n您可以在 Kotlin 代码中通过自然语言定义任务。以下是核心用法的最小化示例：\n\n```kotlin\n\u002F\u002F 获取或创建一个智能代理\nval agent = AgenticContexts.getOrCreateAgent()\n\n\u002F\u002F 下达自然语言指令，Agent 会自动规划、导航并执行\nval result = agent.run(\"\"\"\n    1. Go to amazon.com\n    2. Search for '4k monitors'\n    3. Analyze the top 5 results for price\u002Fperformance ratio\n    4. Return the best option as JSON\n\"\"\")\n```\n\n### 进阶：使用 X-SQL 进行数据提取\n\nBrowser4 支持结合 LLM 与 CSS\u002FXPath 选择器的类 SQL 查询语言，适合复杂页面结构化提取：\n\n```kotlin\nval context = AgenticContexts.create()\nval sql = \"\"\"\nselect\n  llm_extract(dom, 'product name, price, ratings') as llm_extracted_data,\n  dom_first_text(dom, '#productTitle') as title,\n  dom_first_text(dom, '#price tr td:matches(^Price) ~ td') as price\nfrom load_and_select('https:\u002F\u002Fwww.amazon.com\u002Fdp\u002FB08PP5MSVB -i 1s -njr 3', 'body');\n\"\"\"\nval rs = context.executeQuery(sql)\nprintln(ResultSetFormatter(rs, withHeader = true))\n```\n\n---\n\n**下一步**：\n*   查看 `examples` 模块获取更多场景演示。\n*   参考 `sdks` 目录使用 Python 或 Node.js SDK 进行集成。\n*   如需大规模无监督自动提取，可关注配套项目 [PulsarRPAPro](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPAPro)。","某电商数据分析师需要每日监控全球 50 个竞品网站的数千款商品价格与库存变动，并生成结构化报表。\n\n### 没有 Browser4 时\n- **开发维护成本极高**：每个网站都需要单独编写脆弱的爬虫脚本，一旦网页结构微调，脚本即刻失效，团队大量时间耗费在修复代码上。\n- **并发性能瓶颈严重**：传统浏览器自动化方案资源占用大，单机难以支撑高并发，完成全量数据采集往往需要数小时甚至通宵运行。\n- **非结构化数据处理难**：面对促销弹窗、动态加载内容或混乱的页面布局，常规正则或 XPath 难以提取干净数据，需人工二次清洗。\n- **缺乏智能决策能力**：脚本只能机械执行预设步骤，无法像人类一样根据搜索结果动态调整策略（如自动跳过无货商品或识别虚假折扣）。\n\n### 使用 Browser4 后\n- **自然语言驱动开发**：分析师直接用英文指令描述任务（如“搜索 4K 显示器并分析性价比”），Browser4 自主规划路径并执行，无需编写底层爬虫代码。\n- **极致并发处理效率**：凭借协程安全架构，单机日均即可处理 10 万 + 复杂页面访问，原本数小时的任务缩短至几分钟完成。\n- **混合引擎精准提取**：结合 LLM 理解力与传统选择器，自动识别并过滤广告干扰，直接从混乱页面中提取出干净的 JSON 格式数据。\n- **智能代理自适应流程**：Browser Agent 具备推理能力，能自动处理登录验证、应对页面跳转异常，并在遇到缺货时智能切换备选方案。\n\nBrowser4 将繁琐的网页采集工作从“维护代码”转变为“下达指令”，让数据获取速度提升百倍的同时，赋予 AI 真正像人一样浏览和操作网页的能力。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fplatonai_Browser4_ab57e730.png","platonai","PlatonAI","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fplatonai_146b92dc.jpg","Launch an army of AI agents.",null,"China","galaxyeye8","platon.ai","https:\u002F\u002Fgithub.com\u002Fplatonai",[82,86,90,94,98,102,106,110,114,116],{"name":83,"color":84,"percentage":85},"Kotlin","#A97BFF",81.7,{"name":87,"color":88,"percentage":89},"Java","#b07219",8.2,{"name":91,"color":92,"percentage":93},"Python","#3572A5",4.6,{"name":95,"color":96,"percentage":97},"Shell","#89e051",2.3,{"name":99,"color":100,"percentage":101},"PowerShell","#012456",1.6,{"name":103,"color":104,"percentage":105},"TypeScript","#3178c6",0.8,{"name":107,"color":108,"percentage":109},"CSS","#663399",0.6,{"name":111,"color":112,"percentage":113},"Dockerfile","#384d54",0.1,{"name":115,"color":76,"percentage":113},"Rich Text Format",{"name":117,"color":118,"percentage":113},"Batchfile","#C1F12E",1031,144,"2026-04-01T13:48:41","Apache-2.0",4,"Linux, macOS, Windows","未说明",{"notes":127,"python":128,"dependencies":129},"核心运行环境需要 Java 17 或更高版本。项目主要通过 Maven 构建。部分高级功能（如自动提取 Auto Extraction）依赖外部项目 PulsarRPAPro 且需要 MongoDB 支持。提供 Docker 镜像部署方式。虽然提供 Python SDK，但核心引擎并非基于 Python。","未说明 (主要基于 Kotlin\u002FJava，提供 Python SDK)",[130,131,132],"Java 17+","MongoDB (用于 Auto Extraction 功能)","Maven",[13],[135,136,137,138,139,140],"agentic-ai","agentic-browser","ai-browser","browser-agent","browser-use-agent","browser-infra","2026-03-27T02:49:30.150509","2026-04-07T21:20:44.762318",[144,149,154,159,164,169,174],{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},13656,"打包时出现 \"Type mismatch: inferred type is String but Marker! was expected\" 类型不匹配错误怎么办？","该错误通常与依赖版本冲突有关。尝试升级 logback-classic 依赖版本可解决此问题。\n修改 pom.xml 中的依赖配置：\n\u003Cdependency>\n    \u003CgroupId>ch.qos.logback\u003C\u002FgroupId>\n    \u003CartifactId>logback-classic\u003C\u002FartifactId>\n    \u003Cversion>1.2.11\u003C\u002Fversion>\n\u003C\u002Fdependency>\n升级后重新打包即可。","https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fissues\u002F26",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},13657,"使用同一个 Browser Profile 重复启动 Chrome 时失败，提示\"正在现有的浏览器会话中打开\"怎么办？","这是因为 Chrome 检测到用户数据目录（user-data-dir）已被另一个进程占用。当多个任务尝试使用相同的 Profile 路径（如 ...\\.pulsar\\browser\\chrome\\default）启动时，会发生冲突。\n解决方案是确保每个并发任务使用独立的隐私上下文（Privacy Context）或用户数据目录，避免多个进程同时锁定同一个目录。系统会自动为不同的 context 生成独立目录，请勿手动指定相同的固定目录给多个并发实例。","https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fissues\u002F126",{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},13651,"在 Ubuntu 18.04 上构建项目失败，报错 FileSystem 错误或找不到 Maven 构件怎么办？","这通常是由于 Maven 版本过旧或源配置问题导致的。建议将 Maven 升级到最新版本（例如从 3.6.0 升级到 3.8.5）。升级后重新运行构建命令即可成功。\n错误示例：\"Could not find artifact org.sonatype.oss:oss-parent:pom:3...\"\n解决方法：\n1. 检查当前 Maven 版本：mvn --version\n2. 下载并安装最新 Maven\n3. 重试构建：bin\u002Fbuild.sh","https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fissues\u002F8",{"id":160,"question_zh":161,"answer_zh":162,"source_url":163},13652,"如何处理仅支持手机验证码或扫码登录的网站（如小红书）以获取登录态？","对于此类无法通过脚本自动完成登录的网站，必须使用 GUI 模式，在登录页面等待人工手动完成登录操作。\n设置 GUI 模式的方法：\n1. 在 Windows 下默认即为 GUI 模式。\n2. 若非 GUI 模式，可设置配置参数：browser.display.mode=GUI\n3. 或在代码中使用：BrowserSettings.withGUI()","https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fissues\u002F39",{"id":165,"question_zh":166,"answer_zh":167,"source_url":168},13653,"WebDriver 长时间空闲后自动关闭，导致无法创建新的 WebDriver 怎么办？","该问题已在 2.1.x 和 2.2.x 版本中修复。此外，不建议配置过多的 privacy context（隐私上下文），因为每一个 privacy context 都会创建一个独立的 Chrome 数据目录，会占用大量磁盘空间并可能导致资源耗尽。新版本已增加提示信息以避免用户分配过多 privacy context。","https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fissues\u002F79",{"id":170,"question_zh":171,"answer_zh":172,"source_url":173},13654,"使用 X-SQL 抓取 eBay 等网站时没有返回结果怎么办？","如果 SQL 语法看起来正确但没有结果，请检查日志文件以获取更多错误信息。如果无法自行解决，请上传日志文件以便进一步分析。同时，确保提供的 X-SQL 是文本格式，例如：\nselect\ndom_base_uri(dom) as url,\ndom_first_text(dom, '.main-container #mainContent [class~='x-item-title'] .x-item-title__mainTitle') as title,\ndom_first_text(dom, '.main-container #mainContent [class~='x-price-section'] .x-price-primary') as defaultPrice\nfrom load_and_select('URL', ':root');","https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fissues\u002F55",{"id":175,"question_zh":176,"answer_zh":177,"source_url":178},13655,"启动 REST 服务时报错，但在 IDEA 中运行示例正常，是什么原因？","这是一个已知问题，曾在 1.10.24 版本中修复。错误通常发生在 ProxyPoolManagerFactory.kt 文件中，具体原因是 `it.parameters.size == 2` 的判断逻辑有问题。如果遇到此问题，建议：\n1. 升级到修复后的版本（1.10.24 或更高）。\n2. 或者体验 PulsarRPAPro 以获得更好的 REST 服务支持。","https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fissues\u002F54",[180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255,260,265,270,275],{"id":181,"version":182,"summary_zh":183,"released_at":184},72501,"v4.5.0","# 🚀 Browser4 v4.5.0 发行说明\n\n**发布日期:** 2026-02-12 02:02:38 UTC\n**Java 版本:** 17+\n**构建者:** @galaxyeye\n\n---\n\n## 📦 发行亮点\n\n### 📊 发行统计\n| 指标 | 值 |\n|--------|-------|\n| 📁 **JAR 大小** | 326MB |\n| 📝 **提交次数** | 1054 |\n| 👥 **贡献者数量** | 5 |\n| 🏗️ **构建日期** | 2026-02-12 02:02:38 UTC |\n\n### 🔄 自上次发行以来的变更\n- 修复：在发布工作流中为工件证明添加证明权限（[5dbc070f2](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F5dbc070f287a42ed2acd72f772ec91b4889b337f)）\n- 修复：在 Action 和发布工作流中为测试工件添加可自定义的报告名称（[4164f6118](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F4164f6118056ad277d9ce94fbf90353cc6545eca)）\n- 修复：通过并发控制、改进环境设置和安全扫描增强发布工作流（[bb214eabc](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002Fbb214eabc58c66df152f6ba71fd9eec82bc15b3a)）\n- 修复：将版本号从 4.5.0-rc.1 更新为 4.5.0，覆盖所有配置和文档文件（[7c1a6e6f7](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F7c1a6e6f7173b023fccaf0be0aa2586064e2a601)）\n- 修复：简化 release-tag-add.ps1 中的标签创建逻辑（[e7f856068](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002Fe7f8560680064a3b1b8990c3737d5cffd53e72c1)）\n- 修复：更新用于文档链接检查的分支名称（[f2fac888b](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002Ff2fac888b4e7c52782067f5779cfd339cd19be31)）\n- 修复：更新 SelectFunctionTests 中 TestBase 的导入路径（[2ade6cb8c](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F2ade6cb8c7e462ffaef4315ad23f831409399abc)）\n- 合并分支 '4.5.x'（[80eabf4f1](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F80eabf4f1d97df55126d94cb464e6be40137b7bc)）\n- 将远程跟踪分支 'origin\u002F4.5.x' 合并到 4.5.x（[7a7fd1331](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F7a7fd133193970f628ebb63439078c276d080267)）\n- 文档：更新 SDK 部分，并在 README 文件中添加支持联系方式（[711bf3bdb](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F711bf3bdb26c927f7a9b74e004f50bf36c47599f)）\n- 功能（测试）：在测试脚本中添加 Node.js SDK 测试选项（[c03de75e0](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002Fc03de75e0bbf31dd11389eb0045419c70373e0de)）\n- 修复版本解析逻辑，并在发布脚本中添加验证（[4491e1e02](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F4491e1e023a1f834d22ebcdb510b0b46230ad261)）\n- 将远程跟踪分支 'origin\u002Fcopilot\u002Fadd-nodejs-sdk-browser4' 合并到 4.5.x（[93536dc86](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F93536dc86dc2e48eaa327fa22038791076030056)）\n- 添加实现概要文档（[a39da8f6e](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002Fa39da8f6e9c25ce2fc39a84a96844f8b2fa88045)）\n- 修复 driver.ts 中 ES 模块导入的一致性问题（[6e82483f0](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F6e82483f017349297aa01efca86e3f2bd74ba924)）\n- 为 Node.js SDK 添加 API 对比文档（[844eb730e](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F844eb730ebbabc","2026-02-12T02:02:55",{"id":186,"version":187,"summary_zh":188,"released_at":189},72502,"v4.4.0","# 🚀 Browser4 v4.4.0 发行说明\n\n**发布日期:** 2026-01-13 06:21:40 UTC  \n**Java 版本:** 17+  \n**构建者:** @galaxyeye  \n\n---\n\n## 📦 发行亮点\n\n### 📊 发行统计\n| 指标 | 值 |\n|--------|-------|\n| 📁 **JAR 文件大小** | 314MB |\n| 📝 **提交次数** | 2 |\n| 👥 **贡献者数量** | 1 |\n| 🏗️ **构建日期** | 2026-01-13 06:21:40 UTC |\n\n### 🔄 上次发行以来的变更\n- refactor: 为更清晰地命名，将 post-release.yml 重命名为 sync-master-to-main.yml ([f02d7096c](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002Ff02d7096cf32c8ee184f7b9734a672643fc4c751))\n- feat: 添加用于同步 main 分支与 master 分支以及安装 Google Chrome 的脚本 ([a9f1d0480](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002Fa9f1d0480f0c4d2f69cc44d8882f4363bfe4e768))\n\n---\n\n## 🚀 快速入门\n\n### 📥 下载与运行\n\n#### 🧩 下载\n\n\n```bash\ncurl -L -o Browser4.jar https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Freleases\u002Fdownload\u002Fv4.4.0\u002FBrowser4.jar\n```\n\n#### 🚀 运行\n\n```shell\necho $OPENROUTER_API_KEY # 确保已设置 LLM API 密钥。同时支持：OPENROUTER_API_KEY\u002FOPENAI_API_KEY\u002FDASHSCOPE_API_KEY\u002FVOLCENGINE_API_KEY。\njava -D\"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}\" -jar Browser4.jar\n```\n\n> 🔍 **提示:** 请确保在您的环境中已设置 `OPENROUTER_API_KEY` 或其他 LLM API 密钥，否则 AI 功能将不可用。\n\n> 🔍 **提示:** 在 Windows PowerShell 中，语法为：`$env:OPENROUTER_API_KEY`（环境变量）与 `$OPENROUTER_API_KEY`（脚本变量）。\n\n### 🐳 Docker\n\n```shell\n# 确保已设置 LLM API 密钥。同时支持：OPENROUTER_API_KEY\u002FOPENAI_API_KEY\u002FDASHSCOPE_API_KEY\u002FVOLCENGINE_API_KEY。\necho $OPENROUTER_API_KEY\ndocker run -d -p 8182:8182 -e OPENROUTER_API_KEY=${OPENROUTER_API_KEY} galaxyeye88\u002Fbrowser4:4.4.0\n```\n\nGitHub 容器注册表：\n```shell\ndocker pull ghcr.io\u002Fplatonai\u002Fbrowser4:4.4.0\n```\n\n---\n\n## 📄 完整变更日志\n[v4.4.0...v4.4.0](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcompare\u002Fv4.4.0...v4.4.0)\n\n---\n\n*由 Browser4 团队用心打造*\n\n## 变更内容\n* 优化 ComprehensiveApiIntegrationTest，使其使用真实网页，由 @Copilot 在 https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fpull\u002F174 中完成\n* 实现包含 PulsarSession、AgenticSession 和 WebDriver API 的 Python SDK，由 @Copilot 在 https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fpull\u002F175 中完成\n* 添加基于 PR 流程和自动合并到 main 分支的自动化发布工作流，由 @Copilot 在 https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fpull\u002F183 中完成\n* 对 4.4.x 分支进行 Gradle 迁移评估，由 @Copilot 在 https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fpull\u002F178 中完成\n* 修复 pulsar-parent 和 pulsar-dependencies 的 Maven Central 部署问题，由 @Copilot 在 https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fpull\u002F186 中完成\n* 从 OpenAPI 控制器中移除模拟实现分支，由 @Copilot 在 https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fpull\u002F188 中完成\n* 为 PageEventHandlers 添加全面的 AI 友好型文档，由 @Copilot 在 https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fpull\u002F184 中完成\n* 更新 openapi.md\u002Fopenapi.zh.md，使其准确反映当前实现状态，由 @Copilot 在 h","2026-01-13T06:21:54",{"id":191,"version":192,"summary_zh":193,"released_at":194},72503,"v4.3.0","# 🚀 Browser4 v4.3.0 发行说明\n\n**发布日期:** 2026-01-09 17:29:44 UTC\n**Java 版本:** 17+\n**构建者:** @galaxyeye\n\n---\n\n## 📦 发行亮点\n\n### 📊 发行统计\n| 指标 | 值 |\n|--------|-------|\n| 📁 **JAR 大小** | 323MB |\n| 📝 **提交次数** | 124 |\n| 👥 **贡献者** | 4 |\n| 🏗️ **构建日期** | 2026-01-09 17:29:44 UTC |\n\n### 🔄 上次发行以来的变更\n- 合并分支 '4.3.x' ([0d9eabd50](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F0d9eabd50ced425ba1f2117d59cbf8389aa672b1))\n- 修复 ci-tags-rm.sh 标准输入重定向错误 ([3d70378cc](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F3d70378ccb49cf666ff331e485d9f95c6659bf23))\n- 修复：更新完成检查以支持 \"done\" 标志，提升兼容性 ([af86bee1d](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002Faf86bee1ddd6c6fb4af1461d4730be1f6d50b3fa))\n- 合并拉取请求 #179 来自 platonai\u002Fcopilot\u002Foptimize-agent-command-status ([a8d783c12](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002Fa8d783c1250ed6877bbb9422488d85f8a76f3c7c))\n- 修复：增强完成检查以同时支持 isDone 和 done 标志 ([3bb03d61d](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F3bb03d61d700d602039cc97cecbbae1d02333463))\n- 为 CommandStatus 添加 agentHistory，用于实时跟踪代理状态 ([0a8057aac](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F0a8057aac2f0f801e1db1f5cdde6bfbb3d23ca97))\n- 初始方案 ([7ebd8162a](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F7ebd8162a4c5c0307281acf963984364d366a6f2))\n- 修复：更新 CommandResult，使用 summary 代替 pageSummary 以提高清晰度 ([0e6b278be](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F0e6b278bebc27040ac8b4322026538415ab37bab))\n- 合并拉取请求 #176 来自 platonai\u002Fcopilot\u002Foptimize-command-submit-logic ([5afe6521b](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F5afe6521bb7218173515e66a067f111d9e6fb9de))\n- 确保将失败状态缓存用于空白命令 ([53bec6fe5](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F53bec6fe50214e8ecdf5369b550431e2adc9efab))\n- 修复 executeAgentCommand 方法中的代码重复 ([dc84668d1](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002Fdc84668d110d5ab61d2051d1c33f77ee282fe719))\n- 为 executePlainCommandSync 和 submitPlainCommandAsync 添加测试 ([5a4eda1cc](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F5a4eda1cc6f58d16bdb43a8e0a0afc525e81f317))\n- 实现 CommandService.executePlainCommandSync 和 submitPlainCommandAsync，并提供 agent.run 作为回退方案 ([c8417646b](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002Fc8417646b13389551bade688ec8e1875d597f09d))\n- 初始方案 ([98493763b](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F98493763bf9aec6889a737c83c1d0883129e0c37))\n- 重构：更新 JsonProperty 注解，使用 @param 以提高清晰度 ([04882e408](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F04882e408c58ce7e19938a742f0a5b89baa573d0))\n- 功能：添加 ci-tags-rm.sh 脚本，用于交互式 CI 标签移除，并提供仅本地选项 ([609e850b8](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F609e850b887083c6dfd788233b7042ca5dc76604))\n- 修复：修复 RestTestClient 中的","2026-01-09T17:29:59",{"id":196,"version":197,"summary_zh":198,"released_at":199},72504,"v4.2.0","# 🚀 Browser4 v4.2.0 发行说明\n\n**发布日期:** 2026-01-01 07:06:14 UTC\n**Java 版本:** 21+\n**构建者:** @galaxyeye\n\n---\n\n## 📦 发行亮点\n\n### 📊 发行统计\n| 指标 | 值 |\n|--------|-------|\n| 📁 **JAR 大小** | 321MB |\n| 📝 **提交次数** | 5 |\n| 👥 **贡献者** | 1 |\n| 🏗️ **构建日期** | 2026-01-01 07:06:14 UTC |\n\n### 🔄 自上一版本以来的变更\n- 修复：更新 release.yml 文件，注释掉 Maven 缓存清理操作 ([f3c951651](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002Ff3c9516519c37c5181f7cf07e34e6a9c522a92b1))\n- 修复：在清理过程中保留 'ai' 目录的 Maven 缓存 ([f5eeb008c](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002Ff5eeb008c4bc504d2d2bd61ac967ff2eb2b56123))\n- 合并远程跟踪分支 'origin\u002Fmaster' ([66f81e2f4](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F66f81e2f4b6b3b9874990613d8f11ecccfc6d1a3))\n- 新增功能：在配置和模型选择中添加对 OpenRouter API 的支持 ([9004f97f2](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F9004f97f2f5866e31e2b1c0dfce4f47c9abf6069))\n- 修复：更新 CI 工作流中的 MongoDB 服务配置 ([12a8ac9c0](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F12a8ac9c02595ab82fa1bcb902bde227e246b159))\n\n---\n\n## 🚀 快速入门\n\n### 📥 下载与运行\n\n#### 🧩 下载\n\n\n```bash\ncurl -L -o Browser4.jar https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Freleases\u002Fdownload\u002Fv4.2.0\u002FBrowser4.jar\n```\n\n#### 🚀 运行\n\n```shell\necho $OPENROUTER_API_KEY # 确保已设置 LLM API 密钥。同时支持：OPENROUTER_API_KEY\u002FOPENAI_API_KEY\u002FDASHSCOPE_API_KEY\u002FVOLCENGINE_API_KEY。\njava -D\"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}\" -jar Browser4.jar\n```\n\n> 🔍 **提示:** 请确保已在环境中设置 `OPENROUTER_API_KEY` 或其他 LLM API 密钥，否则 AI 功能将不可用。\n\n> 🔍 **提示:** 在 Windows PowerShell 中，`$env:OPENROUTER_API_KEY` 表示环境变量，而 `$OPENROUTER_API_KEY` 表示脚本变量。\n### 🐳 Docker\n\n```shell\n# 确保已设置 LLM API 密钥。同时支持：OPENROUTER_API_KEY\u002FOPENAI_API_KEY\u002FDASHSCOPE_API_KEY\u002FVOLCENGINE_API_KEY。\necho $OPENROUTER_API_KEY\ndocker run -d -p 8182:8182 -e OPENROUTER_API_KEY=${OPENROUTER_API_KEY} galaxyeye88\u002Fbrowser4:4.2.0\n```\n\nGitHub 容器注册表：\n```shell\ndocker pull ghcr.io\u002Fplatonai\u002Fbrowser4:4.2.0\n```\n---\n\n## 📄 完整变更日志\n[v4.2.0-ci.9...v4.2.0](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcompare\u002Fv4.2.0-ci.9...v4.2.0)\n\n---\n\n*由 Browser4 团队用心打造*\n\n## 变更内容\n* 添加自定义代理工具注册系统，由 @Copilot 在 https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fpull\u002F163 中实现\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcompare\u002Fv4.1.0...v4.2.0","2026-01-01T07:06:27",{"id":201,"version":202,"summary_zh":203,"released_at":204},72505,"v4.1.0","# 🚀 Browser4 v4.1.0 发行说明\n\n**发布日期:** 2025-11-25 11:23:59 UTC  \n**Java 版本:** 21+  \n**构建者:** @galaxyeye\n\n---\n\n## 📦 发行亮点\n\n### 📊 发行统计\n| 指标 | 值 |\n|--------|-------|\n| 📁 **JAR 文件大小** | 321MB |\n| 📝 **提交次数** | 5 |\n| 👥 **贡献者** | 1 |\n| 🏗️ **构建日期** | 2025-11-25 11:23:59 UTC |\n\n### 🔄 自上一版本以来的变更\n- 合并分支 '4.1.x' ([990524763](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F990524763f5276526254b89ceed0e845b7ddf5ab))\n- 4.1.0 ([2eca934f3](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F2eca934f3fac54524ae36d3c44b198b8ef17a2d5))\n- 文档：更新 README，加入机器学习代理并明确提取方法 ([bf9cec400](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002Fbf9cec4006e3dc0815420fec3c50257f39f40689))\n- 文档：更新 README，加入机器学习代理并明确提取方法 ([79647db2a](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F79647db2a686d895645d2b4370e283aa0d10f5a6))\n- 4.1.0-rc.4 ([17134c031](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcommit\u002F17134c03199b9eb127f369858ba3852fe7c79718))\n\n---\n\n## 🚀 快速入门\n\n### 📥 下载与运行\n\n#### 🧩 下载\n\n\n```bash\ncurl -L -o Browser4.jar https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Freleases\u002Fdownload\u002Fv4.1.0\u002FBrowser4.jar\n```\n\n#### 🚀 运行\n\n```shell\necho $DEEPSEEK_API_KEY # 确保已设置 LLM API 密钥。也支持 VOLCENGINE_API_KEY\u002FOPENAI_API_KEY。\njava -D\"DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY}\" -jar Browser4.jar\n```\n\n> 🔍 **提示:** 请确保在您的环境中已设置 `DEEPSEEK_API_KEY` 或其他 LLM API 密钥，否则 AI 功能将不可用。\n\n> 🔍 **提示:** Windows PowerShell 语法：`$env:DEEPSEEK_API_KEY`（环境变量）与 `$DEEPSEEK_API_KEY`（脚本变量）的区别。\n### 🐳 Docker\n\n```shell\n# 确保已设置 LLM API 密钥。也支持 VOLCENGINE_API_KEY\u002FOPENAI_API_KEY。\necho $DEEPSEEK_API_KEY\ndocker run -d -p 8182:8182 -e DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} galaxyeye88\u002Fbrowser4:4.1.0\n```\n\nGitHub 容器注册表：\n```shell\ndocker pull ghcr.io\u002Fplatonai\u002Fbrowser4:4.1.0\n```\n---\n\n## 📄 完整变更日志\n[v4.1.0-rc.3...v4.1.0](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcompare\u002Fv4.1.0-rc.3...v4.1.0)\n\n---\n\n*由 Browser4 团队用心打造*\n\n## 变更内容\n* 在 ToolCallExecutorMockSiteTest 中为所有工具添加了全面测试，由 @Copilot 在 https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fpull\u002F139 中完成。\n\n## 新贡献者\n* @Copilot 在 https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fpull\u002F139 中做出了首次贡献。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fplatonai\u002FBrowser4\u002Fcompare\u002Fv4.0.0...v4.1.0","2025-11-25T11:24:01",{"id":206,"version":207,"summary_zh":208,"released_at":209},72506,"v4.0.1","# 🚀 Browser4 v4.0.1 发行说明\n\n**发布日期:** 2025-10-13 04:09:22 UTC  \n**Java 版本:** 17+  \n**构建者:** @galaxyeye\n\n---\n\n## 📦 发行亮点\n\n### 📊 发行统计\n| 指标 | 值 |\n|--------|-------|\n| 📁 **JAR 大小** | 325MB |\n| 📝 **提交次数** | 59 |\n| 👥 **贡献者** | 1 |\n| 🏗️ **构建日期** | 2025-10-13 04:09:22 UTC |\n\n### 🔄 上次发行以来的变更\n- 重构: 更新 release.yml 中的生产 JAR 模块路径，以保持一致性 ([bf7ab28d3](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fbf7ab28d32bca690f4dea0d09d4c031b863db9cd))\n- 重构: 提高 update-versions.sh 脚本中版本替换的搜索深度 ([46831e481](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F46831e481631645d6c4d18877221db6779b55b29))\n- 合并分支 '4.0.x' ([d450bddb2](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fd450bddb2a1417f28084402c998368f8745184f7))\n- 重构: 更新 pom.xml 中的父级工件 ID，以保持一致性 ([d260bb5cf](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fd260bb5cf4179489a05082368d853278df9807d8))\n- 重构: 移除 qodana_code_quality.yml 文件 ([495e1307d](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F495e1307d8af143b47fb7b950e1b421ac4bc2f6f))\n- 重构: 从 pulsar 依赖中移除不必要的运行时范围 ([edeca07ed](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fedeca07ed351e1fa7e8f121537f4476711c91580))\n- 重构: 为父 POM 条目添加 relativePath，以保持一致性 ([b2b275e44](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fb2b275e4428696a685a8cb8761623aa247015817))\n- 合并分支 '4.0.x' ([7a04f7b87](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F7a04f7b877247d757ab5aa5cd542ba226da1546b))\n- 重构: 通过超时处理和报告功能增强 curl 命令测试 ([ea554d518](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fea554d5186da3383523867b919efa0aa3176bbb2))\n- 重构: 使用 Docker 镜像构建、健康检查和端到端测试增强 CI 工作流 ([8b3b0d5e9](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F8b3b0d5e901af17f37e2361c1f4fc620815e59b6))\n- 重构: 添加 Qodana 配置文件，用于代码质量分析和 CI 集成 ([db1b622db](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fdb1b622db7848beccb1c12ca431a97673cdebcba))\n- 重构: 更新 CI 工作流，以增强端到端测试并改进测试报告 ([3d82aecd5](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F3d82aecd54355921feb8b4f00cc5ac4e278dcf23))\n- 重构: 使用更完善的日志记录和成功率验证功能优化端到端测试脚本 ([143a9b542](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F143a9b542557e8b4bffcae8f40c0fc64593bbbaf))\n- 重构: 更新 IPAddressSpace 枚举，以支持协议升级并保持向后兼容性 ([5588800ec](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F5588800ec8c69426b27d05d07a3e36fa8e06ffde))\n- 重构: 改进测试配置，并将集成测试更名为端到端测试 ([864afe221](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F864afe22134813640a9c2bd6c249fb5f446c87e4))\n- 重构: 改善日志记录和错误处理","2025-10-13T04:09:23",{"id":211,"version":212,"summary_zh":213,"released_at":214},72507,"v4.0.0","# 🚀 Browser4 v4.0.0 发行说明\n\n**发布日期:** 2025-09-12 07:58:55 UTC  \n**Java 版本:** 17+  \n**构建者:** @galaxyeye\n\n---\n\n## 📦 发行亮点\n\n### 📊 发行统计\n| 指标 | 值 |\n|--------|-------|\n| 📁 **JAR 大小** | 325MB |\n| 📝 **提交次数** | 10 |\n| 👥 **贡献者** | 2 |\n| 🏗️ **构建日期** | 2025-09-12 07:58:55 UTC |\n\n### 🔄 自上一版本以来的变更\n- 重构：在 CI 和部署配置中将网络名称从 pulsarrpa_backend 更新为 browser4_backend ([0aa5e817f](https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fbrowser4\u002Fcommit\u002F0aa5e817fe3edc709ee07b1d0cfad3df3c057a52))\n- 重构：在 CI 和部署配置中将网络名称从 pulsarrpa_backend 更新为 browser4_backend ([037283dd1](https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fbrowser4\u002Fcommit\u002F037283dd1305ae74fa752dc965987e6cb65f110a))\n- 重构：在 Docker 和 CI 配置中将 PulsarRPA 重命名为 Browser4 ([852022ffa](https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fbrowser4\u002Fcommit\u002F852022ffa22a6250d806357677076320d8dfe49f))\n- 重构：在文档和代码中将 PulsarRPA 的引用更新为 Browser4 ([c6f943669](https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fbrowser4\u002Fcommit\u002Fc6f943669cf5110d8d2008cd345edd6c6c822589))\n- 重构：在文档和代码中将 PulsarRPA 的引用更新为 Browser4 ([777f426b7](https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fbrowser4\u002Fcommit\u002F777f426b7df86d227ebc9ce360f9b5c2f8fa750d))\n- 重构：将 PulsarRPA 重命名为 Browser4，并更新配置文件中的相关路径 ([97ce56599](https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fbrowser4\u002Fcommit\u002F97ce56599599804d35cab5cdc533be4b842d8285))\n- 4.0.0 ([809984dae](https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fbrowser4\u002Fcommit\u002F809984dae9d3f7339b0a5f44848f67915203dedd))\n- 重构：在整个文档中将 PulsarRPA 重命名为 Browser4 ([e5fc1589a](https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fbrowser4\u002Fcommit\u002Fe5fc1589a7658a45cc61b7ffb52c5fbc99485eb6))\n- 将应用名称从 PulsarRPA 更新为 Browser4 ([129e1f15d](https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fbrowser4\u002Fcommit\u002F129e1f15dc45158f4aeb37125718f89a2a555071))\n- 在 README 中将 PulsarRPA 重命名为 Browser4 ([089f3bf78](https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fbrowser4\u002Fcommit\u002F089f3bf7873c2b8c297cc04dfaa9005b23b92810))\n\n---\n\n## 🚀 快速入门\n\n### 📥 下载与运行\n\n#### 🧩 下载\n\n\n```bash\ncurl -L -o Browser4.jar https:\u002F\u002Fgithub.com\u002Fplatonai\u002Fbrowser4\u002Freleases\u002Fdownload\u002Fv4.0.0\u002FBrowser4.jar\n```\n\n#### 🚀 运行\n\n```shell\necho $DEEPSEEK_API_KEY # 确保已设置 LLM API 密钥。也支持 VOLCENGINE_API_KEY\u002FOPENAI_API_KEY。\njava -D\"DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY}\" -jar Browser4.jar\n```\n\n> 🔍 **提示:** 请确保已在环境中设置 或其他 LLM API 密钥，否则 AI 功能将不可用。\n\n> 🔍 **提示:** 在 Windows 系统上， 和 都可以使用，但它们是不同的环境变量。\n### 🐳 Docker\n\n```shell\n# 确保已设置 LLM API 密钥。也支持 VOLCENGINE_API_KEY\u002FOPENAI_API_KEY。\necho $DEEPSEEK_API_KEY\ndocker run -d -p 8182:8182 -e DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} galaxyeye88\u002Fbrowser4:4.0.0\n```\n\nGitHub 容器注册表：\n```shell\ndocker pull ghcr.io\u002Fplatonai\u002Fbrowser4:4.0.0\n```\n---\n\n## 📄 完整变更日志\n[v3.0.15...","2025-09-12T07:58:56",{"id":216,"version":217,"summary_zh":218,"released_at":219},72508,"v3.0.15","# 🚀 PulsarRPA v3.0.15 发行说明\n\n**发布日期:** 2025-06-28 17:00:32 UTC  \n**Java 版本:** 17+  \n**构建者:** @galaxyeye\n\n---\n\n## 📦 发行亮点\n\n### 📊 发行统计\n| 指标 | 值 |\n|--------|-------|\n| 📁 **JAR 大小** | 325MB |\n| 📝 **提交次数** | 12 |\n| 👥 **贡献者** | 1 |\n| 🏗️ **构建日期** | 2025-06-28 17:00:32 UTC |\n\n### 🔄 自上一版本以来的变更\n- 功能：更新 release.yml，以包含用于部署的 JDK 设置（[1c53c15ff](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F1c53c15ff6dafa80489c5e91eae8795993bcc936)）\n- 功能：命令 API 中的 X-SQL（[5cccc3727](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F5cccc3727632641fa8c1163051956c5452c8a610)）\n- 功能：更新版本替换逻辑，使其在 URL 中使用当前版本（[83f0f4def](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F83f0f4defc0a7ca0aafb542584a46c0f48d3793b)）\n- 功能：更新版本替换逻辑，使其在 URL 中使用当前版本（[fc0e0b2af](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Ffc0e0b2af37a4a1d8fe264832d5de4ecd14485f0)）\n- 功能：更新版本替换逻辑，使其在 URL 中使用当前版本（[14576467a](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F14576467ac625d5b1efc5f29c450a0b65138d035)）\n- 功能：为 URL 版本替换逻辑添加单元测试（[bde1ef698](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fbde1ef69852b79bbeab256fe2550e5e84eab800b)）\n- 功能：为 URL 版本替换逻辑添加单元测试（[d2b452640](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fd2b4526406ff33866496f7ece33f68208eba6666)）\n- 功能：更新中文 README，以提高语言的清晰度和一致性（[c7b5e2268](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fc7b5e22686e81ab08c67191f05c47dd5316758d2)）\n- 功能：更新版本替换逻辑，并改进文档中的下载链接（[430b401d4](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F430b401d43f867a3ddcb371862f71dc001a7ffa4)）\n- 3.0.15（[82b9e97a4](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F82b9e97a411732cafa6e9b25bc3151e09630a7aa)）\n- 功能：更新 release.yml，以支持 Maven 部署、凭据和 GPG 签名（[fd9ef2e15](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Ffd9ef2e15f9efc591a2c7b190f8df1eeda370f88)）\n- 功能：添加 CURL 命令定义及 API 交互测试（[a852da9e4](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fa852da9e450174a19e1b67e7bc000833013fb45f)）\n\n---\n\n## 🚀 快速入门\n\n### 📥 下载与运行\n\n#### 🧩 下载\n\n\n```bash\ncurl -L -o PulsarRPA.jar https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Freleases\u002Fdownload\u002Fv3.0.15\u002FPulsarRPA.jar\n```\n\n#### 🚀 运行\n\n```shell\necho $DEEPSEEK_API_KEY # 确保已设置 LLM API 密钥。也支持 VOLCENGINE_API_KEY 和 OPENAI_API_KEY。\njava -D\"DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY}\" -jar PulsarRPA.jar\n```\n\n> 🔍 **提示:** 请确保已设置 或其他 LLM API 密钥，否则 AI 功能将不可用。\n\n> 🔍 **提示:** 在 Windows 上， 和 都可以使用，但它们是不同的环境变量。\n### 🐳 Docker\n\n```shell\n# 确保已设置 LLM API 密钥。也支持 VOLCENGINE_API_KEY 和 OPENAI_API_KEY。\nech","2025-06-28T17:00:33",{"id":221,"version":222,"summary_zh":223,"released_at":224},72509,"v3.0.14","# 🚀 PulsarRPA v3.0.14 发行说明\n\n**发布日期:** 2025-06-27 04:32:52 UTC  \n**Java 版本:** 17+  \n**构建者:** @galaxyeye\n\n---\n\n## 📦 发行亮点\n\n### 📊 发行统计\n| 指标 | 值 |\n|--------|-------|\n| 📁 **JAR 大小** | 325MB |\n| 📝 **提交次数** | 9 |\n| 👥 **贡献者** | 2 |\n| 🏗️ **构建日期** | 2025-06-27 04:32:52 UTC |\n\n### 🔄 自上一版本以来的变更\n- 3.0.14 ([7512b39b0](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F7512b39b06e6b146070c9d639b130a329c1c50a4))\n- 功能：增强 SimpleKtParser，支持挂起函数声明 ([bb07c2d82](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fbb07c2d82513d07cfab643f9063448a472ef0015))\n- 功能：增强 SimpleKtParser，支持挂起函数声明 ([93ac80bec](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F93ac80bec061172b426026d1bd2df2518bc36a20))\n- 功能：实现 SimpleKtParser，用于解析 Kotlin 接口 ([e57fbca6d](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fe57fbca6d1864dd4ab3a9250c7d0920041a4b1d7))\n- 重构：优化 create-release-notes.sh 脚本，以改进发行文档生成 ([61ba63d1c](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F61ba63d1ca57aeccaea21d1d1013d8c673350d80))\n- 重构：更新 release.yml 文件，简化权限配置 ([59e04ad9e](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F59e04ad9e8c916313a865d0a43e4ba185c0de8dd))\n- 重构：更新 release.yml 文件，简化权限配置 ([a2b9ea843](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fa2b9ea843a2cdec343619a4b244d7225a2b6961f))\n- 文档：将版本引用更新至 v3.0.13 ([8dad6c34e](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F8dad6c34e4b270feb6c335ce1fa2ebf4187dce1e))\n- 重构：更新 release.yml 文件，简化权限配置 ([a23d9877d](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fa23d9877d1166c994e6e1c12a935f4a390a55059))\n\n---\n\n## 🚀 快速入门\n\n### 📥 下载与运行\n\n#### 🧩 下载\n\n\n```bash\ncurl -L -o PulsarRPA.jar https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Freleases\u002Fdownload\u002Fv3.0.14\u002FPulsarRPA.jar\n```\n\n#### 🚀 运行\n\n```shell\necho  $DEEPSEEK_API_KEY # 确保已设置 LLM API 密钥。也支持 VOLCENGINE_API_KEY 和 OPENAI_API_KEY。\njava -D\"DEEPSEEK_API_KEY=$DEEPSEEK_API_KEY\" -jar PulsarRPA.jar\n```\n\n> 🔍 **提示:** 请确保在环境变量中设置了 或其他 LLM API 密钥，否则 AI 功能将不可用。\n\n> 🔍 **提示:** 在 Windows 系统上， 和 都可以使用，但它们是不同的环境变量。\n### 🐳 Docker\n\n```shell\n# 确保已设置 LLM API 密钥。也支持 VOLCENGINE_API_KEY 和 OPENAI_API_KEY。\necho $DEEPSEEK_API_KEY\ndocker run -d -p 8182:8182 -e DEEPSEEK_API_KEY=$DEEPSEEK_API_KEY galaxyeye88\u002Fpulsar-rpa:3.0.14\n```\n\nGitHub 容器注册表：\n```shell\ndocker pull ghcr.io\u002Fplatonai\u002Fpulsar-rpa:3.0.14\n```\n---\n\n## 📄 完整变更日志\n[v3.0.13...v3.0.14](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcompare\u002Fv3.0.13...v3.0.14)\n\n---\n\n*由 PulsarRPA 团队用心打造*\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcompare\u002Fv3.0.13...v3.0.14","2025-06-27T04:32:53",{"id":226,"version":227,"summary_zh":228,"released_at":229},72510,"v3.0.13","# 🚀 PulsarRPA v3.0.13 发行说明\n\n**发布日期:** 2025-06-24 17:04:30 UTC\n**Java 版本:** 17+\n**构建者:** @PlatonAI\n\n---\n\n## 📦 发行亮点\n\n### 📊 发行统计\n| 指标 | 值 |\n|--------|-------|\n| 📁 **JAR 文件大小** | 325MB |\n| 📝 **提交次数** | 3 |\n| 👥 **贡献者** | 2 |\n| 🏗️ **构建日期** | 2025-06-24 17:04:30 UTC |\n\n### 🔄 自上一版本以来的变更\n- refactor: 更新 release.yml 以简化权限配置 ([a2b9ea843](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fa2b9ea843a2cdec343619a4b244d7225a2b6961f))\n- docs: 更新版本引用至 v3.0.13 ([8dad6c34e](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F8dad6c34e4b270feb6c335ce1fa2ebf4187dce1e))\n- refactor: 更新 release.yml 以简化权限配置 ([a23d9877d](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Fa23d9877d1166c994e6e1c12a935f4a390a55059))\n\n---\n\n## 🚀 快速入门\n\n### 📥 下载与运行\n\n#### 🧩 下载\n\n```bash\ncurl -L -o PulsarRPA.jar https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Freleases\u002Fdownload\u002Fv3.0.13\u002FPulsarRPA.jar\n```\n\n#### 🚀 运行\n\n```shell\necho $DEEPSEEK_API_KEY # 确保已设置 LLM API 密钥。也支持 VOLCENGINE_API_KEY 和 OPENAI_API_KEY。\njava -D\"DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY}\" -jar PulsarRPA.jar\n```\n\n> 🔍 **提示:** 请确保在您的环境中已设置 `DEEPSEEK_API_KEY` 或其他 LLM API 密钥，否则 AI 功能将不可用。\n\n> 🔍 **提示:** 在 Windows 系统中，`$DEEPSEEK_API_KEY` 和 `$env:DEEPSEEK_API_KEY` 都可以使用，但它们是不同的环境变量。\n\n### 🐳 Docker\n\n```shell\n# 确保已设置 LLM API 密钥。也支持 VOLCENGINE_API_KEY 和 OPENAI_API_KEY。\necho $DEEPSEEK_API_KEY\ndocker run -d -p 8182:8182 -e DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} galaxyeye88\u002Fpulsar-rpa:3.0.13\n```\n\nGitHub 容器注册表：\n```shell\ndocker pull ghcr.io\u002Fplatonai\u002Fpulsar-rpa:3.0.13\n```\n\n---\n\n## 📄 完整变更日志\n[v3.0.13...v3.0.13](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcompare\u002Fv3.0.13...v3.0.13)\n\n---\n\n*由 PulsarRPA 团队用心打造*\n","2025-06-24T15:26:36",{"id":231,"version":232,"summary_zh":233,"released_at":234},72511,"v3.0.12","# 🚀 PulsarRPA v3.0.12 Release Notes\n\n**Release Date:** 2025-06-19 09:20:49 UTC  \n**Java Version:** 17+\n**Built by:** @galaxyeye\n\n---\n\n## 📦 Release Highlights\n\n### 📊 Release Statistics\n| Metric | Value |\n|--------|-------|\n| 📁 **JAR Size** | 325MB |\n| 📝 **Commits** | 8 |\n| 👥 **Contributors** | 1 |\n| 🏗️ **Build Date** | 2025-06-19 09:20:49 UTC |\n\n### 🔄 Changes Since Last Release\n- Merge branch '3.0.x' ([6a56390fe](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F6a56390feb705c9467803faf8c49607211df359a))\n- improve: add shebang for PowerShell execution in next-minor.ps1 ([375dc60c4](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F375dc60c41ca479d39758d0c082f51374f89619c))\n- docs: update download links in README files to use full GitHub URLs ([9e12464ef](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F9e12464ef28e58c47b844afe6cd40e2793a40ec7))\n- 3.0.12 ([32fcf0101](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F32fcf0101254651204ee16cd2691a9d89266947d))\n- Merge branch '3.0.x' ([eded4b29b](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002Feded4b29b348ca131893d7de15cc986951a02062))\n- docs: improve README instructions and enhance Chinese documentation for clarity and accuracy ([03df7618b](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F03df7618b84acde9229155e076d826bb0dcc9adc))\n- fix: update README to clarify requirement for LLM API key ([08d3cfb79](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F08d3cfb79ed3779bd19ee52556a390db28e6238d))\n- docs: add PowerShell examples for setting DEEPSEEK_API_KEY in README files ([5197f2b74](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcommit\u002F5197f2b748b4f5a054dd5e26b489ec0924c812c5))\n\n---\n\n## 🚀 Quick Start\n\n### 📥 Download & Run\n```bash\n# Download\nwget https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Freleases\u002Fdownload\u002Fv3.0.12\u002FPulsarRPA.jar\n\n# Run with AI features\njava -DDEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} -jar PulsarRPA.jar\n\n# Run basic features\njava -jar PulsarRPA.jar\n```\n\n### 🐳 Docker\n```bash\n# Docker Hub\ndocker pull galaxyeye88\u002Fpulsar-rpa:3.0.12\ndocker run -p 8182:8182 -e DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} galaxyeye88\u002Fpulsar-rpa:3.0.12\n\n# GitHub Container Registry\ndocker pull ghcr.io\u002Fplatonai\u002Fpulsar-rpa:3.0.12\n```\n\n---\n\n## 📄 Full Changelog\n[v3.0.11-ci.7...v3.0.12](https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcompare\u002Fv3.0.11-ci.7...v3.0.12)\n\n---\n\n*Built with ❤️ by the PulsarRPA team*\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcompare\u002Fv3.0.11...v3.0.12","2025-06-19T09:20:50",{"id":236,"version":237,"summary_zh":238,"released_at":239},72512,"v3.0.11","**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcompare\u002Fv3.0.10...v3.0.11","2025-06-17T15:52:28",{"id":241,"version":242,"summary_zh":243,"released_at":244},72513,"v3.0.10","## Release 3.0.10\r\n\r\n### 📦 Artifacts\r\n- **JAR File**: `PulsarRPA.jar`\r\n- **Size**: 325MB\r\n- **Java Version**: 17+\r\n\r\n### 🔄 Changes\r\n- chore: enhance JAR build process to skip if any existing JAR is found (abb98f05e)\r\n- chore: update release workflow to skip JAR build if it already exists (d3630e1b8)\r\n- chore: refactor curl test script for improved logging and success rate evaluation (06528a8d4)\r\n- chore: refine JAR search patterns and improve build script error handling (0b19b6f0b)\r\n- chore: refine JAR search patterns and improve build script error handling (dffc1b243)\r\n- chore: refine JAR search patterns and improve build script error handling (8c63cdbd6)\r\n- chore: enhance release tagging script with version validation and user confirmation (382a69c3f)\r\n- chore: enhance release tagging script with version validation and user confirmation (31a26c786)\r\n- chore: update release workflow to improve production module handling and refine JAR search patterns (72b00007c)\r\n- chore: enhance release workflow by refining version handling and improving JAR size reporting (a2f9dfbf2)\r\n- chore: update release configuration to include production module and adjust test skipping behavior (72921590e)\r\n- chore: update default values and improve test exclusion patterns in action configuration (5e0964496)\r\n\r\n### 🚀 Usage\r\n```bash\r\njava -jar PulsarRPA.jar\r\n```\r\n\r\nBuilt on 2025-06-13 09:16:32 UTC\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcompare\u002Fv3.0.9...v3.0.10","2025-06-13T09:16:33",{"id":246,"version":247,"summary_zh":248,"released_at":249},72514,"v3.0.9","**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcompare\u002Fv3.0.8...v3.0.9","2025-06-09T20:11:25",{"id":251,"version":252,"summary_zh":253,"released_at":254},72515,"v3.0.8","**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fplatonai\u002FPulsarRPA\u002Fcompare\u002Fv3.0.7...v3.0.8","2025-06-03T16:20:04",{"id":256,"version":257,"summary_zh":258,"released_at":259},72516,"v3.0.7","# New Features\r\n\r\n## Unified REST API: `commands`\r\n\r\n- Introduces a unified `commands` API for system orchestration: perform browser operations, extract web data, analyze websites, and more.\r\n- Supports multiple client interaction styles: synchronous\u002Fasynchronous, plain commands, and JSON-based commands.\r\n- Sample clients provided in Python, Kotlin, Java, and JavaScript.\r\n\r\n## Server-Sent Events (SSE) Support\r\n\r\n- Adds SSE support to REST resources such as `commands` and `scrape`, enabling real-time updates.\r\n- SSE client examples available for Java, Python, and JavaScript.\r\n\r\n## Improved and Simplified Configuration\r\n\r\n- Spring-style configuration is now the primary, recommended method.\r\n\r\n# 新特性\r\n\r\n## 统一 REST API：`commands`\r\n\r\n- 引入统一的 `commands` API，实现系统编排：可执行浏览器操作、提取网页数据、分析网站等。\r\n- 支持多种客户端交互方式：同步\u002F异步、普通命令和基于 JSON 的命令。\r\n- 提供 Python、Kotlin、Java 和 JavaScript 的客户端示例。\r\n\r\n## 服务端推送事件（SSE）支持\r\n\r\n- 为 REST 资源如 `commands`、`scrape` 等新增 SSE 支持，实现实时数据推送。\r\n- 提供 Java、Python 和 JavaScript 的 SSE 客户端示例。\r\n\r\n## 更好且更简洁的配置方式\r\n\r\n- 优先推荐使用 Spring 风格的配置方式。\r\n","2025-05-20T16:54:14",{"id":261,"version":262,"summary_zh":263,"released_at":264},72517,"v3.0.6","- Correct BROWSER_CONTEXT_MODE property behavior\r\n- Add asynchronous scraping scripts\r\n- Java example for HighPerformanceCrawler\r\n- CI support","2025-05-14T16:56:10",{"id":266,"version":267,"summary_zh":268,"released_at":269},72518,"v3.0.5","# Feature\r\n\r\nTo simplify configuration for beginners, we added a new load option `-interactLevel`:\r\n\r\n- fastest\r\n- faster\r\n- fast\r\n- balanced\r\n- good-data\r\n- better-data\r\n- best-data\r\n\r\nEach level can internally map to a predefined set of interaction and blocking strategies.\r\n\r\n# Fix\r\n\r\n- correct default display mode in docker\r\n\r\n# Documents\r\n\r\n- improve documents","2025-05-10T11:50:56",{"id":271,"version":272,"summary_zh":273,"released_at":274},72519,"v3.0.4","## 🔧 Proxies\r\n\r\nSet the environment variable PROXY_ROTATION_URL to the URL provided by your proxy service:\r\n\r\n```shell\r\nexport PROXY_ROTATION_URL=https:\u002F\u002Fyour-proxy-provider.com\u002Frotation-endpoint\r\n```\r\n\r\nEach time the rotation URL is accessed, it should return a response containing one or more fresh proxy IPs.\r\n","2025-05-07T18:01:44",{"id":276,"version":277,"summary_zh":278,"released_at":279},72520,"v3.0.3","Super simple API to perform actions and extract data using natural language instructions.\r\n\r\n```shell\r\ncurl -X POST \"http:\u002F\u002Flocalhost:8182\u002Fapi\u002Fai\u002Fcommand\" \\\r\n  -H \"Content-Type: text\u002Fplain\" \\\r\n  -d '\r\n    Visit https:\u002F\u002Fwww.amazon.com\u002Fdp\u002FB0C1H26C46\r\n    Summarize the product.\r\n    Extract: product name, price, ratings.\r\n    Find all links containing \u002Fdp\u002F.\r\n    After page load: click #title, then scroll to the middle.\r\n  '\r\n```","2025-05-02T17:28:23"]