Agent 可观测性与成本工程
一句话定位:Agent 上线后,你怎么知道它”还活着、跑得对、没烧太多钱”?本文讲 Agent 级 可观测性(Observability——看得见 Agent 内部到底发生了什么)和 成本工程(把 Token / 延迟 / 钱算明白、再压下来)。这是 Agent 架构师”可运维”那一格的硬功夫,也是 Agent 架构师能力地图 能力域 7 的展开。
💬 大白话开场:可观测性 = 给 Agent 装一套「行车记录仪 + 仪表盘」(出事能回放、平时能看仪表);成本工程 = 给它装「油耗表 + 省油驾驶习惯」(知道烧了多少油、还能怎么省)。
目录
- 1. 为什么需要:Agent 是个”黑箱长跑选手”
- 2. 可观测性三件套:Trace / Metrics / Logs
- 3. Agent 特有的可观测维度
- 4. 成本工程:把钱算明白再压下来
- 5. 落地:从零搭一套(小白路径)
- 6. 常见坑
- 7. 术语速查
- 与本知识库其他章节的关联
- 来源与局限性
1. 为什么需要:Agent 是个”黑箱长跑选手”
一个生产级 Agent 跟”一问一答”完全不同:它会跑很多步、调很多工具、跨很长时间。一旦出问题,你面对的是一个黑箱——不知道它卡在哪一步、为什么绕圈、钱花在哪了。
可观测性和成本工程,就是回答三个必答问题:
| 问题 | 大白话 | 靠什么答 |
|---|---|---|
| 还活着吗? | 服务挂没挂、卡没卡、报错多不多 | 健康指标(Metrics)+ 日志(Logs) |
| 跑得对吗? | 有没有绕圈、跑偏、悄悄失败 | 链路追踪(Trace)+ 评测(Eval) |
| 烧了多少钱? | Token、延迟、每次任务的成本 | 成本工程(§ 4) |
⚠️ 先划清三个邻居的边界,别搞混:
- 模型服务监控(QPS / 显存 / GPU 利用率)——那是”机房层”,见 HomeLab 到中小企业 LLM 部署架构 § 7;
- 质量评测(答得准不准)——那是 Eval 测评体系 的事;
- 本文 = 介于两者之间的”Agent 运行时层”:一次任务跑了哪些步、每步花了多少 token / 多少秒、哪一步失败了。三者拼起来才是完整的”可运维”。
2. 可观测性三件套:Trace / Metrics / Logs
工业界讲可观测性(Observability)有经典的”三大支柱”。先用一句大白话各自定位,再看对照表:
2.1 Trace(链路追踪)—— 一次运行的”行车记录仪”
💬 大白话:把 Agent 完成一个任务的全过程录下来——第 1 步想了啥、第 2 步调了哪个工具、传了什么参数、返回啥、花了几秒、烧了多少 token,一步一步串成一条时间线。
两个关键词:
- Trace(一条追踪):一次完整任务的全记录(一整条时间线)。
- Span(跨度):时间线上的一段(比如”调用搜索工具”这一步)。一条 Trace 由很多 Span 嵌套组成。
💬 类比:Trace 是”一整趟快递的物流全程”,Span 是”揽收 / 转运 / 派送”每一个节点的扫描记录。
为什么 Agent 特别需要 Trace:普通网页请求就一来一回,看日志够了;Agent 一个任务里套着十几步工具调用和模型思考,没有 Trace 就等于闭着眼睛 debug。
2.2 Metrics(指标)—— 墙上的”仪表盘”
💬 大白话:把成千上万次运行聚合成几个数字,一眼看趋势——平均延迟多少、失败率几个百分点、今天烧了多少钱。
Agent 常看的指标:
| 指标 | 看什么 |
|---|---|
| 延迟 Latency | 响应快慢,要看 p50 / p95 / p99(见 Eval § 关键指标) |
| Token 用量 | 输入 / 输出 / 缓存 token 数,直接换算成钱 |
| 失败率 / 错误率 | 报错、超时、工具调用失败的占比 |
| 工具调用成功率 | 每个工具调用成 / 败的比例 |
| 人工介入率(HITL) | 多少比例的任务需要人接管 |
💬 p99 是啥:把所有请求的耗时从小到大排队,排在第 99% 位置那个的耗时。p99=8 秒 = “约 99% 的请求都比 8 秒快,只有最慢的约 1% 会等于或超过 8 秒”。⚠️ 注意 p99 不是”最慢那一次”——最慢那次是最大值 max;想看极端最差体验还得看 p99.9 / max。只看平均值会被”大部分很快”骗过去,p99 才暴露尾部的差体验。
2.3 Logs(日志)—— 出事时翻的”黑匣子”
💬 大白话:一条条带时间戳的文字流水账,最原始、最详细,出了具体的事去翻它。
三者一句话区分:
| 支柱 | 回答 | 类比 | 粒度 |
|---|---|---|---|
| Trace | ”这一次任务怎么跑的?“ | 行车记录仪回放 | 单次任务全链路 |
| Metrics | ”整体趋势好不好?“ | 仪表盘 | 聚合数字 |
| Logs | ”那一刻具体发生了啥?“ | 黑匣子流水账 | 单条事件 |
3. Agent 特有的可观测维度
普通 Web 服务的监控(CPU、QPS)不够用——Agent 还有一批只有它才有的维度,这才是 Agent 可观测性的精华:
| 维度 | 为什么要盯 |
|---|---|
| 每步 Token 消耗 | 定位”哪一步在烧钱”(往往是塞了超长上下文那步) |
| 工具调用成败 + 参数 | Agent 最常死在”调错工具 / 传错参数” |
| 循环 / 迭代次数 | ReAct 转了几圈?转太多 = 跑偏或卡死信号 |
| 是否跑偏(goal drift) | 有没有偏离原始任务目标 |
| 上下文压缩发生点 | 哪轮触发了自动压缩、压掉了什么(呼应 长程任务原语 § 3.3) |
| 人工介入率 | 自治程度的直接度量 |
LLM 专用观测平台(普通 APM 工具不懂 LLM,得用这些):
| 平台 | 一句话 | 大白话 |
|---|---|---|
| Langfuse | 开源 LLM trace + eval + 成本,最常用 | 给 LLM 应用的”行车记录仪+账本”,能自建 |
| LangSmith | LangChain 官方配套(见 Eval) | LangChain 用户的无缝套装 |
| Phoenix(Arize) | 开源、偏排查与评测 | 重排查/可视化的开源选择 |
| OpenTelemetry(OTel) | 通用可观测性标准 / 框架(含 API、SDK、语义约定、Collector;其传输协议另称 OTLP),非专用工具 | 行业”通用插头”,很多平台都兼容它 |
这些工具的部署示例(如 Langfuse 接入代码)见 HomeLab § 7.3 LLM 专用观测;本文讲”该观测哪些维度、为什么”,那篇讲”监控栈怎么搭”。
4. 成本工程:把钱算明白再压下来
💬 大白话:Agent 跑起来是真烧钱的(
/goal长任务一天能烧几十美元)。成本工程就是先搞清楚”钱花哪了”,再用几招把它压下去。
4.1 成本从哪来:Token 拆解
LLM 按 Token(词元,模型计长度和算钱的最小单位) 收费,且三种 token 单价不同:
| Token 类型 | 说明 | 相对价格 |
|---|---|---|
| 输入 Input | 你发进去的(含历史对话、系统提示、工具定义) | 便宜 |
| 输出 Output | 模型生成的 | 贵(常是输入的 3~5 倍) |
| 缓存 Cached | 命中 Prompt Caching 的输入 | 最便宜(常打 1~2 折) |
详细的 Token 换算、上下文累计计费、Prompt Caching 机制见 上下文窗口与 Token 计费。
4.2 四个省钱杠杆
| 杠杆 | 怎么做 | 大白话 |
|---|---|---|
| 模型分级 | 简单步骤用便宜模型(Haiku),难步骤才上贵的(Opus) | 杀鸡别用牛刀——见 各家 LLM 模型特点速查、LLM-API 选型方法论 |
| Prompt Caching | 把固定不变的长前缀(系统提示 / 工具定义)缓存起来 | 重复的开场白按缓存折扣价计费——不是免费,但便宜很多(见 § 4.1 的”1~2 折”) |
| 上下文压缩 | 旧对话摘要化,别一直堆 | 别把整本聊天记录每次都重发一遍(呼应 长程任务原语 § 3.3) |
| 任务二分法 | 能用脚本 / 规则做的别调 LLM | 不花钱的活就别花钱——见 Multi-Agent § 任务二分法(“这一层不调 LLM,0 token 成本”) |
4.3 延迟工程(快也是一种省)
延迟和成本是一对:用户等不起,慢请求也常更贵。常见手段——流式输出(先出字、体感快)、并行工具调用(多个工具同时调)、投机解码(Speculative Decoding,小模型先猜大模型来验,详见 LLM 推理引擎选型)。
5. 落地:从零搭一套(小白路径)
- 先接一条 Trace:给 Agent 接上 Langfuse(或 LangSmith),让它自动记录每次运行的步骤 / token / 延迟。
- 看仪表盘:跑几天,盯 p95 延迟、失败率、每日 token 花费三个数。
- 设预算告警:日成本超阈值就报警(别等月底账单吓一跳)。
- 打通 Eval:把线上 Trace 里”出问题的运行”捞出来,变成 Eval 的测试样本——这就接上了数据飞轮(线上数据回灌成评测集)。
💡 顺序很重要:先有 Trace(看得见)→ 再有 Metrics(看趋势)→ 再谈优化。看不见就优化 = 蒙着眼睛改。
6. 常见坑
| 坑 | 症状 | 解法 |
|---|---|---|
| 只监控机器、不监控 Agent | CPU 正常,但 Agent 早就跑偏了 | 加 Agent 级维度(§ 3) |
| 只看平均延迟 | 平均很好看,p99 烂到用户跑光 | 一定看 p95 / p99 |
| 不算 token 账 | 月底账单爆炸才发现 | 按 run 记 token + 预算告警 |
| Trace 记了不看 | 存了一堆 trace,出事不去回放 | 把”看 trace”写进排查 SOP |
| 日志记敏感信息 | trace / log 里混入密钥、用户隐私 | 脱敏(呼应 Agent 安全攻防 的 DLP) |
7. 术语速查
| 术语 | 英文 | 一句话 | 💬 大白话 |
|---|---|---|---|
| 可观测性 | Observability | 从外部信号推断系统内部状态的能力 | 看得见 Agent 肚子里发生了啥 |
| 链路追踪 | Trace | 一次任务全过程的步骤时间线 | 行车记录仪回放 |
| 跨度 | Span | Trace 里的一段(某一步) | 物流时间线上的一个扫描点 |
| 指标 | Metrics | 聚合出来的趋势数字 | 仪表盘上的几个表 |
| 日志 | Logs | 带时间戳的原始事件流水 | 黑匣子流水账 |
| p99 延迟 | p99 latency | 约 99% 请求都不超过这个耗时(剩约 1% 更慢) | 排到末尾约 1% 的请求有多慢(不是最慢那一次,那叫 max) |
| 数据飞轮 | Data Flywheel | 用线上数据回灌改进系统 | 越用越准的滚雪球 |
| Prompt 缓存 | Prompt Caching | 缓存固定长前缀,命中后按折扣价计费 | 重复的开场白下次便宜很多(打折,非免费) |
| 模型分级 | Model Routing | 按难度选贵 / 便宜模型 | 杀鸡不用牛刀 |
| 可观测性标准框架 | OpenTelemetry (OTel) | 跨工具的观测数据标准(API/SDK/语义约定/Collector,传输协议为 OTLP) | 行业通用插头 |
与本知识库其他章节的关联
| 文档 | 关系 |
|---|---|
| Agent 架构师能力地图与学习路线 | 本文是其**能力域 7(可观测与运维)**的展开 |
| Eval 测评体系 | 可观测回答”跑得对吗”靠它;线上 Trace → Eval 样本是数据飞轮闭环 |
| HomeLab 到中小企业 LLM 部署架构 | 那篇讲监控栈(Prometheus / Grafana / Langfuse)怎么搭,本文讲该观测什么 |
| 上下文窗口与 Token 计费 | 成本工程的计费物理基础(Token 换算、Prompt Caching) |
| Claude Code goal 命令 | 长任务自治的成本警示(一天烧几十美元)是本文成本工程的现实动机 |
| 长程任务原语 | 上下文压缩既是省钱手段,也是长程任务的状态管理手段 |
| 各家 LLM 模型特点速查 / LLM-API 选型方法论 | 模型分级省钱要先认识各家模型的能力 / 价格档位 |
| 极简可控的 Coding Agent 设计:pi | 工具级实践案例:pi 把”可观测性优先”做到极致(拒绝 SubAgent 黑盒、用 tmux 换后台 bash),是本文方法论的一个具体工具取向 |
| AI 岗位图谱:FDE 与大模型应用工程师 | 岗位视角:面试五问里的”单次请求成本和 P95 延迟是多少、谁在管这个数”问的就是本文内容;“生产化工程能力”是大模型应用工程师护城河的第二层 |
来源与局限性
- 来源:补全 Agent 架构师能力地图 能力域 7 的覆盖空洞;综合本库已有的部署监控、Eval、Token 计费笔记提炼。
- 局限性:
- 具体平台(Langfuse / LangSmith / Phoenix)的功能与定价更新很快,选型前请查官方最新文档;
- 本文聚焦”该观测什么、怎么省钱的思路”,不展开各平台的 SDK 接入代码(接入示例见 HomeLab § 7);
- 成本数字(输出是输入的 3~5 倍等)是经验量级,随模型 / 厂商不同,以实际计费为准。
- 最后更新:2026-06-03