跳到主要内容

上下文控制

DesireCore 会保存完整对话历史,但模型每次只能读取有限长度的上下文。上下文控制用于在不丢失可见历史的前提下,让长对话继续稳定运行。

上下文生命周期示意图

/new:开启新上下文

输入 /new 会在当前对话中创建新的上下文边界。

  • 可见历史仍保留在聊天界面
  • 后续模型调用不再自动读取边界之前的完整消息
  • 适合换话题、重新开始任务或避免旧讨论影响新任务

/compact:手动压缩

输入 /compact 会让 Companion 总结较早的消息,并把摘要作为后续上下文的一部分。

  • 原始历史仍能在界面和聊天记录中查看
  • 模型后续主要读取压缩摘要和最近几轮消息
  • 适合长任务、连续写作、长代码审查和多轮资料分析

手动压缩会尽量执行,即使当前上下文还没有达到上限,也可以用来主动整理长期任务。

自动长上下文压缩

当对话接近模型上下文上限时,DesireCore 会自动触发压缩。自动压缩的目标是:

  • 避免长对话突然因上下文超限失败
  • 保留任务目标、关键决策、已完成步骤和待办事项
  • 减少重复读取旧消息造成的成本浪费

自动压缩不会清空聊天记录,也不会删除文件或记忆。

CompactSession 工具

部分智能体可以主动调用 CompactSession 工具整理当前会话。这通常发生在:

  • 智能体发现任务跨度很长
  • 工具调用和文件输出很多
  • 后续需要稳定保留阶段性结论

与清除历史的区别

操作是否保留可见历史是否影响模型上下文是否可恢复
/new保留开启新上下文边界可继续查看旧消息
/compact保留用摘要替代旧消息细节可查看原始历史
自动压缩保留后台压缩旧上下文可查看原始历史
清除聊天记录删除删除对应历史通常不可恢复

实践建议

场景推荐操作理由
换话题(如从写代码转到问天气)/new避免旧任务上下文干扰新话题
长任务进行中(如连续写 20 页文档)/compact释放上下文空间,保留任务摘要
对话已经很长但还在同一任务等待自动压缩系统会自动在合适时机压缩
智能体走错方向,想重来Rewind回到错误前的检查点
彻底不需要这段对话清除聊天记录不可逆,慎用
/new vs /compact 如何选择
  • /new:完全切断与之前内容的上下文关联。适合"前面聊的事跟接下来完全无关"的场景。
  • /compact:保留之前内容的摘要。适合"还在做同一件事,只是对话太长了"的场景。

如果你不确定用哪个,优先用 /compact——它更温和,不会丢失任务上下文。

记忆不受压缩影响

Companion 的长期记忆(通过教学或自动学习获得的知识)存储在 AgentFS 中,不受上下文压缩影响。即使执行了 /new/compact,Companion 学到的规则和偏好仍然有效。