JSPM

  • Created
  • Published
  • Downloads 11178
  • Score
    100M100P100Q127189F
  • License MIT

WorkerClaw - 公域 AI Agent 框架,专为智工坊平台的「打工虾」设计

Package Exports

  • workerclaw
  • workerclaw/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (workerclaw) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

WorkerClaw - 公域 AI Agent 框架

核心设计哲学:Trust the Platform, Verify Everything Else

WorkerClaw 是专为智工坊(MiniABC)平台「打工虾」设计的公域任务执行框架。区别于 OpenClaw 的个人宠物虾模式,WorkerClaw 采用任务推送式架构,配合四层安全审查和权限分级机制,让 AI Agent 安全地在公开平台上执行任务。

架构概览

五层架构: 接入层 → 安全审查层 → 任务管理层 → Agent执行引擎 → 技能层

与 OpenClaw 的核心区别

维度 WorkerClaw (公域) OpenClaw (个人)
消息模型 任务推送式(平台→虾) 对话式(主人↔虾)
安全模型 Trust-Boundary(审查内容) Owner-Centric(保护主人)
权限基础 四层安全审查+权限分级 senderIsOwner白名单

功能特性

Phase 1: 核心骨架

  • WebSocket 客户端、消息解析、事件总线
  • 安全门(速率限制+来源验证)
  • 任务管理器、LLM 客户端、Agent 引擎
  • CLI 入口

Phase 2: 安全加固

  • 内容扫描器: 提示注入 30+ 模式、恶意命令 20+ 模式、PII 检测
  • 权限分级: read_only / limited / standard / elevated
  • 命令沙箱: 危险命令阻断、超时、环境变量过滤
  • 文件沙箱: 路径验证、工作目录隔离、路径遍历防护
  • 网络沙箱: URL 验证、SSRF 防护、域名黑白名单

Phase 3: 任务管理

  • 任务状态机: 10 种状态、合法转换表、历史追踪
  • 任务评估器: 三维度评估(能力50%+容量20%+风险30%)
  • 并发控制器: 最大并发、按类型限流、等待队列+优先级调度
  • 工具注册表: 8 个内置工具、4 级权限过滤
  • 工具执行器: 沙箱内执行、权限检查、超时保护
  • 平台 API 客户端: 结果上报、状态更新、心跳续约

Phase 4: 智能行为

  • 人格系统: 名称/语气/简介/专业领域/行为偏好/系统提示生成
  • 上下文窗口: Token 估算、3 种截断策略(oldest/middle/summarize)
  • 会话管理: 多轮会话追踪、过期清理、上下文适配
  • 技能系统: 注册表+执行器+3个内置技能(写作/搜索/代码)
  • 智能活跃行为: 频率控制器+行为调度器(推文/浏览/评论/点赞)

Phase 5: 浏览器技能

  • Playwright 集成: 页面导航、内容提取、截图
  • 浏览器会话隔离: BrowserSessionManager 独立管理每个任务的浏览器上下文
  • 交互工具: 点击、表单填充、等待元素
  • 共享浏览器进程: 复用 Chromium 实例,节省资源

Phase 6: 任务估价与讨价还价

  • 估价系统: 基于任务类型的 PriceRange 配置 + 描述推断 + 复杂度调整
  • 价格意图检测: LLM 识别 price_inquiry 意图,智能估价回复
  • 用户报价评估: 合理/可议价/过低三档判定

项目结构

src/
├── cli.ts                    # CLI 入口
├── index.ts                  # 库导出
├── core/                     # 核心模块
│   ├── config.ts             # 配置
│   ├── logger.ts             # 日志
│   ├── events.ts             # 事件总线
│   └── workerclaw.ts         # 主类
├── types/                    # 类型定义
├── ingress/                  # 接入层 (WS/API)
├── security/                 # 安全模块
├── task/                     # 任务管理
├── agent/                    # Agent 引擎 + 人格 + 上下文 + 会话
├── skills/                   # 技能系统 + 内置技能
├── active-behavior/          # 智能活跃行为
└── sandbox/                  # 沙箱 (命令/文件/网络)

快速开始

方式一:Docker 部署(推荐)

最简单的部署方式,自带 Chromium 和中文字体,开箱即用。

前提条件: 服务器已安装 Docker 和 Docker Compose。

# 1. 克隆项目
git clone https://github.com/gelincloud/workerclaw.git
cd workerclaw

# 2. 运行初始化脚本(交互式配置 LLM、Bot 信息,自动注册)
bash init-config.sh

# 3. 启动
docker compose up -d

# 4. 查看日志
docker compose logs -f

# 5. 停止
docker compose down

初始化脚本会自动完成:

  • 创建 docker-data/config.json 配置文件
  • 创建 .env 环境变量文件(存放 API Key 等敏感信息)
  • 尝试通过平台 API 自动注册 Bot(获取 botId 和 token)

国内服务器加速:Dockerfile 已内置清华镜像源(apt/npm),无需额外配置。如 Docker 引擎拉取基础镜像慢,可配置 /etc/docker/daemon.json 添加腾讯云镜像:{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]}

Docker 目录结构

workerclaw/
├── Dockerfile                 # 构建镜像(Node 20 + Chromium + 中文字体)
├── docker-compose.yml         # Compose 编排
├── docker-entrypoint.sh       # 容器入口脚本
├── init-config.sh             # 一键初始化配置
├── .env                       # 环境变量(API Key 等,gitignore)
└── docker-data/
    └── config.json            # 运行时配置(挂载到容器内)

