lean-ctx पैटर्न मिलान से आगे जाता है। सूचना सिद्धांत, ग्राफ़ सिद्धांत और सांख्यिकीय यांत्रिकी के छह एल्गोरिदम मिलकर तय करते हैं कि क्या रखना है, क्या हटाना है, और कहाँ रखना है - सब स्वचालित, सब स्थानीय, शून्य कॉन्फ़िगरेशन।
ये एल्गोरिदम स्वायत्त बुद्धिमत्ता परत को शक्ति प्रदान करते हैं। वे हर ctx_read, ctx_preload, और ctx_overview कॉल के दौरान सक्रिय होते हैं - आप उन्हें कभी सीधे नहीं बुलाते।
परतें कैसे इंटरैक्ट करती हैं
| एल्गोरिदम | निर्णय लेता है | आधारित |
|---|---|---|
| Spectral Relevance | कौन सी फ़ाइलें मायने रखती हैं | डिपेंडेंसी ग्राफ़ + PageRank |
| Boltzmann Allocation | प्रति फ़ाइल कितने टोकन | कार्य विशिष्टता + प्रासंगिकता स्कोर |
| Predictive Surprise | कौन सी पंक्तियाँ रखनी हैं | BPE टोकन की क्रॉस-एन्ट्रॉपी |
| MMR Deduplication | कौन सी पंक्तियाँ अनावश्यक हैं | बाइग्राम Jaccard समानता |
| Semantic Chunking | आउटपुट को कैसे क्रमबद्ध करें | AST सीमाएँ + अटेंशन प्रवाह |
| BPE Optimization | अंतिम पाठ को कैसे एन्कोड करें | टोकन-स्तरीय कम्प्रेशन नियम |
भविष्यसूचक आश्चर्य स्कोरिंग
पारंपरिक कम्प्रेशन फ़िल्टर कच्चे अक्षरों पर Shannon एन्ट्रॉपी का उपयोग करते हैं, जो aaaa और import को समान रूप से पूर्वानुमेय मानता है। भविष्यसूचक आश्चर्य इसके बजाय BPE टोकन आवृत्ति के विरुद्ध क्रॉस-एन्ट्रॉपी मापता है - प्रत्येक पंक्ति LLM के टोकनाइज़र के लिए कितनी आश्चर्यजनक है।
यह कैसे काम करता है
- प्रत्येक पंक्ति को
o200k_base(GPT-4o / Claude टोकनाइज़र) का उपयोग करके टोकनाइज़ किया जाता है। - प्रत्येक टोकन के लिए, एक Zipfian पूर्व अनुमान रैंक के आधार पर अपेक्षित आवृत्ति अनुमानित करता है।
- क्रॉस-एन्ट्रॉपी की गणना की जाती है: सामान्य टोकन (बॉयलरप्लेट) वाली पंक्तियाँ कम स्कोर करती हैं; दुर्लभ टोकन (जटिल तर्क) वाली पंक्तियाँ उच्च स्कोर करती हैं।
- आश्चर्य थ्रेशोल्ड से नीचे की पंक्तियाँ आक्रामक कम्प्रेशन के दौरान हटाने की उम्मीदवार हैं।
उदाहरण
// Low surprise (boilerplate) - candidate for removal:
return Ok(()); // surprise: 0.12
use std::collections::HashMap; // surprise: 0.18
// High surprise (unique logic) - always preserved:
let decay = (-alpha * dist as f64).exp(); // surprise: 0.89
scores[j] += heat[i] * decay / degree; // surprise: 0.94 यह क्यों मायने रखता है
भविष्यसूचक आश्चर्य जटिल तर्क संरक्षित करते हुए अक्षर-स्तरीय एन्ट्रॉपी से 15–30% अधिक बॉयलरप्लेट हटाता है। यह सीधे मॉडल करता है कि LLM क्या "सूचनात्मक" मानता है क्योंकि यह समान BPE शब्दावली का उपयोग करता है।
Spectral प्रासंगिकता प्रसार
जब आप lean-ctx से किसी कार्य के लिए संदर्भ प्रीलोड करने को कहते हैं, तो इसे तय करना होता है कि कौन सी फ़ाइलें मायने रखती हैं। सरल कीवर्ड मिलान केवल ऐसी फ़ाइलें खोजता है जो आपके खोज शब्दों का उल्लेख करती हैं। Spectral Relevance ऐसी फ़ाइलें खोजता है जो प्रासंगिक फ़ाइलों से संरचनात्मक रूप से जुड़ी हैं - भले ही वे कोई कीवर्ड साझा न करें।
यह कैसे काम करता है
प्रोजेक्ट के डिपेंडेंसी ग्राफ़ पर दो ग्राफ़ एल्गोरिदम चलते हैं:
- हीट डिफ़्यूज़न - कार्य विवरण से मेल खाने वाली सीड फ़ाइलों को प्रारंभिक "हीट" प्राप्त होती है। हीट घातांकीय क्षय के साथ इम्पोर्ट किनारों के साथ फैलती है, कोडबेस के माध्यम से सूचना प्रवाह का अनुकरण करती है।
- PageRank केंद्रीयता - कई अन्य फ़ाइलों द्वारा इम्पोर्ट की जाने वाली फ़ाइलें उच्च केंद्रीयता स्कोर प्राप्त करती हैं। यह संरचनात्मक हब की पहचान करता है (जैसे, 20 मॉड्यूल द्वारा इम्पोर्ट किया गया
db.ts)।
अंतिम प्रासंगिकता स्कोर दोनों को जोड़ता है: 0.7 × heat + 0.3 × pagerank। थ्रेशोल्ड से नीचे की फ़ाइलें प्रीलोडिंग से बाहर रखी जाती हैं।
उदाहरण
Task: "fix authentication bug"
Direct matches: auth.ts, login.ts
Heat diffusion adds: middleware.ts (imports auth.ts)
session.ts (imported by auth.ts)
PageRank promotes: db.ts (imported by 18 files - structural hub)
Result: 5 files preloaded instead of 2, covering the full blast radius. शून्य कॉन्फ़िगरेशन
डिपेंडेंसी ग्राफ़ पहले उपयोग पर load_or_build() के माध्यम से स्वचालित रूप से बनता है। कोई ctx_graph build आवश्यक नहीं - यह बस काम करता है।
Boltzmann कॉन्टेक्स्ट आवंटन
एक बार Spectral Relevance प्रासंगिक फ़ाइलें चुन लेता है, प्रत्येक फ़ाइल को टोकन बजट की आवश्यकता होती है। भोले दृष्टिकोण समान बजट देते हैं या प्रासंगिकता के अनुसार क्रमबद्ध करते हैं। Boltzmann Allocation टोकन को इष्टतम रूप से वितरित करने के लिए सांख्यिकीय यांत्रिकी का उपयोग करता है।
यह कैसे काम करता है
- प्रत्येक फ़ाइल का Spectral Relevance से एक प्रासंगिकता स्कोर Ei है।
- एक तापमान पैरामीटर β कार्य से प्राप्त होता है: विशिष्ट कार्य ("login.ts में auth बग ठीक करें") कम तापमान (शीर्ष फ़ाइलों को तीव्र आवंटन) उत्पन्न करते हैं; व्यापक कार्य ("कोडबेस रीफ़ैक्टर करें") उच्च तापमान (समान वितरण) उत्पन्न करते हैं।
- टोकन बजट Boltzmann वितरण का अनुसरण करते हैं:
budgeti = total × (eβ·Ei / Σ eβ·Ej) - न्यूनतम और अधिकतम बजट लागू किए जाते हैं (128–4096 टोकन प्रति फ़ाइल), और कम्प्रेशन मोड (
full,map,signatures) आवंटित बजट के आधार पर चुना जाता है।
उदाहरण
Task: "fix the JWT validation in auth middleware"
Task specificity: 0.85 (specific) → β = 4.2
File | Relevance | Budget | Mode
auth.ts | 0.92 | 3,200 | full
middleware.ts | 0.78 | 1,800 | full
session.ts | 0.45 | 420 | map
db.ts | 0.31 | 180 | signatures
routes.ts | 0.22 | 128 | signatures
─────
Total: 5,728 tokens (within 8,000 budget) Reciprocal Rank Fusion (RRF) Cache Eviction
lean-ctx uses Reciprocal Rank Fusion for cache eviction decisions, replacing the earlier Boltzmann-inspired weighted scoring. RRF handles incomparable signals (time in seconds, frequency as counts, size in tokens) without arbitrary weight tuning.
| Aspect | Legacy (Boltzmann) | Current (RRF) |
|---|---|---|
| Signal handling | Mixed units in one formula (0.4×recency + 0.3×frequency + 0.3×size) | Each signal ranked independently, then fused |
| Weight tuning | Requires manual weight calibration (arbitrary 0.4/0.3/0.3) | No weights - only K=60 (standard IR parameter) |
| Edge cases | Large files dominate due to log-scaling of size | Fair treatment - each signal contributes equally via rank |
Formula: RRF(d) = Σ 1/(K + ranki(d)) - entries with the lowest fused score are evicted first. This produces monotonically correct ordering regardless of signal magnitude differences.
अटेंशन ब्रिज के साथ सिमेंटिक चंकिंग
LLM "मध्य में खोया" समस्या से पीड़ित हैं: संदर्भ की शुरुआत और अंत में जानकारी को मध्य सामग्री की तुलना में अधिक ध्यान मिलता है। Semantic Chunking सूचना हानि को न्यूनतम करने के लिए आउटपुट को पुनर्गठित करता है।
यह कैसे काम करता है
- चंक डिटेक्शन - स्रोत पंक्तियों को AST सीमा अनुमानी विधि के आधार पर सिमेंटिक चंक (फ़ंक्शन, टाइप, इम्पोर्ट, लूज़ लॉजिक) में समूहीकृत किया जाता है।
- प्रासंगिकता क्रम - वर्तमान कार्य से मेल खाने वाले चंक को शीर्ष (उच्च-अटेंशन स्थिति) पर प्रमोट किया जाता है। शेष चंक टाइप प्राथमिकता के अनुसार क्रमबद्ध किए जाते हैं।
- अटेंशन ब्रिज - चंक के बीच, lean-ctx न्यूनतम ब्रिज मार्कर (
---) डालता है ताकि LLM संरचनात्मक सीमाओं को पहचान सके। - टेल एंकर - सबसे उच्च-प्राथमिकता चंक की अंतिम 2–3 पंक्तियाँ आउटपुट के बिल्कुल अंत में दोहराई जाती हैं, महत्वपूर्ण जानकारी के लिए हालिया पूर्वाग्रह का लाभ उठाते हुए।
उदाहरण
// Without chunking (flat output):
import { db } from '../pages/docs/db';
import { hash } from '../pages/docs/crypto';
const MAX_RETRIES = 3;
export function createUser(...) { ... }
export function validateToken(...) { ... } ← lost in the middle
export function deleteUser(...) { ... }
// With semantic chunking (task: "fix token validation"):
export function validateToken(...) { ... } ← promoted to top
---
export function createUser(...) { ... }
export function deleteUser(...) { ... }
---
import { db } from '../pages/docs/db';
const MAX_RETRIES = 3;
---
// anchor: validateToken signature ← tail anchor MMR डीडुप्लिकेशन
जब एकाधिक फ़ाइलें संदर्भ में लोड की जाती हैं, उनमें अक्सर डुप्लिकेट इम्पोर्ट, साझा बॉयलरप्लेट या बहुत समान कोड पैटर्न होते हैं। Maximum Marginal Relevance (MMR) अद्वितीय जानकारी संरक्षित करते हुए इस अनावश्यकता को हटाता है।
यह कैसे काम करता है
- प्रत्येक पंक्ति के लिए, सभी पहले चयनित पंक्तियों ("कवरेज सेट") के विरुद्ध बाइग्राम Jaccard समानता की गणना करें।
- MMR स्कोर प्रासंगिकता और अनावश्यकता को संतुलित करता है:
MMR(l) = λ × relevance(l) - (1 - λ) × max_similarity(l, selected) MMR < 0वाली पंक्तियों को दबाया जाता है - वे जानकारी से अधिक अनावश्यकता जोड़ती हैं। λ पैरामीटर 0.7 पर डिफ़ॉल्ट है (विविधता से अधिक प्रासंगिकता को प्राथमिकता)।
प्रभाव
एक सामान्य मल्टी-फ़ाइल प्रीलोड में, MMR 10–25% अनावश्यक सामग्री हटाता है - मुख्य रूप से साझा इम्पोर्ट और दोहराए गए यूटिलिटी पैटर्न।
BPE-संरेखित टोकन अनुकूलन
सभी सामग्री चयनित और क्रमबद्ध होने के बाद, एक अंतिम पास LLM के BPE टोकनाइज़र के लिए कच्चे पाठ को अनुकूलित करता है। छोटे फ़ॉर्मेटिंग परिवर्तन शब्दार्थ बदले बिना टोकन गणना को काफ़ी कम कर सकते हैं।
अनुकूलन नियम
| पहले | बाद | टोकन बचत |
|---|---|---|
function | fn | प्रति घटना 1 टोकन |
-> | -> | 2 → 1 टोकन |
=> | => | 2 → 1 टोकन |
{ } | {} | 2 → 1 टोकन |
(4 स्पेस) | (2 स्पेस) | ~50% इंडेंटेशन बचत |
'static 'static लाइफ़टाइम | जहाँ सुरक्षित हो वहाँ छोड़ा गया | प्रति घटना 2 टोकन |
यह कैसे काम करता है
प्रत्येक नियम अन्य सभी कम्प्रेशन चरणों के बाद पंक्ति-दर-पंक्ति लागू किया जाने वाला एक सरल स्ट्रिंग प्रतिस्थापन है। नियम BPE टोकन सीमा विश्लेषण से प्राप्त होते हैं - वे उन पैटर्न को लक्षित करते हैं जहाँ टोकनाइज़र शब्दार्थ रूप से समकक्ष पाठ के लिए अनावश्यक रूप से कई टोकन उत्पन्न करता है।
प्रभाव
BPE अनुकूलन आमतौर पर पहले से संपीड़ित आउटपुट पर 3–8% अतिरिक्त टोकन बचाता है। बचत फ़ाइलों में जमा होती है और वर्बोज़ भाषाओं (TypeScript, Java, C#) के लिए सबसे महत्वपूर्ण है।
प्रभाव सत्यापित करना
सभी छह एल्गोरिदम के संयुक्त प्रभाव को मापने के लिए अपने प्रोजेक्ट में lean-ctx benchmark run चलाएँ। बेंचमार्क रिपोर्ट प्रति-फ़ाइल टोकन बचत, संरक्षण स्कोर (AST, पहचानकर्ता, पंक्तियाँ) और समग्र कम्प्रेशन अनुपात दिखाती है।
$ lean-ctx benchmark run
──────────────────────────────────────────
BENCHMARK - /Users/you/project
──────────────────────────────────────────
Files: 143
Total: 285,401 → 42,810 tokens (85% reduction)
Avg/file: 1,997 → 300 tokens
Preservation:
AST: 98.2%
Identifiers: 97.4%
Lines: 96.1%
Mode breakdown:
full: 68% of files
map: 22% of files
signatures: 8% of files
aggressive: 2% of files संरचित इंटेंट पहचान
lean-ctx हर इंटरैक्शन को StructuredIntent में वर्गीकृत करता है - एक स्लॉट-आधारित प्रतिनिधित्व जिसमें टास्क टाइप, कॉन्फिडेंस, लक्ष्य फ़ाइलें, स्कोप, भाषा संकेत, तात्कालिकता और एक्शन वर्ब शामिल हैं। यह सभी बाद के निर्णयों को संचालित करता है।
9 टास्क टाइप पहचाने जाते हैं: Explore, Generate, FixBug, Refactor, Test, Review, Config, Deploy और Document।
IntentScope SingleFile से ProjectWide तक - यह निर्धारित करता है कि कॉन्टेक्स्ट कितने व्यापक रूप से एकत्र किया जाता है।
यह कैसे काम करता है
कंप्रेशन इंटेंट के अनुसार अनुकूलित होता है: FixBug टास्क त्रुटि पंक्तियों को प्राथमिकता देते हैं, Explore टास्क हल्की सफ़ाई का उपयोग करते हैं, और Generate टास्क सिग्नेचर और टाइप पर ध्यान केंद्रित करते हैं।
ctx_read का ऑटो-मोड सेलेक्टर सक्रिय टास्क टाइप का उपयोग करके निर्णय को परिष्कृत करता है।
उदाहरण
Query: "fix the NaN bug in entropy.rs"
StructuredIntent:
task_type: FixBug (confidence: 0.95)
targets: ["entropy.rs"]
scope: SingleFile
language: Rust
urgency: 0.8
action_verb: "fix"
→ Compression: Information Bottleneck filter (error lines boosted)
→ Mode: task (error-focused extraction)
→ Suggestions: tests/entropy_test.rs (deficit detection) कॉन्टेक्स्ट पाइपलाइन आर्किटेक्चर
कॉन्टेक्स्ट पाइपलाइन छह अलग-अलग लेयर्स के माध्यम से जानकारी प्रोसेस करती है: Input → Intent → Relevance → Compression → Translation → Delivery।
यह कैसे काम करता है
Input → Intent → Relevance → Compression → Terse Engine → Delivery
│ │ │ │ │ │
│ │ │ │ │ └─ Final output to LLM
│ │ │ │ └─ 4-layer terse pipeline (see below)
│ │ │ └─ AST-aware compression per intent
│ │ └─ Graph heat + relevance scoring
│ └─ StructuredIntent classification
└─ Raw file content / shell output प्रति-लेयर मेट्रिक्स इनपुट टोकन, आउटपुट टोकन, कंप्रेशन रेट और प्रोसेसिंग समय ट्रैक करती हैं।
4-Layer Terse Engine
The terse engine applies four composable compression layers, controlled by
compression_level
(Off / Lite / Standard / Max). Each layer is independently verified by Lean4 proofs
(TerseQuality, TerseEngine — part of 82 total theorems).
| Layer | Name | What it does |
|---|---|---|
| 1 | Dictionary | Common token substitutions and abbreviations (function → fn, return → ret) |
| 2 | Residual | Whitespace normalization, blank-line collapse, boilerplate removal |
| 3 | Scoring | Information-theoretic ranking — keeps high-surprise blocks, prunes low-entropy filler |
| 4 | Pipeline | CEP v1 protocol: delta-only output, structured notation (+/-/~), token budgets |
कॉन्टेक्स्ट लेजर और प्रेशर मैनेजमेंट
ContextLedger AI को भेजी गई हर फ़ाइल को ट्रैक करता है: पथ, कंप्रेशन मोड, मूल टोकन, भेजे गए टोकन और टाइमस्टैम्प।
यह कैसे काम करता है
तीन प्रेशर लेवल: None (70% से कम उपयोग), Compress (70–90%) और Evict (90% से अधिक)।
उदाहरण
Context Window: 128,000 tokens
Loaded: 89,600 tokens (70% utilization)
Pressure: None → safe
After loading 3 more files:
Loaded: 115,200 tokens (90% utilization)
Pressure: Compress → downgrade non-target files
Re-Injection Plan:
utils.rs: full → signatures (save 2,400 tokens)
helpers.rs: full → map (save 1,800 tokens)
config.rs: full → signatures (save 1,200 tokens)
Protected: auth.rs, login.ts (target files) कॉन्टेक्स्ट डेफिसिट डिटेक्शन गायब जानकारी की पहचान करता है और प्रासंगिक फ़ाइलें सुझाता है।
स्मार्ट री-इंजेक्शन गैर-लक्ष्य फ़ाइलों को डाउनग्रेड करके कॉन्टेक्स्ट बजट मुक्त करने की योजना बनाता है।
मल्टी-एजेंट इंटेलिजेंस
जब कई AI एजेंट सहयोग करते हैं, तो lean-ctx संरचित हैंडऑफ़, रोल-आधारित कॉन्टेक्स्ट गहराई और एजेंट-पार ज्ञान साझाकरण प्रदान करता है।
यह कैसे काम करता है
HandoffPackage वर्तमान सेशन लेजर, संरचित इंटेंट और कॉन्टेक्स्ट स्नैपशॉट को एक हस्तांतरणीय इकाई में बंडल करता है।
सात एजेंट भूमिकाएँ पहचानी जाती हैं: Coder, Reviewer, Planner, Explorer, Debugger, Tester और Orchestrator।
उदाहरण
Agent "coder-1" (role: Coder):
max_files_full: 8
preferred_mode: full
context_budget: 80%
Agent "reviewer-1" (role: Reviewer):
max_files_full: 3
preferred_mode: signatures
context_budget: 60%
Shared Knowledge:
K:discovery:auth_bug = "null check missing in line 42"
K:decision:fix_approach = "add Option<T> wrapper"
→ reviewer-1 inherits these facts without re-reading files एजेंट-पार ज्ञान साझाकरण एजेंटों को साझा स्क्रैचपैड के माध्यम से संरचित तथ्यों का आदान-प्रदान करने देता है।
Community Detection (Louvain)
The core::community module clusters files by their dependency graph using the
Louvain algorithm. This groups tightly-coupled files into communities, enabling
more intelligent context selection — files in the same community as your target are prioritized
for preloading and receive higher relevance scores during task-driven reads.
Code Smell Detection
The ctx_smells tool detects long functions, deep nesting, and high cyclomatic complexity
using the core::smells module. Detected smells are scored with graph-enriched weighting —
files with high PageRank or many dependents receive amplified smell scores, surfacing maintenance
hotspots that have the widest blast radius across the codebase.