0Pricing
AI Agents · 课时

每个步骤的延迟与成本

测量每个节点的令牌用量和实际耗时,从而找出缓慢且昂贵的步骤。

每个步骤的延迟与成本 是 CoddyKit 上的免费 AI Agents 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Agents 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Agents 课程共包含 4 节课。

为什么要测量每一步?

总延迟和总成本只能告诉您系统很慢或很昂贵——却不能告诉您究竟是哪一步很慢或很昂贵。要修复问题,就必须逐步测量。

记录延迟

将其添加到每个 span:

start = time.time()
# ... do work ...
span.duration_ms = (time.time() - start) * 1000

延迟类别

代理中常见的慢速步骤:

  • LLM 调用——500 毫秒到 10 秒
  • 网络搜索——200 毫秒到 2 秒
  • 嵌入——50 毫秒到 200 毫秒
  • 数据库查询——5 毫秒到 500 毫秒

记录成本

对于 LLM 步骤,将令牌数乘以价格:

PRICES = {
    'gpt-4o-mini':       {'in': 0.150 / 1e6, 'out': 0.600 / 1e6},
    'gpt-4o':            {'in': 2.50  / 1e6, 'out': 10.00 / 1e6},
    'claude-sonnet-4-5': {'in': 3.00  / 1e6, 'out': 15.00 / 1e6}
}

def compute_cost(model, tokens_in, tokens_out):
    p = PRICES[model]
    return tokens_in * p['in'] + tokens_out * p['out']

cost = compute_cost('gpt-4o-mini', 1000, 500)
print(f"Cost for 1000 in / 500 out tokens on gpt-4o-mini: ${cost:.6f}")

汇总到每个 trace

将各个 span 汇总到 trace 层级:

def trace_metrics(spans):
    return {
        'duration_ms': sum(s.duration_ms for s in spans),
        'cost_usd':    sum(s.cost_usd or 0 for s in spans),
        'tokens':      sum((s.tokens_in or 0) + (s.tokens_out or 0) for s in spans),
        'step_count':  len(spans)
    }

from types import SimpleNamespace
spans = [
    SimpleNamespace(duration_ms=120, cost_usd=0.002, tokens_in=100, tokens_out=50),
    SimpleNamespace(duration_ms=340, cost_usd=0.005, tokens_in=200, tokens_out=80),
]
print(trace_metrics(spans))

p50 / p95 / p99

不要查看平均值——代理的延迟通常呈重尾分布。请报告百分位数:

import numpy as np
durations = [t.duration_ms for t in last_1000_traces]
print('p50:', np.percentile(durations, 50))
print('p95:', np.percentile(durations, 95))
print('p99:', np.percentile(durations, 99))

每位用户的成本

按 user_id 每日汇总成本:

SELECT user_id, SUM(cost_usd) AS daily_cost
FROM traces
WHERE created_at::date = current_date
GROUP BY user_id
ORDER BY daily_cost DESC
LIMIT 100

每个步骤名称的成本

哪些步骤占据了主要成本?按名称分组:

SELECT name, SUM(cost_usd) AS total
FROM spans
WHERE trace_id IN (SELECT id FROM traces WHERE created_at::date = current_date)
GROUP BY name
ORDER BY total DESC

延迟瀑布图

对于单个 trace,绘制 span 的甘特图式瀑布图。最长的条形就是您的瓶颈。

大多数 trace 界面都会自动渲染此图。

针对异常值发出警报

  • 如果 p95 延迟环比翻倍,则发出警报
  • 如果每日成本超过正常值的 2 倍,则发出警报
  • 如果任何单个用户每天的成本超过 $X,则发出警报

比较两个模型

逐步指标可以让您对模型进行 A/B 比较:

# Run 100 traces with gpt-4o-mini and 100 with haiku
# Compare p95 latency and average cost
# Pick the winner for the use case
print("Run 100 traces with gpt-4o-mini and 100 with haiku")
print("Compare p95 latency and average cost")
print("Pick the winner for the use case")

跟踪令牌分布

输入令牌与输出令牌的直方图可以揭示问题:例如,持续达到 max_tokens = 输出被截断 = 存在错误。

为什么使用百分位数?

为什么要报告 p95 延迟,而不是平均延迟?

回顾

记录每一步的延迟和成本,并汇总到每个 trace 和每位用户;使用百分位数而不是平均值;针对异常值发出警报。这就是您的仪表板。

常见问题解答

「每个步骤的延迟与成本」课时是免费的吗?

是的 — 「每个步骤的延迟与成本」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Agents 课程的其余内容,请升级到 CoddyKit PRO。 AI Agents 课程共包含 4 节课。

「每个步骤的延迟与成本」这节课中我会学到什么?

测量每个节点的令牌用量和实际耗时,从而找出缓慢且昂贵的步骤。 你通过在浏览器中直接运行的动手代码来练习 AI Agents,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 AI Agents 需要有经验吗?

无需任何先前经验。CoddyKit 上的 AI Agents 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「每个步骤的延迟与成本」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 AI Agents 课中编写并运行代码吗?

能。每节 AI Agents 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 智能体为何需要追踪
  2. 记录工具调用和输入/输出
  3. 每个步骤的延迟与成本
  4. 可视化智能体运行过程(Langfuse、LangSmith)
← 返回 AI Agents