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校验和。无需提升权限或后台进程。手动安装和验证可用。
核心工作流程
每个浏览器自动化遵循以下模式:
- 打开 - 导航到URL,获取元素的
@e引用 - 交互 - 使用引用来点击、填写、拖放等
- 重新快照 - 导航或更改后,获取新的引用
- 关闭 - 结束会话(如果录制视频则返回视频)
# 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'
会话
浏览器状态在会话中持久化。始终:
- 首次调用时使用
--session new启动 - 使用返回的
session_id进行后续调用 - 完成后关闭会话
相关技能
# 网页搜索(用于研究+浏览)
npx skills add inference-sh/skills@web-search
# LLM模型(分析提取内容)
npx skills add inference-sh/skills@llm-models
文档
- inference.sh 会话 - 会话管理
- 多函数应用 - 函数工作原理