browserpilot
BrowserPilot 是一个通过自然语言控制浏览器自动化的工具,允许用户用接近日常语言的指令操作网页。它解决了传统自动化脚本需要编写复杂代码、且容易因网页结构变化而失效的问题。用户无需掌握编程细节,只需用英文描述操作步骤(如“搜索关键词后点击第一个链接”),工具即可自动执行。
这一工具更适合开发者和研究人员使用,尤其是需要频繁进行网页测试、数据抓取或自动化流程构建的场景。虽然基础使用需安装 Python 环境和 Chromedriver,但其核心优势在于降低了自动化门槛——用户可专注于逻辑描述而非代码实现。例如,通过“点击可见文本框”“等待 10 秒”等指令,即可完成从搜索到页面跳转的完整流程。
技术层面,BrowserPilot 结合了 GPT-3 的自然语言理解和 Selenium 的浏览器控制能力,能将指令转化为可执行代码。其独特之处在于支持函数封装和 YAML 配置文件,既可复用常用操作(如“登录流程”),又能通过分离指令与代码降低维护成本。对于希望快速验证自动化方案或探索 AI 辅助开发的用户,这是一个兼具灵活性与扩展性的实践工具。
使用场景
某跨境电商运营团队每周需监控50+海外电商平台上同类产品的价格波动和促销信息,以便调整自身定价策略。团队成员需手动访问各平台搜索商品、记录价格、截图促销页面,耗时约8小时/周且易遗漏关键数据。
没有 browserpilot 时
- 手动操作效率低下:需逐个平台打开网页,重复搜索相同商品,平均每个平台耗时12分钟
- 代码维护成本高:现有Python+BeautifulSoup脚本因网页结构频繁变动,每周需2次代码调试
- 非技术人员无法参与:市场分析师需依赖开发人员编写爬虫,需求响应周期长达3天
- 任务逻辑复杂难实现:涉及多步骤交互(如登录账户、切换货币单位、展开详情页)时,需编写复杂代码
- 无法快速调整策略:临时增加监控品类时,需重新开发整套自动化流程
使用 browserpilot 后
- 自然语言指令秒级执行:通过"访问Amazon.com → 搜索'wireless headphones' → 提取所有价格和折扣标签"等指令,单平台监控时间缩短至90秒
- 抗网页结构变化:当Target网站改版搜索框位置时,原有指令无需修改仍能正确定位元素
- 业务人员自主操作:市场分析师可直接编写"登录Walmart商户后台 → 导出上周销售报表 → 截图库存预警区域"等指令
- 复杂流程可视化编排:通过函数封装实现"货币切换→商品筛选→价格比较"的标准化操作流
- 策略调整即时生效:新增监控品类时,仅需在指令库中添加对应自然语言描述即可
核心价值:将专业级浏览器自动化能力转化为自然语言交互,使业务人员能像写操作手册一样完成数据采集任务,使技术团队从重复性脚本开发中解放出来专注核心系统建设。
运行环境要求
- 未说明
未说明
未说明

快速开始
🛫 BrowserPilot
一个通过自然语言控制的智能网页浏览代理。

