Aqua:一款用于AI代理的命令行消息工具
Aqua: A CLI message tool for AI agents

原始链接: https://github.com/quailyquaily/aqua

## Aqua:适用于AI代理的安全消息传递 Aqua是一款专为AI代理设计的点对点消息传递工具,优先考虑安全可靠的通信。由mistermorph开发,它提供端到端加密、持久消息存储(收件箱/发件箱)和身份验证。 Aqua可以通过预构建的二进制文件或使用Go从源代码安装。主要功能包括用于节点管理的简单CLI、使用对等ID发送消息以及管理联系人。 为了实现跨网络连接,Aqua支持Circuit Relay v2,在尝试直接连接之前,会自动回退到中继服务器。官方中继端点提供方便使用。用户通过交换对等ID和中继电路地址来建立连接。 Aqua的架构和CLI命令已记录在案,提供通过诸如`--relay-mode`之类的标志进行自定义的选项,以及通过`--dir`覆盖目录。它旨在与SKILL等其他代理框架集成,从而促进强大的代理交互。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Aqua: 一个用于AI代理的CLI消息工具 (github.com/quailyquaily) 9点 由 lyricat 1小时前 | 隐藏 | 过去 | 收藏 | 1评论 帮助 roxolotl 6分钟前 [–] 我想知道像rabbitmq这样的东西会是什么样子。代理可以订阅选择的主题。每个代理一个主题,然后每个相关主题一个主题。回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请YC | 联系 搜索:
相关文章

原文

Aqua is a message tool for AI Agents.

Aqua is short for AQUA Queries & Unifies Agents. It's a protocol, a CLI, comes from mistermorph.

  • Peer-to-peer agent communication with identity verification.
  • End-to-end encrypted messaging.
  • Durable message storage with inbox/outbox.
  • Circuit Relay v2 support for cross-network connectivity.
  • Simple CLI for node management and messaging.

Option A: download a prebuilt binary from GitHub Releases (recommended for production use):

curl -fsSL -o /tmp/install.sh https://raw.githubusercontent.com/quailyquaily/aqua/refs/heads/master/scripts/install.sh; \
sudo bash /tmp/install.sh

Option B: install from source with Go:

go install github.com/quailyquaily/aqua/cmd/aqua@latest
# or pin to a specific release
go install github.com/quailyquaily/aqua/cmd/[email protected]
Machine A Machine B
aqua id alice, note <A_PEER_ID> aqua id bob, note <B_PEER_ID>
aqua serve
copy one address: ... as <A_ADDR>
aqua serve
copy one address: ... as <B_ADDR>
aqua contacts add "<B_ADDR>" --verify aqua contacts add "<A_ADDR>" --verify
aqua send <B_PEER_ID> "hello from A" aqua send <A_PEER_ID> "hello from B"
aqua inbox list --unread --limit 10 aqua inbox list --unread --limit 10

With --relay-mode auto, Aqua tries direct connectivity first and falls back to relay when direct dialing is unavailable.

# 1) On each node, get peer ID
aqua id <nickname>

# 2) Start node with relay endpoints
aqua serve --relay-mode auto \
  --relay /dns4/<relay-host>/tcp/6372/p2p/<relay_peer_id> \
  --relay /dns4/<relay-host>/udp/6372/quic-v1/p2p/<relay_peer_id>

# 3) From `aqua serve` output, copy your relay-circuit address:
# /dns4/<relay-host>/tcp/6372/p2p/<relay_peer_id>/p2p-circuit/p2p/<your_peer_id>
# Share it with your peer and add peer's relay-circuit address:
aqua contacts add "<peer_relay_circuit_addr>" --verify

# 4) Handshake and send
aqua send <peer_id> "hello via relay"

Official relay endpoints:

  • TCP: /dns4/aqua-relay.mistermorph.com/tcp/6372/p2p/12D3KooWSYjt4v1exWDMeN7SA4m6tDxGVNmi3cCP3zzcW2c5pN4E
  • UDP (QUIC): /dns4/aqua-relay.mistermorph.com/udp/6372/quic-v1/p2p/12D3KooWSYjt4v1exWDMeN7SA4m6tDxGVNmi3cCP3zzcW2c5pN4E

For agents that need to communicate over Aqua, see SKILL.md.

Default directory: ~/.aqua

You can override it with:

  • --dir <path>
  • Environment variable AQUA_DIR
  • init, id
  • card export (--relay, --advertise auto|direct|relay|both)
  • contacts list/add/import/show/verify/del
  • serve (--relay, --relay-mode auto|off|required, --dryrun)
  • relay serve (--allow-peer, default empty allowlist = allow all)
  • hello, ping, capabilities, send (--relay-mode auto|off|required)
  • inbox list/mark-read, outbox list
  • version
go build -o ./bin/aqua ./cmd/aqua
  • docs/architecture.md
  • docs/cli.md
  • docs/relay.md
联系我们 contact @ memedata.com