返回博客

文言文压缩:用古文智慧将LLM上下文减半

上下文窗口困境

每个AI智能体都面临一个根本性约束:上下文窗口。随着任务越来越复杂、对话越来越长,累积的上下文消耗着宝贵的token——降低响应速度、增加成本,最终触及硬性限制。

上下文压缩是最实用的解决方案之一。但大多数压缩方法会牺牲信息。我们提出了一个不同的问题:古老的书写方式能否解决现代AI的问题?

答案出乎意料地肯定。

为什么选择文言文?

文言文,中国两千多年的书面语言,以极度简洁著称。一个文言文字符往往能表达现代白话文一整句话的内容。例如:

这不仅仅是缩写——这是一种本质上更密集的信息编码系统,经过数千年的学术实践打磨而成。

实验设计

我们进行了两项对照实验,测量将技术文档从现代中文转换为文言文的压缩效果。

实验一:宏观工作记忆

来源memory_macro.md——结构化技术知识库,涵盖服务器管理、vLLM运维、网站部署、电路分析、Android编译和源码架构。

指标 原文 文言文 比例
字符数 2,129 1,029 48.3%
压缩率 51.7% 2.07x

整个技术知识库缩减了一半以上,同时保留了所有关键技术信息:服务器配置、操作流程、架构决策和故障排查指南。

实验二:细粒度记忆记录

来源memory_episodic.jsonl中最近20条任务执行记录,每条包含目标描述、操作摘要、关键发现和标签。

指标 原文 文言文 比例
字符数 6,581 3,153 47.9%
Token数 4,063 1,846 45.4%
压缩率 52.1% 2.20x

结果与实验一高度一致,验证了该方法在不同类型技术内容上的稳定性。

关键发现

  1. 稳定的~52%压缩率:两项实验取得了几乎相同的压缩率,表明该方法稳定且可推广。
  2. Token节省约54.6%:Token级别的压缩比字符级别更显著,因为文言文使用更少、信息密度更高的token。
  3. 内容长度影响效果:短条目(<100字符)压缩效果有限(19%),而较长且重复较多的条目最高可达71%压缩。
  4. 完整技术保真度:所有技术细节、参数和结论均完整保留——无信息丢失。

前后对比:真实案例

以下是两个展示转换效果的案例。

案例一:电路分析方法论

本条目记录了KiCad PCB设计中电源电路的正确分析方法——硬件工程任务的关键技能。

原文(现代中文):

顺藤摸瓜法:从电源入口追踪完整路径,严禁仅凭型号相同假设并联。
电源分析四步:识别芯片→追踪SW引脚→追踪电感→确认输出网络→构建拓扑。
并联判断:必须4项同时满足,最关键是输出网络相同。

压缩后(文言文):

顺藤摸瓜:自电源入口追全程,禁以型号同而臆并联。
四步:识芯片→追SW→追电感→确输出→建拓扑。
并联须四者俱备,输出网络同乃关键。

文言文版本长度约为原来的一半,同时保留了每一条技术指令。关键概念——从电源入口追踪、不可仅凭元器件型号假设并联、四步流程、输出网络必须相同的核心要求——全部完整保留。

案例二:源码超时分析

本条目总结了QvosAgent源码超时处理机制的分析结果——对理解系统可靠性至关重要。

原文(现代中文):

LLM调用无显式超时配置,使用SDK默认600秒。
_create_with_retry仅重试400参数错误,不重试超时或503错误,503异常直接向上抛出。
Shell命令默认30秒超时,支持自定义,超时后终止进程树。
Python代码执行默认30秒超时,可通过PYTHON_TIMEOUT环境变量配置。
SSH远程执行默认30秒超时。
AsyncJobManager使用threading.Timer实现后台任务超时自动终止,解决communicate阻塞问题。

压缩后(文言文):

LLM调用无显式超时,SDK默认600秒。
重试仅覆400,503直抛。
Shell/Python/SSH超时皆30秒,可自定。
AsyncJobManager以Timer自动终止,解阻塞。

同样约50%的压缩率,技术含义零损失。每个超时值、每个组件行为、每个配置选项依然清晰可辨。

实际应用

此压缩方法对AI智能体系统有多种实际应用:

局限性与注意事项

总结

文言文压缩方法实现了稳定的**约52%**字符和token缩减,同时保持完整的技术准确性。这不是有损压缩——而是无损转换为更密集的表示形式。

对于在上下文窗口约束下运行的AI智能体,此方法提供了实用、立即可用的解决方案。2.07x至2.20x的压缩比意味着你可以在相同的token预算内容纳约两倍的歷史上下文。

古人之智,今人之用。有时最好的解决方案,已有数千年历史。