Prompt Debugging
Prompt Debugging 是调试 Prompt 效果的工程实践,包括查看完整 Prompt、对比不同版本、分析 token 分布和测试边界情况。
#type / concept
#status / evergreen
#tech / ai
[!info] related notes
- 所属 MOC: Observability Engineering MOC
- 相关: Prompt Management, Trace
Prompt Debugging
一句话定义
Prompt Debugging 是调试 Prompt 效果的工程实践。Agent 回答不好时,需要看”Prompt 里到底塞了什么”——完整 Prompt、token 分布、上下文组成。
核心原理
调试信息
class PromptDebugger:
def debug(self, messages: list[dict]) -> dict:
return {
"total_tokens": self.count_tokens(messages),
"message_count": len(messages),
"token_distribution": {
"system_prompt": self.count_tokens(messages[0]["content"]),
"user_profile": self.count_tokens(messages[1]["content"]),
"history": sum(self.count_tokens(m["content"]) for m in messages[2:-1]),
"current_input": self.count_tokens(messages[-1]["content"]),
},
"full_prompt": messages,
}
调试界面
function PromptDebugger({ trace }: { trace: Trace }) {
return (
<div className="prompt-debugger">
<h3>Prompt 分析</h3>
<div>总 Token: {trace.totalTokens}</div>
<div>消息数: {trace.messageCount}</div>
<h4>Token 分布</h4>
<BarChart data={trace.tokenDistribution} />
<h4>完整 Prompt</h4>
<pre>{JSON.stringify(trace.fullPrompt, null, 2)}</pre>
</div>
);
}
常见坑
- 不记录完整 Prompt: 出问题不知道 Prompt 是什么
- 不做 token 分析: 不知道哪些部分占了太多 token
- 不做 A/B 测试: 不知道改了 Prompt 效果变好还是变差