首选浏览器 — 用于AI代理在网页上完成各种任务。适用于导航网页、填写表单、提取数据、测试Web应用或自动化浏览器工作流。触发关键词包括“填写表单”“抓取”“自动化”“测试网站”“登录”等浏览器交互请求。
平滑浏览器:Smooth CLI是AI代理与网站交互,认证,刮取数据,使用自然语言执行复杂的网络任务的浏览器.是一项面向实际任务的技能,主要用于Prerequities.;Assume the S.。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Smooth CLI 是一款专为 AI 智能体设计的浏览器工具,支持与网站交互、身份认证、数据抓取,以及通过自然语言执行复杂的网页端任务。
假设 Smooth CLI 已安装。若尚未安装,可通过以下命令安装:
pip install smooth-py
假设 API 密钥已配置完成。如遇认证错误,请使用以下命令配置:
smooth config --api-key
验证当前配置:
smooth config --show
在 https://app.smooth.sh 获取 API 密钥
若账户余额不足,请提示用户前往 https://app.smooth.sh 升级订阅计划
Profile 可用于在多次会话间持久化 Cookie、登录状态及浏览器状态。
smooth create-profile --profile-id "my-profile"
列出已有 Profile:
smooth list-profiles
smooth start-session --profile-id "my-profile" --url "https://example.com"
选项说明:
--profile-id — 指定使用的 Profile(可选;未提供时将创建匿名会话)--url — 初始跳转 URL(可选)--files — 以英文逗号分隔的文件 ID 列表,使这些文件在会话中可用(可选)--device mobile|desktop — 设备类型(默认为 mobile)--profile-read-only — 加载 Profile 但不保存任何更改--allowed-urls — 以英文逗号分隔的 URL 模式列表,用于限制会话仅可访问指定域名(例如:"https://*.example.com/,https://*.api.example.com/")--no-proxy — 禁用默认代理(详见下方说明)重要提示:请务必保存命令输出中的会话 ID(session ID),后续所有操作均需使用该 ID。
代理行为说明:默认情况下,CLI 会为浏览器会话自动配置内置代理。若目标网站屏蔽该代理,或您需要直连网络,请使用 --no-proxy 参数禁用代理。
使用自然语言描述任务:
smooth run --"访问 LocalLLM 子版块,并找出热度最高的 3 篇帖子"
结构化输出(适用于需交互的任务):
smooth run --"搜索‘无线耳机’,筛选评分 ≥4 星的商品,按价格排序,并提取前 3 条结果" --url "https://shop.example.com" --response-model '{"type":"array","items":{"type":"object","properties":{"product":{"type":"string","description":"Thenameoftheproductbeingdescribed."},"sentiment":{"type":"string","enum":["positive","negative","neutral"],"description":"The overall sentiment about the product."}},"required":["product","sentiment"]}}'
携带元数据(智能体会接收并使用该元数据):
smooth run --"用用户信息填写表单" --metadata '{"email":"user@example.com","name":"John Doe"}'
选项说明:
--url — 执行任务前先导航至该 URL--metadata — 包含任务所需变量的 JSON 对象--response-model — 定义结构化输出格式的 JSON Schema--max-steps — 智能体最大执行步数(默认:32)--json — 以 JSON 格式输出结果注意事项:
请确保所提交的任务具备恰当的抽象层级:既不能过于具体(例如仅包含单步操作),也不能过于宽泛或模糊。
良好的任务示例:
不佳的任务示例:
重要提示:Smooth 由智能 Agent 驱动,请勿过度控制其行为,应为其提供目标明确、结果导向的任务,而非操作步骤。
任务完成后必须关闭会话。
smooth close-session --
重要提示:关闭会话后请等待 5 秒,以确保 Cookie 和状态已正确保存至 Profile(如需在后续会话中复用)。
为特定网站创建 Profile:
# 创建 Profile smooth create-profile --profile-id "github-account" # 启动会话 smooth start-session --profile-id "github-account" --url "https://github.com/login" # 获取实时视图以便手动认证 smooth live-view --# 将生成的 URL 提供给用户,使其在浏览器中打开并完成登录 # 用户确认登录成功后,关闭会话以保存 Profile 数据 smooth close-session -- # 将 profile-id 记录下来,供后续复用
复用已认证的 Profile:
# 下次直接使用同一 Profile 启动会话 smooth start-session --profile-id "github-account" smooth run --"在我的仓库 ‘my-project’ 中新建一个 Issue"
有序管理 Profile:在本地记录各 Profile 对应的服务,便于未来高效复用。
无需关闭会话即可连续执行多个任务:
SESSION_ID=$(smooth start-session --profile-id "my-profile" --json | jq -r .session_id) # 任务 1:登录 smooth run $SESSION_ID "使用提供的凭证登录网站" # 任务 2:首次操作 smooth run $SESSION_ID "进入设置页,将通知偏好更改为仅邮件通知" # 任务 3:二次操作 smooth run $SESSION_ID "进入账单页面,获取最新发票的 URL" smooth close-session $SESSION_ID
重要提示: run 命令保留浏览器状态(Cookie、URL、页面内容),但不保留浏览器 Agent 的内存。如需在任务间传递信息,请显式地将其作为上下文写入 prompt 中。
示例 — 在任务间传递上下文:
# 任务 1:获取信息 RESULT=$(smooth run $SESSION_ID "提取当前页面上的商品名称" --json | jq -r .output) # 任务 2:复用任务 1 的结果 smooth run $SESSION_ID "考虑名称为 ‘$RESULT’ 的商品。现在查找该在线商店提供的另外 3 款类似商品。"
注意事项:
run 命令为阻塞式调用。如需并发执行多个任务,您必须使用子 Agent(Task 工具)。方式一:使用 run 并指定结构化输出:
smooth start-session --url "https://news.ycombinator.com" smooth run --"提取热度最高的 10 篇帖子" --response-model '{ "type": "object", "properties": { "posts": { "type": "array", "items": { "type": "object", "properties": { "title": {"type": "string"}, "url": {"type": "string"}, "points": {"type": "number"} } } } } }'
方式二:使用 extract 直接提取数据:
extract 命令专为纯数据提取优化,不消耗 Agent 步数,效率更高。
它类似于一种“智能 fetch”,可从动态渲染的网页中提取结构化数据:
smooth start-session smooth extract ----url "https://news.ycombinator.com" --schema '{ "type": "object", "properties": { "posts": { "type": "array", "items": { "type": "object", "properties": { "title": {"type": "string"}, "url": {"type": "string"}, "points": {"type": "number"} } } } } }' --prompt "提取热度最高的 10 篇帖子"
适用场景选择:
extractrun上传文件供会话使用:
文件须在启动会话前上传,再通过文件 ID 传入会话:
# 第一步:上传文件 FILE_ID=$(smooth upload-file /path/to/document.pdf --purpose "Contract to analyze" --json | jq -r .file_id) # 第二步:启动携带该文件的会话 smooth start-session --files "$FILE_ID" --url "https://example.com" # 第三步:Agent 即可在任务中访问该文件 smooth run --"分析合同文档并提取关键条款"
上传多个文件:
# 上传文件 FILE_ID_1=$(smooth upload-file /path/to/invoice.pdf --json | jq -r .file_id) FILE_ID_2=$(smooth upload-file /path/to/screenshot.png --json | jq -r .file_id) # 启动携带多个文件的会话 smooth start-session --files "$FILE_ID_1,$FILE_ID_2"
从会话中下载文件:
smooth run --"下载月度报告 PDF" --url smooth close-session -- # 会话关闭后,获取下载链接 smooth downloads -- # 访问该 URL 下载文件
当自动化流程需人工介入(如 CAPTCHA、双重验证、复杂认证等)时:
smooth start-session --profile-id "my-profile" smooth run --"访问 secure-site.com 并登录" # 若任务遇到 CAPTCHA 或需人工操作: smooth live-view -- # 打开 URL 并完成人工步骤 # 人工干预完成后继续自动化流程: smooth run -- "现在导航至仪表板并导出数据"
从当前页面提取数据:
smooth start-session --url "https://example.com/products" smooth extract ----schema '{"type":"object","properties":{"products":{"type":"array"}}}' --prompt "提取全部商品名称及价格"
先跳转至 URL 再提取:
smooth extract ----url "https://example.com/products" --schema '{"type":"object","properties":{"products":{"type":"array"}}}'
在浏览器中执行 JavaScript:
# 简单 JavaScript 表达式 smooth evaluate-js --"document.title" # 带参数的函数 smooth evaluate-js -- "(args) => {return args.x + args.y;}" --args '{"x": 5, "y": 10}' # 复杂 DOM 操作 smooth evaluate-js -- "document.querySelectorAll('a').length"
列出所有 Profile:
smooth list-profiles
删除某个 Profile:
smooth delete-profile
推荐使用 Profile 的场景:
可跳过 Profile 的场景:
上传文件:
smooth upload-file /path/to/file.pdf --name "document.pdf" --purpose "Contract for review"
删除文件:
smooth delete-file
"linkedin-personal"、"twitter-company"?filter=xyz) — 应从基础 URL 启动,交由 Agent 通过 UI 操作完成筛选"Session not found"(会话未找到) — 会话可能已超时或被关闭,请新建会话。
"Profile not found"(Profile 未找到) — 运行 smooth list-profiles 查看可用 Profile 列表。
CAPTCHA 或认证问题 — 使用 smooth live-view -- 让用户手动介入。
任务超时 — 增加 --max-steps 参数值,或将大任务拆分为多个小任务。
smooth create-profile [--profile-id ID] — 创建新 Profilesmooth list-profiles — 列出全部 Profilesmooth delete-profile — 删除指定 Profilesmooth upload-file [--name NAME] [--purpose PURPOSE] — 上传文件smooth delete-file — 删除已上传文件smooth start-session [OPTIONS] — 启动浏览器会话smooth close-session -- [--force] — 关闭会话smooth run -- "" [OPTIONS] — 执行任务smooth extract -- --schema SCHEMA [OPTIONS] — 提取结构化数据smooth evaluate-js -- "code" [--args JSON] — 执行 JavaScriptsmooth live-view -- — 获取可交互的实时访问 URLsmooth recording-url -- — 获取会话录制 URLsmooth downloads -- — 获取文件下载 URL所有命令均支持 --json 参数以启用 JSON 格式输出。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章