一键导入
autoresearch-coordinator
"Coordinate distributed autoresearch experiments across GPU workers discovered via ERC-8004 and paid via x402 micropayments."
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
"Coordinate distributed autoresearch experiments across GPU workers discovered via ERC-8004 and paid via x402 micropayments."
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | autoresearch-coordinator |
| description | Coordinate distributed autoresearch experiments across GPU workers discovered via ERC-8004 and paid via x402 micropayments. |
| metadata | {"openclaw":{"emoji":"🔬","requires":{"bins":["python3","curl"]}}} |
Coordinate distributed autoresearch experiments across GPU workers discovered on-chain via ERC-8004 and paid per-experiment via x402 micropayments. This replaces the Ensue-based shared-memory coordinator from autoresearch-at-home with a fully decentralised discovery and payment loop built on obol-stack primitives.
devops_mlops/model_versioning capabilities via the 8004scan public index APItrain.py experiments to remote GPU workers through x402 payment gatesautoresearch-worker (then monetize it with obol sell http)buy-x402discoveryethereum-local-walletobol-stack# Discover available GPU workers from the preferred public index API
python3 scripts/coordinate.py discover
# Discover with custom limit
python3 scripts/coordinate.py discover --limit 5
# Probe a specific worker for pricing
python3 scripts/coordinate.py probe https://worker.example.com/services/autoresearch-worker
# Submit a single experiment to a worker
python3 scripts/coordinate.py submit https://worker.example.com/services/autoresearch-worker train.py
# Submit with custom config overrides
python3 scripts/coordinate.py submit https://worker.example.com/services/autoresearch-worker train.py \
--config '{"batch_size": 64, "learning_rate": 0.001}'
# View global leaderboard (best val_bpb across all workers)
python3 scripts/coordinate.py leaderboard
# Run continuous experiment loop (discover -> pick -> submit -> publish)
python3 scripts/coordinate.py loop train.py
# Loop with worker preference and max rounds
python3 scripts/coordinate.py loop train.py --prefer https://worker.example.com/services/autoresearch-worker --rounds 10
| Command | Description |
|---|---|
discover [--limit N] | Query the preferred public index API for GPU workers with devops_mlops/model_versioning skill |
probe <endpoint> | Send unauthenticated request to parse 402 pricing from the worker |
submit <endpoint> <train.py> [--config JSON] | Submit experiment with x402 payment (pre-sign ERC-3009, attach X-PAYMENT) |
leaderboard [--limit N] | Query 8004scan for all autoresearch workers, rank by best val_bpb |
loop <train.py> [--prefer URL] [--rounds N] | Continuous loop: discover, pick best worker, submit, collect, publish |
The coordinator implements a THINK/CLAIM/RUN/PUBLISH loop:
train.py, review leaderboard results, decide on next experiment variationtrain.py + config to worker via POST /experiment through the x402 payment gateEach step is atomic and idempotent. If a worker fails mid-experiment, the coordinator retries with the next available worker.
Workers register on-chain via ERC-8004 and advertise capabilities through OASF (Open Agent Skills Framework) metadata. The coordinator discovers workers via the public 8004scan API:
GET https://www.8004scan.io/api/v1/public/agents
?protocol=OASF
&search=devops_mlops/model_versioning
&limit=20
The API returns agent summary objects. The coordinator then prefers the embedded registration document in raw_metadata.offchain_content and falls back to the off-chain registration URI when needed.
From the registration document it extracts:
services[] entry with name: OASFbest_val_bpbExperiment submission uses the same x402 payment flow as buy-x402:
402 Payment Required with pricingTransferWithAuthorization voucher via the current remote-signer API (GET /api/v1/keys, POST /api/v1/sign/<address>/typed-data)X-PAYMENT header containing the signed voucherPayment is per-experiment (not per-token). The 402 response includes amount in the v2 wire format; legacy sellers may still return maxAmountRequired.
After collecting a result from a worker, the coordinator stores provenance metadata locally:
{
"experiment_id": "exp-20260312-a1b2c3",
"train_hash": "sha256:abcdef...",
"val_bpb": 1.234,
"worker_endpoint": "https://worker.example.com/services/autoresearch",
"worker_agent_id": 42,
"timestamp": "2026-03-12T10:30:00Z",
"payment_tx": "0xdeadbeef..."
}
Results are appended to $DATA_DIR/autoresearch/results.jsonl (one JSON object per line).
| Variable | Default | Description |
|---|---|---|
SCAN_API_URL | https://www.8004scan.io/api/v1/public | Public 8004scan API base URL for worker discovery |
REMOTE_SIGNER_URL | http://remote-signer:9000 | Remote-signer REST API for payment signing |
ERPC_URL | http://erpc.erpc.svc.cluster.local:4000/rpc | eRPC gateway base URL |
ERPC_NETWORK | base | Default chain for payment |
DATA_DIR | /data | Base directory for result storage |
coordinate.py
|
+-- discover: 8004scan API (OASF filter)
| |
| v
| Worker .well-known/agent-registration.json
|
+-- probe: POST /experiment (no payment)
| |
| v
| 402 Payment Required (pricing JSON)
|
+-- submit: ERC-3009 sign via remote-signer
| |
| +-- POST /experiment + X-PAYMENT header
| | |
| | v
| | x402 verifier -> facilitator -> GPU worker
| | |
| | v
| | 200 + experiment result
| |
| v
+-- publish: results.jsonl (local provenance)
obol openclaw onboardurllib; no third-party Python dependencies requiredbuy-x402 balancereferences/coordination-protocol.md -- Ensue-to-obol mapping, discovery flow, payment flow, leaderboard formatdiscovery skill for raw ERC-8004 registry queriesbuy-x402 skill for the x402 buyer sidecar architecturesell skill for running a GPU worker (sell-side)CLI-first Obol Stack development and QA runbook. Use when working on obol-stack lifecycle, obol CLI surfaces, x402 seller/buyer tests, live Base Sepolia OBOL smoke, Anvil fork regressions, ERC-8004 registration, LiteLLM paid routing, release-smoke, cloudflared, Renovate image bumps, or remote QA worktrees.
Verified contract addresses for major Ethereum protocols across mainnet and L2s. Use this instead of guessing. SKILL.md is an index — load the appropriate references/*.md file for the addresses you need. Start with references/obol-payments.md for the Stack's own rails (USDC + OBOL + Permit2 + ERC-8004 on the supported chains). Other categories include stablecoins, staking + Obol/Splits, DEXs, lending and DeFi, L2-native protocols, infrastructure (Safe, AA, Chainlink, EigenLayer, ENS, OpenSea), bridges (CCIP, Across, Arbitrum One + Robinhood Chain canonical), Robinhood Chain, and major token addresses. Always verify on-chain via eth_getCode + eth_call before sending value.
Move assets between Ethereum L1 and L2s — canonical Arbitrum-style bridges (Arbitrum One, Robinhood Chain), Base's OP-stack bridge, and fast third-party routes (Across, CCIP). Quote the full round trip before moving anything: canonical deposits take ~10-15 min, canonical withdrawals lock capital for 7 DAYS plus an L1 claim tx. Use when the user says 'bridge', 'move funds to Arbitrum/Base/Robinhood', 'withdraw to L1', or when deploying to a new chain. Verify every bridge address, confirm with the user, test small first.
"Buy from any x402-gated endpoint. Start with `go <url>` — it probes, detects the offer type, and runs the right flow. Expert flows underneath: `pay` for one-shot HTTP services (single authorization, no sidecar), `pay-agent` for one-shot streaming agent calls, and `buy` for long-running paid inference (pre-authorized batch via PurchaseRequest, exposed as `paid/<remote-model>`). Supports USDC (EIP-3009) and OBOL (Permit2). Zero signer access at runtime — spending is capped by design and nothing moves on-chain until a voucher is spent."
Execute Ethereum transactions NOW — send ETH, approve tokens, call contracts, sign messages. Uses the in-cluster remote-signer (agents never touch private keys). Use this skill whenever the user wants to DO something onchain, not just learn about wallets.
Query Ethereum networks through the local RPC gateway. Use when asked about blocks, balances, transactions, gas prices, token balances, or any eth_* JSON-RPC method. All queries are read-only and routed through the in-cluster eRPC load balancer.