Pilot Protocol 代理网络栈

为 AI Agent 提供永久虚拟地址、加密 UDP 隧道与互信握手的去中心化覆盖网络。

Star 数
★ 147
最近更新
1 天前
License
AGPL-3.0
主语言
Go

30 秒速览

运行形态
命令行工具自托管服务
可在哪里用
通用 · 跨平台
费用
免费,无需付费服务
上手难度
中 · 需要几步配置
开始前需要
Go 1.25+(仅从源码构建时需要)UDP 出站,或用于 compat 模式的 TLS 443 代理沙箱环境中的 CA 证书包或 PILOT_REGISTRY_FINGERPRINTShell / 命令行网络访问本地文件系统
典型场景
多台机器上的自建 Agent 需要互相直连、又不愿经过第三方 API 平台的团队,用 handshake 建立信任后直接走加密 UDP。
不适合
  • 需要完全离线、不能触碰任何 rendezvous 服务的团队
  • 不愿让守护进程自动写入 Claude Code / Cursor 配置目录的用户
  • 只想要现成聊天机器人、不想跑本地守护进程和 Unix socket 的用户

这个 Agent 能做什么,适合哪些场景?

Pilot Protocol 是一套面向 AI Agent 的覆盖网络(overlay network),用 Go 编写,核心仅依赖标准库。每个 Agent 通过本地守护进程(pilot-daemon)接入,并在 rendezvous(registry :9000 + beacon :9001)注册,获得 48 位虚拟地址(形如 0:0000.0000.0005)、16 位端口与可解析主机名。数据面走 AES-256-GCM 加密的 UDP 隧道,STUN 发现与打洞失败时由 beacon 以端到端加密方式中继;身份使用 Ed25519 密钥,需通过双方签名的 handshake 建立互信。控制面通过 Unix socket 暴露给 pilotctl 命令行以及 Node.js、Python、Swift 三个 SDK,另有内置 app store 用于分发签名 IPC 应用。网络默认私密,支持 registry 热备复制与自建 rendezvous。

安装脚本把 pilot-daemon、pilotctl、pilot-updater 放入 ~/.pilot/bin,并注册 systemd 或 launchd 服务。pilotctl daemon start 启动守护进程:它先向 registry:9000 注册节点、领取虚拟地址,再用 STUN/打洞经 beacon:9001 与对端建立 UDP 隧道;隧道使用 Ed25519 签名绑定的 X25519 密钥交换与 AES-256-GCM 加密,内含可靠流(滑动窗口、SACK、AIMD 拥塞控制、Nagre 合并、自动分段、零窗口探测)。用户侧命令包括 pilotctl info/set-hostname/find/ping/bench 用于自检与对端探测,pilotctl handshake 发起互信、pilotctl trust 查看信任状态,send-message 与 inbox(端口 1001 数据交换服务)负责结构化消息,send/recv 提供裸端口收发。内置服务还包括 echo :7 与 event stream :1002;extras gateway 可把远端 Agent 映射成本地 IP。所有命令支持 --json,SDK 经 Unix socket IPC 暴露同样的 handshake/send/recv/stream/gateway 接口。

  1. 多台机器上的自建 Agent 需要互相直连、又不愿经过第三方 API 平台的团队,用 handshake 建立信任后直接走加密 UDP。
  2. 部署在对称 NAT 后的 Agent(例如家用宽带或云 VM),靠 beacon 中继兜底仍能保持端到端加密通信。
  3. 受管控的容器或托管沙箱(如 Meta Muse)里只能走 HTTPS 代理的 Agent,用 --transport compat 通过 TLS 443 与 WSS 接入网络。
  4. 需要给 Agent 分配稳定可寻址标识并做主机名发现,用 pilotctl set-hostname 与 find 建立自己的 Agent 目录。
  5. 自行运营生态的团队,用 rendezvous -registry-addr :9000 -beacon-addr :9001 起私有注册与信标服务,并启用 registry 热备。
  6. 希望以签名 IPC 应用形式分发工具链的开发者,用 appstore catalogue/install/call 发布与调用声明式方法的应用。

如何安装或部署这个 Agent?

官方安装脚本会自动识别平台并下载预编译二进制,若本机有 Go 则回退到源码编译。

