站点工作流
概述
站点工作流(Site Workflow)是 MoleClaw 的声明式自动化系统。通过 JSON 格式定义一系列步骤,无需编写代码即可自动化网站操作。
核心理念:扩展 = 解释器引擎,Manifest = 内容分发。源码中不硬编码任何工作流定义,所有工作流通过 Manifest 文件分发和同步。
内置工作流
MoleClaw 默认包含以下预定义工作流:
| 工作流 | 说明 | URL 匹配 |
|---|---|---|
| 京东商品搜索 | 在京东搜索商品,返回商品卡片列表 | 所有页面 |
| 百度搜索 | 在百度搜索关键词,返回搜索结果列表 | 所有页面 |
| Boss 直聘消息回复 | 在 Boss 直聘聊天页面操作会话、采集消息、自动回复 | *.zhipin.com |
| 淘宝商品搜索 | 在淘宝搜索商品,返回商品列表 | 所有页面 |
| 淘宝商品详情 | 采集淘宝/天猫商品详情页的结构化数据 | 所有页面 |
| 今日热榜 | 采集今日热榜 Top 100 热点新闻 | 所有页面 |
工作流结构
每个工作流是一个 JSON 对象,包含以下字段:
json
{
"name": "工作流名称",
"label": "显示标签",
"description": "工作流描述,AI 据此判断何时使用",
"url_patterns": ["*://*.example.com/*"],
"version": 1,
"enabled": true,
"parameters": {
"type": "object",
"properties": {
"keyword": {
"type": "string",
"description": "搜索关键词"
}
},
"required": ["keyword"]
},
"plan": {
"version": 1,
"steps": [
{
"action": "tab_navigate",
"note": "导航到目标页面",
"params": {
"action": "navigate",
"url": "https://example.com/search?q={{keyword}}"
},
"saveAs": "nav_result"
},
{
"action": "page_action",
"note": "等待结果加载",
"params": {
"action": "wait_for_element",
"selector": ".results",
"timeout_ms": 10000
}
},
{
"action": "dom_manipulate",
"note": "采集结果数据",
"params": {
"action": "query",
"selector": ".result-item",
"limit": 10
},
"saveAs": "items"
}
],
"resultPath": "items"
}
}关键字段说明
url_patterns- URL 匹配规则,使用通配符语法,决定工作流在哪些页面可用parameters- JSON Schema 格式的参数定义,AI 调用时传入plan.steps- 步骤数组,每一步调用一个内置工具plan.steps[].action- 要调用的工具名称plan.steps[].params- 工具参数,支持模板语法plan.steps[].saveAs- 将步骤结果存储为变量,供后续步骤引用plan.steps[].when- 条件执行,值为 falsy 时跳过该步骤plan.steps[].retry- 重试配置(maxAttempts、delayMs、backoffFactor)plan.steps[].onError- 错误处理策略("continue"跳过继续)plan.resultPath- 最终结果的取值路径plan.closeOpenedTabs- 是否在完成后关闭新开的标签页("on_success")
自定义工作流
通过 Options 页面
- 右键点击 Mole 扩展图标,选择 选项
- 在工作流管理区域,点击 添加工作流
- 粘贴工作流 JSON 定义
- 保存后立即生效
通过 Manifest 远程同步
MoleClaw 支持从远程 URL 同步工作流 Manifest。
Manifest 格式
json
{
"version": 2,
"updatedAt": "2025-01-01T00:00:00Z",
"workflows": [
{ /* 工作流定义 */ },
{ /* 工作流定义 */ }
]
}同步机制
- 支持配置多个 Manifest 源
- 默认每 6 小时自动同步一次(通过 Chrome Alarms API)
- 也可以在 Options 页面手动触发同步
- 远程工作流标记为
source: "remote",用户手动添加的标记为source: "user"
提示
你可以搭建自己的 Manifest 服务,集中管理和分发工作流给团队使用。
