Ot Aiops
支持多协议工业设备数据采集与智能诊断,具备高风险写入防护机制。
基于Amazon Nova Act的AI浏览器自动化技能,支持航班搜索、数据提取与表单填写。
openclaw skills install @zouchaoqun/nova-act命令、参数、文件名以原文为准
使用 Amazon Nova Act 实现 AI 驱动的浏览器自动化。内置脚本可处理常见任务;复杂工作流请编写自定义脚本。获取免费 API 密钥,请访问 https://nova.amazon.com/dev/api
此技能访问的内容:
NOVA_ACT_API_KEY 环境变量或 ~/.openclaw/openclaw.json 文件(您的 API 密钥)跟踪文件可能包含的内容:
建议:
在执行可能导致资金影响、外部通信、账户创建或数据修改的操作前,必须停止。
当任务涉及实质性影响操作时(参见 scripts/nova_act_runner.py 中的 MATERIAL_IMPACT_KEYWORDS),您必须:
act_get() 进行观察而不执行操作 —— 不要点击最终操作按钮需要安全停止的操作类别:
在执行浏览器自动化时,此技能将从不:
此技能将始终:
有关详细的安全工作流模式,请参阅 references/nova-act-cookbook.md
当被要求执行浏览器自动化任务时,调用内置脚本:
import subprocess, os, sys
skill_dir = os.path.expanduser("~/.openclaw/skills/nova-act")
script = os.path.join(skill_dir, "scripts", "nova_act_runner.py")
result = subprocess.run(
["uv", "run", script, "--url", url, "--task", task],
capture_output=True, text=True, env={**os.environ}
)
print(result.stdout)
if result.returncode != 0:
print(result.stderr, file=sys.stderr)其中 url 和 task 是从用户请求中设置的 Python 字符串变量。
该脚本使用通用结构(摘要 + 详细列表)来捕获输出。
对于复杂的多步骤工作流或特定的数据提取模式,请编写符合 PEP 723 的自定义 Python 脚本:
#!/usr/bin/env python3
# /// script
# requires-python = ">=3.10"
# dependencies = ["nova-act"]
# ///
from nova_act import NovaAct
with NovaAct(starting_page="https://example.com") as nova:
# 使用自然语言执行操作
# 将相关步骤合并为单个 `act()` 调用以保持上下文
nova.act("点击搜索框,输入 'automation',然后按回车键")
# 使用模式提取数据
results = nova.act_get(
"获取前 5 个搜索结果标题",
schema=list[str]
)
print(results)
# 截图
nova.page.screenshot(path="search_results.png")
print(f"MEDIA: {Path('search_results.png').resolve()}")运行方式:uv run script.py
nova.act(prompt) - 执行操作用于点击、输入、滚动、导航等操作。注意: 最佳上下文维护方式是将相关步骤合并到一个 act() 调用中。
nova.act("""
点击搜索框。
输入 'automation tools' 并按回车键。
向下滚动至结果区域。
从排序下拉菜单中选择 '相关性'。
""")nova.act_get(prompt, schema) - 提取数据使用 Pydantic 模型或 Python 类型进行结构化提取:
from pydantic import BaseModel
class Flight(BaseModel):
airline: str
price: float
departure: str
arrival: str
# 提取单个项目
flight = nova.act_get("获取最便宜航班的详细信息", schema=Flight)
# 提取列表
flights = nova.act_get("获取所有可用航班", schema=list[Flight])
# 简单类型
price = nova.act_get("总价格是多少?", schema=float)
items = nova.act_get("列出所有产品名称", schema=list[str])with NovaAct(starting_page="https://google.com/flights") as nova:
# 将步骤合并以确保代理在整个流程中保持上下文
nova.act("""
搜索从 SFO 到 JFK 的往返航班。
设置出发日期为 2025 年 3 月 15 日。
设置返回日期为 2025 年 3 月 22 日。
点击搜索。
按价格从低到高排序。
""")
flights = nova.act_get(
"获取前 3 个最便宜的航班信息,包括航空公司、价格和时间",
schema=list[Flight]
)
# 安全停止:仅提取数据。未选择航班或进入预订流程。with NovaAct(starting_page="https://example.com/contact") as nova:
nova.act("""
填写表单:姓名为 'Test User',邮箱为 'test@example.com'。
选择国家为 'United States'。
""")
# 安全停止:验证提交按钮是否存在但不点击
submit_ready = nova.act_get(
"是否存在可见且可用的提交按钮?",
schema=bool
)
print(f"表单已准备就绪:{submit_ready}")with NovaAct(starting_page="https://news.ycombinator.com") as nova:
stories = nova.act_get(
"获取前 10 条新闻标题及其得分",
schema=list[dict] # 或使用 Pydantic 模型
)act() 调用内保持上下文效果最佳。将相关操作合并为多行提示。act_get() 始终提供 schema 以获取结构化数据。nova.page.screenshot() 捕获结果以供检查。references/nova-act-cookbook.md** — Nova Act 的最佳实践与安全模式,包含 MATERIAL_IMPACT_KEYWORDS 文档及安全工作流示例。AI 代理在执行复杂自动化任务时应参考此文件。README.md** — 面向用户的安装说明与安全概览。NOVA_ACT_API_KEY 环境变量(必需)~/.openclaw/openclaw.json 中设置 skills."nova-act".apiKey / skills."nova-act".env.NOVA_ACT_API_KEYMEDIA: 行,供 OpenClaw 在支持的平台上自动附加截图。NovaAct(starting_page="...", headless=True)nova.page 访问底层 Playwright 页面对象,用于高级操作已收录 1 个 Skill