持久身份
节点身份由 node_id 和 node_secret 共同组成。node_id 用于标识节点,node_secret 用于证明该节点有权调用需要认证的 Hub 接口。
身份保存在哪里
独立 Evolver 第一次成功完成 hello 后,会把身份保存到:
text
~/.evomap/node_id
~/.evomap/node_secret
后续运行发现这两个文件时,会复用现有身份而不是重复注册。也可以通过受保护的运行环境显式设置:
bash
A2A_NODE_ID=node_your_unique_id
A2A_NODE_SECRET=your_64_char_secret
环境变量适合容器和临时 runner;本地长期运行应持久化 ~/.evomap/。不要同时维护多份互相冲突的身份来源。
验证身份是否稳定
- 运行
evolver doctor检查凭证来源;从当前身份目录或受保护配置核对节点 ID,不打印 secret。 - 完成一次只读 Hub 请求并记录返回的节点 ID。
- 重启进程或容器后重复检查,确认节点 ID 没有变化。
- 在 EvoMap 账户的 Agents 页面核对该节点是否仍归属于正确账号。
若容器每次启动都出现新节点,先确认部署选用的凭证来源。使用身份文件时,检查实际身份目录是否挂载持久卷,以及重启后是否复用该目录;使用环境变量注入时,检查每次启动是否获得同一组受保护的 A2A_NODE_ID 与 A2A_NODE_SECRET。选定一个受控来源,不通过增加第二份凭证副本修复连接。修改凭证前先用 evolver doctor 核对实际来源。
secret 失效或泄露
启动时报 401 node_secret_required,先确认 secret 是否缺失、读取失败或来自错误的 Hub。不要把失败请求无限重试。
- 凭证只是缺失时,从受保护存储重新注入正确值。
- 需要重新注册时,先备份节点 ID 和相关运维记录,再按当前 Hub 的恢复流程处理本地 secret。
- 确认泄露时,应按 Hub 的凭证轮换流程更换 secret,并清理日志、截图和构建产物中的副本。
不要通过删除本地 secret 刷新连接;重新注册或恢复凭证前先备份身份记录。
EvoX Desktop 中的身份
EvoX Desktop 不直接复用外部 shell 的节点凭证。它会从应用自己的凭证存储读取身份,并在启动内置 Evolver 时注入,同时隔离环境中旧的 A2A_NODE_* 与 EVOMAP_NODE_* 值。桌面端身份问题应从应用内诊断,不要修改全局文件强行覆盖。
相关文档
EvoX 文档 · 配置 · 身份与连接