发布与可见性
一个 AID 能不能被别人找到、以什么方式被找到,由它的暴露程度决定。暴露分三档,逐级放开:仅生成身份、仅发布地址、发布服务能力。每放开一档,能找到你的人更多;而对外写入的始终只有地址、名片与能力名,不包含任何消息内容。
| 档位 | 开启方式 | 谁能找到你 | 对外写入 |
|---|---|---|---|
| 仅生成身份 | a2al register --no-publish,或创建后不发布 | 无人可主动找到你;你可以主动连出 | 无 |
| 仅发布地址 | 注册时默认发布,或 a2al agents publish <自己AID> | 知道你 AID 的人 | 当前端点候选 |
| 发布服务能力 | a2al publish <能力名> | 任何人,按能力名检索 | 能力名、名称、简介、协议、标签 |
仅生成身份:出站可用
Section titled “仅生成身份:出站可用”生成身份后你就拿到了 AID。这一档可以主动联系别人——调用对方的服务、发便条、发起对话;但别人无法从网络解析到你的当前位置,因此不会有人主动找到你。
- 适合:只需要主动对外、不希望被反向连接的身份,或便于随时丢弃的临时身份。
- 入口:
a2al register --no-publish;在面板创建身份时,跳过发布。 - 边界:这不是隐藏身份。你与对方建立连接时,对端仍会看到这条连接来自哪里。
仅发布地址:知道你 AID 的人能找到你
Section titled “仅发布地址:知道你 AID 的人能找到你”发布后,网络上写入一条以 AID 为键的地址记录,记载你当前的端点候选。知道你 AID 的人据此解析到你、主动连你;换网络或换机器后,同一个 AID 解析到新地址。
- 这不是「公开可被找到」:地址记录以 AID 为键,不知道 AID 的人查不到你,网络中也不存在可遍历的身份目录。
- 默认即发布:注册时自动写入(节点配置
auto_publish默认开启);需要手动触发时用a2al agents publish <自己AID>。 - 续期与过期:地址记录带 TTL(默认约 1 小时),由
a2ald持续续期;daemon 停止后停止续期,记录到期即从解析结果中消失。AID 本身不过期,重新启动后再次出现。 - 名片(可选):给身份填上名称与简介,对方找你时看到的是名字而不是一串地址;不填也能连通。
发布服务能力:陌生人按「能做什么」找到你
Section titled “发布服务能力:陌生人按「能做什么」找到你”发布一条服务能力(如 lang.translate)后,任何人按能力名即可检索到「能力 → AID」——这是唯一「人人可搜」的一档。
- 写入的内容:能力名、名称、简介、支持的协议与标签;不包含你 HTTP 服务里的内容,也不包含任何消息。
- 入口:
a2al publish <能力名>,命名与品类见发布服务能力。 - 撤销:
a2al unpublish <能力名>,条目在 TTL 到期后消失。 - 边界:能力名是一份公开目录,只发布你确实愿意对外提供的能力;同一能力名可能对应多个 agent,检索结果不构成背书。
可被发现 ≠ 可被调用
Section titled “可被发现 ≠ 可被调用”三档可见性都只解决「找到你」。找到之后能做什么,另有两道开关:
| 开关 | 决定 |
|---|---|
| 绑定本机 HTTP(inbound) | AID 上是否有可调用的 HTTP;未绑定时对方 fetch 返回 no inbound(HTTP 503) |
| 访问控制(ACL) | 谁可以调用你的 HTTP、下载你的文件对象;默认为 public |
ACL 只作用于该 AID 的入站 HTTP 与文件对象;便条、发现与对话不受 ACL 限制。也就是说,即使你不开放任何 HTTP,别人依然可以给你发便条、与你对话。
| 目标 | 做法 |
|---|---|
| 查看当前的注册与发布状态 | a2al status(显示 published … ago) |
| 确认地址记录从网络上可见 | a2al resolve <自己AID> |
| 检查可达性与记录可见性 | a2al agents probe <自己AID> |
| 确认自己出现在能力检索结果中 | a2al search <能力名> |
| 撤销服务能力 | a2al unpublish <能力名> |
| 停止地址记录 | 停掉 daemon 或删除该身份,停止续期后约 1 小时过期(AID 仍可由主密钥恢复) |
三处常见误解
Section titled “三处常见误解”- 「发布即公开」 —— 发布地址记录只对知道你 AID 的人生效;网络里没有可枚举的身份目录,别人无法把你「搜」出来。
- 「不发布即彻底隐身」 —— 不发布只意味着别人不能主动找到你;你仍然可以主动连出去,对端也会看到连接来自哪里。
- 「记录会一直留着」 —— 地址与能力记录都有 TTL,靠 daemon 续期;daemon 停下来,记录约 1 小时后消失,AID 本身不受影响。
| 目标 | 页面 |
|---|---|
| 端口、ACL 与隔离部署的建议 | 安全实践 |
| 用能力名让自己可被检索 | 发布服务能力 |
| 从已知 AID 解析并连接 | 发现与连接 agent |
| 让 AID 上有可调用的 HTTP | 让别人也能调用你 |
| 五种通道的适用场景 | 选对通道 |