Context-Life (CL)
LLM Context Optimization MCP Server
Local RAG · Intelligent Trim · Token Counting · Prompt Caching · Context Health
Zero API calls — everything runs locally on your machine.
______________________________________________________________________
什么是情境生活?
生活是一个 MCP服务器 这优化了LLM如何使用其上下文窗口。想一想 上下文 (我们的吉祥物)作为一个小助手,坐在你的AI客户端和模型之间,确保每个令牌都很重要。
- 令牌计数 --使用带有LRU缓存的tiktoken进行精确计数
- 智能修剪 --智能消息阵列优化,永不丢失系统指令
- 本地RAG --使用LanceDB+多语言嵌入对文件进行语义搜索
- 提示缓存 --两级前缀分段,实现最大缓存重用
- 上下文健康 --实时健康评分(0-100),并提供可操作的建议
- 编排器检测 --自动检测Gentle AI、Engram和MCP编排器
- 智能上下文优化 --将提示分类为“轻”/“必需”/“关键”,以决定何时实际需要优化
- HALT治理 --在生成不兼容的代码之前检测矛盾并停止
- 自动调用缓存 --基于TTL的缓存,具有SHA-256密钥推导和并发请求重复数据删除功能
- 跨会话状态 --用于跨会话持久状态的SQLite日志
- 治理仪表板 --实时指标(缓存状态、优先级、过时性)
- 多层检测 --检测光标、风浪和Codex环境
______________________________________________________________________
安装
使用Scoop(Windows--推荐)
Scoop是Windows的推荐安装方法。它自动处理更新,并将一切置于用户控制之下。
scoop bucket add context-life https://github.com/ErickGuerron/MCP-Context-Life
scoop install context-life要更新,请执行以下操作:
scoop update context-life没有Scoop? 先安装它(PowerShell):
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex有关完整独家新闻文档,请访问 勺.sh.
______________________________________________________________________
使用紫外线(最快)
uv tool install "git+https://github.com/ErickGuerron/MCP-Context-Life.git"Don't have uv? Install it first
- 窗户:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" - macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
使用pipx
pipx install "git+https://github.com/ErickGuerron/MCP-Context-Life.git"标准pip
pip install git+https://github.com/ErickGuerron/MCP-Context-Life.git安装配置文件
# Full install (default — includes RAG)
uv tool install "git+https://github.com/ErickGuerron/MCP-Context-Life.git"
# Core only (token counting + trim, no ML dependencies)
pip install "context-life[core]"
# With RAG (LanceDB + sentence-transformers)
pip install "context-life[rag]"
# Pinned to a specific version
uv tool install "git+https://github.com/ErickGuerron/MCP-Context-Life.git@v0.7.1"来源
git clone https://github.com/ErickGuerron/MCP-Context-Life.git
cd MCP-Context-Life
pip install -e ".[dev]"码头工人
docker build -t context-life .
docker run --rm context-life version
docker run --rm context-life info
docker run --rm context-life doctor\[!警告\] Windows用户: Windows锁正在运行.exe文件夹。如果你得到[WinError 32]在升级过程中,请先关闭MCP客户端(OpenCode、Claude Desktop、Cursor等)。
______________________________________________________________________
CLI命令
context-life # Start MCP server (stdio)
context-life serve # Start MCP server (stdio)
context-life serve --http # Start MCP server (HTTP)
context-life info # System info, config, dependencies
context-life doctor # Environment diagnostics
context-life warmup # Explain RAG warmup mode + current setting
context-life warmup set startup # Persist warmup mode: lazy|startup|manual
context-life warmup interactive # Interactive selector for warmup mode + prewarm
context-life prewarm # Explicitly warm the RAG model now
context-life upgrade # Upgrade to latest GitHub release
context-life upgrade --version v0.8.0 # Install specific version
context-life upgrade --dry-run # Check without installing
context-life version # Show version
context-life help # Show help______________________________________________________________________
使用MCP客户端进行设置
开源代码
添加 ~/.config/opencode/opencode.json:
{
"mcp": {
"context-life": {
"type": "local",
"command": ["context-life"],
"enabled": true
}
}
}要使客户端在每次转弯时自动运行Context-Life,请在代理/系统提示符中添加一个第一步策略,该策略调用 preflight_request 在计划或回答之前。
Before every user turn, call the Context-Life MCP prompt `preflight_request` with the raw user request, then follow the returned `applied_process`.如果你想将其烘焙成OpenCode,请在主代理提示符中添加相同的规则:
Always call `preflight_request` before planning the response to any user message. If the result says `noop`, answer normally. If it recommends another step, follow `applied_process` exactly.从TUI安装
打开 context-life tui首选 配置→ 安装上下文生活,然后选择以下选项之一:
- 开源代码
- 反重力
- Visual Studio Code
每个选项只添加 context-life MCP进入该工具的配置。
对于自动飞行前,客户端必须配置为调用 preflight_request 第一;服务器不能自己无形地拦截聊天。
建议的反重力说明:
Before answering any user message, call the Context-Life MCP prompt `preflight_request` with the raw prompt. Use the returned `applied_process` to decide whether to optimize, search context, or continue normally.克劳德桌面版
编辑 claude_desktop_config.json:
- 窗户:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"context-life": {
"command": "context-life",
"args": [],
"env": {}
}
}
}光标/风帆/双子CLI
{
"mcpServers": {
"context-life": {
"command": "context-life"
}
}
}______________________________________________________________________
特性
工具
| 工具 | 说明 |
|---|---|
autoinvoke_context | 在提示边界自动调用上下文优化(单个代理的零步唤醒) |
sleep_context | 在任务结束时坚持会话学习(单人代理睡眠行为) |
count_tokens_tool | 使用tiktoken计算任何文本的标记 |
count_messages_tokens_tool | 计算OpenAI风格消息数组的令牌 |
optimize_messages | 使用尾部/头部/智能策略修剪消息数组 |
search_context | 基于索引局部知识的语义搜索 |
index_knowledge | 将本地文件索引到LanceDB中以进行RAG检索 |
cache_context | 具有分段前缀的缓存感知消息处理 |
rag_stats | 知识库统计 |
clear_knowledge | 清除所有索引知识 |
reset_token_budget | 重置代币预算跟踪器 |
analyze_context_health_tool | 上下文健康分析,包括评分、指标和建议 |
get_orchestration_advice | 为Gentle AI/MCP编排者提供可操作的下一步合同 |
资源
| 资源 | 描述 |
|---|---|
status://token_budget | 当前代币预算+LRU缓存统计数据 |
cache://status | 快速缓存命中/未命中性能 |
rag://stats | RAG知识库信息 |
status://orchestrator | 检测到编排器和顾问模式状态 |
status://orchestration | 静态编排合同和推荐的工具流 |
______________________________________________________________________
建筑
┌──────────────────────────────────────────────────┐
│ MCP Client (LLM Host) │
│ (OpenCode / Claude / Cursor / Gemini CLI) │
└────────────────────┬─────────────────────────────┘
│ MCP Protocol (stdio/http)
┌────────────────────▼─────────────────────────────┐
│ Context-Life Server │
│ │
│ ┌──────────────┐ ┌──────────────────────────┐ │
│ │ Config │ │ Token Counter │ │
│ │ (3-tier) │ │ (tiktoken + LRU cache) │ │
│ └──────────────┘ └──────────────────────────┘ │
│ ┌──────────────┐ ┌──────────────────────────┐ │
│ │ Trim History │ │ Cache Manager │ │
│ │ (tail/head/ │ │ (2-level prefix + │ │
│ │ smart) │ │ advisor hints) │ │
│ └──────────────┘ └──────────────────────────┘ │
│ ┌──────────────┐ ┌──────────────────────────┐ │
│ │ RAG Engine │ │ Context Health │ │
│ │ (LanceDB + │ │ (score 0-100 + │ │
│ │ lazy load) │ │ recommendations) │ │
│ └──────────────┘ └──────────────────────────┘ │
│ ┌──────────────┐ ┌──────────────────────────┐ │
│ │ Orchestrator │ │ CLI (Rich TUI) │ │
│ │ Detector │ │ (info/doctor/upgrade/ │ │
│ │ (auto-sense) │ │ version) │ │
│ └──────────────┘ └──────────────────────────┘ │
└───────────────────────────────────────────────────┘现在开始构图 mmcp/presentation/mcp/server.py,将MCP工具/资源连接到 mmcp/presentation/app_container.py容器拥有共享的运行时对象和配置感知访问器,因此服务器可以保持精简,同时保留公共MCP表面。
图层映射
mmcp/presentation/--MCP+CLI入口适配器和组合根mmcp/application/--垂直切片和端口mmcp/infrastructure/--按责任划分的具体适配器(environment/,persistence/,tokens/,knowledge/,context/,telemetry/)mmcp/domain/--如果稍后提取,则保留用于纯规则
______________________________________________________________________
运作原理
令牌计数器
用途 tiktoken 用于精确的代币计数。支持 cl100k_base (GPT-4,克劳德), o200k_base (GPT-4o),以及 p50k_base (食品法典委员会)。 v0.5.0: LRU缓存(1024个条目)消除了微调迭代期间的冗余计数。
修剪历史
三种策略 严格的预算保证:
- 尾巴:保留最新消息
- 头:保留最旧的消息
- 聪明的:保护系统消息+最近的转弯,压缩中间部分。如果锚超过预算,则压缩为政策摘要。
RAG发动机
使用的局部矢量搜索 兰斯数据库 (无服务器)+ 多语言释义MiniLM-L12-v2 (多语言嵌入)。 v0.5.0: 延迟模型加载消除了冷启动延迟——嵌入模型仅在首次使用时加载。
\[!警告\] 如果你在冷启动后第一次打开人工智能客户端(OpenCode、Claude Desktop等)时看到大约30秒的延迟,那就是嵌入模型加载。跑context-life warmup set startup在MCP启动时对其进行预热,或context-life prewarm在打开你的客户之前。
- 通过文件哈希自动进行重复数据删除
- 令牌预算检索,跳过并继续打包
- 每个源块限制(
max_chunks_per_source) - 分数过滤(
min_score)
缓存管理器
两级前缀分段以实现最佳缓存重用:
- 基础前缀:系统/开发人员说明(在各回合中稳定)
- RAG前缀:注入的知识上下文(可能会改变)
- 当只有RAG更改时,保留基本前缀缓存
- v0.5.0: 检测到AI编排器时注入顾问提示
上下文健康 *(v0.5.0)*
实时诊断工具,根据以下内容计算健康评分(0-100):
- 代币利用率(占预算消耗的百分比)
- 消息冗余(重复检测)
- 系统与用户比率(提示主导)
- 噪声估计(琐碎/空消息)
返回可操作的建议和编排器提示,以进行主动的上下文管理。
编排器检测 *(v0.5.0)*
自动检测CL何时与Gentle AI或Engram等AI编排器一起运行:
- 环境变量:
GENTLE_AI_ACTIVE,ENGRAM,MCP_ORCHESTRATOR - 工作区工件:
.gemini/,.gga,.agent/,.agents/ - 启用带有主动优化提示的“顾问模式”
编排器集成指南 --上下文流、温和的AI/SDD集成和适配器配置。
智能上下文优化 *(v0.7.1)*
D4对每个提示进行评估,并将其分为轻/必需/关键:
- 光 (置信度≥0.80):提示清晰——继续,无需优化
- 必需 (置信度0.55-0.79):即时需求重组或上下文--呼叫
cache_context仅在必要时 - 关键的 (任何冲突):检测到矛盾-- 暂停 并在继续之前解决
编排器同时接收传统合同(intent, keywords, advice)以及D4决定 d4{},因此在获得智能路由的同时保留了现有的工作流程。
上下文优化逻辑 --业务规则、状态定义、置信阈值、HALT触发器和令牌成本分析。
自动调用上下文生命周期 *(v0.7.1)*
情境生活实现了 零步 上下文生命周期——进行上下文优化 *之前* 任何核心代理任务执行:
单人代理(风帆、Codex、克劳德代码):
- 唤醒(零步):
autoinvoke_context被称为代理人思考之前的绝对第一令牌 - 睡眠(任务结束):
sleep_context将学习内容持续传递给服务器 - 治理是通过
context-life技能档案
编排器(温和的人工智能/定制 delegate()):
- 编排器将每个提示路由到
context-life-advisor第一 - 顾问电话
autoinvoke_context并返回aContextPack与地面真相 - 治理由编排器的路由规则处理
旁路: 集 DISABLE_AUTOINVOKE=1 在环境中禁用所有自动调用行为。
| 环境 | 治理 | 唤醒 | 睡眠 |
|---|---|---|---|
| 单人代理 | 技能档案 | autoinvoke_context 作为步骤零 | sleep_context 任务结束时 |
温和的ai/编曲 delegate() | 编排器路由 | context-life-advisor 子代理 | 通过编排器阶段处理 |
独唱经纪人(DISABLE_AUTOINVOKE=1) | 无 | 无操作 | 无操作 |
编排建议 *(vNext)*
Context Life现在为上游编排者公开了第一个明确的编排合同:
get_orchestration_advice将健康+检测结合到可操作的后续步骤中status://orchestration宣传功能和推荐的工具流程- 当前集成级别保持不变 启发式顾问 (还不是双向握手)
______________________________________________________________________
配置
Context Life使用三层配置系统:
- 内置默认值 --始终可用
- 配置文件 —
~/.config/context-life/config.toml(Linux/macOS)或%APPDATA%\context-life\config.toml(Windows) - 环境变量 —
CL_*前缀(最高优先级)
配置文件示例
[rag]
top_k = 5
min_score = 0.3
max_chunks_per_source = 3
chunk_size = 512
warmup_mode = "lazy"
[token_budget]
default = 128000
safety_buffer = 500
[trim]
preserve_recent = 6
[paths]
data_dir = "~/.local/share/context-life"环境变量
export CL_RAG_TOP_K=10
export CL_RAG_WARMUP_MODE=startup
export CL_TOKEN_BUDGET_DEFAULT=64000
export CL_DATA_DIR=/custom/pathRAG预热模式
lazy*(默认)* --MCP启动速度快,但第一次RAG搜索/索引支付了模型加载成本。startup--MCP启动较慢,因为模型在启动过程中进行了预热,但首次RAG使用更快。manual--切勿自动预热;使用context-life prewarm或prewarm_ragMCP工具,当你想明确地加热它时。
如果你不想记住命令,运行 context-life warmup interactive 或打开 context-life tui 并选择 RAG预热选择器从那里,您可以检查MCP冲击,在 lazy / startup / manual,并可选择立即触发手动预热。
______________________________________________________________________
发展
# Run with HTTP transport for testing
context-life serve --http
# Or from source
python -m mmcp serve --http
# Lint
ruff check mmcp/
# Test
pytest
# Skip slow RAG integration tests
pytest -m "not slow"
# Run performance-oriented smoke/stress tests
pytest -m performance______________________________________________________________________
文档
| 文档 | 描述 |
|---|---|
| 上下文优化逻辑 | 智能提示优化系统的业务规则和行为(LIGHT/必需/关键状态、置信度评分、HALT治理) |
| 编排器集成指南 | Context Life如何与Gentle AI和其他编排器、上下文流和适配器配置集成 |
| 安装指南 | 所有平台(Scoop、uv、pipx、pip、Docker)的完整安装说明 |
需求
- Python>=3.10
- ~500MB磁盘用于句子转换器型号(首次使用时下载一次)
- 无需GPU——在CPU上运行
许可证
______________________________________________________________________
Built by Erick Guerrón
