您的第一个 Agent 会话

智能体在你的机器上执行的每个操作(运行命令、编写文件或启动服务器)都是通过其工具完成的。默认情况下,终端命令在运行前需要明确的审批。本指南涵盖了审批的工作原理、如何为会话设置正确的自主级别,以及如何在工作累积时监控上下文预算。

理解工具调用审批

当智能体想要运行终端命令时,它会显示一个审批对话框,其中包含它打算运行的精确命令。请对其进行审查。如果看起来正确,则批准它。如果发现异常,请选择 Skip 并发送消息以纠正方向。

作用域审批

审批下拉菜单提供了对审批适用范围的细粒度控制。这里有两个维度:

具体性 - 审批适用的广泛程度

  • 命令前缀 - 批准任何以特定前缀开头的命令。
  • 精确命令 - 仅批准精确的命令行。
  • 所有命令 - 批准所有终端命令。

范围 - 审批持续的时长

  • 本会话 - 适用于当前对话的剩余部分。
  • 本工作区 - 在整个项目中持续有效。
  • 始终 - 适用于未来的所有会话。

例如,如果在项目中信任 Python uv 命令,请使用涵盖工作区中 uv 的审批。如果需要更严格的控制,则仅允许当前会话中的精确命令。

Expanded approvals menu showing approval specificity and scope options in VS Code chat.

你还可以在 VS Code 设置中通过 Configure Auto Approve 管理这些规则。

权限级别

除了单个审批之外,聊天输入区域中的权限选择器还控制智能体在该会话中拥有的整体自主权。

默认审批

默认模式。Copilot 遵循已配置的设置,并在需要时显示确认对话框。在了解智能体的工作原理或处理敏感内容时,这是合适的起点。

绕过审批

自动批准所有工具调用,并在遇到错误时自动重试。你不再进行逐步监督,而是让所有操作不间断地运行。

启用“绕过审批”后,如果智能体遇到需要做决定的阻塞性问题,它仍然会停下来等待。你删除了安全提示,但对于需要判断的情况,你仍然参与其中。

自动驾驶

自动驾驶模式比“绕过审批”更进一步。它自动批准工具调用、在出错时自动重试,并自行解决阻塞性问题,直到它认为任务完成为止。

注意

首次启用“绕过审批”或“自动驾驶”时,VS Code 会显示警告。这两种模式都会跳过对可能修改文件和运行命令的操作的手动确认。

Screenshot showing the approval picker in VS Code chat with Default approvals, Bypass approvals, and Autopilot options.

工具调用

智能体采取的每个操作都会作为工具调用显示在聊天面板中。工具调用实际上就是智能体在使用其可用的工具之一。

智能体会根据你的提示词和收集到的上下文决定使用哪些工具。你还可以在提示词中使用 # 显式引用工具。

  • #fetch,拉取特定的网页。
  • #codebase,在整个项目中进行搜索。
  • #file,附加特定的文件。

在聊天输入框中输入 #,以查看当前会话中可用的上下文源和工具的完整列表。

上下文窗口

模型一次只能在内存中容纳有限的信息。这个限制就是上下文窗口,以 token(词元)计量。当上下文窗口被填满时,模型会开始丢失对话早期部分的信息。

选择聊天面板中的 token 使用情况指示器,即可查看预算使用情况的实时明细。

Screenshot showing the context window indicator in VS Code chat with token usage and context breakdown details.

上下文预算包含什么

该明细分为两组。

系统(每个请求的固定开销)

  • 系统指令 - 塑造智能体行为方式的内置规则
  • 工具定义 - 所有可用工具的描述

用户上下文(随着你的工作而增加)

  • 消息 - 对话历史记录:你的提示词和智能体的回复
  • 工具结果 - 工具调用的输出,例如终端输出和文件读取

在较短的会话中,系统开销占据了大部分预算。随着会话的增长,工具结果和消息开始占据主导地位。

这就是为什么对工具和上下文进行筛选至关重要。你添加的所有内容都会消耗预算。

管理已满的上下文窗口

当上下文窗口填满时,VS Code 会通过总结先前的消息自动精简对话。这使你无需停止会话即可继续工作。

你也可以手动精简。

  • 在上下文窗口弹出窗口中选择 Compact Conversation
  • 在聊天输入框中输入 /compact
  • 添加诸如 /compact focus on the encoder implementation decisions 的指令。

如果你想彻底重置,请启动一个新的聊天会话。

子智能体在这里也很有用,因为它们在各自的上下文窗口中运行隔离的任务。本系列后面的内容将讨论该主题。

接下来是什么

你现在已经了解了如何在智能体工作时保持控制,包括使用作用域审批、选择正确的自主级别以及关注上下文预算。在下一篇指南中,你将审查智能体所做的更改,以任意粒度接受或撤消这些更改,并使用检查点和分支来探索不同的方向而不会丢失工作。

了解更多

English 한국어 中文(简体) 中文(繁體)
© . This website operates independently and is not affiliated with or endorsed by Microsoft. All brand names, logos, and trademarks are the property of their respective owners.