Kilo Context Condensing 完整指南:自动压缩、上下文剪枝与配置调优

发布时间:2026/11/3 13:34:41

Kilo Context Condensing 完整指南:自动压缩、上下文剪枝与配置调优 Kilo Context Condensing 完整指南自动压缩、上下文剪枝与配置调优【免费下载链接】kilocodeKilo is the all-in-one agentic engineering platform. Build, ship, and iterate faster with the most popular open source coding agent.项目地址: https://gitcode.com/GitHub_Trending/ki/kilocode导读Context Condensing上下文压缩是 Kilo 应对模型上下文窗口上限的核心机制当对话因代码片段、文件内容与来回讨论而迅速膨胀时它会智能地总结历史会话在保留继续工作所需关键信息的同时显著降低 token 消耗。本文以官方文档为主线结合仓库源码packages/core/src/session/compaction.ts、packages/opencode/src/session/compaction.ts等深入讲解压缩的触发条件、默认值、kilo.jsonc配置方式与最佳实践。读完你将掌握如何让长会话不因上下文耗尽而中断并能按需调优压缩时机、保留尾部的 token 预算与预留缓冲。问题背景上下文窗口限制每个 AI 模型都有一个最大上下文窗口context window即一次能处理的文本总量上限。随着对话中不断加入代码片段、文件内容与多轮往返讨论你会逐渐逼近这个上限并可能遇到以下现象模型需要处理的 token 增多响应速度变慢因 token 用量上升API 成本随之增加最终触及上下文上限会话无法继续。Kilo 的 Compaction压缩系统正是为此设计它自动接管上下文管理让长会话可持续进行。解决方案Auto-Compaction 锚定摘要当对话接近 token 上限时压缩机制会启动产出一份锚定摘要anchored summary覆盖以下关键信息会话的整体目标overall goal过程中你给出的约束与偏好constraints and preferences进度、关键决策与下一步计划progress, key decisions, and next steps继续工作所必需的关键上下文critical context相关文件与目录relevant files and directories。这份摘要会替换更早的对话历史而 Kilo 在空间允许时会原样保留最近几轮对话。若会话已经被压缩过Kilo 会在原有摘要基础上进行更新而非推倒重来保留仍然相关的细节剔除已过时的信息。源码层面摘要的生成遵循一份固定结构模板。在 compaction.ts 中SUMMARY_TEMPLATE要求模型严格输出## Objective、## Important Details、## Work StateCompleted / Active / Blocked、## Next Move、## Relevant Files五个章节并规定保留精确的文件路径、符号、命令、错误字符串、URL 与标识符而 buildPrompt 则根据是否存在前次摘要决定提示词是从对话历史创建新锚定摘要还是更新已有摘要、合并新事实并移除过期细节。压缩的触发机制自动触发Kilo 会在每次响应后检查 provider 上报的用量并在联系 provider 之前估算即将发送的文本、系统指令与工具定义。当以下两个条件之一先被满足时即触发压缩用量达到compaction.threshold_percent指定的百分比剩余窗口触及预留安全缓冲reserved safety buffer。缓冲的取值取决于模型如何声明其限制当模型**单独声明了输入上限input limit**时缓冲默认为 20,000 token或模型最大输出大小取较小者当模型只声明单一上下文窗口时Kilo 改为预留模型的完整输出上限——最高可达 32,000 token。compaction.threshold_percent为可选配置取值1100表示在模型输入或上下文窗口用量的该百分比处触发压缩。未声明上下文窗口的自定义模型不会被跟踪自动压缩对它们不生效详见自定义模型。在核心会话执行器中这一判断被实现为compactIfNeeded源码 compaction.ts 先汇总system、messages、tools三部分的估算 token并与context - max(output, buffer)比较超出才调用compactAfterOverflow执行真正的摘要生成若压缩失败如 provider 报错或产出为空会安全地返回false不破坏会话。runner/llm.ts 在每轮开始前调用该判断压缩完成后会基于压缩后的历史重建请求继续执行。此外threshold_percent在 CLI 侧对应更精细的**预检preflight**机制overflow.ts 会按floor(context * percent / 100)计算硬上限并额外用 1.3 倍的估算系数校正 token 计数偏差FACTOR同时对媒体附件与加密的推理状态做专门折算尽量避免估算不足导致的中途溢出。上下文剪枝Context Pruning在轮次之间Kilo 还会执行一次更轻量的prune剪枝过程遍历40,000-token 最近窗口之外的、已完成的工具输出将其替换为占位文本[Old tool result content cleared]。剪枝是增量执行的因此大型工具输出不会永久占用空间即使还没到需要完整压缩的程度。该占位符在 message-v2.ts 中定义。剪枝与完整压缩相互配合剪枝处理大而旧的工具结果压缩处理整体超限的会话历史。手动压缩你可以在任意时刻主动触发压缩VSCode 扩展斜杠命令在聊天框输入/compact也可输入smol或condense检索到任务头部按钮点击当前任务标题栏中的压缩图标设置在Settings → Context中切换自动压缩开关。CLI / TUI斜杠命令在 TUI 中输入/compact别名/summarize快捷键按leaderc触发压缩。默认值与配置压缩行为默认开启全部配置项及其默认值如下设置默认值作用compaction.autotrue到达可用窗口时自动压缩compaction.threshold_percent未设置token 用量达到模型窗口该百分比时压缩compaction.prunetrue清理 40K 最近窗口之外的工具输出compaction.tail_turns2尽可能原样保留最近的用户轮次及其响应compaction.preserve_recent_tokens可用上下文的 25%夹在 2,000 与 8,000 token 之间原样保留的最近尾部 token 预算compaction.reservedmin(20,000, model_max_output_tokens)为下一轮预留的 token 余量若先于阈值触及则作为安全触发条件压缩配置写在你的kilo.jsonc文件中{ compaction: { auto: true, // 启用或禁用自动压缩 threshold_percent: 80, // 可选在模型窗口的 80% 处触发 prune: true, // 启用对最近窗口之外旧工具输出的剪枝 tail_turns: 2, // 压缩期间原样保留的最近用户轮次数 preserve_recent_tokens: 8000, // 最近尾部保留的最大 token 预算 reserved: 20000, // 预留 token 缓冲越小越晚触发越大越早触发 }, }各选项的类型、默认值与详细说明选项类型默认值说明compaction.autobooleantrue到达可用窗口时启用或禁用自动压缩compaction.threshold_percentnumber未设置可选百分比取值 1100。当 token 用量达到模型输入或上下文窗口的该比例时执行自动压缩除非预留安全缓冲先行触发compaction.prunebooleantrue启用对 40K token 最近窗口之外旧工具输出的剪枝compaction.tail_turnsnumber2压缩期间原样保留的最近用户轮次数包括其后的 assistant 与工具响应compaction.preserve_recent_tokensnumber可用上下文的 25%夹在 2,000 与 8,000 token 之间压缩后原样保留的最近轮次最大 token 预算compaction.reservednumbermin(20000, model_max_output)为下一轮预留的 token 余量。仅对单独声明输入上限的模型生效单一上下文窗口模型改用完整输出上限作为预留上述字段在配置 schema 中均有对应定义v1/config/config.ts 定义了auto、threshold_percent、prune、tail_turns、preserve_recent_tokens、reserved六个字段及其描述v2 的 config/compaction.ts 则以auto、prune、keep.tokens、buffer的形式承载等效语义。也就是说preserve_recent_tokens与tail_turns在运行时会换算为尾部保留的 token 预算对应 v2 的keep.tokensreserved对应 v2 的buffer。从实现细节看compaction.ts 的settings函数会按文档顺序合并多个配置来源最终默认auto: true、buffer: 20_000、tokens: 8_000与文档表格完全一致CLI 侧的preserveRecentBudgetopencode 的 compaction.ts则实现了可用上下文的 25%夹在 2,0008,000 之间的默认计算逻辑。为压缩使用不同的模型摘要生成可以使用比主 agent 更便宜或上下文更大的模型。为压缩配置一个专用 agent{ agent: { compaction: { model: anthropic/claude-haiku-4-5, }, }, }若未配置压缩 agent则使用当前会话的模型。相应地压缩摘要的输出 token 上限被限制为SUMMARY_OUTPUT_TOKENS 4_096见 compaction.ts避免摘要本身占用过多窗口。环境变量覆盖变量作用KILO_DISABLE_AUTOCOMPACT1强制compaction.auto falseKILO_DISABLE_PRUNE1强制compaction.prune falseKILO_EXPERIMENTAL_OUTPUT_TOKEN_MAX覆盖默认 32,000 的输出 token 上限这些变量在 flag.ts 与 flag.ts 中定义前两者按值为true或1判定truthy后者要求正整数才生效number非法值会被忽略。最佳实践何时手动压缩长会话在复杂任务上持续工作了较长时间后重大切换之前即将转向项目另一个方面时接近上限时若希望自己掌控摘要产出的时机可在自动触发前手动运行/compact。调优压缩触发时机希望在模型窗口的可预期比例处触发压缩时使用compaction.threshold_percent例如长任务设置80以更早生成摘要预留安全缓冲仍然生效可能比百分比阈值更早触发压缩。对单独声明输入上限的模型reserved是一个权衡较小值如10000→ 压缩触发更晚原始窗口内能进行更多轮对话但若单次响应大于缓冲有中途上下文溢出的风险较大值如40000→ 压缩触发更早溢出错误更少但两次摘要之间的有效会话更短。默认值~20K是为容纳完整大小的 assistant 响应加上工具输出而调优的。该设置对单一上下文窗口的模型无效——这类模型始终预留完整输出上限。维持上下文质量在初始任务中描述具体清晰的任务描述有助于生成更好的摘要使用 AGENTS.md结合 AGENTS.md 提供无需压缩的持久化项目上下文检查摘要压缩完成后摘要会显示在你的聊天历史中可据此确认关键信息是否保留。相关功能AGENTS.md —— 跨会话的持久化上下文存储Codebase Indexing —— 高效的代码搜索与检索。【免费下载链接】kilocodeKilo is the all-in-one agentic engineering platform. Build, ship, and iterate faster with the most popular open source coding agent.项目地址: https://gitcode.com/GitHub_Trending/ki/kilocode创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/3 16:02:15

