您的第一个 Agent 会话
代理在您的机器上执行的每一个操作,无论是运行命令、写入文件还是启动服务器,都是通过其工具完成的。默认情况下,终端命令需要明确批准才能运行。本指南将介绍批准的工作原理、如何为会话设置适当的自主级别,以及如何随着工作量的增加监控上下文预算。
理解工具调用批准
当代理想要运行终端命令时,它会显示一个批准对话框,其中包含它打算运行的确切命令。审阅它。如果看起来正确,请批准。如果看起来有问题,请选择跳过并发送消息以纠正方向。
范围批准
批准下拉菜单提供了对批准适用范围的细粒度控制。有两个维度
特异性 - 批准的适用范围有多广
- 命令前缀 - 批准以特定前缀开头的任何命令。
- 精确命令 - 仅批准精确的命令行。
- 所有命令 - 批准所有终端命令。
范围 - 批准持续的时间
- 此会话 - 适用于当前对话的其余部分。
- 此工作区 - 在项目中持续存在。
- 始终 - 适用于未来的会话。
例如,如果在项目中信任 Python uv 命令,请使用涵盖工作区中 uv 的批准。如果需要更严格的控制,则只允许当前会话中的精确命令。

您也可以通过 配置自动批准 在 VS Code 设置中管理这些规则。
权限级别
除了单独的批准之外,聊天输入区域中的权限选择器还控制代理在该会话中的总体自主权大小。
默认批准
默认模式。Copilot 遵循配置的设置,并在需要时显示确认对话框。这是了解代理功能或处理敏感内容时的正确起点。
绕过批准
自动批准所有工具调用,并在遇到错误时自动重试。您将退出逐步监督,让所有内容不受干扰地运行。
使用绕过批准,如果代理遇到需要决定的阻塞性问题,它仍然会停止并等待。您已经移除了安全提示,但您仍然参与判断调用。
自动驾驶
自动驾驶比绕过更进一步。它会自动批准工具调用,在错误时自动重试,并自行解决阻塞性问题,直到它决定任务完成为止。
首次启用绕过批准或自动驾驶时,VS Code 会显示警告。这两种模式都会跳过对可以修改文件和运行命令的操作的手动确认。

工具调用
代理执行的每个操作都会在聊天面板中显示为工具调用。工具调用只是代理使用其可用工具之一。
代理根据您的提示和收集到的上下文决定使用哪些工具。您也可以在提示中使用 # 显式引用工具。
#fetch,拉取特定网页。#codebase,搜索您的项目。#file,附加特定文件。
在聊天输入中键入 # 以查看当前会话中可用的完整上下文源和工具列表。
上下文窗口
模型一次只能在内存中保留这么多信息。这个限制是上下文窗口,以 token 衡量。当上下文窗口填满时,模型开始忘记对话的早期部分。
选择聊天面板中的 token 使用量指示器以查看预算使用情况的实时明细。

您的上下文预算中有什么
明细分为两组。
系统(每个请求的固定开销)
- 系统指令 - 塑造代理行为的内置规则
- 工具定义 - 所有可用工具的描述
用户上下文(随着工作增加)
- 消息 - 对话历史记录:您的提示和代理的响应
- 工具结果 - 工具调用的输出,例如终端输出和文件读取
在短会话中,系统开销占用大部分预算。随着会话的增长,工具结果和消息开始占据主导地位。
这就是为什么选择性地使用工具和上下文很重要。您添加的每件事都会增加预算。
管理完整的上下文窗口
当上下文窗口填满时,VS Code 会自动通过总结早期消息来压缩对话。这使您可以继续工作而无需停止会话。
您也可以手动压缩。
- 在上下文窗口弹出窗口中选择 压缩对话。
- 在聊天输入中键入
/compact。 - 添加指令,例如
/compact focus on the encoder implementation decisions。
如果您想完全重置,请开始新的聊天会话。
子代理也在这里提供帮助,因为它们在自己的上下文窗口中运行隔离的任务。该主题将在本系列的后面介绍。
接下来是什么
您现在了解了如何在代理工作时保持控制,使用范围批准、选择正确的自主级别以及关注上下文预算。在下一份指南中,您将审查代理所做的更改,以任何粒度接受或撤消它们,并使用检查点和分支来探索不同的方向而不会丢失工作。