Skip to content

站点工作流

概述

站点工作流(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 - 重试配置(maxAttemptsdelayMsbackoffFactor
  • plan.steps[].onError - 错误处理策略("continue" 跳过继续)
  • plan.resultPath - 最终结果的取值路径
  • plan.closeOpenedTabs - 是否在完成后关闭新开的标签页("on_success"

自定义工作流

通过 Options 页面

  1. 右键点击 Mole 扩展图标,选择 选项
  2. 在工作流管理区域,点击 添加工作流
  3. 粘贴工作流 JSON 定义
  4. 保存后立即生效

通过 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 服务,集中管理和分发工作流给团队使用。

基于 AGPL-3.0 协议发布