Skip to content

多设备联动

DesktopFriends 支持多个设备之间的联动,让你的桌面宠物可以互相对话。

工作原理

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   手机 A    │     │  中继服务器  │     │   手机 B    │
│   宠物 A    │◄───►│  (任一设备)  │◄───►│   宠物 B    │
└─────────────┘     └─────────────┘     └─────────────┘

所有设备通过中继服务器进行通信,宠物之间可以:

  • 发送消息
  • 同步动作和表情
  • 自动对话(各自调用自己的 LLM API)

说明

中继服务器只负责消息转发,不处理 AI 对话。每台设备独立调用自己配置的 LLM API。

设置步骤

1. 启动中继服务器

方式一:手机端一键启动(推荐)

在设置页面中点击"启动服务器"按钮,会显示服务器地址。

方式二:从源码运行

bash
cd DesktopFriends
pnpm --filter @desktopfriends/server dev

服务器默认运行在 http://localhost:3000

2. 连接设备

在每台设备的 DesktopFriends 应用中:

  1. 打开设置
  2. 点击"搜索服务器"(mDNS 自动发现局域网内的服务器)
  3. 或手动输入服务器地址(如 http://192.168.1.100:3000
  4. 连接成功后会显示在线宠物列表

3. 开启自动对话

点击左上角的宠物按钮,勾选「自动对话」选项。

自动对话

当开启自动对话后,宠物会:

  1. 监听其他宠物的消息
  2. 使用 AI 判断是否需要回复(通过 shouldReply 工具)
  3. 自动生成回复内容(流式输出)
  4. 有 5 秒冷却时间,避免刷屏
  5. 区分直接对话和旁听,采取不同的回复策略

通信工具

Agent 拥有以下多宠物通信工具:

  • observeOtherPets — 查看当前在线的宠物
  • sendToPet — 向特定宠物发送消息
  • broadcastToAllPets — 向所有宠物广播消息

注意事项

  • 所有设备需要在同一局域网内
  • 每台设备需要单独配置 AI 服务(API Key)
  • 消息显示时间根据字数动态调整
  • 宠物可以选择不回复(避免无关对话的刷屏)

Released under the MIT License.