调试 Agent 的工作
当 Agent 出现异常行为、调用了错误的工具、给出了奇怪的回复,或者忽略了自定义文件时,您会想要了解原因。VS Code 和 GitHub Copilot Chat 是开源的,这种透明度延伸到了运行时。本指南涵盖了 Agent 调试日志面板、聊天调试视图,以及如何使用它们来诊断 Agent 的行为。
Agent 调试日志面板
Agent 调试日志面板是主要的诊断工具。您可以从“聊天”视图顶部的溢出菜单中选择显示 Agent 调试日志 (Show Agent Debug Logs),或通过命令面板运行 Developer: Open Agent Debug Panel 来打开它。
该面板将以编辑器标签页的形式打开。顶部的面包屑导航显示您当前正在检查的会话。
日志视图
日志视图按时间顺序显示会话期间发生的所有事件列表。每一行包含:
- 时间戳。
- 事件名称。
- 详细信息列中的摘要。
在每次请求开始时,您会看到一组自定义事件:
- 加载指令 (Load Instructions) - 找到并应用了哪些指令文件
- 加载 Agent (Load Agents) - 加载了哪些 Agent 配置
- 加载钩子 (Load Hooks) - 找到了哪些钩子定义
- 加载技能 (Load Skills) - 找到了哪些技能并已加载
这些内容向您展示了 Agent 在开始工作前确切加载了什么。在此之后,您将看到随着会话进行而产生的工具调用和 LLM 请求。
使用顶部的切换开关在“列表视图”(扁平、按时间顺序)和“树状视图”(按子 Agent 分组)之间切换。使用过滤器栏缩小到特定的事件类型——例如,如果您只想查看工具调用。
展开事件详情
选择日志视图中的任意一行,即可在右侧打开详情面板。
根据事件类型,面板会显示:
- 加载技能 (Load Skills) - 搜索过的完整路径列表(按顺序)以及找到并加载了哪些技能
- 工具调用 (Tool call) - 确切的输入负载 (payload) 和返回的输出
- LLM 请求 (LLM Request) - 发送给模型的完整系统提示词
这是诊断价值最高的地方。如果某个自定义配置未生效,加载详情会显示搜索过的确切路径以及是否找到了您的文件。
摘要视图
选择面包屑导航中的会话名称以跳转至摘要视图。它显示了该会话的汇总统计数据。
- 模型轮次。
- 工具调用。
- 总 Token 数。
- 错误。
- 事件总数。
在摘要视图中,您还可以打开 Agent 流程图。
Agent 流程图
流程图将事件序列可视化为一个可导航的图表。这有助于理解子 Agent 是如何被调用的,以及工作是如何组织的。
聊天调试视图
Agent 调试日志面板显示的是事件序列,而聊天调试视图显示的是每个 LLM 请求和响应的原始内容。
从聊天视图的溢出菜单中打开,并选择显示聊天调试视图 (Show Chat Debug View)。
侧边栏列出了会话期间进行的所有 AI 请求,并按 Agent 分组。选择一个请求以检查:
- 完整的系统提示词。
- 用户提示词。
- 所有附加的上下文。
- 完整的工具调用负载。
这是发送给模型并返回的确切数据。它有助于回答诸如:Agent 在编写该函数时是否拥有正确的文件内容?系统提示词是否如我预期的那样构建?等问题。
#debugEventsSnapshot 和 /troubleshoot
当您在查看某个会话的调试面板时,可以将这些事件的快照直接附加到聊天消息中。
#debugEventsSnapshot
在聊天输入框中输入 #debugEventsSnapshot,即可将当前调试事件的快照作为上下文附加。
示例
#debugEventsSnapshot how many tokens did this session use?
#debugEventsSnapshot which customization files were loaded?
#debugEventsSnapshot why did it call that tool twice?
Agent 会读取该快照,并根据实际发生的情况(而非基于通用知识)来回答问题,回答基于您会话中的实际事件数据。
您还可以点击 Agent 调试面板右上角的星号图标,自动将快照附加到聊天编辑器中。
/troubleshoot
/troubleshoot 是一个专用于深入分析日志的斜杠命令。
示例
/troubleshoot list all paths you tried to load customizations from
/troubleshoot the agent made an unexpected file edit in the last response, why?
此命令需要开启 github.copilot.chat.agentDebugLog.enabled 设置。
注意事项
Token 使用量
如果响应开始变得含糊或重复,请首先检查摘要视图。上下文窗口被填满是导致输出质量下降的常见原因。
工具调用顺序
查看日志视图以确认 Agent 是否遵循了合理的顺序,例如在编辑文件之前先读取文件,或在进行更改后运行测试。
自定义文件发现
如果自定义指令、技能或提示词文件似乎未生效,请检查加载事件以查看搜索过的每一条路径。
错误
失败的工具调用、模型超时和缺失的依赖项会直接显示在日志视图中。
关于日志持久化的重要说明
日志数据不会在 VS Code 会话之间持久化。Agent 调试日志面板和聊天调试视图仅显示当前 VS Code 会话的数据,且聊天调试视图仅捕获当前窗口期间的 LLM 请求。请在工作时使用这些工具——它们在您重启 VS Code 后将不可用。
接下来是什么
Agent 调试日志面板和聊天调试视图让您能够完整观察 Agent 的行为:日志视图用于查看时间线,摘要视图用于查看数据,流程图用于查看结构,聊天调试视图用于查看原始负载。当您需要用通俗语言询问会话相关问题时,#debugEventsSnapshot 和 /troubleshoot 正好能满足您的需求。
这就是全部基础:工具库 (harness)、模型、上下文、工具、提示词、会话以及调试层。在最后一篇指南中,您将把所有内容整合在一起,从零开始构建一个真正的应用程序。