代理镜头(Agent Lens)
v2.1.0跟踪AI代理的API调用,分析令牌使用情况,并优化成本。当用户想要监控LLM支出,调试API调用,跟踪令牌消耗时使用。
运行时依赖
安装命令
点击复制技能文档
Agent Lens 跟踪每个 AI API 调用,分析令牌使用情况,并优化成本。当用户:
说“我的花费是多少”、“令牌使用情况”、“API 成本” 想知道哪个模型最昂贵 需要优化提示成本 想跟踪 API 调用延迟或错误率 提到“预算”、“成本优化”或“令牌计数” 问“为什么我的 API 账单这么高”
快速开始 # 安装 pip install git+https://github.com/lrg913427-dot/agent-lens.git # 生成演示数据并查看其运行情况 agent-lens demo # 查看统计信息 agent-lens stats agent-lens cost agent-lens recent
三种跟踪方式
- 装饰器(最简单)
- 上下文管理器(灵活)
- 直接记录(手动)
全局快捷方式 from agent_lens import record, trace, track record(model="gpt-4o", input_tokens=100, output_tokens=50) with trace(model="gpt-4o") as t: ... @track(model="gpt-4o") def my_func(): ...
CLI 命令 命令 | 描述 ---|--- agent-lens stats | 总调用次数、令牌、成本概览 agent-lens report --by model | 按模型/提供商/代理人划分的详细信息 agent-lens cost | 成本排名,带百分比条形图 agent-lens recent -n 10 | 最近的 API 调用 agent-lens top | 最昂贵的调用 agent-lens export --json | 导出为 JSON agent-lens export -o data.csv | 导出为 CSV agent-lens clean --before | 清除旧数据 agent-lens demo | 生成示例数据
成本优化工作流 当用户问“如何节省钱”时: 运行成本报告:agent-lens cost 确定昂贵的模型:哪些模型最昂贵? 检查令牌效率:提示太长吗? 建议更便宜的替代方案:gpt-4o → gpt-4o-mini(10 倍便宜) claude-3.5-sonnet → claude-3.5-haiku(4 倍便宜) gpt-4 → gpt-4o(2 倍便宜) 检查缓存:是否有重复的提示? 检查错误率:agent-lens report --by status
令牌计数 import tiktoken def count_tokens(text: str, model: str = "gpt-4o") -> int: """计算给定模型的令牌数。""" try: enc = tiktoken.encoding_for_model(model) except KeyError: enc = tiktoken.get_encoding("cl100k_base") return len(enc.encode(text)) # 检查发送前 prompt = "您的长提示..." tokens = count_tokens(prompt) print(f"提示:{tokens} 令牌") print(f"预估成本:${tokens 2.50 / 1_000_000:.4f}")
支持的模型 支持 OpenAI(GPT-4o、o1、o3)、Anthropic(Claude 3.5/4)、Google(Gemini 2.x)、DeepSeek、Mistral、Qwen、GLM、MiMo 的定价数据。未知模型将被跟踪,但成本显示为“—”。
与 Hermes 集成 # 跟踪 Hermes 代理人 API 调用 from agent_lens import AgentLens lens = AgentLens(agent_name="hermes-main") # 在您的代理人循环中: with lens.trace(model=config.model) as t: response = agent.run_conversation(message) t.input_tokens = response.get("input_tokens", 0) t.output_tokens = response.get("output_tokens", 0)
数据存储 SQLite 位于 ~/.agent-lens/traces.db。完全本地,无需云服务。
陷阱 令牌提取仅适用于 OpenAI 兼容的响应格式 非 OpenAI 提供商需要手动设置 t.input_tokens 和 t.output_tokens 成本估算使用列表价格;实际成本可能因折扣而有所不同 * 数据库会随时间增长;请定期使用 agent-lens clean
验证 agent-lens demo # 生成 20 个示例记录 agent-lens stats # 应该显示 20 次调用 agent-lens cost # 应该显示按模型划分的成本明细