从流量逻辑到任务逻辑,AI Agent正在终结互联网的免费午餐

【编者按】 2026 年 4 月 29 日,Andrej Karpathy 在红杉 AI Ascent 的炉边对谈中提出一个判断:一个面向原生智能体(agent-native)的新经济正在长出来,今天所有为人类写的软件、文档和流程,都要被重写为“为…

2026/11/3 16:04:12

248基于SpringBoot4+Vue3的厦门旅游推荐系统、厦门旅游平台、个性化旅游推荐、在线旅游预约系统、智慧旅游Web系统;协同过滤推荐算法、景点-线路-酒店一体化管理与预约、毕业设计、课程设计

✅博主简介:Java全栈开发工程师(bishecoder),精通Java开发、系统设计、项目实战。 ✅技术栈:SpringBoot、Vue、React、Node.js、Nest.js、uni-app等 ✅技术擅长:定制项目、修改代码、编写文档、技术指导等。…

2026/11/3 21:48:03

WPS演示交互效果全解析:从考试到职场应用

1. 项目概述作为一名长期从事办公软件培训的讲师,我发现很多学员在准备计算机等级考试(二级WPS)时,对幻灯片交互效果设置这一考点存在普遍困惑。这不仅是考试重点,更是职场演示中的实用技能。今天我就来详细拆解这个知…