语言是人类给予和接收指令最自然的界面。与其编写易受变化影响的定制自动化或抓取代码,创建和添加代理应该像编写普通英文一样简单。
🏗️ 安装
pip install browserpilot- 从 这里 下载最新稳定版的 Chromedriver(Chrome浏览器的驱动程序),将其放在与本文件相同的文件夹中。解压后,在Finder中右键点击解压后的chromedriver并点击"Open"。这将移除默认的限制性权限,允许Python访问它。
- 使用你喜欢的方式创建环境变量,将 OPENAI_API_KEY 设置为你的 API 密钥(API密钥)。
🦭 使用
🗺️ API
形式非常简单(见下文)。
from browserpilot.agents.gpt_selenium_agent import GPTSeleniumAgent
instructions = """Go to Google.com
Find all textareas.
Find the first visible textarea.
Click on the first visible textarea.
Type in "buffalo buffalo buffalo buffalo buffalo" and press enter.
Wait 2 seconds.
Find all anchor elements that link to Wikipedia.
Click on the first one.
Wait for 10 seconds."""
agent = GPTSeleniumAgent(instructions, "/path/to/chromedriver")
agent.run()
更具挑战性(但也更有趣)的部分是编写自然语言提示。
📑 编写提示
如果你熟悉 Selenium 的工作原理和编程基础会更有帮助。这是因为该项目使用 GPT-3 将自然语言转换为代码,因此你需要尽可能精确。这种方式更像是用 Copilot 编写代码,而不是和朋友交谈;例如,建议使用 input 或 textareas(而非"text box" "search box")或"button which says 'Log in'"(而非"the login button")。有时,它可能无法识别某些重要词语,因此最好将它们拆分成单独的行。例如,不要写"find all the visible textareas",而是分两步:"find all the textareas" 然后 "find the first visible textarea"。
你可以查看 prompts/examples 中的一些示例来入门。
通过在 BEGIN_FUNCTION func_name 和 END_FUNCTION 中包裹指令来创建"函数",然后通过以 RUN_FUNCTION 或 INJECT_FUNCTION 开头的行来调用它们。以下是示例:
BEGIN_FUNCTION search_buffalo
Go to Google.com
Find all textareas.
Find the first visible textarea.
Click on the first visible textarea.
Type in "buffalo buffalo buffalo buffalo buffalo" and press enter.
Wait 2 seconds.
Get all anchors on the page that contain the word "buffalo".
Click on the first link.
END_FUNCTION
RUN_FUNCTION search_buffalo
Wait for 10 seconds.
你也可以选择创建一个包含指令列表的 yaml 或 json 文件。通常需要包含一个 instructions 字段,以及一个可选的 compiled 字段,用于存储处理后的代码。
你可以将 instruction_output_file 传递给 GPTSeleniumAgent 的构造函数,这将输出一个包含 GPT-3 编译指令的 yaml 文件,避免支付 API 费用。
✋🏼 贡献
我设想了两种贡献方式。
- 添加到提示库:阅读上方的"编写提示"部分,直接提交 pull request 添加内容到
prompts/!在某个时间点,我会制定文件夹命名规范和提交代码的评估协议(出于安全、准确性等方面的考虑)。这对不太熟悉编程的人尤其有吸引力。 - 贡献代码:我很乐意接受建议!扩展代理功能或创建全新代理是主要的贡献方式。最佳方法是熟悉上方的"架构和提示模式",然后(a)扩展
InstructionCompiler中基础提示的功能列表,以及(b)在GPTSeleniumAgent中编写对应的方法。
⛩️ 架构和提示模式
这个仓库受到 Yihui He、Adept.ai 和 Nat Friedman 的工作的启发。特别是,基本的抽象和提示模式是基于 Yihui 的黑客马拉松代码构建的。预处理 HTML 并使用 GPT-3 智能选择元素的想法来自 Nat。
- 使用的提示可以找到在 instruction compiler。基础提示用普通英语描述了浏览代理可以执行的一系列操作,一些通用的编码规范,以及对其行为的一些约束。这些操作与
GPTSeleniumAgent中的方法一一对应。到目前为止,这些操作包括:env.driver,Selenium 的网络驱动程序。env.find_elements(by='id', value=None)查找并返回元素列表。env.find_element(by='id', value=None)与env.find_elements()类似,但只返回第一个元素。env.find_nearest(e, xpath)可用于定位另一个元素附近的元素。env.send_keys(element, text)向元素发送text。env.get(url)前往 url。env.click(element)点击元素。env.wait(seconds)等待seconds秒。env.scroll(direction, iframe=None)滚动页面。如果提供了iframe,则会切换到该 iframe。direction可以是 "up"、"down"、"left" 或 "right"。env.get_llm_response(text)向 AI 询问字符串text。env.retrieve_information(prompt)返回一个字符串,根据提示从页面中检索信息。使用 prompt="Summarize:" 来获取摘要。通过类似 "retrieve"、"find in the page" 或类似的命令调用。env.ask_llm_to_find_element(description)请 AI 查找匹配描述的元素。env.query_memory(prompt)通过提示向 AI 查询其记忆(嵌入索引)中已浏览的网页。通过 "Query memory" 调用。env.save(text, filename)将字符串text保存到文件filename。env.get_text_from_page()返回页面中的自由文本。
- 其余代码基本上是中间件,将 Selenium 对象暴露给 GPT-3。对于基础提示中提到的每个操作,GPTSeleniumAgent 中都有一个对应的方法。
- 使用
InstructionCompiler将用户输入解析为语义连贯的操作块。
- 使用
- 代理有一个
Memory,使其能够综合它所看到的内容。
🎉 完成
0.2.51
- 感谢 @rapatel0,现在可以通过 Selenium Grid(分布式浏览器测试框架)远程运行 BrowserPilot。
-0.2.42 - 0.2.44
- 对
examples.py示例代码和依赖项进行了小幅修改。 - 为 Llama Index(机器学习索引库)重大升级进行代码重构。
0.2.38 - 0.2.41
- 将
enable_memory改为memory_file以实现对内存文件名的更精细控制,同时支持用户加载内存。 - 简化了
get_text_from_page方法。
0.2.26 - 0.2.37
- 终于决定将默认模型切换为 gpt-3.5-turbo(成本将大幅降低!)
- 修复了重试机制的问题,之前实际上无法触发重试操作。
- 针对 GPT-3.5 优化了提示词。
- 令人担忧的是,gpt-3.5-turbo 模型持续尝试导入模块,我手动删除了相关导入语句。
- 兼容新的 Llama Index 更新。
0.2.14 - 0.2.25
- 添加防反爬虫检测选项。
- 增强 OpenAI API 错误处理能力。
- 优化堆栈跟踪提示和其他几个提示模板。
- 新增 "显示在视口内" 功能。
- 支持通过
from browserpilot.agents import <agent>导入代理。 - 使
find_element和find_elements仅搜索可见元素。 - 运行结束后保存内存。
- 添加页面顶部和底部滚动选项。
0.2.10 - 0.2.13
- 增加更多 OpenAI 异常处理。
- 将所有嵌入查询改为使用 ChatGPT。
- 移除了 nltk 依赖项(终于摆脱了)。
- 扩大了向 LLM 提问时的最大 token 窗口。
- 修复内存模块在初始化前访问 OpenAI API 密钥的问题,稍作提示词调整。
- ❗️ 启用 ChatGPT 与 GPT Index 集成,使用 GPT3.5-turbo 查询嵌入向量。
0.2.7 - 0.2.9
- 在默认模型选择上反复权衡。ChatGPT 生成代码效果不佳,因为它对返回结果的自由度太高。
- 同时尝试精简提示词长度,当前提示词已略显冗长。
0.2.4 - 0.2.6
- 为代理添加实验性内存功能(仍处于早期阶段),新增元素截图能力。
- 修复版本管理和提示注入相关的 bug。
0.2.3
- 将
chrome_options移动到更合理的位置,保持 yaml 文件整洁。
0.2.2
- 添加 ChatGPT 支持。
0.2.1
- 支持通过字典加载指令。
0.2.0
- 🎬 新增
StudioCLI 工具,支持迭代测试提示词! - 支持 JSON 加载。
- 基础 iframe 支持。
<0.2.0
- GPTSeleniumAgent 应能通过 yaml 文件加载提示词和缓存的成功运行记录。InstructionCompiler 应能将指令保存为 yaml。
- 💭 为代理添加摘要功能。
- 演示/测试需要让 LLM 合成在线阅读内容的场景。
- 🚨 成功实现了将 HTML 页面内容输入 GPT-3 上下文窗口并可靠提取特定元素的功能!
🚨 免责声明
该包通过 exec 执行来自 OpenAI API 的代码输出。这种做法存在安全隐患。因此使用本包时需格外谨慎。标准免责声明如下:
软件按"原样"提供,不提供任何形式的明示或暗示担保,包括但不限于适销性、特定用途适用性和非侵权性担保。在任何情况下,作者或版权持有者均不对因软件使用或其他交易产生的索赔、损害或其他责任负责,无论该责任源于合同、侵权或其他法律行为。
常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。