---
title: "去中心化数字人团队：Raft 风格共识"
description: "Halo 的数字人团队分布在成员各自的电脑上，没有中心服务器保存团队状态。主持人在成员电脑间轮换，换人不丢数据、看板不分叉。了解设计、取舍和适用规模。"
type: "explanation"
audience: ["developer", "admin"]
since: "3.0"
related: ["digital-humans/cross-computer-teams", "advanced/federation-gateway", "advanced/security"]
lang: "zh-CN"
canonical: "https://hello-halo.cc/docs/advanced/team-consensus.html"
last_updated: "2026-10-24T10:04:52+08:00"
source: "Halo 3.0.4 docs"
---
# 去中心化的数字人团队

Halo 的数字人团队分布在成员各自的电脑上，没有中心服务器保存团队状态。主持人在成员电脑间轮换，换人不丢数据、看板不分叉。了解设计、取舍和适用规模。

Halo 的数字人团队可以分布在不同的电脑上。每个人的数字人跑在自己电脑上，用自己配置的引擎和模型，团队协作不经过任何厂商的服务器，也没有中心服务器保存团队状态。下面说明团队怎样保持一致，以及背后的设计取舍。

## 为什么需要它 {#why}

Claude Code、Codex、DeepSeek dsh 这类编程智能体做多智能体协作时，成员通常在同一台电脑上，共用一个文件系统来记录任务、交换结果。

Halo 把团队成员分散到各自的电脑上，就没有这个共用的地方了。必须有一台电脑保管团队的看板，也就是任务、发现和协作记录。我们不想让它是某家公司的服务器，所以这个角色由成员自己的电脑轮流担任，叫作**主持人**。

这个思路来自聊天软件。群消息有统一的顺序，群成员由人说了算，是因为有一台服务器在维持秩序。Halo 保留了"有人维持秩序"，只是让这个角色在成员之间轮换，不属于任何一家公司。

## 怎样运作 {#how-it-works}

- **主持人统一写入**：成员对看板的修改都交给主持人，由它按顺序逐条写入，再复制给其他成员。在线的大多数成员电脑保存下来后，这条修改才算生效。
- **主持人离线时自动接任**：主持人十几秒没有响应，就被判定为离线。在线成员里最早加入团队的那台发起接任，团队里超过半数的电脑同意才算当选。每一任主持人都有编号。
- **不会同时有两个主持人**：超过半数按团队全部成员计算，不按当前在线人数。网络断成两半时，最多只有一边能选出主持人。
- **原主持人回来会让位**：它看到更新的编号就退下，它以旧身份写的内容会被其他成员拒绝。
- **少数一方暂停写入**：凑不够半数的一方，看板暂停写入、只能查看，连接恢复后再继续。宁可暂停，也不让团队出现两份对不上的看板。
- **进行中的任务不会被重复执行**：新主持人上任后，先确认负责的成员是否还在干活。还在忙的保留，确认离线的才放回去重新分派。

## 和标准 Raft 的不同 {#differences-from-raft}

Halo 借鉴了 Raft 的任期、多数投票和复制日志，并为"成员是个人电脑"做了调整：

- **按加入顺序接任**：不靠随机超时竞选。接任者是确定的，谁会接手一目了然。
- **数据落后的候选者会被否决**：投票的成员手里有更新的已生效数据时，会拒绝投票。候选者先补齐数据再参选，接任者不会丢数据。
- **能识别电脑睡眠**：笔记本合盖再醒来，会先有一段宽限时间，不会被当成宕机，也不会因此误触发换人。
- **联邦网关只转发、不投票**：跨网络时，消息经你们自己部署的[联邦网关](https://hello-halo.cc/docs/advanced/federation-gateway.html)转发。它不保管看板，也不参与投票；主持人不在时，它只帮成员转发接任需要的消息。

所以我们称它为"Raft 风格"，而不是标准 Raft。

## 保证什么，不保证什么 {#guarantees}

保证：

- 团队只有一份看板，不会分叉。
- 换主持人时，已生效的修改不会丢失。
- 所有成员看到的修改顺序一致。

不保证：

- 离线电脑上的数字人照样离线。主持人那台电脑睡了，它上面的数字人（可能包括负责人）也要等它醒来才能继续工作。接任保住的是团队的共享记录，不是那台电脑上的数字人。
- 发给离线成员的消息会标明对方没收到。等对方上线后再发，或者改派给其他成员，见 [团队工作台](https://hello-halo.cc/docs/digital-humans/team-workbench.html#offline)。

## 团队规模与设计取舍 {#team-size}

- **3 人及以上**：主持人离开后，其余成员自动选出新主持人，看板继续可写。
- **2 人**：主持人离开时，剩下一台凑不够半数，看板暂停写入，各自的数字人照常在本地工作。主持人回来后自动恢复。对方离线时本来就没法协作，这是有意的取舍。
- **适用规模**：为几人到几十人的团队设计。更大的组织由多个团队组成，每个团队各自运转。

## 为什么不用 CRDT {#why-not-crdt}

CRDT 让每台电脑各写各的，事后自动合并，适合文档编辑、笔记这类能合并的内容。团队协作里有些事必须当场有人说了算：

- 一个任务派给谁，不能事后合并成两个人。
- 成员被移出团队后，他之后的写入必须立刻失效。

这类决定没法事后合并，所以 Halo 让主持人统一写入。

## 什么留在本机，什么共享 {#privacy}

- **在团队里共享**：任务、发现、协作记录，以及成员为团队做的工作过程。
- **留在本机**：私聊、记忆、本地文件。文件只有发布到团队后队友才能取用，而且是用到时才从你的电脑上拉取。
- **由你的电脑决定**：队友能让你的数字人做什么（只读、读写文件或更多操作），只保存在你自己的电脑上，不会同步出去，见 [跨电脑团队](https://hello-halo.cc/docs/digital-humans/cross-computer-teams.html)。

数据怎样流动，见 [安全、隐私与数据流](https://hello-halo.cc/docs/advanced/security.html)。

## 常见问题 {#faq}

### Halo 的团队是去中心化的吗？ {#is-it-decentralized}

没有中心服务器保存团队状态。团队数据在成员各自的电脑上，主持人在成员电脑之间轮换。要说明的是，Raft 本身是一种高可用复制算法，不是去中心化技术。Halo 的去中心化来自这种用法：主持人是成员自己的电脑，不是厂商的服务器。

### 一定要有服务器吗？ {#need-a-server}

同一局域网内不需要。成员在不同网络时，需要你们自己部署一个联邦网关来转发消息，见 [部署联邦网关](https://hello-halo.cc/docs/advanced/federation-gateway.html)。

### 笔记本合盖会影响团队吗？ {#laptop-sleeps}

普通成员合盖不影响别人，分给它的任务等它回来继续。主持人合盖时，3 人及以上的团队会自动换主持人；2 人团队会暂停看板写入，等它回来。

### 每个人必须用同一种 AI 吗？ {#same-ai}

不用。每个数字人用主人自己配置的引擎（Claude Code、Codex、DeepSeek dsh 等）和模型，包括本地模型，一个团队里可以混用。

### 能支持上千人的团队吗？ {#large-teams}

不能。团队为小团队设计，大型组织建议拆成多个团队。
