创建新的上下文窗口
管理 Bob 的上下文窗口以保留内存、控制成本并在复杂或长时间对话期间保持输出质量。
聊天面板中的每个任务(对话)都有一个上下文窗口。上下文窗口是 Bob 在当前会话中可以保存在内存中的令牌限制。上下文包括系统指令、工具架构、您的规则和技能以及完整的记录。
在本教程中,您将打开上下文窗口,了解 Bob 在执行实际工作之前加载的内容,并了解何时创建新的上下文窗口。
在本教程结束时,您将学习以下内容:
- 识别每个上下文窗口类别以及 Bob 加载到其中的内容。
- 在 Galaxium Travels 上测量基线上下文开销。
- 在固定类别保持不变的情况下,观察存储库提示后 Messages 的增长。
- 启动新任务以重置上下文窗口,同时将先前的任务保留在历史记录中。
本教程的组织方式
| 步骤 | 部分 | 您要做什么 |
|---|---|---|
| 1 | 设置实验室 | 打开 Galaxium Travels 和聊天面板 |
| 2 | 阅读上下文窗口分解 | 发送最小提示,然后检查新的分解(~8.5k) |
| 3 | 使用提示增加消息 | 列出文件,然后验证 Messages 跳转到 ~4.2k(12.1k 总计) |
| 4 | 创建新的上下文窗口 | 单击 +(新任务),然后验证指示器重置 |
熟悉以下术语:
- 任务:具有自己的上下文窗口的一个对话线程。您使用 +(新任务)启动新的上下文窗口。您的提示、Bob 的回复和批准按钮都在这里。
- 上下文窗口分解:单击聊天面板右上角的令牌使用指示器以查看令牌的去向。
总数因 MCP 服务器、规则、技能和 Bob 读取的内容而异。以下数字来自 270.0k 窗口上的 Galaxium Travels。固定类别应接近这些数字。Messages 取决于您要求 Bob 做什么。
先决条件
要完成本教程,您需要以下内容:
为什么上下文管理很重要
令牌成本
令牌是 Bob 的消费单位,以 Bob coins 衡量。更长的对话和更大的文件读取会消耗更多令牌。保持对话集中可以降低成本。
每个提示都会重新发送完整的活动上下文。这包括您从未输入的固定开销。即使是一行问题也会携带工具定义、规则以及 Bob 默认加载的其他所有内容。
总结是有损的
当 Bob 达到其令牌限制时,Bob 会压缩较旧的内容以继续工作,这会丢失细节。您可能会丢失边缘情况、中间推理以及您在许多提示之前陈述的约束。
如果您仍然需要内容详细信息,请在 Bob 将其总结之前启动新任务。
质量在达到限制之前就会下降
Bob 目前使用 270.0k 令牌窗口。检查您自己的令牌使用指示器以获取确切的上限。质量通常在达到它之前就会下降。随着 Messages 的增长,回复变得不太可靠。
设置实验室
-
克隆 Galaxium Travels 存储库。
git clone -b bob-learning-path-branch https://github.com/IBM/galaxium-travels -
单击 File,然后单击 Open Folder。
-
导航到您克隆的
galaxium-travels目录并打开它。 -
通过单击导航栏旁边的 Bob 图标打开 Bob 聊天界面, 或使用快捷键 Option + Command + B(macOS)或 Ctrl + Alt + B(Windows)。
-
在聊天输入字段中,运行
/init。Bob 扫描存储库并创建一个 包含项目规则的AGENTS.md文件。如果出现提示,请单击 Approve todo tools for task。等待 Bob 报告它已完成。这个
AGENTS.md是后来出现在 上下文窗口分解中的 Rules 行的内容,因此存储库需要它 才能测量基线。
阅读上下文窗口分解
获取新的基线,然后阅读分解。
-
单击聊天面板顶部的 + 以启动新任务。
-
发送最小提示以使用少量令牌:
快速打个招呼。等待 Bob 的回复。
-
单击聊天面板右上角的令牌使用指示器以查看使用情况分解。

