360 Secure SkillHub
360 安全技能中心

Pilot Consensus

核心功能:实现分布式共识协议,支持提案发起、投票、选票收集及法定人数校验。典型场景:多智能体需统一决策、拜占庭容错的集群协调、分布式事务或状态变更。依赖pilotctl工具及pilot-protocol技能,通过Bash命令操作,输入提案内容、投票意愿等,输出共识达成结果,适用于无需单领导者决策、需强一致性的场景。

teoslayer
teoslayer
热度 38.61
最近更新 2026-05-11 17:41:28
分类:开发依赖:代码执行 / 第三方 API应用场景:API 集成 / 自动化脚本 / 任务管理

安装技能

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

执行命令安装此 skill: npx secure-skills-cli add pilot-consensus
Metadata
name
pilot-consensus
description
Distributed voting and agreement protocols for multi-agent decision making. Use this skill when: 1. Multiple agents need to agree on a value or decision 2. You need Byzantine fault-tolerant consensus in a swarm 3. You want to coordinate distributed transactions or state changes Do NOT use this skill when: - A single leader can make decisions (use pilot-leader-election) - You only need eventual consistency (use pilot-gossip)
tags
["pilot-protocol","consensus","voting","coordination"]
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-consensus

Implement distributed consensus protocols for multi-agent coordination.

Commands

Propose a value

PROPOSAL_ID=$(uuidgen)
pilotctl --json publish "registry-hostname" "consensus:$CONSENSUS_GROUP" \
  --data "{\"type\":\"proposal\",\"id\":\"$PROPOSAL_ID\",\"proposer\":\"$AGENT_ID\",\"value\":$PROPOSAL_VALUE,\"term\":$CURRENT_TERM}"

Vote on a proposal

pilotctl --json send-message "$PROPOSER_ADDRESS" \
  --data "{\"type\":\"vote\",\"proposal_id\":\"$PROPOSAL_ID\",\"voter\":\"$AGENT_ID\",\"approve\":true,\"term\":$CURRENT_TERM}"

Collect votes and check quorum

VOTES=$(pilotctl --json received | jq '[.messages[] | select(.payload.type == "vote" and .payload.proposal_id == "'$PROPOSAL_ID'")]')
APPROVALS=$(echo "$VOTES" | jq '[.[] | select(.payload.approve == true)] | length')
QUORUM=$(( ($TOTAL_VOTERS / 2) + 1 ))

if [ "$APPROVALS" -ge "$QUORUM" ]; then
  echo "Consensus reached"
fi

Workflow Example

Three-phase consensus protocol:

#!/bin/bash
CONSENSUS_GROUP="config-update"
PROPOSAL_VALUE='{"max_workers":10}'
REGISTRY_HOST="registry.example.com"

# Phase 1: Prepare
PROPOSAL_ID=$(uuidgen)
pilotctl --json publish "$REGISTRY_HOST" "consensus:$CONSENSUS_GROUP" \
  --data "{\"type\":\"prepare\",\"id\":\"$PROPOSAL_ID\",\"value\":$PROPOSAL_VALUE,\"term\":$CURRENT_TERM}"

# Phase 2: Vote
sleep 3
VOTES=$(pilotctl --json received | jq '[.messages[] | select(.payload.type == "vote")]')
APPROVALS=$(echo "$VOTES" | jq '[.[] | select(.payload.approve == true)] | length')

# Phase 3: Commit
if [ "$APPROVALS" -ge "$QUORUM" ]; then
  pilotctl --json publish "$REGISTRY_HOST" "consensus:$CONSENSUS_GROUP" \
    --data "{\"type\":\"commit\",\"proposal_id\":\"$PROPOSAL_ID\",\"value\":$PROPOSAL_VALUE}"
fi

Dependencies

Requires pilot-protocol skill, jq, and uuidgen.