上下文与信息控制
上下文是 Ghast 在一次请求中能够看到的材料集合。它影响模型能否记住目标、理解文件和正确使用工具;它不是“聊天框里可见的文字”这么简单。
上下文的组成
一次请求可能组合以下内容:
- 系统和安全规则。
- Personal instructions。
- 当前消息和附件。
- 近期对话消息。
- 历史对话的压缩摘要。
- Workspace 相关内容和 Tool 结果。
- 已加载 Skill 的说明、脚本和模板。
- 当前可用 Tool 的描述。
- 当前对话启用的 MCP Tool / Resource。
- 自动检索到的 Memory。
- Web Search 结果和相关 Team 状态。
- 任务运行中产生的中间结果。
具体组合由当前模式、模型、选择器和运行时决定,不要默认每次请求都会带齐全部内容。
影响最大的三类内容
历史和结果
长对话、完整日志、巨大 diff、网页原文和大量图片会让上下文快速变长。折叠卡片只改变界面显示,不一定减少已发送内容。
能力描述
All Tools、多个 MCP Server、多个 Skill 会增加模型要阅读的说明。能力越多,选择空间越大,也会增加不必要的上下文。
长期信息
Personal instructions、Memory、自动加载 Skill 和 Team Memory 会把过去内容带到新任务。长期内容应短、稳定、可确认,不要写临时猜测。
四个控制旋钮
| 旋钮 | 适合解决 |
|---|---|
| 当前消息 | 当前任务的目标、范围和限制 |
| Composer 选择 | 本次可用 Tool、Skill 和 MCP |
| Chat Settings | 长期回复偏好、默认选择和压缩策略 |
| Memory / Skill | 可复用事实或方法 |
实用的缩短策略
- 先读取入口和相关文件,再扩大范围。
- 让 Grep / WebSearch 只返回与问题相关的结果。
- 让模型总结已经确认的约束,并保存路径、ID、命令和版本。
- 关闭不相关的 MCP Server 和 Skill。
- 对长任务分阶段,每阶段留下一个可验证的交付。
- 在主动压缩前,把精确参数、错误和外部对象 ID 写到短消息或文件中。
上下文状态
当当前会话、模型和统计数据可用时,输入区会显示上下文使用量;它不依赖 Chat Settings 的 Show token usage。该开关只控制已完成消息是否显示 Provider 用量详情。压缩处理期间可以看到 Compacting context;成功后,压缩摘要和标记不会作为普通消息显示,界面也不会承诺出现 Context compacted、Earlier messages summarized 或 Tokens saved 之类的完成文案。应重新打开上下文用量,通过数字变化检查结果。不同 Provider 的 token 统计不一定完全可比。
什么时候开新对话
开新对话通常比继续污染旧上下文更清楚,尤其是:
- 任务目标已经改变。
- 项目、分支、账号或外部页面改变。
- 旧日志和错误不再相关。
- 需要从只读审查切到写入执行。
- 需要彻底切换模型或能力集合。
新对话不会替你迁移文件状态、外部状态或未写入的临时结论;先写一份短交接摘要。