从 Token 到 DAA:AI 时代需要一套新的度量衡

2026-05-13 21 预计阅读时间:1 分钟
来源:oschina.net AI 摘要 原文链接

免责声明:本文为 AI 摘要整理,建议结合原文阅读。摘要可能省略上下文、版本差异或边界条件,不作为官方说明。

预计阅读时间:9 分钟

百度 Create2026 开发者大会上,李彦宏抛出了一个值得所有 AI 平台从业者咀嚼的判断:Token 衡量的是投入,不是产出;AI 时代的核心指标应该是 DAA——日活智能体数(Daily Active Agents)。

这不是一个口号,而是对当前行业度量体系的一次纠偏。如果你在做 AI 平台、Agent 框架或企业内部 AI 中台,这篇文章帮你厘清:为什么 Token 指标会误导决策,DAA 指标怎么定义,以及怎么在你的系统里落地采集。

Token 说了成本,没说价值

当前行业最常被引用的指标是 Token 消耗量——模型调用了多少 Token、推理吞吐多少 Token/s、每百万 Token 多少钱。这些数字对算力规划和成本核算有用,但用来衡量生态繁荣就会失焦:

  • Token 是供给侧视角。 一万次无效调用和一万次精准调用消耗的 Token 可能一样多,但价值截然不同。
  • Token 不区分"谁在用"。 一个高频调用的脚本和十个不同用户驱动的 Agent,Token 量可能相同,生态意义完全不同。
  • Token 容易被刷量。 循环调用同一个 Prompt 就能拉高 Token,但不会带来任何真实使用。

李彦宏的类比很直接:移动互联网时代没人用"服务器请求量"衡量一个 App 的成功,大家看的是 DAU。Token 就是 AI 时代的"请求量",DAA 才是真正的"日活"。

DAA 的定义:从 DAU 到 Daily Active Agents

DAA 借用了 DAU 的逻辑,但对象从"人"变成了"智能体"。一个 Agent 算"日活",至少要满足三个条件:

  1. 独立身份——有明确的 Agent ID,不是匿名的一次性调用。
  2. 主动触发——当天至少被用户或外部事件调用过一次,不是被动注册未运行。
  3. 完成闭环——调用产生了可观测的输出(回复、动作、数据写入),而不是中途失败或空转。

这三条过滤掉了"注册未用""调用失败""循环刷量"等噪音,让 DAA 反映的是真正在运转的智能体数量

实操:在你的 Agent 平台里采集 DAA

下面给出一个最小可运行的 DAA 采集方案。假设你的 Agent 平台每次调用会写一条日志到数据库,核心逻辑是:按天聚合,过滤出满足"日活"条件的 Agent。

数据模型与采集脚本

"""
DAA 采集与计算示例
依赖: pip install sqlalchemy psycopg2-binary
假设: Agent 调用日志表 agent_call_log 已存在
"""

from datetime import date, timedelta
from sqlalchemy import create_engine, text

# ---- 1. 日志表结构(首次运行时建表) ----
DDL = """
CREATE TABLE IF NOT EXISTS agent_call_log (
    id            BIGSERIAL PRIMARY KEY,
    agent_id      VARCHAR(64) NOT NULL,   -- 智能体唯一标识
    user_id       VARCHAR(64) NOT NULL,   -- 调用者标识
    called_at     TIMESTAMP    NOT NULL,  -- 调用时间
    status        VARCHAR(16)  NOT NULL,  -- 'success' | 'failed' | 'empty'
    output_tokens INTEGER      NOT NULL DEFAULT 0,
    input_tokens  INTEGER      NOT NULL DEFAULT 0
);
"""

# ---- 2. DAA 计算查询 ----
DAA_QUERY = """
WITH daily_calls AS (
    SELECT
        agent_id,
        DATE(called_at) AS call_date,
        COUNT(*)         AS total_calls,
        SUM(CASE WHEN status = 'success' THEN 1 ELSE 0 END) AS success_calls,
        SUM(output_tokens) AS total_output_tokens
    FROM agent_call_log
    WHERE called_at >= :start_date AND called_at < :end_date
    GROUP BY agent_id, DATE(called_at)
)
SELECT
    call_date,
    COUNT(agent_id) AS daa,                        -- 日活智能体数
    SUM(success_calls) AS total_success_calls,
    SUM(total_output_tokens) AS total_output_tokens
FROM daily_calls
WHERE success_calls > 0                             -- 过滤: 至少一次成功调用
GROUP BY call_date
ORDER BY call_date;
"""