curl -fsSL https://pilotprotocol.network/install.sh | sh

安装时可直接指定主机名与邮箱:

curl -fsSL https://pilotprotocol.network/install.sh | [email protected] PILOT_HOSTNAME=my-agent sh

从源码构建需要 Go 1.25+:

git clone https://github.com/pilot-protocol/pilotprotocol.git
cd pilotprotocol && make build

UDP 被封、只能走 HTTPS 代理时显式选择 compat 模式:

pilotctl daemon start --transport compat

沙箱没有 CA 证书包时,指向系统证书或固定 registry 指纹:

SSL_CERT_FILE=/path/to/ca-certificates.crt pilotctl daemon start
pilotctl config --set registry_fingerprint=<sha256 of its certificate>

卸载:

curl -fsSL https://pilotprotocol.network/install.sh | sh -s uninstall

如何使用这个 Agent?

安装后启动守护进程,向公开 demo 节点发起握手并验证信任:

pilotctl daemon start --hostname my-agent --email [email protected]
pilotctl handshake agent-alpha "hello"
pilotctl trust

自检、寻址与连通性测试:

pilotctl info
pilotctl set-hostname my-agent
pilotctl find agent-alpha
pilotctl ping agent-alpha
pilotctl bench agent-alpha

使用端口 1001 的数据交换服务收发结构化消息:

pilotctl send-message other-agent --data "hello"
pilotctl inbox
pilotctl inbox read <id>

裸端口收发:

pilotctl send other-agent 1000 --data "hello"
pilotctl recv 1000 --count 5 --timeout 30s

任何命令加 --json 可得到结构化输出:

pilotctl --json info
pilotctl --json find other-agent

Node.js SDK 需要先让守护进程运行,然后通过 Unix socket 连接:

import { createPilot, createAgent } from 'pilotprotocol';

const pilot = await createPilot();
const conn = await pilot.handshake('agent-alpha', 'hello');
await conn.trust();

await conn.send(3000, Buffer.from('ping'));

const msgs = await conn.recv(3000, { count: 1, timeout: 10 });
console.log('Received:', msgs[0].data.toString());

在容器里运行守护进程时给容器一个 init 进程,避免僵尸进程累积:

docker run --init ...

关闭默认开启的遥测、广播、评价提示与 skill 注入(写入 ~/.pilot/config.json 后重启守护进程):

{
  "consent": {
    "telemetry":  false,
    "broadcasts": false,
    "reviews":    false
  },
  "skill_inject": {"mode": "disabled"}
}

这个 Agent 有哪些优点和局限?

优点
  • 数据面不经过平台:隧道建立后 Agent 之间直连 UDP,rendezvous 只在发现与 NAT 打洞时参与,避免中心化单点。
  • 安全边界清晰:Ed25519 身份密钥绑定会话、X25519 密钥交换、AES-256-GCM 加密、默认私密节点,并有双方签名的互信握手。
  • 弱网与受限环境有明确降级路径:对称 NAT 由 beacon 中继(仍端到端加密),UDP 被封可切 compat 模式走 TLS 443 与 WSS,支持 HTTPS_PROXY/ALL_PROXY/NO_PROXY 与凭据轮换的 proxy_cmd。
  • 核心仅用 Go 标准库,附带原子化状态持久化、registry 热备复制与结构化 slog 日志;安装脚本自带 systemd/launchd 与自动更新,无需 root。
  • 多语言接入成本低:pilotctl 全命令支持 --json,另有 Node.js、Python、Swift 三个 SDK,以及内置签名 app store。
局限
  • 仍依赖 rendezvous 做发现与打洞:默认指向公开服务 34.71.57.205:9000,需要私有控制必须自建 registry/beacon,多了一层运维面。
  • 安装脚本默认开启遥测、广播、review 提示和 skill 注入;skill 注入会在运行时拉取内容并写入 Claude Code、Cursor、OpenHands、OpenClaw、Hermes 的配置目录,auto 模式每 15 分钟自动更新。
  • 容器部署需要自行提供 init 进程(docker run --init、tini 或 shareProcessNamespace);守护进程自身不回收孤儿进程。
  • 源码构建要求 Go 1.25+,沙箱若没有 CA 证书包还得配置 SSL_CERT_FILE 或固定 registry 指纹;WSS beacon 不支持指纹固定。
  • 测试必须以 go test -parallel 4 运行,无限并行会耗尽端口;许可为 AGPL-3.0,对闭源集成方有限制。

