PicoClaw自动化:集成CapSolver API指南

Ethan Collins
Pattern Recognition Specialist
02-Mar-2026

当你的AI助手自动化网络任务时,CAPTCHAs是最大的障碍。受保护的页面拒绝提交,登录流程停滞,整个自动化流程会暂停,等待人类点击复选框或识别交通灯。
PicoClaw 是一个超轻量级的个人AI助手,用Go语言编写,可在10美元的硬件上运行,内存不足10MB。它连接到你已经使用的消息平台,并包含一个内置的exec工具,使代理能够自主编写和运行脚本。
CapSolver 提供AI驱动的CAPTCHA解决API。通过将PicoClaw的脚本执行功能与CapSolver的REST API结合,你的代理可以检测CAPTCHAs、解决它们、注入令牌并提交表单——而无需人工干预。
最棒的是?你只需用普通语言告诉代理你想做什么。它会编写一个Playwright脚本,提取站点密钥,调用CapSolver,注入令牌并提交表单——全部自主完成。而且因为PicoClaw是编译后的Go代码,整个协调层可以容纳在10美元的RISC-V板上的10MB内存中。
什么是PicoClaw?
PicoClaw 是一个用Go 1.25.7构建的超轻量级个人AI助手,通过一个非凡的自引导过程:AI代理本身驱动了从Python到Go的整个架构迁移,95%的核心代码是自主生成的,并经过人工优化。
数据
| 指标 | PicoClaw | 通常的AI助手 |
|---|---|---|
| 语言 | Go | Python / TypeScript |
| 内存 | < 10MB | 100MB – 1GB+ |
| 启动时间 (0.8GHz核心) | < 1秒 | 30 – 500+ 秒 |
| 硬件成本 | 低至10美元 | 50 – 599美元 |
| 二进制文件 | 单一静态二进制文件 | 运行时 + 依赖项 |
PicoClaw的标语一语道破:10美元硬件。10MB内存。1秒启动。
关键功能