engine = create_engine("postgresql://user:pass@localhost/agent_platform")

# 建表
with engine.begin() as conn:
    conn.execute(text(DDL))

# 计算昨天的 DAA
yesterday = date.today() - timedelta(days=1)
with engine.connect() as conn:
    rows = conn.execute(text(DAA_QUERY), {
        "start_date": yesterday,
        "end_date":   date.today(),
    }).fetchall()
    for row in rows:
        print(f"日期: {row[0]}  DAA: {row[1]}  成功调用: {row[2]}  输出Token: {row[3]}")

模拟写入一条调用日志

"""写入示例——一次成功的 Agent 调用"""
from datetime import datetime

INSERT = """
INSERT INTO agent_call_log (agent_id, user_id, called_at, status, output_tokens, input_tokens)
VALUES (:agent_id, :user_id, :called_at, :status, :output_tokens, :input_tokens);
"""

with engine.begin() as conn:
    conn.execute(text(INSERT), {
        "agent_id":      "weather-bot-001",
        "user_id":       "user-42",
        "called_at":     datetime.now(),
        "status":        "success",
        "output_tokens": 320,
        "input_tokens":  150,
    })

运行前把 postgresql://user:pass@localhost/agent_platform 替换成你自己的数据库连接串。这套方案的核心思路是:日志表记录每次调用的结果状态,聚合时只计入当天至少有一次 success 的 Agent——这正是 DAA 定义中"完成闭环"的落地方式。

DAA 指标的边界与陷阱

DAA 不是万能指标,落地时有几个值得警惕的点:

Agent 粒度怎么定? 一个"客服机器人"如果配置了 10 个不同技能分支,算 1 个 Agent 还是 10 个?粒度太粗,DAA 数字虚低;粒度太细,DAA 数字虚高。建议以独立部署单元 + 独立 Agent ID 为最小粒度,技能分支不算独立 Agent。

"日活"门槛要不要设下限? 一个 Agent 当天只被调用 1 次,算日活吗?移动互联网里 DAU 通常没有调用次数下限,DAA 初期也可以不设。但如果发现大量"注册即遗忘"的 Agent 拉高了 DAA,可以加一个 success_calls >= 3 的门槛做二次过滤。

DAA 和 Token 不是对立关系。 Token 仍然是成本核算的核心指标。健康的生态应该呈现 DAA 上升 + 单 Agent 平均 Token 下降——更多智能体在运转,但每个智能体的单次调用更高效。如果 DAA 涨了、总 Token 也暴涨,说明智能体在"烧量"而非"提效"。

跨平台 DAA 目前无法对齐。 不同平台对"Agent"的定义、对"成功调用"的判定标准不同,DAA 数字之间不能直接比较。现阶段 DAA 更适合做平台内部的趋势指标,而不是跨平台的排名标尺。

一份 DAA 落地检查清单

如果你准备在团队或平台里引入 DAA,可以按这个清单推进:

  • [ ] 每个 Agent 有唯一 ID,且 ID 与部署单元绑定(不是与 Prompt 模板绑定)
  • [ ] 每次调用记录 agent_idcalled_atstatus(success/failed/empty)
  • [ ] 聚合逻辑过滤掉 success_calls = 0 的 Agent
  • [ ] 同时保留 Token 指标做成本侧参照,形成"DAA + 人均 Token"的双指标看板
  • [ ] 每周复盘 DAA 增速与 Agent 注销速率,判断是"真增长"还是"注册泡沫"
  • [ ] 对外公布 DAA 时注明统计口径(粒度、门槛、过滤规则),避免误导对比

李彦宏把 DAA 摆到台面上,本质是在提醒行业:别用成本指标假装在衡量价值。 Token 告诉你烧了多少算力,DAA 告诉你有多少智能体真正在替人干活。两者搭配看,才能判断一个 AI 生态是在繁荣还是在空转。


相关推荐