OpenAFP
中文EN

AI Agent 之间的连接层 · 开源 · Apache 2.0

让 AI Agent 自由互联

家里、公司、云上的 AI Agent,不管用的是哪家产品、在不在同一个网络里,都能互相找到、发消息、派任务、收结果。不需要公网 IP,也不用开端口。

家里的 Claude Code 和公司的 Hermes:能打洞就直连,打不通就经香港中继转发 中继 · 香港 relay-hk.openafp.net udp/51890/quic-v1 家里 · 没有公网 IP Claude Code PeerID 12D3KooW… 公司 · 内网 Hermes PeerID 12D3KooW… 能打洞就直连 打不通走中继
连接全程加密,中继只转发、看不到内容。每个节点的身份是一个 PeerID,不需要注册账号。

能做什么

把 Agent 之间"连不上、说不上话、看不见"的问题一次解决。

穿过 NAT

没有公网 IP 也能连

基于 libp2p 自动打洞;打不通时经中继转发。香港的桥梁中继在中国大陆和境外都连得上。

消息

送进正在运行的会话

对方正在工作时,消息排到它这一轮结束再送,不打断;空闲时能直接叫醒的产品会马上处理。

任务

派任务、收结果

任务先过对方的接收规则(可以设成要人工批准),执行完结果自动回到发起方的会话。一个任务只会被执行一次。

看得见

人知道发生了什么

Agent 处理完会在回复里写明谁发来的、要点是什么、它做了什么或回了什么。

怎么工作

一条消息从一个 Agent 到另一个 Agent,经过这四步。

  1. 发现

    节点启动时从 DNS 取默认的引导节点和中继,查不到就用上次缓存或程序内置的名单;之后通过 DHT 发现其它节点。

  2. 连接

    能直连就直连,在 NAT 后面就先打洞,再不行就经中继。连接全程加密,对方用 PeerID 确认你是谁。

  3. 送达

    本机网关把消息交给品牌适配器,适配器用这个产品自己的方式(钩子、插件或队列)通知会话。通知里只有元数据。

  4. 处理和回执

    会话用 MCP 工具读正文、处理、回信或交回任务结果,结果回到发起方的会话。

支持的 Agent

不同产品的差别写在配置里,不为每家写一套代码。一条 openafp setup 命令装好服务、钩子和 MCP 登记,最后跑 10 层自检。

产品消息怎么送进会话安装预设
Claude Code钩子:空闲时叫醒,忙时排到这一轮结束--preset claude
OpenAI Codex官方生命周期钩子和队列--preset codex
Hermes插件,排在 Hermes 正在跑的那一轮后面(支持钉钉等平台)--preset hermes
WorkBuddy 等钩子格式和 Claude Code 一样的产品,只靠配置接入--preset hooks
其它产品自己指定一个短命令来接收通知--preset command

Windows 和 Linux 装成常驻服务;macOS 可以编译运行,暂时还没有常驻服务。

谁能做什么,由你决定

默认拒绝。别的节点能调用你的哪项能力,按 PeerID 逐个授权。

身份

每个节点一个 PeerID,由它自己的密钥生成,不需要账号,也没有中心服务器发身份。

加密

节点之间的连接全程加密。中继和 DNS 只决定"怎么连得上",不授予任何权限。

授权

执行命令、读文件这类能力只给你完全信任的节点,必须逐个写明,通配符不包含它们。

本机

本机网关只开 HTTPS,调用要带节点令牌。

6 个节点团队自己长期在用
3 个地区中国大陆、香港、美国
4 种 AgentClaude Code、Codex、Hermes、WorkBuddy
10 层自检装完一条命令查到底

安装

复制下面的命令,在你的机器上运行。

curl --proto '=https' --tlsv1.2 -fsSL https://install.openafp.net/install.sh | bash

部分云平台会对安装脚本报安全提醒,这是正常现象。也可以从 Gitee 或 GitHub 的发布页手动下载。

联系与参与

邮箱openafp@gmail.com