- 超轻量级:内存占用不足10MB——比同类TypeScript代理小99%
- 真正的可移植性:跨RISC-V、ARM64和x86_64架构的单一自包含二进制文件
- 内置工具:代理可以读写文件、执行shell命令、搜索网络、获取页面、发送跨渠道消息、安排cron作业,甚至与I2C/SPI硬件外设交互
- 供应商中立:兼容OpenAI、Anthropic、DeepSeek、Gemini、Qwen、Moonshot、Groq、vLLM、Ollama、Cerebras、Mistral、NVIDIA以及OpenRouter等网关供应商
- 技能系统:通过SKILL.md文件使用JSON或YAML前缀扩展功能
- 记忆系统:在对话中保留每日笔记和长期记忆
- 硬件工具:I2C和SPI工具用于直接嵌入式设备交互——仅限于PicoClaw
ExecTool
PicoClaw的ExecTool(定义在pkg/tools/shell.go中)使浏览器自动化成为可能。它是一个经过精心沙箱化的shell执行环境,具有27多个安全拒绝模式,编译为Go正则表达式,60秒默认超时,工作区路径限制和路径遍历检测。
当你要求代理与网页交互时,它会:
- 通过
write_file工具编写一个Playwright脚本 - 通过
exec工具执行它(在Linux上调用sh -c) - 读取输出(stdout + stderr,截断为10KB)
- 通过聊天频道将结果报告给你
该工具的guardCommand()方法在执行前将每个命令与编译后的正则表达式拒绝模式进行检查,强制执行工作区路径限制,并检测路径遍历尝试。可以将其视为沙箱化的命令行访问——代理可以运行Node.js脚本和本地包安装,但不能执行rm -rf、sudo或docker run。
代理循环
核心逻辑位于pkg/tools/toolloop.go中——一个紧密的循环:LLM调用 -> 提取工具调用 -> 执行工具 -> 追加结果 -> 重复,直到最终文本响应(或MaxIterations,默认20)。此循环在主代理(pkg/agent/loop.go)和后台子代理中通过spawn共享。
什么是CapSolver?
CapSolver 是一个领先的CAPTCHA解决服务,提供AI驱动的解决方案以绕过各种CAPTCHA挑战。支持多种CAPTCHA类型和快速响应时间,CapSolver可以无缝集成到自动化工作流中。
支持的CAPTCHA类型
为什么PicoClaw的方法与众不同
大多数CAPTCHA解决集成分为两种:代码级API集成,你需要编写专门的服务类,或者浏览器扩展,其中Chrome扩展会自动处理一切。PicoClaw采取第三种方法:在边缘硬件上由代理驱动的API集成。
AI代理本身自主协调整个解决流程——编写Playwright脚本,提取站点密钥,调用CapSolver API,并注入解决方案令牌——全部通过它实时编写和执行的脚本完成。关键的是,执行所有协调的Go协调器消耗的内存不到10MB。
边缘设备优势
你可以在成本低于一杯咖啡的硬件上运行CAPTCHA破解自动化。 一个9.9美元的LicheeRV-Nano运行PicoClaw可以接收Telegram消息,与CapSolver的云API协调,注入令牌并提交表单——同时只使用板子64MB内存的一小部分。繁重的工作(CAPTCHA识别)在CapSolver的服务器上完成;PicoClaw只是协调。全天候运行,设备大小仅如邮票。
| 浏览器扩展方法 | PicoClaw的代理驱动方法 |
|---|---|
| 需要安装Chrome扩展 | 不需要扩展——只需API密钥 |
| 需要兼容的Chrome构建 | 与任何无头浏览器兼容 |
| 扩展自动检测CAPTCHAs | 代理从页面DOM中提取站点密钥 |
| 扩展在后台调用API | 代理直接调用CapSolver REST API |
| 需要显示(服务器上使用Xvfb) | 完全无头运行,不需要显示 |
| 重载运行时(1GB+内存) | 超轻量协调器(<10MB内存) |
| 需要x86_64或ARM64桌面 | 在RISC-V、ARM、x86上运行——甚至10美元的板子 |
关键洞察:PicoClaw的Go二进制文件如此轻量,它可以在大多数框架甚至无法启动的硬件上运行——但它可以通过Playwright脚本和CapSolver的REST API协调完整的CAPTCHA解决流程。
前提条件
注意: 以下示例在 Ubuntu 22.04 / 24.04 上测试过。命令使用
apt和bash——如果需要,根据你的发行版进行调整。对于边缘设备(RISC-V、ARM),在构建机器上交叉编译PicoClaw,或从发布页面下载预构建二进制文件。
在设置集成之前,请确保你有:
- Ubuntu 22.04+(或任何Linux发行版——PicoClaw的单一二进制文件可在任何地方运行)
- Go 1.25.7+(仅在从源代码构建时需要)
- PicoClaw 安装并运行(预构建二进制文件或
make build) - CapSolver账户 和API密钥(在此注册)
- Node.js 18+ 安装(用于通过
exec工具运行Playwright脚本) - Playwright 安装在你的工作区中
分步设置
第1步:安装PicoClaw
选项A:预构建二进制文件(最快)
bash
# 下载适用于你平台的最新版本
# 将v0.1.1替换为发布页面上的最新版本
wget https://github.com/sipeed/picoclaw/releases/download/v0.1.1/picoclaw-linux-amd64
chmod +x picoclaw-linux-amd64
sudo mv picoclaw-linux-amd64 /usr/local/bin/picoclaw
# 运行交互式入门向导
picoclaw onboard
选项B:从源代码构建
bash
git clone https://github.com/sipeed/picoclaw.git
cd picoclaw
make deps
make build
make install
# 初始化配置和工作区
picoclaw onboard
这会创建~/.picoclaw/config.json,~/.picoclaw/workspace/(脚本、技能和记忆)。
第2步:设置CapSolver API密钥
将你的CapSolver API密钥作为环境变量添加:
bash
export CAPSOLVER_API_KEY="CAP-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
你可以从CapSolver仪表板获取你的API密钥。
为了持久配置,将其添加到~/.bashrc或~/.zshrc中。
第3步:安装浏览器自动化工具
在Ubuntu上安装Playwright及其系统依赖项:
bash
# 安装Playwright浏览器依赖项(Ubuntu)
sudo apt install -y libnss3 libatk-bridge2.0-0 libdrm2 libxcomposite1 \
libxdamage1 libxrandr2 libgbm1 libpango-1.0-0 libasound2t64
# 在你的PicoClaw工作区中安装Playwright
cd ~/.picoclaw/workspace
npm init -y
npm install playwright
npx playwright install chromium
边缘设备注意事项: 在资源受限的板子上,你可能希望在一个更强大的机器上安装Chromium,并通过Playwright的
browserType.connect()将PicoClaw指向远程浏览器。PicoClaw代理本身只需要约10MB内存;浏览器是繁重的部分。
第4步:为浏览器自动化配置ExecTool
PicoClaw的ExecTool有内置的拒绝模式以确保安全。默认设置对于CAPTCHA自动化已经很好:node、npx和本地npm install都被允许。只有npm install -g、sudo、docker run等危险命令被阻止。标准工作流不需要配置更改。
第5步:启动网关
bash
# 启动频道服务(Telegram、Discord等)
picoclaw gateway
# 或用于交互测试
picoclaw agent
第6步:验证设置
通过任何连接的频道向代理发送测试消息:
你有哪些可用的工具?
代理应列出exec作为其工具之一——这是它用于运行浏览器自动化脚本的工具。你也可以验证Node.js访问:
运行:node --version
代理应通过exec工具执行此命令并返回Node.js版本。
内置的CapSolver技能
PicoClaw使用基于SKILL.md文件的技能系统,带有前缀元数据。技能从三个位置按优先级顺序加载(在pkg/skills/loader.go中定义):
- 工作区技能:
~/.picoclaw/workspace/skills/{name}/SKILL.md(项目级,最高优先级) - 全局技能:
~/.picoclaw/skills/{name}/SKILL.md(用户级) - 内置技能:
skills/{name}/SKILL.md(与二进制文件捆绑)
工作区技能覆盖全局技能,全局技能覆盖内置技能。加载器将前缀元数据读取为JSON或YAML,并为系统提示构建XML摘要。
技能文件(~/.picoclaw/workspace/skills/capsolver/SKILL.md)
markdown
---
name: capsolver
description: "使用CapSolver REST API通过Playwright解决CAPTCHAs。支持reCAPTCHA v2、reCAPTCHA v3和Cloudflare Turnstile。在自动化表单提交或遇到CAPTCHA挑战的页面交互时使用。"
metadata: {"picoclaw":{"emoji":"🔓","always":true,"requires":{"bins":["node"],"env":["CAPSOLVER_API_KEY"]}}}
---
# CapSolver
## 重要:执行要求
当用户要求你解决CAPTCHA时,你必须立即调用工具。不要用“运行中...”或“我将开始...”或“我已经启动自动化...”这样的文本回复。
你的第一步必须是以下之一:
1. 调用`write_file`保存一个Node.js脚本,然后调用`exec`运行它
2. 调用`spawn`并提供详细的任务描述进行后台执行
如果你只用文本回复而没有工具调用,用户将看不到任何变化。始终执行。
## API端点
- **创建任务**: `POST https://api.capsolver.com/createTask`
- **获取结果**: `POST https://api.capsolver.com/getTaskResult`
## 任务类型
| CAPTCHA | 任务类型 | 站点密钥位置 |
|---|---|---|
| reCAPTCHA v2 | `ReCaptchaV2TaskProxyLess` | `data-sitekey`属性 |
| reCAPTCHA v3 | `ReCaptchaV3TaskProxyLess` | `grecaptcha.execute`调用或页面源代码 |
| Cloudflare Turnstile | `AntiTurnstileTaskProxyLess` | Turnstile div上的`data-sitekey` |
企业变体:`ReCaptchaV2EnterpriseTaskProxyLess`、`ReCaptchaV3EnterpriseTaskProxyLess`。
## 工作流程
1. 使用Playwright导航到页面(无头Chromium)
2. 从DOM中提取站点密钥(`[data-sitekey]`属性)
3. 使用站点密钥和页面URL调用`createTask`
4. 每2秒轮询`getTaskResult`直到`status: "ready"`
5. 将令牌注入页面(隐藏表单字段)
6. 提交表单
## 核心代码模式
```javascript
const CAPSOLVER_API_KEY = process.env.CAPSOLVER_API_KEY;
// 第1步:创建任务
const createRes = await fetch('https://api.capsolver.com/createTask', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
clientKey: CAPSOLVER_API_KEY,
task: {
type: 'ReCaptchaV2TaskProxyLess', // 或 ReCaptchaV3TaskProxyLess, AntiTurnstileTaskProxyLess
websiteURL: pageUrl,
websiteKey: siteKey
}
})
});
const { taskId } = await createRes.json();
// 第2步:轮询结果
let token;
while (true) {
await new Promise(r => setTimeout(r, 2000));
const res = await fetch('https://api.capsolver.com/getTaskResult', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ clientKey: CAPSOLVER_API_KEY, taskId })
});
const result = await res.json();
if (result.status === 'ready') { token = result.solution.gRecaptchaResponse || result.solution.token; break; }
if (result.status === 'failed') throw new Error('解决失败');
}
// 第3步:注入令牌(reCAPTCHA)
await page.evaluate((t) => {
document.querySelectorAll('textarea[name="g-recaptcha-response"]')
.forEach(el => { el.value = t; el.innerHTML = t; });
}, token);
```
对于Turnstile,令牌字段通常是`input[name="cf-turnstile-response"]`,解决方案在`result.solution.token`中。
## API参考
所有任务类型都需要`type`、`websiteURL`、`websiteKey`。可选字段因类型而异:
- **reCAPTCHA v2**: `isInvisible`, `pageAction`, `enterprisePayload`, `apiDomain`
- **reCAPTCHA v3**: `pageAction` (来自 `grecaptcha.execute(key, {action: "..."})`)
- **Cloudflare Turnstile**: `metadata.action`, `metadata.cdata`
关键点:
- Frontmatter 使用 JSON 或 YAML (
pkg/skills/loader.go优先尝试 JSON,若失败则回退到 YAML) metadata包含 PicoClaw 特定的配置:emoji用于显示,always用于自动加载,requires用于依赖检查SkillsLoader.BuildSkillsSummary()生成注入到系统提示中的 XML 摘要- "Execution Required" 部分强制调用工具而非文本响应
创建技能后,通过 picoclaw skills 验证 —— 你应该能看到 capsolver 列出。
工作原理
当你要求 PicoClaw 与受 CAPTCHA 保护的页面交互时,以下是消息到结果的完整流程:
你的消息 PicoClaw 代理(Go,约 10MB 内存)
─────────────────────────────────────────────────────────────
"前往该页面, ──► 代理通过 MessageBus 接收
填写表单, │ (pkg/bus/bus.go)
解决 CAPTCHA, ▼
并提交它" ContextBuilder 注入技能
│ (pkg/agent/context.go)
▼
RunToolLoop 启动
│ (pkg/tools/toolloop.go)
▼
代理编写 Node.js 脚本
│ 通过 write_file 工具
▼
ExecTool 运行脚本
┌────────────────────────────┐
│ pkg/tools/shell.go │
│ guardCommand() → 27+ 检查 │
│ sh -c "node script.js" │
│ │
│ Headless Chromium │
│ 1. 导航到页面 │
│ 2. 提取 sitekey │
│ 3. POST /createTask ────────── CapSolver API
│ 4. 轮询 /getTaskResult ─────── (云)
│ 5. 注入 token │
│ 6. 提交表单 │
│ 7. 截图 │
└────────────────────────────┘
│
▼ stdout 返回(最大 10KB)
代理读取输出
│
▼
"表单提交成功!
验证成功!"
CapSolver API 流程
集成的核心是两个 API 调用:
1. 创建任务 —— 将 CAPTCHA sitekey 和页面 URL 发送到 CapSolver:
javascript
const response = await fetch('https://api.capsolver.com/createTask', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
clientKey: CAPSOLVER_API_KEY,
task: {
type: 'ReCaptchaV2TaskProxyLess',
websiteURL: pageUrl,
websiteKey: siteKey
}
})
});
2. 轮询结果 —— 每 2 秒检查一次,直到 CapSolver 返回已解决的 token:
javascript
const result = await fetch('https://api.capsolver.com/getTaskResult', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
clientKey: CAPSOLVER_API_KEY,
taskId: taskId
})
});
// result.solution.gRecaptchaResponse 包含 token
3. 注入 token —— 将其设置在 reCAPTCHA 期望的隐藏表单字段中:
javascript
await page.evaluate((token) => {
const textarea = document.querySelector('textarea[name="g-recaptcha-response"]');
if (textarea) {
textarea.value = token;
textarea.innerHTML = token;
}
}, captchaToken);
完整工作示例
这是 PicoClaw 代理生成并执行以在 Google 示例页面上解决 reCAPTCHA 的实际 Node.js 脚本。代理通过 write_file 写入它,然后通过 exec 运行它 —— 从一条 Telegram 消息中完全自主:
javascript
const { chromium } = require('playwright');
const https = require('https');
const CAPSOLVER_API_KEY = process.env.CAPSOLVER_API_KEY;
const PAGE_URL = '';
function httpsPost(url, data) {
return new Promise((resolve, reject) => {
const req = https.request(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' }
}, (res) => {
let body = '';
res.on('data', chunk => body += chunk);
res.on('end', () => resolve(JSON.parse(body)));
});
req.on('error', reject);
req.write(JSON.stringify(data));
req.end();
});
}
async function solveRecaptcha(siteKey, pageUrl) {
console.log('创建 CapSolver 任务...');
const createRes = await httpsPost('https://api.capsolver.com/createTask', {
clientKey: CAPSOLVER_API_KEY,
task: {
type: 'ReCaptchaV2TaskProxyLess',
websiteURL: pageUrl,
websiteKey: siteKey
}
});
if (createRes.errorId) {
throw new Error(`CapSolver 错误: ${createRes.errorDescription}`);
}
const { taskId } = createRes;
console.log(`任务 ID: ${taskId}`);
let token;
while (true) {
await new Promise(r => setTimeout(r, 2000));
const res = await httpsPost('https://api.capsolver.com/getTaskResult', {
clientKey: CAPSOLVER_API_KEY,
taskId
});
if (res.status === 'ready') {
token = res.solution.gRecaptchaResponse;
console.log(`收到 token!长度: ${token.length}`);
break;
}
if (res.status === 'failed') {
throw new Error(`CapSolver 任务失败: ${res.errorDescription}`);
}
console.log('轮询中... 状态:', res.status);
}
if (!token) throw new Error('未能获取 token');
return token;
}
async function main() {
const browser = await chromium.launch({
headless: true,
args: ['--no-sandbox', '--disable-setuid-sandbox']
});
const page = await browser.newPage();
try {
await page.goto(PAGE_URL, { waitUntil: 'domcontentloaded', timeout: 30000 });
const siteKey = await page.locator('[data-sitekey]').getAttribute('data-sitekey');
console.log(`Sitekey: ${siteKey}`);
const token = await solveRecaptcha(siteKey, PAGE_URL);
await page.evaluate((t) => {
document.querySelectorAll('textarea[name="g-recaptcha-response"]')
.forEach(el => { el.value = t; el.innerHTML = t; });
}, token);
await page.locator('input[type="submit"]').click();
await page.waitForTimeout(3000);
const body = await page.textContent('body');
console.log(body.includes('Success') ? 'SUCCESS!' : '结果:', body.slice(0, 200));
await page.screenshot({ path: 'recaptcha_result.png' });
} finally {
await browser.close();
}
}
main().catch(err => {
console.error('错误:', err.message);
process.exit(1);
});
直接运行:
bash
CAPSOLVER_API_KEY=CAP-XXX node solve_recaptcha.js
或让 PicoClaw 的代理处理一切 —— 只需发送一条 Telegram 消息:
在 https://example.com 解决 reCAPTCHA 并提交表单。
代理读取其 capsolver 技能,写入脚本,通过 exec 运行它(通过 guardCommand() 检查并执行,有 60 秒超时),脚本会导航页面,提取 sitekey,调用 CapSolver,注入 token,然后提交。结果通过 MessageBus 返回给你。
如何使用
一旦设置完成,使用 CapSolver 与 PicoClaw 就像通过任何连接的渠道发送消息一样简单。
示例 1:解决 reCAPTCHA 示例
通过 Telegram、Discord、WhatsApp 或任何连接渠道发送此消息给你的代理:
前往 https://example.com 并使用 CapSolver API 解决
reCAPTCHA,然后提交表单并告诉我是否成功。
会发生什么: 代理读取 capsolver 技能,写入 Playwright 脚本,通过 exec 运行它(通过 guardCommand() 检查并执行,有 60 秒超时),脚本会导航页面,提取 sitekey,调用 CapSolver,注入 token,并提交。结果通过 MessageBus 返回给你。
示例 2:登录受保护的网站
前往 https://example.com/login,用
"[email protected]" 填写邮箱,用 "mypassword" 填写密码,检测并
解决页面上的任何 CAPTCHA,然后点击登录并告诉我
发生了什么。
示例 3:提交联系表单
打开 https://example.com/contact,填写姓名、邮箱和
消息字段,解决 CAPTCHA,提交表单,并告诉我
确认信息。
示例 4:通过 Spawn 进行后台自动化
对于长时间运行的任务,使用 spawn 工具(pkg/tools/spawn.go)将任务委托给后台子代理:
在后台,前往 https://example.com/register,用我的信息创建
账户,解决遇到的任何 CAPTCHA,并在完成后告诉我。
示例 5:边缘设备监控(在 $10 板上运行 Telegram)
如果 PicoClaw 在 LicheeRV-Nano 或类似边缘设备上运行,结合 cron 工具使用:
每小时检查一次 https://example.com/status —— 如果有
CAPTCHA 闸门,解决它并报告状态页面内容。
为何有效
PicoClaw 代理拥有自主解决 CAPTCHA 所需的所有工具:
exec(pkg/tools/shell.go) —— 沙盒化 shell 执行,包含 27+ 安全拒绝模式write_file/read_file(pkg/tools/filesystem.go) —— 在工作区中管理脚本spawn(pkg/tools/spawn.go) —— 用于长时间任务的后台子代理委派web_fetch(pkg/tools/web.go) —— 页面内容获取用于 DOM 分析- 技能系统 (
pkg/skills/loader.go) ——capsolver技能在上下文中提供 API 文档 - 记忆 (
pkg/agent/memory.go) —— 在会话间持久化成功的方法
性能结果
我们在 Ubuntu 24.04 上通过一个实时 Discord 机器人对 Google 的 reCAPTCHA v2 示例页面进行了测试。PicoClaw 代理(使用 glm-4.7 通过 z.ai)接收到 Discord 消息,自主写入 Playwright 脚本,解决 CAPTCHA,并返回结果 —— 全程无需人工干预:
| 指标 | 值 |
|---|---|
| PicoClaw 代理内存使用 | ~8 MB |
| LLM 模型 | glm-4.7 (Zhipu AI 通过 z.ai) |
| 代理迭代次数 | 5 (理解 → 写脚本 → 执行 → 截图 → 编码) |
| 脚本生成(write_file) | < 1 秒 |
| 脚本执行(Playwright + CapSolver) | 24.2 秒 |
| 截图捕获 + base64 编码 | 16ms |
| 生成的工件 | solve_recaptcha_random.js (6KB), before_submit.png (22KB), after_submit.png (6KB) |
| 端到端(Discord 消息到响应) | 约 30 秒 |
| 结果 | 验证成功 |
边缘设备注意事项: 在内存有限的板子(如 64MB 的 $9.90 LicheeRV-Nano)上,PicoClaw 自身轻松运行(~8MB),但 Chromium 需要 100-300MB。使用 Playwright 的
connect()将浏览器卸载到更强大的机器上,同时将轻量级代理保留在边缘设备上。
故障排除
"Cannot find module 'playwright'"
Playwright 未在工作区中安装。运行:
bash
cd ~/.picoclaw/workspace && npm install playwright && npx playwright install chromium
Ubuntu 上缺少浏览器库
如果 Chromium 启动失败并报错缺少共享库,请安装系统依赖项:
bash
sudo apt install -y libnss3 libatk-bridge2.0-0 libdrm2 libxcomposite1 \
libxdamage1 libxrandr2 libgbm1 libpango-1.0-0 libasound2t64
ExecTool 拒绝模式阻止 npm install
PicoClaw 的拒绝模式会阻止 npm install -g(全局安装)、sudo 和 apt install,但允许本地 npm install、node script.js 和 npx playwright install。如果看到 "Command blocked by safety guard",你可以选择禁用拒绝模式或在 ~/.picoclaw/config.json 中提供自定义模式:
json
{ "tools": { "exec": { "enable_deny_patterns": false } } }
或使用仅排除你希望阻止的模式的自定义允许列表。
CAPTCHA 解决超时
- 检查你的 CapSolver API 密钥是否有效
- 在 capsolver.com/dashboard 检查你的 CapSolver 账户余额
- 脚本每 2 秒轮询直到 CapSolver 返回
ready或failed - 如果
exec工具的 60 秒超时不够,脚本会被终止。你可以通过编程方式增加它,或使用spawn工具处理长时间任务(子代理有独立的超时)
ExecTool 60 秒超时太短
pkg/tools/shell.go 中的默认超时为 60 秒。对于 CAPTCHA 自动化,这可能很紧张。使用 spawn 工具处理长时间任务(子代理独立运行),或在源代码中修改 NewExecToolWithConfig() 的超时(timeout: 120 * time.Second)。
未找到 sitekey
脚本从 data-sitekey 属性中提取 sitekey。如果没有找到元素,代理可以适应并从 iframe URL 或页面源中提取。
浏览器在 Docker/容器中崩溃
在 Playwright 启动参数中添加 --no-sandbox、--disable-setuid-sandbox 和 --disable-dev-shm-usage。
代理未使用 CapSolver
验证:(1) 启动 PicoClaw 前 CAPSOLVER_API_KEY 环境变量已设置,(2) 技能文件存在于 ~/.picoclaw/workspace/skills/capsolver/SKILL.md,(3) picoclaw skills 显示它已列出。
最佳实践
1. 将 API 密钥设置为环境变量
不要在脚本中硬编码密钥。使用 process.env.CAPSOLVER_API_KEY,这样代理可以自动获取。PicoClaw 会将父进程的环境传递给所有 exec 工具调用。
2. 在服务器上使用无头模式
PicoClaw 的基于 API 的方法可在 完全无头环境 中运行 —— 无需 Xvfb 或虚拟显示。这比基于扩展的方法有显著优势,尤其是在边缘设备上,因为那里没有显示硬件。
3. 监控你的 CapSolver 余额
每次 CAPTCHA 解决都会消耗积分。定期在 capsolver.com/dashboard 检查你的余额。
4. 保持 Playwright 更新
CAPTCHA 提供商不断演变。保持 Playwright 和 Chromium 更新:
bash
cd ~/.picoclaw/workspace && npm update playwright && npx playwright install chromium
5. 对长时间任务使用 Spawn 工具
浏览器自动化可能需要 30-60 秒。使用 spawn 而不是依赖代理的主循环,以避免超时并保持主代理对其他消息的响应能力。
6. 利用 PicoClaw 的记忆系统
在成功解决 CAPTCHA 后,代理会将方法保存到 ~/.picoclaw/workspace/memory/MEMORY.md。下次它会回忆出成功的模式。
7. 边缘设备部署:将浏览器卸载
在RAM有限的10美元板上,通过chromium.connect('ws://server:9222')连接到远程Chromium实例。这使得PicoClaw在边缘设备上保持约8MB的占用量,而浏览器则在其他地方运行。
8. 仔细配置工作区限制
PicoClaw的restrict_to_workspace设置将文件和执行操作限制在工作区目录内。确保你的脚本和Playwright安装位于~/.picoclaw/workspace/中。
结论
PicoClaw + CapSolver的集成代表了一种从根本上不同的验证码解决方法。与在桌面电脑上使用重型浏览器扩展不同,一个在10美元硬件上运行的Go编译代理负责整个解决流程:
- 使用Playwright导航到目标页面
- 从
data-sitekey属性中提取站点密钥 - 通过直接调用CapSolver的REST API进行解决
- 将解决方案令牌注入隐藏表单字段
- 提交表单并验证成功
这为您提供了:
- 无需Chrome扩展依赖 — 可与任何无头浏览器配合使用
- 无头服务器支持 — 不需要显示或Xvfb
- 自然语言控制 — 只需通过Telegram、Discord或12+种其他渠道告诉代理您想要完成什么
- 边缘设备部署 — 在10美元的RISC-V板上以低于10MB的RAM全天候运行
- 默认安全 — ExecTool中的27+个拒绝模式可防止危险命令
附加内容:快速启动脚本
将上述完整工作示例保存到~/.picoclaw/workspace/solve_captcha.js并运行:
bash
CAPSOLVER_API_KEY=CAP-XXX node ~/.picoclaw/workspace/solve_captcha.js
或者只需向您的PicoClaw代理发送一条Telegram消息,让它自主处理一切。
准备好开始了吗? 注册CapSolver 并使用优惠码 PICOCLAW 在首次充值时获得额外6%的奖励!

