A transcript is not a trace
The most common mistake in agent observability is treating the chat log as the observability layer. A transcript captures the conversation between the user and the model. It does not capture what the model tried internally: which tool it called first, what arguments it passed, what came back, whether the first attempt failed validation and got retried, or what other tool it considered and rejected.
Most production bugs live in exactly that gap. The model gave a wrong answer not because its language generation was bad, but because a tool call returned stale data, or a retry silently used a fallback value, or the context window truncated a critical instruction before the final generation step. None of that shows up in a transcript. It only shows up in a trace.