智能浏览器代理Skill agent-browser

这个技能用于通过inference.sh平台实现浏览器自动化,专为AI代理设计,支持网页导航、元素交互、数据提取和自动化测试。核心功能包括网页抓取、表单填写、截图录制和JavaScript执行。关键词包括:浏览器自动化、AI代理、网页抓取、表单填写、截图录制、Playwright、自动化测试、数据提取、web自动化、智能代理浏览。

测试 0 次安装 0 次浏览 更新于 3/12/2026

name: agent-browser description: “通过inference.sh为AI代理提供的浏览器自动化。使用@e引用系统导航网页、交互元素、截图、录制视频。能力:网页抓取、表单填写、点击、输入、拖放、文件上传、JavaScript执行。用途:网页自动化、数据提取、测试、代理浏览、研究。触发词:浏览器、网页自动化、抓取、导航、点击、填写表单、截图、浏览网页、playwright、无头浏览器、网页代理、冲浪互联网、录制视频” allowed-tools: Bash(infsh *)

智能浏览器代理

通过inference.sh为AI代理提供的浏览器自动化。底层使用Playwright,并采用简单的@e引用系统进行元素交互。

智能浏览器代理

快速开始

# 安装CLI
curl -fsSL https://cli.inference.sh | sh && infsh login

# 打开页面并获取交互元素
infsh app run agent-browser --function open --input '{"url": "https://example.com"}' --session new

安装说明: 安装脚本仅检测您的操作系统/架构,从dist.inference.sh下载匹配的二进制文件,并验证其SHA-256校验和。无需提升权限或后台进程。手动安装和验证可用。

核心工作流程

每个浏览器自动化遵循以下模式:

  1. 打开 - 导航到URL,获取元素的@e引用
  2. 交互 - 使用引用来点击、填写、拖放等
  3. 重新快照 - 导航或更改后,获取新的引用
  4. 关闭 - 结束会话(如果录制视频则返回视频)
# 1. 启动会话
RESULT=$(infsh app run agent-browser --function open --session new --input '{
  "url": "https://example.com/login"
}')
SESSION_ID=$(echo $RESULT | jq -r '.session_id')
# 元素:@e1 [输入] "邮箱", @e2 [输入] "密码", @e3 [按钮] "登录"

# 2. 填写并提交
infsh app run agent-browser --function interact --session $SESSION_ID --input '{
  "action": "fill", "ref": "@e1", "text": "user@example.com"
}'
infsh app run agent-browser --function interact --session $SESSION_ID --input '{
  "action": "fill", "ref": "@e2", "text": "password123"
}'
infsh app run agent-browser --function interact --session $SESSION_ID --input '{
  "action": "click", "ref": "@e3"
}'

# 3. 导航后重新快照
infsh app run agent-browser --function snapshot --session $SESSION_ID --input '{}'

# 4. 完成后关闭
infsh app run agent-browser --function close --session $SESSION_ID --input '{}'

函数

函数 描述
open 导航到URL,配置浏览器(视口、代理、视频录制)
snapshot DOM更改后重新获取页面状态和@e引用
interact 使用@e引用执行操作(点击、填写、拖放、上传等)
screenshot 截取页面截图(视口或全页)
execute 在页面上运行JavaScript代码
close 关闭会话,如果启用了录制则返回视频

交互操作

操作 描述 必需字段
click 点击元素 ref
dblclick 双击元素 ref
fill 清空并输入文本 ref, text
type 输入文本(不清空) text
press 按键(Enter、Tab等) text
select 选择下拉选项 ref, text
hover 悬停在元素上 ref
check 选中复选框 ref
uncheck 取消选中复选框 ref
drag 拖放 ref, target_ref
upload 上传文件 ref, file_paths
scroll 滚动页面 direction (上/下/左/右), scroll_amount
back 返回历史 -
wait 等待毫秒 wait_ms
goto 导航到URL url

元素引用

元素以@e引用返回:

@e1 [a] "首页" href="/"
@e2 [input type="text"] placeholder="搜索"
@e3 [button] "提交"
@e4 [select] "选择选项"
@e5 [input type="checkbox"] name="同意"

重要: 导航后引用失效。始终在以下情况后重新快照:

  • 点击链接/按钮导致导航
  • 表单提交
  • 动态内容加载