FAQ
PicoClaw如何与浏览器扩展不同地解决CAPTCHAs?
PicoClaw直接使用CapSolver的REST API。代理编写并执行Node.js/Playwright脚本,通过调用createTask和getTaskResult获取解决方案令牌,然后将其注入页面DOM。不需要浏览器扩展。整个流程通过PicoClaw的ExecTool(pkg/tools/shell.go)完成,该工具以27+个安全拒绝模式运行sh -c "node script.js",限制工作区路径,并可配置超时时间。
我需要特殊的Chrome版本吗?
不需要。与需要Chrome for Testing的扩展方法不同(因为品牌Chrome 137+禁用了扩展加载),PicoClaw可以与任何Chromium构建配合使用 — 包括Playwright捆绑的Chromium、标准Chromium包或无头Chrome。这在边缘设备上尤其重要,因为您可能只能使用发行版提供的Chromium。
PicoClaw真的能在10美元的板上运行吗?
是的。PicoClaw在0.6GHz核心上运行时RAM占用低于10MB,启动时间不到1秒。它支持RISC-V、ARM64和x86_64。CapSolver的云API处理繁重的工作;PicoClaw只需进行协调。注意:Chromium需要100-300MB RAM,因此RAM低于256MB的板应连接到远程浏览器。
CapSolver支持哪些验证码类型?
CapSolver支持reCAPTCHA v2(复选框和不可见版)、reCAPTCHA v3、reCAPTCHA Enterprise、Cloudflare Turnstile、AWS WAF验证码等。PicoClaw集成示例中使用的是ReCaptchaV2TaskProxyLess,但技能文件中记录了所有任务类型。代理通过修改任务类型参数可以适应任何支持的验证码类型。
我能在无头服务器上使用此工具吗?
可以 — 这正是PicoClaw方法的优势所在。由于不涉及浏览器扩展,您不需要Xvfb或虚拟显示。Playwright可直接在完全无头模式下运行。结合PicoClaw的极小占用,这使其非常适合持续运行的服务器部署。
CapSolver的费用是多少?
CapSolver根据验证码类型和数量提供具有竞争力的价格。访问capsolver.com查看当前价格。使用优惠码PICOCLAW可在首次充值时获得额外6%的折扣。
PicoClaw是免费的吗?
PicoClaw是开源的(MIT许可证),可在您自己的硬件上免费运行。您需要为所选AI模型提供商的API密钥以及CapSolver账户和积分。PicoClaw二进制文件本身没有运行成本。
验证码解决需要多长时间?
在我们的Discord机器人集成测试中,使用reCAPTCHA v2,代理的Playwright脚本(包括CapSolver API轮询)执行时间为24.2秒。从Discord消息到响应的完整端到端时间约为30秒,包括5次LLM迭代用于脚本生成、执行和视觉验证。
PicoClaw的拒绝模式会阻止我的自动化脚本吗?
不会。pkg/tools/shell.go中的拒绝模式阻止的是危险的系统命令(如rm -rf、sudo、docker run),而不是常规的Node.js执行。运行node script.js和本地npm install是完全允许的。仅阻止全局安装(npm install -g)和包管理命令。
我可以并行运行多个验证码解决任务吗?
可以。使用PicoClaw的spawn工具创建多个后台子代理,每个处理不同的验证码任务。SubagentManager(pkg/tools/subagent.go)独立运行每个子代理,并通过MessageBus将结果报告回来。
PicoClaw与Nanobot在验证码解决方面相比如何?
PicoClaw受到Nanobot(Python)的启发,用Go重写以实现极端效率。两者都使用代理驱动的验证码解决 — 关键区别在于资源需求。Nanobot需要100MB+ RAM和Python;PicoClaw需要低于10MB,并作为一个单一二进制文件发布。对于边缘设备,PicoClaw是明显的选择。
合规声明: 本博客提供的信息仅供参考。CapSolver 致力于遵守所有适用的法律和法规。严禁以非法、欺诈或滥用活动使用 CapSolver 网络,任何此类行为将受到调查。我们的验证码解决方案在确保 100% 合规的同时,帮助解决公共数据爬取过程中的验证码难题。我们鼓励负责任地使用我们的服务。如需更多信息,请访问我们的服务条款和隐私政策。
更多