在 Galaxium Travels 上进行此交换后,您的数字会有所不同,但您会看到接近以下的数字:
| 令牌 | |
|---|---|
| 总使用量 | 8.5k(~3% 满) |
| 系统提示 | 1.5k |
| 工具定义 | 5.1k |
| 规则 | 830 |
| 技能 | 454 |
| 消息 | 590 |
| 为模型响应保留 | 20.0k |
| 可用空间 | 241.5k |
如果总使用量远离 8.5k,请检查您是否启动了新任务并且只发送了一个提示。
工具定义通常是最大的固定类别。无论您是否调用它们,MCP 服务器和内置工具架构都会加载。规则来自项目文件,如 AGENTS.md。如果 Bob 在任务期间加载技能,技能可能会在以后增加。
-
阅读每个类别。分解显示令牌的去向:
类别 它是什么 系统提示 Bob 在此会话中的核心指令 工具定义 Bob 的内置工具和连接的 MCP 工具的架构 规则 来自您的项目和模式的自定义指令(自定义规则,例如 AGENTS.md)技能 Bob 加载的任何技能的指令(UI 可能显示计数,例如 Skills (1 loaded)) 消息 任务中的提示、Bob 的回复和工具活动。这是作为令牌计数的记录。 在估计分解下:
- 为模型响应保留: 保留的令牌,以便 Bob 可以在不立即达到限制的情况下回复。
- 可用空间: 在 Bob 需要压缩之前仍然可用的估计令牌。
在 Galaxium 上,固定类别(系统提示、工具定义、规则、技能)在有意义的工作之前总共约为 8k。无论您是否输入,您都要在每一轮中支付这笔费用。
使用提示增加消息
留在同一任务中。发送填充记录的提示。
-
请求文件列表。
列出此目录中的所有文件。如果出现提示,请批准读取操作。Bob 列出存储库中的文件。
-
比较发生了什么变化。再次打开分解。在 Galaxium Travels 上,您应该看到接近以下的数字:
类别 新任务 列出文件后 持续工作(参考) 系统提示 1.5k 1.5k 1.5k 工具定义 5.1k 5.1k 5.1k 规则 830 830 830 技能 454 454 1.2k(1 个已加载) 消息 590 4.2k 19.4k 总使用量 8.5k(~3%) 12.1k(~4%) 28.0k(~10%) 可用空间 241.5k 237.9k 222.0k 消息现在应该读取约 4.2k。如果它高得多,Bob 读取的文件比此示例多,这没关系。重点是 消息增长了,而固定类别没有。
列表输出和工具活动位于记录中。在一个列出文件的提示后,系统提示、工具定义、规则和技能保持不变。
最右边的列来自具有更多读取和后续提示的更长的 Galaxium 会话。如果 Bob 加载技能,技能可能会增加(在该示例中从 454 增加到 1.2k)。随着时间的推移,消息通常增长最快。
在 Galaxium 上,一个列出文件的提示会向 消息添加约 3.6k。固定开销保持在 8k 附近。即使开销不变,存储库探索也会快速使用上下文。
创建新的上下文窗口
在同一项目中启动新任务。旧任务(对话)保留在历史记录中。
-
单击聊天面板顶部的 +(新任务)。
指示器重置。消息降回到一个小数字。系统提示、工具定义、规则和技能重新加载到大约基线。
-
您离开的任务保留在任务列表中,您可以随时切换回去。它保留自己的记录和令牌计数。当您在新任务中工作时,Bob 不会使用它。
在以下情况下启动新任务:
- 您切换主题或工作目标。
- 消息大到足以损害质量或成本。在 Galaxium 上,消息中的 19.4k 是重置的合理信号。
- 您完成了规划并希望为实施提供一个干净的任务。请参阅规划和实施复杂功能。
反思: 在新任务上打开分解。哪些类别返回到基线?如果您留在旧任务中,哪些类别会继续增长?
后续步骤
在本教程中,您学习了如何有效地管理上下文窗口。您阅读了分解,测量了固定令牌开销的数量,观察了一个列出文件的提示后 消息的增加,并使用 +(新任务)进行了重置。