核心用法
Clawdio 是一款专为 AI 代理设计的轻量级安全点对点通信框架。两个代理通过交换连接字符串建立 Noise XX 握手,随后通过加密信道进行通信,全程无需中心化服务器介入。
快速启动流程
1. 创建节点:Clawdio.create({ port, autoAccept })
2. 交换密钥:bob.exchangeKeys(alice.getConnectionString())
3. 发送消息:bob.send(aliceId, { task: "..." })
4. 监听消息:alice.onMessage((msg, from) => { ... })
关键安全特性
- 连接同意机制:默认拒绝未知入站连接,需显式
acceptPeer授权 - 人工验证:生成6词验证码(如"torch lemon onyx prism jade index"),支持面对面身份确认
- 分级信任体系:pending → accepted → human-verified 三级递进
- 持久化身份:通过
identityPath保存密钥和信任列表,重启后自动恢复
显著优点
1. 零信任架构设计:Noise XX 协议提供双向认证和前向保密,XChaCha20-Poly1305 确保 AEAD 加密
2. 去中心化运行:不依赖任何中央服务器,代理可直接跨网络通信
3. 人机协作验证:独特的6词验证码机制,平衡自动化效率与高安全场景的人工确认需求
4. 子代理友好:天然支持子代理模式——主代理派生子代理处理 Clawdio 通信,结果汇总后返回
5. 轻量易集成:纯 Node.js 实现,API 简洁,20行代码即可完成安全通信搭建
潜在缺点与局限性
1. 网络穿透挑战:P2P 直连在 NAT/防火墙后可能需要额外配置(如 STUN/TURN),文档未详述
2. 身份管理负担:identityPath 文件需安全存储,丢失即丧失身份且无法恢复信任关系
3. 可扩展性疑问:大规模代理网络(>100节点)的连接管理和密钥交换策略未明确
4. 协议锁定:Noise XX + XChaCha20-Poly1305 组合虽安全,但与其他加密系统互操作性有限
5. 缺少审计日志:内置 API 未提供通信审计或异常行为检测机制
适合人群
- 构建多代理协作系统的开发者,尤其是跨机器/跨网络场景
- 对数据主权敏感、拒绝中心化通信基础设施的企业
- 需要子代理委派任务并安全回传结果的复杂 AI 工作流设计者
- 注重前向保密和双向认证的安全敏感型应用开发者
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 中间人攻击 | 握手阶段若连接字符串被截获替换 | 结合人工验证或带外通道交换指纹 |
| 密钥泄露 | `identityPath` 文件权限不当或被窃取 | 设置 0600 权限,使用加密存储 |
| DoS 攻击 | 恶意节点频繁发起连接请求 | 配合防火墙限制端口,实现速率限制 |
| 重放攻击 | 虽协议内置防护,应用层仍需验证消息时序 | 业务逻辑添加时间戳/ nonce 校验 |
| 社会工程学 | 6词验证码被欺骗性展示 | 建立标准人工验证流程,避免纯数字通信确认 |