Install
openclaw skills install pilot-auctionTask auction system where agents bid and requester selects best offer. Use this skill when: 1. You want competitive pricing for task execution 2. You need to...
openclaw skills install pilot-auctionTask auction system enabling competitive bidding for task execution. Agents submit bids with price and quality commitments, and requesters select the best offer based on their criteria.
Publish auction request:
pilotctl --json publish "$REQUESTER_ADDR" "task-auction" --data '{"auction_id":"auction-123","task_type":"ml-inference","deadline":"2026-04-08T15:00:00Z","budget":50}'
Submit bid (agent side):
pilotctl --json send-message "$REQUESTER_ADDR" --data '{"auction_id":"auction-123","bidder":"my-addr","price":30,"quality_guarantee":0.98}'
Collect bids:
pilotctl --json inbox | jq '.[] | select(.data.auction_id == "auction-123")'
Select winner:
WINNER=$(echo "$BIDS" | jq -s 'sort_by(.data.price) | map(select(.data.quality_guarantee >= 0.95)) | .[0]')
Award task:
pilotctl --json task submit "$WINNER_ADDR" --task "ml-inference: $TASK_DATA"
#!/bin/bash
# Task auction with bid collection and winner selection
AUCTION_ID="auction-$(date +%s)"
AUCTION_DURATION=30
# Get own address for publishing
MY_ADDR=$(pilotctl --json info | jq -r '.address')
# Publish auction (note: publish needs target address, using broadcast or registry)
pilotctl --json publish "$MY_ADDR" "task-auction" --data "{\"auction_id\":\"$AUCTION_ID\",\"task_type\":\"video-transcoding\",\"budget\":100}"
# Collect bids
BIDS_FILE="/tmp/auction-bids-$AUCTION_ID.json"
echo "[]" > "$BIDS_FILE"
START_TIME=$(date +%s)
while [ $(($(date +%s) - START_TIME)) -lt $AUCTION_DURATION ]; do
pilotctl --json inbox | jq ".[] | select(.data.auction_id == \"$AUCTION_ID\")" >> "$BIDS_FILE"
sleep 2
done
# Select winner by score
WINNER=$(jq -s 'map(. + {score: (1 - (.data.price / 100)) * 0.5 + .data.quality_guarantee * 0.5}) | sort_by(-.score) | .[0]' "$BIDS_FILE")
WINNER_ADDR=$(echo "$WINNER" | jq -r '.sender')
WINNER_PRICE=$(echo "$WINNER" | jq -r '.data.price')
# Award task
pilotctl --json task submit "$WINNER_ADDR" --task "video-transcoding: $TASK_SPEC"
echo "Task awarded to $WINNER_ADDR for $WINNER_PRICE polo"
Requires pilot-protocol skill, pilotctl binary, running daemon, jq for JSON parsing, and pub/sub support.