Install
openclaw skills install pilot-load-balancerDistribute tasks across worker pools with health-aware load balancing. Use this skill when: 1. You need to distribute tasks across multiple worker agents 2....
openclaw skills install pilot-load-balancerImplement load balancing strategies to distribute tasks across worker pools.
WORKERS=$(pilotctl --json peers --search "role:worker" | jq -r '[.[] | {address, node_id, tags}]')
ROBIN_INDEX=$(cat /tmp/load-balancer-index.txt 2>/dev/null || echo 0)
NEXT_WORKER=$(echo "$WORKERS" | jq -r ".[$ROBIN_INDEX].address")
pilotctl --json send-message "$NEXT_WORKER" \
--data "{\"type\":\"task_assignment\",\"task_id\":\"$TASK_ID\"}"
echo "$(( (ROBIN_INDEX + 1) % WORKER_COUNT ))" > /tmp/load-balancer-index.txt
LEAST_LOADED=$(echo "$WORKER_STATUS" | jq -r 'sort_by(.active_tasks) | first | .worker')
pilotctl --json send-message "$LEAST_LOADED" \
--data "{\"type\":\"task_assignment\",\"task_id\":\"$TASK_ID\"}"
Distribute 10 tasks across 3 workers:
#!/bin/bash
WORKERS=$(pilotctl --json peers --search "pool:compute-workers" | jq -r '.[].address')
WORKER_ARRAY=($WORKERS)
ROBIN_INDEX=0
for i in {1..10}; do
WORKER=${WORKER_ARRAY[$ROBIN_INDEX]}
ROBIN_INDEX=$(( (ROBIN_INDEX + 1) % ${#WORKER_ARRAY[@]} ))
pilotctl --json send-message "$WORKER" \
--data "{\"type\":\"task_assignment\",\"task_id\":\"task-$i\"}" &
done
wait
Requires pilot-protocol skill, jq, and uuidgen.