Root cause: sequential execution of "messages.create"
3 "anthropic.messages.create" spans ran one after another — each started only after the previous one finished. Total: 5.3s, slowest single call: 2.1s. Running them concurrently saves 3.2s — a 2.5× speedup.
5.3s
~2.1s
Fix: run calls in parallel
from concurrent.futures import ThreadPoolExecutor
# Before — sequential, each call blocks the next:
for item in items:
result = process(item)
# After — all calls run concurrently:
with ThreadPoolExecutor(max_workers=8) as pool:
results = list(pool.map(process, items))
# Cost unchanged. Output unchanged. Time = slowest single call.Waterfall
agent.run
anthropic.messages.create
Summarize the Q3 earnings report attached. Focus on revenue, margin, and guidance.
(answer to: Summarize the Q3 earnings report attache…)
anthropic.messages.create
Given the customer ticket below, draft a refund response that follows policy P-204.
(answer to: Given the customer ticket below, draft a…)
anthropic.messages.create
Translate the user manual section to Japanese, preserving the table structure.
(answer to: Translate the user manual section to Jap…)
tool.code_exec
tool.code_exec
tool.web_fetch