Context
Context 是模型这一轮处理任务时可用的信息:论文片段、已有回答、文件内容和工具结果。Prompt 规定做什么、怎么做,Context 提供完成任务所需的材料。
一、Context 的来源
论文存入文献库后,模型通过检索取得相关片段。连续对话中,之前的回答和工具结果也会成为后续工作的材料。
对话历史包括当前会话分支的问答。已有摘要时,系统读取适用于该分支的摘要,以及摘要覆盖范围之后的消息。工具结果包括检索取得的文献片段、来源信息和执行反馈。
文件材料来自附件和项目文件入口。可提取的消息附件会形成文件消息,项目文献按研究问题检索;上传或选中文件不等于模型已经读取全文。背景信息包括按设置带入的日期、用户资料和已保存的事实。Memory 中表达工作偏好的规则属于 Prompt,事实信息属于 Context。
例如,用户说“把下面的综述缩短一半”,缩写要求是 Prompt,附上的综述正文是 Context。输入中两者可以相邻,作用仍然不同。
二、本轮输入的组织
construct_message_history() 将指令与材料排列成消息列表。未采用稳定前缀调整时,常规排列如下;只有存在的内容才会加入:
System message
→ 较早的对话历史
→ 任务 Prompt
→ 文件材料及相关提示
→ 当前用户消息
→ 本轮已有的工具调用与结果
→ 动态提醒
当前用户消息可以同时包含任务要求和材料。工具定义通过 tool_definitions 单独传入。启用稳定前缀且满足条件时,研究规则、项目材料和固定引用提醒可放在较早历史之前;其他动态提醒按执行状态追加。具体排列还受助手配置和历史处理分支影响,不能将上图的来源分类理解为固定消息顺序。
指令选择与合并见Prompt。本页重点是材料如何进入输入,以及预算不足时如何取舍。
三、输入预算与裁剪
每次调用前,系统先为 Prompt、工具定义、文件上下文和提醒等内容留出空间,再用剩余 Token 预算容纳历史。
当前用户消息及其后的本轮工具过程优先保留;较早的历史从近到远加入,预算不足时移出更早的消息。附件正文被移出后,若存在文件元信息且读取工具可用,可保留文件标识和名称,供后续再次读取;这不等于附件正文仍在模型输入中。裁剪还会清理失去对应调用的工具返回消息。
如果当前用户消息和本轮过程本身已超出剩余预算,这次调用会报告上下文不足。裁剪只改变本次模型可见的输入,不删除已保存的会话。自动摘要在回答保存后的处理阶段按阈值触发,用于组织后续调用的输入。
四、证据选择与输入空间
一次检索取得的全部候选,经过选择和扩展后才进入主模型输入。这里需要同时处理单篇长度和多篇覆盖:某一篇的相似段落过多,会挤掉另一篇只有一段、却对比较很重要的发现。
逐篇整理和明确的比较任务按文献分配候选,交错保留不同论文的相关片段,再补充各篇相关段落。正文、论文身份和引用关系一起传递。模型读到一项结论后,可以沿相邻片段补读解释和条件。
| 输入中的内容 | 处理方式 | 作用 |
|---|---|---|
| 稳定指令与材料前缀 | 按配置将可复用内容前置,减少不必要的内容变化 | 提高相同前缀被缓存复用的机会 |
| 新检索证据 | 按问题相关性、论文覆盖与阅读预算选择 | 让关键正文进入模型输入 |
| 历史引用 | 按来源身份与当前资料范围整理 | 连续修改时保持论述与来源对应 |
缓存利用与证据完整性分别检查。增加有效证据可能带来更多输入;命中缓存也不能证明模型取得了足够材料。调用用量、缓存使用和最终回答分别记录,便于解释资源使用与内容质量。
五、综述工作证据
综述工作证据记录保存每篇主张、证据类型、必要条件、原文锚点及缺口,作为工作数据加入模型输入。记录更新后替换同轮旧提醒,避免继续沿用已解决的缺口。原文片段与来源通过工具结果提供,仍受本轮输入预算约束。
原文支持文献事实,工作记录整理已取得的内容与缺口,草稿是待修改的交付物;用户研究设定则说明自己的问题与计划。历史回答和工作记录中的文献主张仍需对应原文,不能仅凭引用索引判断其正确性。
Skill 提供研究方法,补查与修订的执行规则见Agent Loop 与工具。
六、历史摘要与对话延续
一轮回答保存后,系统检查有效历史长度。超过摘要阈值时,将较早消息整理为摘要,近期消息继续保留原文;适用于当前分支的已有摘要参与下一次整理。
摘要记录主题、决定、约束和未解决事项,并保存覆盖位置。原始聊天记录仍然保存,下一轮使用摘要与近期消息组织输入,调用前继续检查预算。
当前实现用两个参数确定摘要时机和近期消息预算:
| 参数 | 计算方式 | 实际含义 |
|---|---|---|
| 摘要触发阈值 | 默认为可用历史预算的 75%,可通过配置调整 | 判断何时需要摘要,不表示压缩掉 75% 的内容 |
| 近期消息目标预算 | 按当前有效历史 Token 的 20% 计算 | 用于划分较早消息与近期原文;实际按消息边界调整,并保留最新用户轮次,不保证恰好保留 20% 的文字 |
摘要不保留完整工具返回,精确引文和数值需要回查来源。裁剪控制单次请求长度,摘要用于延续较早的任务信息。