Skip to content

成本优化策略

在知识图谱中的位置:模块四 · 04_工程实践 · 第 2 节 难度:⭐⭐⭐ | 前置知识:Agent 基础


1. 概述

Agent 的成本来自多轮 API 调用(每步 Thought/Action 都是一次 LLM 调用)。成本优化是生产级 Agent 的必做项。


2. 五大优化策略

2.1 模型路由(按任务分级)

简单任务 → Claude Haiku / GPT-4o-mini  ($0.15/1M)
中等任务 → Claude Sonnet / GPT-4o       ($3-15/1M)
复杂推理 → Claude Opus / GPT-4.5        ($15-60/1M)
python
from litellm import router

models = [
    {"model": "gpt-4o-mini", "cost": 0.15, "max_tokens": 4096},
    {"model": "claude-3-sonnet", "cost": 3.0, "max_tokens": 4096},
    {"model": "claude-3-opus", "cost": 15.0, "max_tokens": 4096},
]

# 自动根据任务复杂度选模型
model = router.route(prompt=prompt, completion="auto")

2.2 上下文压缩

策略说明节省
摘要历史定期将对话摘要化50-80%
Token 预算限制上下文总长度直接控制
选择性记忆只注入相关记忆30-60%
分段处理分块处理长任务按需

2.3 减少 Agent 迭代

策略说明效果
Agent-X 按需规划只在必要时规划省 30-50%
直接回答简单问题直接答省 70-90%
缓存结果相同问题直接返回省 100%

2.4 缓存策略

python
import hashlib

def get_cached_or_compute(query, ttl=3600):
    cache_key = hashlib.md5(query.encode()).hexdigest()
    cached = cache.get(cache_key)
    if cached and (time.time() - cached['time']) < ttl:
        return cached['result']  # 直接返回缓存
    result = agent.run(query)
    cache.set(cache_key, {'result': result, 'time': time.time()})
    return result

2.5 批量处理

python
# 错误做法:每个用户请求独立 Agent
for query in queries:
    result = await agent.run(query)  # 每轮都调 LLM

# 正确做法:批量合并
batch = [query1, query2, query3]
results = await agent.run_batch(batch)  # 一次推理完成

3. 成本估算

3.1 典型 Agent 每轮成本

Agent 复杂度每轮 tokens每次调用成本 (USD)
简单(无工具)1K$0.0003
中等(1-2 工具)3K$0.001
复杂(多工具+规划)10K$0.005
重度(多Agent)50K$0.025

3.2 月度成本优化目标

| 规模 | 月调用量 | 优化前 | 优化后 | 节省 | |------|------|--|-|--|-| | 个人 | 10K/轮 | $5 | $2 | 60% | | 小团队 | 100K/轮 | $50 | $20 | 60% | | 企业 | 1M/轮 | $500 | $200 | 60% |


4. 参考资料