runid-latency-analysis · git:20260317.90aa040 · 2026-03-17 · sha256 956dd9f4e0e6161a
runid-latency-analysis git:20260317.90aa040A
Immutable. This exact content is served forever at /api/v1/blob/956dd9f4e0e6161a.
--- name: runid-latency-analysis description: Analyze runId latency and performance from devtools data. Use when asked to investigate a specific runId's timing, identify bottlenecks across LLM/Tool/Engine Plugin, or produce a fixed bilingual (ZH+EN) diagnosis report with metrics and hypotheses. --- # RunId Latency Analysis ## Overview Provide a fixed, structured diagnosis for a specific runId using devtools data and timing spans, with clear bottleneck classification and next actions. Output both Chinese and English reports (Chinese first). ## Workflow 1. Confirm inputs and scope - Required: runId - Optional: base URL/environment, sessionId, time window, focus area (LLM vs Tool vs Plugin) 2. Load run data - Prefer devtools API endpoints. If unknown, open `apps/remote-server/src/routes/devtools.ts` to confirm. - Fallback: search `~/.pulse-coder/remote-sessions` session JSON or devtools UI export. 3. Extract metrics - LLM spans: TTFB, TTFT, TTFT(text), Stream, Tool Wait, Tool Exec, usage, cached tokens - Tool spans: wait/exec durations, tool name, input/output size if present - Engine plugin spans: hook name and duration - Timeline: per-turn boundaries and idle gaps - Use `references/metrics.md` for definitions and fallback rules. 4. Diagnose bottleneck category - Classify as: LLM/network/model, Tool queue, Tool execution, Engine/plugin overhead, or Idle gap - Support with 2–3 strongest metrics and mention missing data if any. 5. Produce report (fixed bilingual template, Chinese then English) ## Fixed Report Template (ZH + EN) ``` RunId 延迟报告 (中文) 1) 摘要 - RunId: <runId> - 总体结论: <一句话结论> - 主要瓶颈: <LLM/Tool/Plugin/Idle> 2) 关键指标 (LLM) - TTFB: <value or N/A> - TTFT: <value or N/A> - TTFT(text): <value or N/A> - Stream: <value or N/A> - Tool Wait (during LLM): <value or N/A> - Tool Exec (during LLM): <value or N/A> - Cached input tokens: <value or N/A> - Total tokens: <value or N/A> 3) Tool 耗时 (Top 3) - <toolName>#<index>: wait <x>, exec <y>, notes <...> - <toolName>#<index>: wait <x>, exec <y>, notes <...> - <toolName>#<index>: wait <x>, exec <y>, notes <...> 4) Engine Plugin 耗时 (Top 3) - <pluginName>.<hook>: <duration> - <pluginName>.<hook>: <duration> - <pluginName>.<hook>: <duration> 5) Timeline 备注 - Turn 边界: <T1..Tn> - Idle gaps: <位置/原因> 6) 诊断 - <简短推理 + 证据> 7) 下一步行动 - <action 1> - <action 2> RunId Latency Report (English) 1) Summary - RunId: <runId> - Overall impression: <one-line conclusion> - Primary bottleneck: <LLM/Tool/Plugin/Idle> 2) Key Metrics (LLM) - TTFB: <value or N/A> - TTFT: <value or N/A> - TTFT(text): <value or N/A> - Stream: <value or N/A> - Tool Wait (during LLM): <value or N/A> - Tool Exec (during LLM): <value or N/A> - Cached input tokens: <value or N/A> - Total tokens: <value or N/A> 3) Tool Spans (Top 3) - <toolName>#<index>: wait <x>, exec <y>, notes <...> - <toolName>#<index>: wait <x>, exec <y>, notes <...> - <toolName>#<index>: wait <x>, exec <y>, notes <...> 4) Engine Plugin Spans (Top 3) - <pluginName>.<hook>: <duration> - <pluginName>.<hook>: <duration> - <pluginName>.<hook>: <duration> 5) Timeline Notes - Turn boundaries: <T1..Tn> - Idle gaps: <where/why> 6) Diagnosis - <short reasoning with evidence> 7) Next Actions - <action 1> - <action 2> ``` ## Handling Missing Data - If timing fields are missing (older runs), set the metric to N/A and mention it explicitly. - If firstTextAt is missing (tool-call-first), set TTFT(text) to N/A. - If cached tokens are missing, use usage raw fallbacks (see references). - Keep Chinese and English sections consistent, even when values are N/A. ## Resources - `references/metrics.md`: definitions, field mapping, and heuristics