2026/11/3 21:48:03

17个成长任务纯接口自动化:从行为事件上报链到自动领奖

做任务系统的自动化测试做了几年,最常被问到的一类问题是:某个成长任务面板上那十几个任务,能不能不点界面,直接用接口一次性跑完。这个问题背后其实藏着一条完整的工程链路——行为事件上报链怎么还原、协议怎么固化、状态怎么推…

2026/11/3 21:48:03

ACPI设备电源状态转换中的三次存在性检查解析

1. ACPIDevicePowerProcessGenericPhase函数背景解析ACPI(Advanced Configuration and Power Interface)作为现代计算机系统中电源管理的核心规范,其设备电源状态转换过程涉及复杂的硬件-软件协同机制。ACPIDevicePowerProcessGenericPhase函…

2026/11/3 21:48:03

动态规划算法详解:从基础概念到经典问题解析

1. 动态规划基础概念解析动态规划(Dynamic Programming)是一种解决复杂问题的算法思想,它通过将原问题分解为相对简单的子问题来求解。这种方法特别适用于具有重叠子问题和最优子结构性质的问题。动态规划的核心思想可以概括为三个关键步骤:定义状态&…

2026/11/3 21:48:03

ESP32-C3 DNS过滤实战:封禁设备、暂停拦截与自定义域名

家里网络里挂一台 ESP32-C3 做 DNS 层面的去广告,这个方案我前后用了小半年,最大感受是:真正决定这套东西好不好用的,不是拦截列表有多大,而是封禁设备、暂停拦截、自定义域名这三件日常操作顺不顺手。装好第一天你会觉…

2026/11/3 21:43:02

MCP协议逆向工程实战:从抓包到Wireshark解析

1. 项目概述:当“逆向工程”撞上“MCP”,热榜登顶背后的真实图景“GitHub今日热榜 | 2026-10-08:逆向工程 MCP 登顶”——这个标题乍看像一则技术快讯,但拆开来看,它其实是一把钥匙,能打开当前软件开发、安…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32实战:基于MAX14431数字隔离器的SPI隔离通信方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

工业SPI隔离通信设计:MAX14431BAEE+与STM32L4A6RG实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32+NRF24L01无线抢答器:硬件设计、通信协议与低功耗实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