# 智能体 SubDAO 治理

## 治理&#x20;

随着 AI 代理成为 Roblox、TikTok 和 Telegram 等平台上应用的核心，维持顶级模型质量对于最大化收入和用户满意度至关重要。为确保这些 AI 代理始终达到高性能标准， **Virtuals Protocol** 引入了 **Agent SubDAO 治理** 框架——一个旨在管理和提升 AI 模型质量的去中心化系统。

该治理模型赋能 **验证者** 在 AI 模型部署前监督其验证和批准流程，确保只使用最优模型。验证者会根据其决策质量获得奖励或受到惩罚，而其投票权则由以下对象质押的代币决定： **流动性提供者（LP）**。这种激励对齐创建了一个系统，使所有利益相关方都受到激励去维持最高的模型标准，从而提升用户体验和收入潜力。&#x20;

### Agent SubDAO 的结构

Agent SubDAO 由以下部分组成：

1. **流动性提供者（LP）**：将其 LP 代币质押给受信任验证者的流动性提供者。LP 受益于更高的模型质量，以及因此带来的代理更强的创收能力。&#x20;
2. **验证者**：负责评估代理所使用的 AI 模型的质量和性能。验证者会获得奖励或受到惩罚 **，依据其投票权，而投票权由以下来源质押的代币决定：** 流动性提供者（LP）。该机制将遵循 [通过 DPos 进行代币委托](/virtuals-bai-pi-shu/guan-yu-virtuals-1/xie-yi/zuo-wei-ke-bian-cheng-qu-zhong-xin-hua-shi-ti-de-virtual-zhi-neng-ti/zhi-neng-ti-subdao-zhi-li/tong-guo-dpos-jin-xing-dai-bi-wei-tuo.md).&#x20;

## 质押与奖励机制

### 奖励分配

Agent SubDAO 治理模型中的奖励主要来自两个渠道：

1. **代理推理付款：** 来自应用向每个 AI 代理支付的推理费用会分配到 AgentDAO 金库。&#x20;
2. **协议发行：** 协议会向表现最好的代理的金库提供发行奖励， [排行榜](/virtuals-bai-pi-shu/guan-yu-virtuals-1/xie-yi/zuo-wei-ke-bian-cheng-qu-zhong-xin-hua-shi-ti-de-virtual-zhi-neng-ti/agentfi-ji-li.md)。该机制旨在维持并提升整个协议中的代理质量。验证者在所获得的质押权重支持下，会因其持续维护质量标准的努力而获得奖励。这些发行激励验证者认真评估 AI 模型，确保其符合协议的性能标准。
3. **交易手续费。** 所有涉及代理代币的交易都将征收 1% 的税（可根据未来条件降低）。毕业后的代理所收取的 1% 税中有 50% 将分配给 Agent SubDAO 金库。

### 奖励使用

当该机制上线时，Agent SubDAO 可通过治理投票决定如何最佳利用金库中积累的奖励。

### 验证者奖励

验证者根据其投票权获得奖励。投票权更高的验证者（因委托的 LP 代币更多）会获得更高奖励。

### 惩罚机制

验证者也会受到惩罚。如果某个验证者验证的模型未能达到质量标准，或对某个应用产生负面影响，该验证者可能会失去部分质押代币，或因投票权减少而受到惩罚。该系统确保验证者对其批准的模型承担责任，促使他们专注于质量和可靠性。

## 治理机制

子 DAO 内的验证者将审查并批准用于部署和升级的 AI 模型。通过参与治理过程，验证者有助于维持质量标准，并确保不会部署低于标准的模型，从而保护应用的完整性并确保尽可能好的用户体验。

验证者只能通过流动性提供者的委托获得投票权。这种委托来的投票权决定了他们对 subDAO 治理决策的影响力。验证者持有的投票权越多，其对模型质量决策的影响就越大。

### 投票流程

投票流程允许验证者就模型升级、验证以及其他关键治理事项的提案进行投票。投票权重根据验证者的投票权确定，而投票权由质押在该验证者上的总金额决定。获得多数票的提案将被批准并执行，使 subDAO 能够：

* **升级模型**：新模型会由验证者提出、审查并投票。如果获得批准，该模型将被实施。
* **执行惩罚**：验证者会就允许低质量模型通过的其他验证者投票施加惩罚，使其承担责任并维护整体质量。

### **模型升级**

在验证模型时，验证者会匿名看到两个模型进行比较。他们会与每对模型进行 10 轮交互，选择更好的回复。经过 10 轮后，会提交包含最终结果的投票。

模型比较中的匿名性可防止验证者和贡献者之间的串通与偏见，确保公平的模型选择过程。

Virtual Protocol 选择采用 Elo 评分系统进行模型比较。

#### 优化 Elo 评分系统

基于 [基础](https://colab.research.google.com/drive/1RAWb22-PFNI-X1gPVzc927SGUdfr6nsR?usp=sharing) ，由以下先驱者奠定： [Fastchat](https://github.com/lm-sys/FastChat)，我们认识到传统 Elo 评分在稳定性方面面临挑战。因此，我们实现了一个改进的、bootstrap 版本的 Elo 评分系统，以提升模型验证结果的稳定性和可靠性。

标准的 Elo 评分机制如下：&#x20;

```python
def compute_elo(battles, K=4, SCALE=400, BASE=10, INIT_RATING=1000):
    rating = defaultdict(lambda: INIT_RATING)

    for rd, model_a, model_b, winner in battles[['model_a', 'model_b', 'winner']].itertuples():
        ra = rating[model_a]
        rb = rating[model_b]
        ea = 1 / (1 + BASE ** ((rb - ra) / SCALE))
        eb = 1 / (1 + BASE ** ((ra - rb) / SCALE))
        if winner == "model_a":
            sa = 1
        elif winner == "model_b":
            sa = 0
        elif winner == "tie" or winner == "tie (bothbad)":
            sa = 0.5
        else:
            raise Exception(f"unexpected vote {winner}")
        rating[model_a] += K * (sa - ea)
        rating[model_b] += K * (1 - sa - eb)

    return rating

    def preety_print_elo_ratings(ratings):
    df = pd.DataFrame([
        [n, elo_ratings[n]] for n in elo_ratings.keys()
    ], columns=["模型", "Elo 评分"]).sort_values("Elo 评分", ascending=False).reset_index(drop=True)
    df["Elo 评分"] = (df["Elo 评分"] + 0.5).astype(int)
    df.index = df.index + 1
    return df

elo_ratings = compute_elo(battles)
preety_print_elo_ratings(elo_ratings)
```

### 数据集贡献

当某个模型使用他人贡献的数据集进行微调时，该模型获得的 Elo 评分表示该数据集的质量。影响分数由提议模型与现有模型之间的分数差异得出，用于确定提议模型在使用该数据集微调后是否更优。这使 Virtual Protocol 能够为贡献的数据集建立标准，并拒绝影响较低的数据集。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://whitepaper.virtuals.io/virtuals-bai-pi-shu/guan-yu-virtuals-1/xie-yi/zuo-wei-ke-bian-cheng-qu-zhong-xin-hua-shi-ti-de-virtual-zhi-neng-ti/zhi-neng-ti-subdao-zhi-li.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
