Context 是当前模型调用的工作集,不是长期存储。kxen 把 Session 历史、Rules、显式附件、Notes、Memory 和运行状态按不同方式装入上下文。
flowchart LR Session["Session 历史"] --> Select["选择和限制"] Rules["Rules"] --> Select Attachments["显式附件"] --> Select Notes["Notes"] --> Retrieve["相关性检索"] Memory["Memory"] --> Retrieve References["References"] --> Demand["按需读取"] Retrieve --> Select Demand --> Select Select --> Compact["窗口阈值和 Compaction"] Compact --> Context["模型调用上下文"]
显式附件
Composer 的 @ 引用支持 Workspace 内文件和目录。图片、拖入文件和大段粘贴内容通过附件系统加入。Web 和 Docs 类型上下文由对应工具入口提供,不由 @ 文件搜索生成。
当前限制:
- 单个文件超过 16 KB 时只注入前 1 KB,并提示使用
read。 - 单个文件超过 64 KB 时不直接注入。
- 一次上下文附件总量上限为 200 KB。
- 目录列表最多 200 项。
- 公网图片上限为 5 MB。
路径先 canonicalize,再检查 Workspace 边界、symlink 逃逸和 Safety 保护路径。通过原生文件选择器授权的外部文件可以进入上下文,但不能越过 Safety。
项目指令
AGENTS.md 和 Rules 保存需要持续生效的约束。References 只在任务需要时读取,避免把全部资料注入每一轮。
历史压缩
模型上下文使用 catalog 中的 context window,找不到时回落到 200000 token。估算用字符数除以 4,超过窗口的 80% 时触发 compaction。
Compaction:
- 保留 system message。
- 保留最近消息。
- 把更旧的 Text 和 Context 蒸馏为工作摘要。
- 不改原始 Session JSONL。
- 保存 compaction checkpoint,用于重建模型视图。
摘要失败时保留旧段首尾,不丢最近上下文。
Knowledge 和 Memory
Knowledge Library 是统一管理界面。Notes 和 Memory 通过相关性检索进入上下文,References 按需读取。它们都不应无条件加载全部正文。
可见失败
附件读取失败、URL 获取失败和超限必须同时对用户和模型可见。静默丢失上下文会让模型在错误前提下继续执行。