特性

视频录制

录制浏览器会话以用于调试或文档:

# 启用录制启动(可选显示光标指示器)
SESSION=$(infsh app run agent-browser --function open --session new --input '{
  "url": "https://example.com",
  "record_video": true,
  "show_cursor": true
}' | jq -r '.session_id')

# ... 执行操作 ...

# 关闭以获取视频文件
infsh app run agent-browser --function close --session $SESSION --input '{}'
# 返回:{"success": true, "video": <File>}

光标指示器

在截图和视频中显示可见光标(适用于演示):

infsh app run agent-browser --function open --session new --input '{
  "url": "https://example.com",
  "show_cursor": true,
  "record_video": true
}'

光标显示为红色圆点,跟随鼠标移动并显示点击反馈。

代理支持

通过代理服务器路由流量:

infsh app run agent-browser --function open --session new --input '{
  "url": "https://example.com",
  "proxy_url": "http://proxy.example.com:8080",
  "proxy_username": "user",
  "proxy_password": "pass"
}'

文件上传

上传文件到文件输入框:

infsh app run agent-browser --function interact --session $SESSION --input '{
  "action": "upload",
  "ref": "@e5",
  "file_paths": ["/path/to/file.pdf"]
}'

拖放

拖拽元素到目标:

infsh app run agent-browser --function interact --session $SESSION --input '{
  "action": "drag",
  "ref": "@e1",
  "target_ref": "@e2"
}'

JavaScript执行

运行自定义JavaScript:

infsh app run agent-browser --function execute --session $SESSION --input '{
  "code": "document.querySelectorAll(\"h2\").length"
}'
# 返回:{"result": "5", "screenshot": <File>}

深入文档

参考 描述
references/commands.md 完整函数参考,包括所有选项
references/snapshot-refs.md 引用生命周期、失效规则、故障排除
references/session-management.md 会话持久性、并行会话
references/authentication.md 登录流程、OAuth、2FA处理
references/video-recording.md 录制工作流程用于调试
references/proxy-support.md 代理配置、地理测试

即用模板

模板 描述
templates/form-automation.sh 带验证的表单填写
templates/authenticated-session.sh 登录一次,重用会话
templates/capture-workflow.sh 带截图的内容提取

示例

表单提交

SESSION=$(infsh app run agent-browser --function open --session new --input '{
  "url": "https://example.com/contact"
}' | jq -r '.session_id')

# 获取元素:@e1 [输入] "姓名", @e2 [输入] "邮箱", @e3 [文本域], @e4 [按钮] "发送"

infsh app run agent-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e1", "text": "张三"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e2", "text": "zhangsan@example.com"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e3", "text": "你好!"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "click", "ref": "@e4"}'

infsh app run agent-browser --function snapshot --session $SESSION --input '{}'
infsh app run agent-browser --function close --session $SESSION --input '{}'

搜索并提取

SESSION=$(infsh app run agent-browser --function open --session new --input '{
  "url": "https://google.com"
}' | jq -r '.session_id')

infsh app run agent-browser --function interact --session $SESSION --input '{"action": "fill", "ref": "@e1", "text": "今天天气"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "press", "text": "Enter"}'
infsh app run agent-browser --function interact --session $SESSION --input '{"action": "wait", "wait_ms": 2000}'

infsh app run agent-browser --function snapshot --session $SESSION --input '{}'
infsh app run agent-browser --function close --session $SESSION --input '{}'

带视频的截图

SESSION=$(infsh app run agent-browser --function open --session new --input '{
  "url": "https://example.com",
  "record_video": true
}' | jq -r '.session_id')

# 截取全页截图
infsh app run agent-browser --function screenshot --session $SESSION --input '{
  "full_page": true
}'

# 关闭并获取视频
RESULT=$(infsh app run agent-browser --function close --session $SESSION --input '{}')
echo $RESULT | jq '.video'

会话

浏览器状态在会话中持久化。始终:

  1. 首次调用时使用--session new启动
  2. 使用返回的session_id进行后续调用
  3. 完成后关闭会话

相关技能

# 网页搜索(用于研究+浏览)
npx skills add inference-sh/skills@web-search

# LLM模型(分析提取内容)
npx skills add inference-sh/skills@llm-models

文档