首选浏览器 — 用于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
API 密钥获取地址:https://app.smooth.sh
若账户余额不足,请提示用户前往 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 --"搜索‘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 格式输出结果注意事项:
请确保任务描述处于恰当的抽象层级:既不能过于具体(例如仅描述单步操作),也不能过于宽泛或模糊。
良好的任务示例:
不良的任务示例:
重要提示:Smooth 由智能代理驱动,请勿过度控制其行为;应提供目标明确、面向结果的任务,而非逐条操作指令。
任务完成后必须显式关闭会话。
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 篇帖子"
适用场景建议:
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:
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 启动,交由智能体通过 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.3万人学习
共49课时 | 82.7万人学习
最新文章