🏠 首页 › 攻略 › 给AI Agent设预算:3招管住它乱花钱和乱调工具

给AI Agent设预算:3招管住它乱花钱和乱调工具

AI Agent跑起来就不回头?调用了不该调的接口、烧光了Token预算。本文教你3招给Agent设硬性约束:Token预算、工具白名单、成本上限,附可落地的配置代码,让自主执行变得可控。

你有没有遇到过这种情况:让AI Agent去跑一个任务,它开始调用工具、读文件、调接口,看着挺勤快。结果一回头发现,Token烧了上万,还调了一个根本没授权的接口。

Agent越自主,越容易失控。今天分享3招,给Agent上"预算约束"。让它能干正事,又不会乱来。全部是可落地的代码片段,拿来就能用。

第一招:Token预算——设个硬上限

Agent的"花销"主要看Token。每次循环都要塞历史上下文进去,越聊越长,成本滚雪球。

最直接的约束:给整个任务设一个Token上限,超了就停。

BUDGET = 50_000  # 整个任务最多允许的 token 数

def run_agent(task, budget=BUDGET):
    used = 0
    while not done:
        prompt_tokens = estimate_tokens(history)
        if used + prompt_tokens > budget:
            return "预算用完,已停止"  # 硬刹车
        used += prompt_tokens
        step = llm_call(history)
        history.append(step)

关键就一句:每次循环前先算账,超了立刻停。别等跑完才发现超支。

第二招:工具白名单——只准调该调的

Agent能调多少工具,决定了它能干多少事,也决定了它能闯多少祸。

别让它全量访问。按任务需要,给它一份白名单:

ALLOWED = ["read_file", "git_status", "run_tests"]

def can_call(tool, *args):
    if tool not in ALLOWED:
        log.warn(f"拒绝调用未授权工具: {tool}")
        return False
    return True

写个最小清单。跑单元测试就开测试相关工具,别把"删数据库"这种也放进来。工具越少,越安全。

第三招:成本核算——把钱算明白

预算是Token,但老板看的是钱。把Token折算成成本,设定单任务成本上限。

不同模型单价不同。先用在线工具把单价算清楚。navbox的AI API成本计算器和AI Token计算器能帮你估算单次调用要花多少。

PRICE = {"gpt": 0.003, "claude": 0.005}  # 每 1k token 单价

def cost(toks, model):
    return toks * PRICE[model] / 1000

# 任务预算 0.2 元,超了就停
if cost(used, model) > 0.2:
    stop("成本超出预算")

落地顺序

  1. 先定Token预算,这是最硬的约束
  2. 再收窄工具白名单,只开必要的
  3. 最后把成本换算进来,设单任务上限

三步走完,Agent就从一个"放飞的实习生",变成"有预算、有权限、有考核"的正式工。

你给Agent设的预算,够它跑完最贵的那个任务吗?