深色模式
可观测性与评测
是什么
- 可观测性:记录每次调用的输入、输出、工具调用、token、延迟、成本,便于排查与优化。
- 评测(Eval):用数据集/指标量化 Agent 的质量,避免凭感觉迭代。
为什么需要
Agent 是概率系统,输出不稳定。没有 trace,你不知道它哪一步跑偏;没有 eval,你不知道一次改动是变好还是变差。
核心概念
- Tracing:把一次 Agent 运行展开成树(思考→工具→观察→再思考),每节点带耗时与 token。
- 关键指标:首字延迟、端到端延迟、总 token、成本、成功率、工具调用次数。
- 离线评测:准备黄金数据集(问题 + 标准答案/标准轨迹),自动打分(精确匹配、LLM-as-judge、轨迹对齐)。
- 在线评测:A/B、用户点赞/点踩、人工抽检。
最小范式(自研 trace)
python
import time, uuid
def traced_call(messages):
tid = uuid.uuid4().hex[:8]
t0 = time.time()
r = llm(messages)
log({
"trace_id": tid, "input_tokens": r.usage.prompt_tokens,
"output_tokens": r.usage.completion_tokens,
"latency_ms": int((time.time()-t0)*1000),
"model": r.model,
})
return r1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
评测上手建议
- 先建一个 50~100 条 的小数据集覆盖典型与边界 case。
- 用 LLM-as-judge(让另一个模型按 rubric 打分)快速获得可迭代信号。
- 每次改 prompt/架构都跑一遍 eval,记录分数变化,形成"回归基线"。
常见陷阱
- 只看最终答案准确率:忽略了 token 成本与延迟,线上会爆。
- 无基线对比:"我觉得更好"无法决策,必须数字对比。
- 评测集泄漏:测试题混进训练/上下文,分数虚高。
参考
- LangSmith / Phoenix(开源)tracing 文档
- 各厂商 LLM 评测实践文档
- "LLM-as-a-Judge" 相关论文与方法