ClawSkills logoClawSkills

Context Optimizer

针对 DeepSeek 64k 上下文窗口的高级上下文管理,具备自动压缩和动态上下文优化功能。特性包括智能压缩(合并、s

介绍

# Context Pruner

针对 DeepSeek 64k 上下文窗口优化的高级上下文管理。提供智能修剪、压缩和 Token 优化,以防止上下文溢出,同时保留重要信息。

## 主要功能

- **DeepSeek 优化**:专门针对 64k 上下文窗口进行调优 - **自适应修剪**:基于上下文使用情况的多种策略 - **语义去重**:删除冗余信息 - **优先级感知**:保留高价值消息 - **Token 高效**:最小化 Token 开销 - **实时监控**:持续跟踪上下文健康状况

## 快速开始

### 带有动态上下文的自动压缩: ```javascript import { createContextPruner } from './lib/index.js';

const pruner = createContextPruner({ contextLimit: 64000, // DeepSeek's limit autoCompact: true, // Enable automatic compaction dynamicContext: true, // Enable dynamic relevance-based context strategies: ['semantic', 'temporal', 'extractive', 'adaptive'], queryAwareCompaction: true, // Compact based on current query relevance });

await pruner.initialize();

// Process messages with auto-compaction and dynamic context const processed = await pruner.processMessages(messages, currentQuery);

// Get context health status const status = pruner.getStatus(); console.log(`Context health: ${status.health}, Relevance scores: ${status.relevanceScores}`);

// Manual compaction when needed const compacted = await pruner.autoCompact(messages, currentQuery); ```

### 存档检索(分层记忆): ```javascript // When something isn't in current context, search archive const archiveResult = await pruner.retrieveFromArchive('query about previous conversation', { maxContextTokens: 1000, minRelevance: 0.4, });

if (archiveResult.found) { // Add relevant snippets to current context const archiveContext = archiveResult.snippets.join('\n\n'); // Use archiveContext in your prompt console.log(`Found ${archiveResult.sources.length} relevant sources`); console.log(`Retrieved ${archiveResult.totalTokens} tokens from archive`); } ```

## 自动压缩策略

1. **语义压缩**:合并相似消息而不是删除它们 2. **时间压缩**:按时间窗口总结较旧的对话 3. **提取式压缩**:从冗长的消息中提取关键信息 4. **自适应压缩**:根据消息特征选择最佳策略 5. **动态上下文**:根据与当前查询的相关性过滤消息

## 动态上下文管理

- **查询感知相关性**:基于与当前查询的相似性对消息进行评分 - **相关性衰减**:较旧对话的相关性分数随时间衰减 - **自适应过滤**:自动过滤低相关性消息 - **优先级整合**:将消息优先级与语义相关性相结合

## 分层记忆系统

上下文存档提供了内存与存储相结合的方法:

- **当前上下文 (RAM)**:有限(64k Token),快速访问,自动压缩 - **存档**:更大(100MB),较慢但可搜索 - **智能检索**:当信息不在当前上下文中时,高效搜索存档 - **选择性加载**:仅提取相关片段,而不是整个文档 - **自动存储**:压缩的内容自动存储在存档中

## 配置

```javascript { contextLimit: 64000, // DeepSeek's context window autoCompact: true, // Enable automatic compaction compactThreshold: 0.75, // Start compacting at 75% usage aggressiveCompactThreshold: 0.9, // Aggressive compaction at 90% dynamicContext: true, // Enable dynamic context management relevanceDecay: 0.95, // Relevance decays 5% per time step minRelevanceScore: 0.3, // Minimum relevance to keep queryAwareCompaction: true, // Compact based on current query relevance strategies: ['semantic', 'temporal', 'extractive', 'adaptive'], preserveRecent: 10, // Always keep last N messages preserveSystem: true, // Always keep system messages minSimilarity: 0.85, // Semantic similarity threshold // Archive settings enableArchive: true, // Enable hierarchical memory system archivePath: './context-archive', archiveSearchLimit: 10, archiveMaxSize: 100 * 1024 * 1024, // 100MB archiveIndexing: true, // Chat logging logToChat: true, // Log optimization events to chat chatLogLevel: 'brief', // 'brief', 'detailed', or 'none' chatLogFormat: '📊 {action}: {details}', // Format for chat messages // Performance batchSize: 5, // Messages to process in batch maxCompactionRatio: 0.5, // Maximum 50% compaction in one pass } ```

## 聊天记录

上下文优化器可以直接将事件记录到聊天中:

```javascript // Example chat log messages: // 📊 Context optimized: Compacted 15 messages → 8 (47% reduction) // 📊 Archive search: Found 3 relevant snippets (42% similarity) // 📊 Dynamic context: Filtered 12 low-relevance messages

// Configure logging: const pruner = createContextPruner({ logToChat: true, chatLogLevel: 'brief', // Options: 'brief', 'detailed', 'none' chatLogFormat: '📊 {action}: {details}', // Custom log handler (optional) onLog: (level, message, data) => { if (level === 'info' && data.action === 'compaction') { // Send to chat console.log(`🧠 Context optimized: ${message}`); } } }); ```

## 与 Clawdbot 集成

添加到您的 Clawdbot 配置中:

```yaml skills: context-pruner: enabled: true config: contextLimit: 64000 autoPrune: true ```

修剪器将自动监控上下文使用情况,并应用适当的修剪策略以保持在 DeepSeek 的 64k 限制内。

更多产品