tksq
通用LLM令牌压缩MCP服务器。挤压你的代币。
tksq 通过多级管道压缩文本,减少使用LLM时的令牌消耗。它删除了填充短语,应用了简洁的替换,消除了冗余,并规范了空白——同时保留了代码块、URL和语义含义。
作为一个 主控程序 服务器与任何兼容的客户端:Claude Code、Cursor、VS Code等。
特性
- 四级压缩管路:清理、语义、结构、速记
- 3个压缩级别:轻度、中度、攻击性
- 多语言:具有完整管道支持的英语和俄语包
- 4个域词典:综合、编程、法律、学术
- 学习缓冲区:发现重复模式,建议新的替换
- 智能体编排:用于多代理令牌优化的现成工具
- 9个MCP工具 用于压缩、分析、配置和监控
快速开始
使用克劳德代码
添加到MCP配置(.mcp.json):
{
"mcpServers": {
"tksq": {
"command": "npx",
"args": ["-y", "tksq"]
}
}
}带光标
增添 .cursor/mcp.json:
{
"mcpServers": {
"tksq": {
"command": "npx",
"args": ["-y", "tksq"]
}
}
}运作原理
tksq通过多达4个压缩阶段处理文本:
Input: 120 tokens
-> [Cleanup]: 115 tokens (-4.2%) # whitespace, fillers, redundancy
-> [Semantic]: 85 tokens (-26.1%) # phrase substitution, abbreviations
-> [Structural]: 82 tokens (-3.5%) # dedup, pattern collapse
-> [Shorthand]: 75 tokens (-8.5%) # telegraphic, deverbal nouns
Total: 120 -> 75 tokens (37.5% saved)什么被压缩
- 填充短语:“我想”、“值得注意的是”、“基本上”->删除
- 冗长的短语:“为了”->“为了”,“因为”->“因为”
- 冗余:“完全唯一”->“唯一”、“返回”->“返回”
- 空白:多个空行、尾随空格、多余空格
- 俄语:填充词、官僚结构、非言语名词、代词省略
什么保持不变
- 代码块(围栏和内联)
- 网址
- 长引号字符串
- 您指定的自定义图案
工具
核心压缩
tksq_compress
使用完整的每个阶段统计数据压缩文本。
Parameters:
text (required) The text to compress
level (optional) "light" | "medium" | "aggressive"
domain (optional) "general" | "programming" | "legal" | "academic"
language (optional) "auto" | "en" | "ru"
tokenizer (optional) "cl100k_base" | "o200k_base" | "approximate"
preserve_patterns (optional) Additional regex patterns to preservetksq_count
在不压缩的情况下计数令牌。
tksq_diff
显示原始文本和压缩文本之间的单词级别差异。
tksq_benchmark
并行测试所有级别的压缩。
配置
tksq_configure
读取或更新持久配置。显示当前设置、自定义替换、升级模式和学习配置。
学习
tksq_learn
管理学习缓冲区——从您的使用中发现的模式。
Actions:
list Show candidate patterns with frequency counts
promote Activate a candidate as a compression substitution
reject Remove a false positive from candidates
add Manually add a pattern (phrase -> replacement)
reset Clear all learned data
stats Show compression statisticstksq_dashboard
全面概述:历史统计数据、配置、学习缓冲区状态、字典大小。
智能体编排
tksq_agent_prompt
获取一个现成的系统提示片段,用于多代理令牌优化。在代理系统中包含提示,以启用全管道压缩。
Parameters:
role (required) "child" | "parent"
style (optional) "default" | "aggressive"tksq_pack
压缩代理输出以返回给父代理。针对管道进行了优化:保留了代码块、文件路径和行号。返回具有最小元数据页脚的压缩文本。
Parameters:
text (required) Agent output to compress
level (optional) "medium" | "aggressive"
language (optional) "auto" | "en" | "ru"压缩级别
| 级别 | 阶段 | 预期节省 |
|---|---|---|
| 光 | 清理 | 5-15% |
| 中等 | 清理+语义 | 20-40% |
| 激进的 | 所有4个阶段 | 30%-50%+ |
多语言支持
tksq自动检测语言(英语/俄语)并应用相应的语言包。
俄语 包括:
- 52个填充短语,99个替换,49个冗余
- 代词省略、父名压缩、比较扩展
- 动词名词压缩(10个动词家族中的48种模式)
- 官僚主义短语简化
域词典
- 通用 (默认):以散文为重点的填充物移除和替换
- 编程:代码缩写(“功能”->“fn”、“配置”->“config”)
- 法律的:特定法律术语和替代品
- 学术:学术写作模式和缩写
学习缓冲区
tksq观察你的压缩模式并发现重复的短语。当一个短语出现的频率足够高时,它就意味着速记替代。
tksq_compress("...text...") -> tracks repeating n-grams
tksq_learn(action: "list") -> shows candidates with counts
tksq_learn(action: "promote", phrase: "machine learning", replacement: "ML")推广的模式会自动应用于未来的按压。
数据保存在:
- 视窗:
%APPDATA%\tksq\learned.json - Linux/Mac:
~/.config/tksq/learned.json
多代理编排
在多代理管道(Claude Code Task工具等)中,tksq降低了整个代理树的令牌成本:
- 家长代理人 包括
tksq_agent_prompt(role: "parent")在其背景下 - 儿童代理人 得到
tksq_agent_prompt(role: "child")在他们的系统提示中 - 在返回结果之前,儿童代理会致电
tksq_pack关于他们的产出 - 父级直接读取压缩结果(LLM很好地处理压缩文本)
典型的节省:每个代理的自然语言分析文本减少20-40%。
配置
配置文件位置:
- 视窗:
%APPDATA%\tksq\config.json - Linux/Mac:
~/.config/tksq/config.json
{
"level": "medium",
"tokenizer": "cl100k_base",
"domain": "general",
"language": "auto",
"preservePatterns": [],
"customSubstitutions": {},
"learning": {
"enabled": true,
"minFrequency": 5,
"autoPromote": false,
"maxCandidates": 100
}
}发展
git clone https://github.com/Nexonium/tksq.git
cd tksq
npm install
npm run build
npm test项目结构
src/
index.ts # Entry point (stdio MCP transport)
server.ts # MCP server, 9 tool registrations
pipeline/
Pipeline.ts # Stage orchestrator
stages/
CleanupStage.ts # Whitespace, fillers, redundancy
SemanticStage.ts # Substitutions, abbreviations
StructuralStage.ts # Dedup, pattern collapse
ShorthandStage.ts # Telegraphic, deverbal nouns
preserver/
PatternPreserver.ts # Protect code blocks, URLs
tokenizer/
TokenCounter.ts # tiktoken + approximate counter
dictionaries/
languages/
en.ts # English language pack
ru.ts # Russian language pack
types.ts # LanguagePack, ShorthandConfig
registry.ts # Language registry
domains/
general.ts, programming.ts, legal.ts, academic.ts
DictionaryLoader.ts # Dictionary loading and merging
language/
LanguageDetector.ts # Auto language detection
WordBoundary.ts # Unicode-aware word boundaries
learning/
types.ts # CandidatePattern, LearnedData, LearningConfig
PhraseStore.ts # JSON persistence for learned patterns
PhraseTracker.ts # Frequency analysis, replacement suggestion
config/
ConfigManager.ts # Persistent user config
defaults.ts # Default values
diff/
TextDiffer.ts # Word-level diff