# Field note: an agent buys evidence for a robot arm

## The setup

Our [LeRobot test bench](https://wcgw-wcgw-lerobot.static.hf.space/) replays recorded pick-and-place episodes from a low-cost SO-101 desktop arm. A pink Lego brick goes into a transparent box. WCGW's analysis of those recordings produced six hazard hypotheses: unexpected movement, incorrect localization, excessive force, collision, failed grasp, and loss of control. All six are **unconfirmed**. The dataset has no physical units, so the recordings alone can't say how hard the gripper squeezes.

That is a gap you close with evidence, not with more reasoning. So we tried something new: we let an agent **buy** the evidence.

[Nevermined](https://nevermined.app/catalog/)'s AI Services Catalog lists 163 pay-per-call services behind one Router and an MCP server. Beta accounts receive 200,000 welcome credits. We pointed our agent at the catalog with a budget and a rule: quote everything, pay only within the cap, and record every payment.

## What the money actually is

The agent spent 16,335 Nevermined credits during this experiment. A cited web search costs 621 credits, and scraping a page costs 216.

Credits pay both rails the catalog settles on (x402 on Base, MPP on Tempo). With no wallet delegation set up, a call that runs out of credits simply fails. Nothing falls back to real money.

## Round 1: the obvious plan

We started generic: hazards of collaborative robot arms.

| Call | Credits | What came back |
|---|---|---|
| Perplexity search | 621 | A SafeWork NSW / UTS report on cobot risks, with an 18-row hazard table |
| Exa paper search | 1,188 | Five on-topic risk-assessment papers |
| RecallRadar "robot" | 10,800 | Twenty product-safety notices, every one a toy or a robotic pool cleaner |
| Firecrawl × 3 | 648 | Two useful documents and one wrong page |

The lesson was uncomfortable. **The cheap, general services delivered the value; the one "safety" service cost 81% of the round and was the least relevant.** The wrong page was the agent's own fault: it guessed a URL instead of resolving the DOI. We made that a rule for the next round.

## Round 2: the test bench

This time, the agent first read the test bench's own hazard report. It then searched the catalog for free, chose three providers, and chained them: search → resolve URLs → scrape → combine. The budget guard was code, not good intentions: any call quoted over 2,000 credits, or pushing the round past its 10,000 cap, was refused before payment.

It spent **3,078 credits** across six calls. Every call settled, and none was wasted.

### What the evidence says about "excessive force"

The SO-101 uses Feetech STS3215 servos. The follower variant is rated at about 27 kg·cm stall torque at 7.4 V. If the gripper jaw's lever arm is 5–10 cm (**our assumption, not a measurement**), that is roughly **27–54 N** at the jaw.

That sounds harmless next to the 140 N that ISO/TS 15066 tables commonly list for hands and fingers. But force is the wrong number to stop at. The standard also sets **pressure** limits, about 300 N/cm² for a fingertip pad. Spread 54 N over a flat pad and you are far below it. Concentrate it on a 1 mm jaw edge and you can be above it. The hypothesis worth testing is not "the arm is too strong". It is **"the jaw edges are too sharp"**.

(ISO/TS 15066 is written for industrial collaborative robots. We use it here as a reference point, not as a compliance claim about a hobby arm.)

### Two failure mechanisms we did not have

A practitioner's teardown of the STS3215 described two behaviours that turn into candidate hazards:

- **Thermal cut-off.** At a default 70 °C the servo disables torque. On a loaded joint, that means the arm drops.
- **Overload protection that software can erase.** The servo backs off after sitting at 80% of stall for two seconds, but a new position command clears the flag. A control loop that streams commands without reading status can keep a stalled servo pushing until it burns out. Whether LeRobot's loop does this is now a question for us to check, not an answer.

### The tables disagree

One web source lists the hand limit as 75 N and 40 N/cm². Others say 140 N. In a safety-equipment maker's reproduction of the standard, "75" for hands and fingers appears among the body model's **spring constants**, in N/mm. Our working hypothesis: someone copied a stiffness into a force column. Whatever the cause, the practical advice holds: **take your limits from the standard, not from a blog table.** That includes this one.

## What this was, and what it wasn't

An agent discovered services, chose them, quoted them, paid for them, and chained their outputs into a traceable evidence pack. Every claim in it is tied to a settled payment with an on-chain receipt. That part worked.

What it did **not** do is decide anything. A human approved both budgets. The force figure is an estimate built on an assumed lever arm. The five new hypotheses are candidates, waiting for a force gauge, a thermometer, and an engineer. That's the WCGW way: the agent widens what you can see, and the human owns the safety model.

**Next on the bench:** measure the jaw geometry and the force at stall, log servo temperatures during long replays, and read LeRobot's control loop for the overload flag.

*Spend: 16,335 of 200,000 credits (≈ $0.15), 12 of 12 calls settled.*

**The data:** the transaction ledger, payment receipts, quotes, the agent's decision log and both evidence packs are published as [NEVERMINED-BUYER-200K-01](https://huggingface.co/datasets/wcgw/nevermined-buyer-200k-01) on Hugging Face (CC BY 4.0).
