0Pricing
AI Agents · บทเรียน

เวลาแฝงและต้นทุนในแต่ละขั้นตอน

วัดการใช้โทเค็นและเวลาจริงของแต่ละโหนด เพื่อค้นหาขั้นตอนที่ช้าและมีค่าใช้จ่ายสูง

เวลาแฝงและต้นทุนในแต่ละขั้นตอน เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงต้องวัดผลต่อขั้นตอน

เวลาแฝงรวมและค่าใช้จ่ายรวมบอกได้ว่าระบบช้าหรือมีค่าใช้จ่ายสูง — แต่ไม่ได้บอกว่า WHICH ขั้นตอนช้าหรือมีค่าใช้จ่ายสูง การวัดผลแยกตามขั้นตอนจึงจำเป็นต่อการแก้ไขปัญหา

การบันทึกเวลาแฝง

เพิ่มข้อมูลนี้ในทุก span:

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

หมวดหมู่ของเวลาแฝง

ขั้นตอนที่มักใช้เวลานานในเอเจนต์:

  • การเรียกใช้ LLM — 500ms ถึง 10s
  • การค้นเว็บ — 200ms ถึง 2s
  • การสร้างเวกเตอร์ฝัง — 50ms ถึง 200ms
  • การค้นฐานข้อมูล — 5ms ถึง 500ms

การบันทึกค่าใช้จ่าย

สำหรับขั้นตอนที่ใช้ 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 ต่าง ๆ แถบที่ยาวที่สุดคือคอขวดของคุณ

ส่วนติดต่อผู้ใช้ของเครื่องมือการติดตามส่วนใหญ่วาดแผนภาพนี้ให้อัตโนมัติ

แจ้งเตือนเมื่อพบค่าผิดปกติ

  • แจ้งเตือนหากเวลาแฝง 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 ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เวลาแฝงและต้นทุนในแต่ละขั้นตอน”

วัดการใช้โทเค็นและเวลาจริงของแต่ละโหนด เพื่อค้นหาขั้นตอนที่ช้าและมีค่าใช้จ่ายสูง คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “เวลาแฝงและต้นทุนในแต่ละขั้นตอน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม

ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เหตุใดเอเจนต์จึงต้องมีการติดตามร่องรอย
  2. การบันทึกการเรียกใช้เครื่องมือและข้อมูลเข้า/ออก
  3. เวลาแฝงและต้นทุนในแต่ละขั้นตอน
  4. การแสดงการทำงานของเอเจนต์ด้วยภาพ (Langfuse, LangSmith)
← กลับไปที่ AI Agents