首选浏览器 — 用于AI代理在网页上完成各种任务。适用于导航网页、填写表单、提取数据、测试Web应用或自动化浏览器工作流。触发关键词包括“填写表单”“抓取”“自动化”“测试网站”“登录”等浏览器交互请求。
平滑浏览器:Smooth CLI是AI代理与网站交互,认证,刮取数据,使用自然语言执行复杂的网络任务的浏览器.
功能概述
平滑浏览器:Smooth CLI是AI代理与网站交互,认证,刮取数据,使用自然语言执行复杂的网络任务的浏览器.是一项面向实际任务的技能,主要用于Prerequities.;Assume the S.。
核心要点
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
使用与执行
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Smooth Browser
Smooth CLI 是一款专为 AI 智能体设计的浏览器工具,支持与网站交互、身份认证、数据抓取,以及通过自然语言执行复杂的网页端任务。
前置条件
假设 Smooth CLI 已安装。若尚未安装,可通过以下命令安装:
pip install smooth-py
假设 API 密钥已配置完成。如遇认证错误,请使用以下命令配置:
smooth config --api-key
验证当前配置:
smooth config --show
API 密钥获取地址:https://app.smooth.sh
若账户余额不足,请提示用户前往 https://app.smooth.sh 升级订阅计划。
基础工作流
1. 创建 Profile(可选)
Profile 可用于在多次会话间持久化 Cookie、登录态及浏览器状态。
smooth create-profile --profile-id "my-profile"
列出已有 Profile:
smooth list-profiles
2. 启动浏览器会话
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 参数禁用代理。
3. 在会话中执行任务
使用自然语言描述任务:
smooth run --"访问 LocalLLM 子版块,并找出热度最高的 3 篇帖子"
带结构化输出的任务(适用于需交互的场景):
smooth run --"搜索‘wireless headphones’,筛选评分 ≥4 星的商品,按价格排序,并提取排名前三的结果" --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 格式输出结果
注意事项:
请确保任务描述处于恰当的抽象层级:既不能过于具体(例如仅描述单步操作),也不能过于宽泛或模糊。
良好的任务示例:
- "在 LinkedIn 上搜索在 Amazon 任职的软件开发工程师(SDE),返回 5 个个人主页链接"
- "查找 iPhone 17 在 Amazon 上的售价"
不良的任务示例:
- "点击搜索按钮" → 过于具体!
- "打开 google.com,输入‘restaurants near me’,点击搜索,等待页面加载完成,提取前 5 条结果并返回" → 过于具体!应简化为:"在 Google 上搜索‘restaurants near me’并返回前 5 条结果"
- "寻找适合我们公司的软件工程师" → 过于宽泛!您需自行规划达成目标的具体路径,并拆解为若干定义清晰、可执行的子任务
重要提示:Smooth 由智能代理驱动,请勿过度控制其行为;应提供目标明确、面向结果的任务,而非逐条操作指令。
4. 关闭会话
任务完成后必须显式关闭会话。
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、页面内容),但不会保留浏览器智能体自身的记忆。如需在任务间传递信息,请在 prompt 中显式传入。
示例 —— 在任务间传递上下文:
# 任务 1:获取信息 RESULT=$(smooth run $SESSION_ID "提取当前页面上的商品名称" --json | jq -r .output) # 任务 2:复用任务 1 的结果 smooth run $SESSION_ID "考虑商品名称为 ‘$RESULT’ 的产品。现在查找该在线商店提供的另外 3 款相似商品。"
注意事项:
run命令是阻塞式执行。如需并行执行多个任务,必须使用子智能体(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 命令专为纯数据提取场景优化,不依赖智能体步骤,效率更高。
它类似于一种“智能 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 篇帖子"
适用场景建议:
- 当您已位于目标页面,或已知准确 URL,且仅需提取结构化数据时,请使用
extract; - 当您需要智能体完成导航、交互或复杂前置操作后再提取数据时,请使用
run。
文件处理
上传文件供会话使用:
文件须在启动会话前完成上传,并通过文件 ID 挂载至会话中:
# 步骤 1:上传文件 FILE_ID=$(smooth upload-file /path/to/document.pdf --purpose "Contract to analyze" --json | jq -r .file_id) # 步骤 2:启动挂载该文件的会话 smooth start-session --files "$FILE_ID" --url "https://example.com" # 步骤 3:智能体可在任务中访问该文件 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:
# 简单脚本 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 管理
列出全部 Profile:
smooth list-profiles
删除某个 Profile:
smooth delete-profile
推荐使用 Profile 的场景:
- ✅ 需要身份认证的网站
- ✅ 多次任务执行间需维持会话状态
- ✅ 避免重复登录
- ✅ 持久化 Cookie 与本地存储数据
可跳过 Profile 的场景:
- 无需认证的公开网站
- 一次性网页抓取任务
- 测试类场景
文件管理
上传文件:
smooth upload-file /path/to/file.pdf --name "document.pdf" --purpose "Contract for review"
删除文件:
smooth delete-file
最佳实践
- 始终保存会话 ID —— 后续所有命令均需使用该 ID
- 对需认证的会话使用 Profile —— 记录各 Profile 对应的网站,便于复用
- 关闭会话后等待 5 秒 —— 确保状态已正确写入 Profile
- 使用具描述性的 Profile ID —— 例如:
"linkedin-personal"、"twitter-company" - 任务完成后及时关闭会话 —— 使用默认的优雅关闭方式,确保资源清理到位
- 数据提取时启用结构化输出 —— 输出格式规范、类型明确
- 关联性强的任务应在同一会话中顺序执行 —— 避免因状态丢失导致中断
- 独立任务请使用子智能体,每子智能体分配一个会话 —— 实现并行加速
- 协调资源分配 —— 使用子智能体时,必须由主智能体统一创建并分配会话,禁止子智能体自行创建
- URL 中避免添加查询参数(例如不要使用
?filter=xyz) —— 应从基础 URL 启动,交由智能体通过 UI 交互完成筛选等操作 - Smooth 由智能代理驱动 —— 请提供目标导向的任务,而非细粒度的操作步骤
故障排查
"Session not found"(会话未找到) —— 会话可能已超时或被主动关闭,请新建会话。
"Profile not found"(Profile 未找到) —— 运行 smooth list-profiles 查看可用 Profile 列表。
CAPTCHA 或认证问题 —— 使用 smooth live-view -- 启动实时视图,交由用户手动干预。
任务超时 —— 可尝试增大 --max-steps 参数值,或将大任务拆分为多个小任务逐步执行。
命令参考
Profile 相关命令
smooth create-profile [--profile-id ID]—— 创建新 Profilesmooth list-profiles—— 列出全部 Profilesmooth delete-profile—— 删除指定 Profile
文件相关命令
smooth 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 --—— 执行 JavaScript"code" [--args JSON] smooth live-view --—— 获取交互式实时访问 URLsmooth recording-url --—— 获取会话录制回放 URLsmooth downloads --—— 获取文件下载 URL
所有命令均支持 --json 参数以输出 JSON 格式结果。
相关专题
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.8万人学习
共6课时 | 54.7万人学习
最新文章