HarmonyOS 鸿蒙Next AI Agent 的"智能油耗表":Token Budget(词元预算)开源了

HarmonyOS 鸿蒙Next AI Agent 的"智能油耗表":Token Budget(词元预算)开源了

我写了一个 TypeScript 设计模式,让每个 AI Agent 在调大模型之前先问预算。不够就降级,用完就拦截。已经开源。


一个华为开发者的小探索

我是一名鸿蒙生态的独立开发者,过去半年一直在做 AI Agent 相关的东西。

去年底 DeepSeek V4 发布的时候,我兴奋地把它接进了自己的 Agent 框架。跑了两个月,收到云厂商账单的时候愣住了——

一晚上跑了 18 万次推理调用。花费 ¥86。

我的 Agent 比我还更有钱。它调 DeepSeek V4 Thinking(¥8/百万 token)根本不眨眼,一次分析跑 3 万 token,一天下来几百次。

我问它"你知道今天花了多少钱吗?"

它不知道。它只管干活,不管预算。

这不是一个 bug。这是整个 AI Agent 架构层面的结构性缺失——没有人在设计 Agent 的时候,给它加上"事前判断"这个步骤。

现有方案长这样:

  • 用量仪表盘 → 花完了才知道
  • API Key 限额 → 硬封顶,不分任务轻重缓急
  • Token 计数工具 → 只管数,不管控

就像你给司机一辆车,装了最先进的导航、最豪华的内饰——但没有油表。他不知道什么时候该加油,不知道什么时候该省着开。

我决定自己写一个油表。


Token Budget(词元预算):一个设计模式

我不把它叫做"产品"或"APP"。它是一个设计模式——就像 MVC、Try/Catch,它不会单独出现在应用商店里,但它应该渗透到每一个 Agent 的代码中。

核心就一条规则:

每次调 LLM 前,先问预算。

用 TypeScript 写出来,核心 200 行:

export class TokenBudget {
  // 预检:这笔调用能花吗?
  canSpend(task): { allow: boolean, suggestion: string }
  
  // 选型:根据剩余预算,该用什么模型?
  selectModel(taskType): string
  
  // 记账:调用后记录花费
  recordSpend(task, tokens, model): void
}

三个方法,构成了 Agent 的预算自治层。

模型分级

我把模型按费用分成三档,Agent 自己判断该用哪个:

等级 模型 费用 什么时候用
PREMIUM DeepSeek V4 Reasoning ¥8/百万 深度推理、战略分析
STANDARD DeepSeek V4 Fast ¥2/百万 分析、写作、总结
CHEAP** DeepSeek V3 Lite (免费) ¥0 日常对话、格式化

预算策略

日预算 10 万 token(约 ¥0.8-2),自动降级开着。预算越花越少时,Agent 自动切换策略:

  • 余额 ≥ 80% → 满血版任意用
  • 余额 50%-80% → 深度推理用满血,其余用标准版
  • 余额 20%-50% → 只保高优先级任务
  • 余额 < 10% → 免费模型兜底,拦截非关键任务

六种场景验证

场景 结果
预算充裕 + 深度推理 ✅ 满血版直接跑
简单格式化 ✅ 免费模型,不浪费
大量消耗到 95% ✅ 自动降级
预算紧张 + 中等任务 🚫 拦截
预算紧张 + 免费可用 ✅ 自动切免费
单次任务超限 🚫 建议拆分

全部验证通过。测试代码在 GitHub 上,任何人都能复现。


和鸿蒙生态的连接点

作为一个鸿蒙开发者,我选择 TypeScript 不是偶然的。

鸿蒙原生支持 ArkTS(TypeScript 的超集),我写的 Token Budget 可以直接跑在 HarmonyOS 的 Agent 框架里。也就是说——

你的鸿蒙元服务、鸿蒙 Agent 应用,不需要任何额外适配。一行 import,就能拿到预算自治能力。

// 鸿蒙 Agent 应用里
import { TokenBudget } from '@wenrl2006/token-budget'

const budget = new TokenBudget({
  dailyLimit: 100000,        // 日预算 10 万 token
  autoDowngrade: true        // 自动降级
})

async function agentThink(input: string) {
  const task = { type: 'deep_reasoning', estimatedTokens: 3000 }
  
  // 先问预算:能花吗?
  if (!budget.canSpend(task).allow) {
    return "今日AI预算已用完,请明天再试"
  }
  
  // 选模型:根据余额用哪个?
  const model = budget.selectModel(task.type)
  
  // 干活 + 记账
  const result = await callLLM(input, model)
  budget.recordSpend('用户咨询', 3000, model)
  
  return result
}

这就是我理解的"鸿蒙 + AI"的正确打开方式——不是把 Agent 当 API 调一调就完事,而是给 Agent 装上基础设施级的自控能力。


未来的方向

这个版本只是一个开始。200 行代码,6 个场景验证。后面需要更多人来填:

  • 跨 Agent 共享预算池 — 一个账户下多个 Agent 共享额度
  • 任务优先级调度 — 高优任务保预算,低优任务排队
  • 与云端 API 限额联动 — 本地预算 + 云端限额双保险
  • 异常熔断 — 检测到异常调用模式时自动熔断

我在鸿蒙开发者社区建了一个交流群,如果你也在做 Agent 相关开发,欢迎一起聊聊。


开源地址

不需要安装大型框架,不需要改动现有架构。只要你的 Agent 运行在 Node.js/HarmonyOS 上——

import { TokenBudget } from 'token-budget',装好这块智能油耗表。


更多关于HarmonyOS 鸿蒙Next AI Agent 的"智能油耗表":Token Budget(词元预算)开源了的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

HarmonyOS 鸿蒙Next AI Agent的“智能油耗表”即Token Budget(词元预算)工具,用于监控和管理AI Agent运行时的Token消耗。该工具已开源,支持在鸿蒙Next环境下进行Token使用量的可视化跟踪与预算控制,帮助开发者高效规划AI交互资源。

更多关于HarmonyOS 鸿蒙Next AI Agent 的"智能油耗表":Token Budget(词元预算)开源了的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个设计思路非常精准,直击了当前 Agent 架构的痛点。你把它定义为“设计模式”是很敏锐的判断——它本质上是给 LLM 调用链路加了一个“约束层”,解决了 Agent 独立自主运行时的成本失控问题。

这种“先问预算”的逻辑和 HarmonyOS Next 的元服务架构搭配得很好。ArkTS 的原生支持让这个油表能无缝嵌入鸿蒙应用的 Agent 框架中,相当于在端侧就完成了推理成本的裁决,把控制权交还给了开发者和设备。

除了你提到的跨 Agent 共享预算池等方向,这个模式在鸿蒙生态里还有一层价值:它能成为未来端云协同 Agent 的关键调度器。当鸿蒙设备需要在本地小模型与云端大模型之间做推理路由时,Token Budget 的策略可以直接作为裁决依据——既考虑推理任务类型,又结合成本预算约束,让分布式推理的调度有了统一的经济逻辑。

200 行代码解决了一个产业级的结构性问题,确实值得开源看看生态的反响。

回到顶部