360 Secure SkillHub
360 安全技能中心

Pilot Formation

核心功能:支持部署星型、环型、全互联、树型等多种结构化网络拓扑,自动完成节点握手与信任建立。典型场景:需特定通信模式(如星型协调、环型共识)、降低连接开销、分层扩展集群时使用;不适用于临时节点发现或拓扑频繁变更场景。通过Bash脚本调用pilotctl命令执行,依赖pilot-protocol技能、pilotctl二进制及jq工具,输出成型的结构化网络集群。

teoslayer
teoslayer
热度 40.18
最近更新 2026-05-11 17:41:32
分类:自动化依赖:代码执行 / 第三方 API应用场景:自动化脚本 / 工作流 / DevOps

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add pilot-formation
Metadata
name
pilot-formation
description
Deploy predefined network topologies (star, ring, mesh, tree) for structured swarms. Use this skill when: 1. You need specific communication patterns (star coordinator, ring consensus) 2. You want to minimize connection overhead with structured topologies 3. You need hierarchical organization (tree) for scaling Do NOT use this skill when: - Ad-hoc peer discovery is sufficient (use pilot-swarm-join) - Topology changes frequently (use dynamic mesh)
tags
["pilot-protocol","topology","network-formation","swarm-structure"]
license
AGPL-3.0
compatibility
Requires pilot-protocol skill and pilotctl binary on PATH. The daemon must be running (pilotctl daemon start).
metadata
{"author":"vulture-labs","version":"1.0","openclaw":{"requires":{"bins":["pilotctl"]},"homepage":"https://pilotprotocol.network"}}
allowed-tools
["Bash"]

pilot-formation

Deploy structured network topologies with automatic peer handshaking and trust establishment. Supports star (hub-and-spoke), ring (circular), mesh (all-to-all), tree (hierarchical), and line (chain) formations.

Commands

Deploy star (hub connects to all spokes):

WORKERS=$(pilotctl --json peers --search "role:worker" | jq -r '.[].hostname')
for worker in $WORKERS; do
  pilotctl --json handshake "$worker" "Forming star topology"
  sleep 1
  NODE_ID=$(pilotctl --json pending | jq -r '.pending[] | select(.hostname == "'"$worker"'") | .node_id')
  [ -n "$NODE_ID" ] && pilotctl --json approve "$NODE_ID"
done

Deploy ring (circular connections):

AGENTS=$(pilotctl --json peers --search "swarm:$SWARM_NAME" | jq -r 'sort_by(.node_id) | .[].address')
# Connect to next agent in sorted order (implementation in workflow)

Deploy mesh (all-to-all):

ALL_PEERS=$(pilotctl --json peers --search "swarm:$SWARM_NAME" | jq -r '.[].address')
for peer in $ALL_PEERS; do
  pilotctl --json handshake "$peer" "Forming mesh topology" &
done
wait

# Approve all pending handshakes
PENDING=$(pilotctl --json pending | jq -r '.[].node_id')
for peer in $PENDING; do
  pilotctl --json approve "$peer" &
done
wait

Workflow Example

#!/bin/bash
# Deploy star topology

SWARM_NAME="task-swarm"
MY_ADDR=$(pilotctl --json info | jq -r '.address')
REGISTRY_HOST="registry.example.com"

# Get swarm members
SWARM_MEMBERS=$(pilotctl --json peers --search "swarm:$SWARM_NAME" | jq -r '.[].address')

echo "Deploying star topology (hub: $MY_ADDR)"

# Hub connects to all spokes
for worker in $SWARM_MEMBERS; do
  if [ "$worker" != "$MY_ADDR" ]; then
    echo "Connecting to spoke: $worker"
    pilotctl --json handshake "$worker" "Forming star topology"
    sleep 1
    NODE_ID=$(pilotctl --json pending | jq -r '.pending[] | select(.hostname == "'"$worker"'") | .node_id')
    [ -n "$NODE_ID" ] && pilotctl --json approve "$NODE_ID"
  fi
done

# Publish topology
pilotctl --json publish "$REGISTRY_HOST" "topology:$SWARM_NAME" \
  --data "{\"type\":\"star\",\"hub\":\"$MY_ADDR\",\"formed_at\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"}"

echo "Star topology complete"

Dependencies

Requires pilot-protocol skill, pilotctl binary, running daemon, and jq for JSON parsing.