这个 Agent 与同类方案有什么区别?

README 明确把自己定位为 MCP 的替代方向:它强调「不是 API,也不是框架,而是基础设施」,指出现有 Agent 通过中心化 API 通信会让平台看到全部流量、控制访问并成为单点。Pilot Protocol 的差异在于把平台移出数据路径——由 rendezvous 负责发现与打洞,隧道建立后数据直连加密 UDP,并用虚拟地址与端口替代纯 API 调用。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Pilot Protocol 代理网络栈 当前 48 · 缺口较多 命令行工具免费 ★ 147 1 天前 Go —
OrgKernel 智能体信任内核 66 · 存在缺口 代码库 / SDK免费 ★ 2.7k 3 个月前 Python —
AI Maestro 56 · 缺口较多 命令行工具免费 + 模型费 ★ 816 今天 TypeScript Codex · Claude Code
Jev Guard 79 · 表现良好 Agent 插件 / 技能免费 + 模型费 ★ 63 7 天前 JavaScript Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
48/ 100 五分制 2.4 / 5
信任安全 11/29
可靠稳定 8/14
适用触发 10/18
规范维护 9/18
有效结果 7/13
证据核验 3/8
查看各维度的扣分理由
信任安全11 / 29 · 1.9/5

README 明确说明节点默认私有、需要双向信任握手,且对遥测、广播、评审、技能注入四项默认开启功能给出了风险说明与退出方式,数据流透明度较好(2)。但 least_privilege 仅得 1:安装脚本通过 curl | sh 执行,且 gateway 示例要求 sudo 与 NET_ADMIN,权限较大且未提供细粒度最小权限说明。user_confirmation 仅得 1:技能注入默认 manual 但安装即写入 agent 配置目录,广播默认开启且可向 agent 投递任意数据,缺少逐次确认。sensitive_data_handling 仅得 1:README 提到遥测发送 Ed25519 签名与 IP,但未说明密钥存储、日志脱敏等敏感数据处理细节。dependency_security 仅得 1:go.mod 依赖大量 pilot-protocol 自有模块与 sigstore 等间接依赖,未见依赖审计或漏洞扫描证据。external_effects 仅得 1:自动更新器每小时检查并自动应用更新,属于外部副作用,虽有 --pin 但默认行为影响较大。rollback 仅得 1:提供卸载命令与 --version 固定,但未见自动更新失败回滚或状态恢复的明确机制。source_attribution 仅得 1:README 链接了 IETF 草案、白皮书与技能仓库,但未在仓库内给出代码来源或第三方组件归属说明。

可靠稳定8 / 14 · 2.9/5

self_consistency 得 2:README 对架构、端口、传输模式(auto/compat/udp)的描述与 go.mod、测试脚本基本一致,未发现明显矛盾。dependency_availability 仅得 1:go.mod 中大量依赖为 pilot-protocol 自有模块(app-store、beacon、common 等),其可用性与版本稳定性无法从本仓库静态确认,且存在 replace 指令指向特定伪版本。failure_messages 得 2:README 展示了结构化 JSON 错误(含 code、message、hint),测试脚本也验证了错误处理路径,失败信息较为清晰。

适用触发10 / 18 · 2.8/5

audience_and_scenarios 得 2:README 面向 agent 开发者、运维与受限沙箱用户,给出了 CLI、SDK、容器与代理场景。capability_boundaries 得 2:明确说明核心协议仅用 Go 标准库、gateway 为可选额外组件、广播为 WIP,边界较清楚。trigger_precision 仅得 1:技能注入在 auto 模式下每 15 分钟自动更新,评审提示在约 5% 调用时拦截 stdout,触发条件对自动化场景不够精确。environment_fit 得 2:详细覆盖了无 systemd 容器、HTTPS 代理、compat 模式、CA 证书缺失等环境适配。

规范维护9 / 18 · 2.5/5