为什么你的多账号策略需要同时具备环境隔离和AI绕过
掌握多账号管理,使用AdsPower和CapSolver。通过环境隔离和AI绕过技术防止账号被封禁。

Emma Foster
02-Mar-2026

PicoClaw自动化:集成CapSolver API指南
学习如何将CapSolver与PicoClaw集成,以在超轻量级10美元边缘计算硬件上实现自动验证码解决。

Ethan Collins
02-Mar-2026

人工智能SEO自动化如何运作:从SERP抓取到内容生成
学习AI搜索引擎优化自动化如何通过搜索引擎结果页抓取和内容生成优化工作流程。发现如何为2026年构建可扩展的SEO系统。

Lucas Mitchell
13-Feb-2026

CapSolver人工智能 CapSolver人工智能-大语言模型架构在实践中的应用:构建自适应CAPTCHA识别系统的决策流水线
探索CapSolver的人工智能大语言模型架构,用于自适应验证码破解,结合视觉、推理和自主决策。

Emma Foster
10-Feb-2026

代理AI新闻:为什么网页自动化在CAPTCHA上持续失败
了解AI代理为何难以应对网页自动化和CAPTCHA。了解如何通过CapSolver的解决方案弥合人工智能推理与执行之间的差距。

Nikolai Smirnov
05-Feb-2026

Crawl4AI 与 Firecrawl:2026年全面对比与评测
比较Crawl4AI与Firecrawl在2026年的表现。了解这些AI网络爬虫工具的功能、价格和性能,用于适用于大语言模型的Markdown提取。

Ethan Collins
04-Feb-2026