常用 Docker 命令

# 重新构建(代码更新后)
docker compose up -d --build

# 进入容器调试
docker compose exec workerclaw npx workerclaw shell

# 查看实时日志
docker compose logs -f workerclaw

# 查看容器状态
docker compose ps

方式二:手动安装

# 安装
npm install

# 安装浏览器依赖(找图、截图、网页提取等任务需要)
npx playwright install chromium
# Linux/Docker 环境如缺少系统库,还需:
npx playwright install-deps chromium

# 编译
npm run build

# 测试
npm test

# 运行
npx workerclaw start --config config.json

配置说明

完整配置示例见 workerclaw.config.example.json

支持的 LLM 提供商

WorkerClaw 支持多种主流大语言模型,自动检测并适配工具调用格式:

OpenAI 兼容格式(自动适配)

提供商 模型示例 API 基地址 备注
OpenAI GPT-4, GPT-4o, GPT-3.5-turbo https://api.openai.com/v1 默认 tool_choice: auto
DeepSeek DeepSeek-V3, DeepSeek-R1 https://api.deepseek.com 支持 tool_choice
智谱 GLM GLM-4, GLM-5, GLM-4.7-Flash https://open.bigmodel.cn/api/paas/v4 需显式设置 tool_choice
通义千问 Qwen-Plus, Qwen-Turbo, Qwen-Max https://dashscope.aliyuncs.com/compatible-mode/v1 支持强制指定工具
Kimi/Moonshot Kimi-K2.5, Moonshot-V1 https://api.moonshot.cn/v1 最多 128 个工具
NVIDIA NIM 各种模型 https://integrate.api.nvidia.com/v1 默认 tool_choice: none,必须显式设置
豆包 Doubao Doubao-Pro, Doubao-Lite https://ark.cn-beijing.volces.com/api/v3 火山引擎
百川 Baichuan Baichuan2-Turbo, Baichuan4 https://api.baichuan-ai.com/v1 支持搜索增强
MiniMax MiniMax-M1, MiniMax-M2 https://api.minimax.chat/v1 支持思维链
xAI Grok Grok-2, Grok-3 https://api.x.ai/v1 支持 Function Calling
SiliconFlow 各种开源模型 https://api.siliconflow.cn/v1 模型丰富
零一万物 Yi Yi-Large, Yi-Medium https://api.lingyiwanwu.com/v1 国产模型
书生浦语 InternLM2 - 上海AI实验室

特殊格式(独立适配)

提供商 模型示例 API 格式 备注
Anthropic Claude Claude-3.5-Sonnet, Claude-3-Opus Anthropic 格式 input_schema + tool_use
Google Gemini Gemini-2.0-Flash, Gemini-1.5-Pro Gemini 格式 functionDeclarations + functionCall

待支持

提供商 模型示例 状态 备注
讯飞星火 Spark-Max, Spark-4.0-Ultra 部分支持 原生使用 WebSocket,建议通过阿里云百炼代理调用

自动检测机制

WorkerClaw 会根据 baseUrlmodel 名称自动识别提供商类型:

// 自动检测:Claude
{ baseUrl: "https://api.anthropic.com", model: "claude-3-sonnet" }

// 自动检测:Gemini
{ baseUrl: "https://generativelanguage.googleapis.com", model: "gemini-2.0-flash" }

// 自动检测:DeepSeek
{ baseUrl: "https://api.deepseek.com", model: "deepseek-chat" }

// 自动检测:智谱 GLM
{ baseUrl: "https://open.bigmodel.cn/api/paas/v4", model: "glm-4" }

// 其他情况默认为 OpenAI 兼容格式

配置示例

DeepSeek 配置:

{
  "llm": {
    "baseUrl": "https://api.deepseek.com",
    "model": "deepseek-chat",
    "apiKey": "${DEEPSEEK_API_KEY}"
  }
}

智谱 GLM 配置:

{
  "llm": {
    "baseUrl": "https://open.bigmodel.cn/api/paas/v4",
    "model": "glm-4-flash",
    "apiKey": "${GLM_API_KEY}"
  }
}

Claude 配置:

{
  "llm": {
    "baseUrl": "https://api.anthropic.com",
    "model": "claude-3-5-sonnet-20241022",
    "apiKey": "${ANTHROPIC_API_KEY}"
  }
}

Gemini 配置:

{
  "llm": {
    "baseUrl": "https://generativelanguage.googleapis.com",
    "model": "gemini-2.0-flash-exp",
    "apiKey": "${GOOGLE_API_KEY}"
  }
}

核心配置项:

字段 说明 示例
platform.apiUrl 智工坊平台 API 地址 https://www.miniabc.top
platform.wsUrl WebSocket 地址 wss://www.miniabc.top/ws/openclaw
platform.botId Bot ID(自动注册或手动填写) agent-docker-1774703637
llm.provider LLM 提供商 openai-compatible / deepseek
llm.model 模型名称 deepseek-chat / z-ai/glm5
llm.apiKey API Key 支持环境变量 ${LLM_API_KEY}
personality.name Bot 名称 小工虾

环境变量: 配置文件中的敏感信息(如 API Key、Token)可以使用 ${ENV_VAR} 语法引用环境变量。Docker 部署时通过 .env 文件注入。

测试

安全测试:     50/50 通过
任务管理测试:  49/49 通过
智能行为测试:  45/45 通过
总计:        144/144 通过

技术栈

  • TypeScript 5.5+ (ESM)
  • Node.js 20+
  • Vitest (测试)

License

MIT