information_architecture 得 2:README 结构清晰,含问题、架构、安装、测试、隐私控制等章节。install_notes 得 2:安装步骤、从源码构建、卸载、代理与容器注意事项均有说明。naming_stability 仅得 1:CLI 命令与端口命名较稳定,但仓库内未见版本化命名约定或弃用策略。examples_and_faq 得 2:提供了 CLI、JSON、Node SDK 示例与演示 agent 流程。known_limitations 仅得 1:README 提到广播 WIP、测试需 -parallel 4、NAT 对称时走中继,但缺少集中式已知限制清单。license 得 2:LICENSE 为完整 AGPL-3.0 文本,与元数据一致。versioning_changelog 仅得 1:SECURITY.md 提到 1.8.x 支持,但仓库内未见 CHANGELOG 或语义化版本说明。maintenance_responsibility 仅得 1:SECURITY.md 给出联系邮箱与响应时间,但发布者身份未经验证,维护责任归属不明确。

有效结果7 / 13 · 2.7/5

output_usability 得 2:CLI 支持 --json 结构化输出,SDK 提供编程接口,输出可直接用于自动化。marginal_value 得 2:为 agent 提供地址、加密隧道与信任模型,相对集中式 API 有明确差异化价值。cost_benefit 仅得 1:默认开启遥测、广播、评审与技能注入,且自动更新器持续运行,对普通用户的收益与运维/隐私成本之间的权衡说明不足。

证据核验3 / 8 · 1.9/5

claim_traceability 仅得 1:README 声称 1048 个测试通过、AES-256-GCM 加密等,但仓库内未提供可追溯的测试报告或基准数据。cross_source_corroboration 仅得 1:README、SECURITY.md、go.mod 与测试脚本之间部分一致,但关键安全声明缺乏多源交叉验证。fact_inference_separation 仅得 1:文档将事实描述与营销性表述(如“不是框架,是基础设施”)混合,未明确区分已验证事实与推断。

风险与缓解建议
  • 安装脚本通过 curl | sh 执行,且 gateway 示例要求 sudo 与 NET_ADMIN,权限较大,建议在隔离环境中先行审查。
  • 遥测、广播、评审与技能注入四项功能默认开启;广播可向 agent 投递任意数据,技能注入会写入 agent 配置目录,建议按需关闭。
  • 自动更新器每小时检查并自动应用更新,可能引入未审查的变更,建议使用 --pin 或关闭自动更新。
  • go.mod 依赖大量 pilot-protocol 自有模块与间接依赖,其可用性与安全性无法从本仓库静态确认。
  • 发布者身份未经验证,维护责任与更新路径不明确,生产使用前应独立评估。
证据充分度:低 评估于 2026年10月9日 审查版本 c09f246a0dff
查看完整评分方法 →

常见问题

是否必须自己运行守护进程?
是。pilot-daemon 在本地通过 Unix socket 提供服务,pilotctl 与各 SDK 都连到它;安装脚本会顺便注册 systemd(Linux)或 launchd(macOS)服务,也可以只用 pilotctl daemon start 手动管理。
UDP 出不去、或者只能走 HTTPS 代理怎么办?
用 transport=compat(或 auto):registry 走 registry.pilotprotocol.network:443 的 TLS,beacon 走 WSS on 443,并通过 $HTTPS_PROXY/$ALL_PROXY(遵守 $NO_PROXY)以 CONNECT 方式连接。代理凭据会轮换时可配置 proxy_cmd,守护进程会在 60 秒后或收到 407 时重新获取凭据。
没有对方信任就无法通信吗?
是。节点默认私密,必须先 handshake 建立双方签名的互信。pilotctl find 在主机名不存在或没有互信时会返回 not_found,并提示先用 pilotctl handshake 建立信任。
数据会不会离开本机?
消息内容只在 Agent 之间经加密隧道传输。但默认开启的遥测会在浏览或安装应用时把应用 ID、动作和 Ed25519 签名发往 telemetry.pilotprotocol.network;可在 config.json 中关闭。
内部团队可以自建整套网络吗?
可以。rendezvous -registry-addr :9000 -beacon-addr :9001 可自建注册与信标,并支持 registry 热备复制;安装脚本默认写入公开 rendezvous 地址,需要改成自己的地址。
在 GitHub 查看 ↗ 安装 ↓

相关 Agents