lossless-claw
Lossless Claw — LCM (Lossless Context Management) plugin for OpenClaw
Analisi AI · Italiano
openai · gpt-4o-miniSintesi
Lossless Claw è un plugin per OpenClaw che risolve il problema della limitazione della finestra di contesto nei modelli LLM. Utilizza un sistema di riassunto basato su DAG (Directed Acyclic Graph) per conservare ogni messaggio di una conversazione, riassumendo i frammenti più vecchi in nodi consolidati. Questo permette agli agenti di recuperare dettagli specifici dalla storia compressa senza "dimenticare" informazioni, mantenendo il contesto attivo nei limiti dei token del modello.
Casi d'uso
- →Migliorare la fedeltà e la coerenza delle conversazioni con AI chatbot che richiedono un contesto a lungo termine, come assistenti personali o specialisti di dominio.
- →Sviluppare agenti conversazionali che possano richiamare dettagli specifici da interazioni passate, come nomi, date, preferenze o decisioni precedenti, senza essere limitati dalla finestra di contesto.
- →Creare sistemi AI per la gestione dei ticket di supporto o la consulenza legale, dove è fondamentale mantenere un registro di tutte le comunicazioni e poter recuperare rapidamente informazioni rilevanti da lunghe conversazioni.
- →Implementare agenti educativi o tutor AI che possono monitorare e richiamare il progresso dello studente, le domande poste e le risposte fornite nel corso di molte sessioni, offrendo un apprendimento personalizzato.
- →Fornire agli assistenti per la scrittura creativa o la generazione di codice la capacità di mantenere dettagli stilistici, requisiti specifici o frammenti di codice pertinenti attraverso molteplici iterazioni e revisioni.
Idee SaaS / Business
Una piattaforma SaaS che offre un 'archivio intelligente' per conversazioni AI, utilizzando la tecnologia LCM. Permette ad aziende e sviluppatori di integrare la gestione lossless del contesto nei loro chatbot e assistenti AI senza dover gestire l'infrastruttura sottostante. Include funzionalità di ricerca avanzata, analisi del contesto e integrazioni con i principali fornitori di LLM.
Un servizio SaaS che trasforma la documentazione interna e le conversazioni aziendali (come Slack o Teams) in una knowledge base dinamica. Un AI Assistant basato su Lossless Claw può rispondere a domande complesse richiamando informazioni da un vasto storico di comunicazioni interne, garantendo che nessuna informazione importante venga 'dimenticata' a causa dei limiti di contesto.
Un servizio di ottimizzazione per lo stack LLM, che si integra come proxy o plugin con le attuali implementazioni degli utenti. Offre una gestione avanzata del contesto come feature, permettendo ai modelli di mantenere una memoria a lungo termine senza sovraccaricare la finestra di contesto. Potrebbe includere dashboard per monitorare l'efficienza della compattazione e i costi associati ai modelli di riassunto.
README · tradotto in italiano
lossless-claw
Plugin di Gestione del Contesto Senza Perdite (Lossless Context Management - LCM) per OpenClaw, basato sul paper LCM di Voltropy. Sostituisce la compattazione a finestra scorrevole integrata di OpenClaw con un sistema di riassunto basato su DAG che preserva ogni messaggio mantenendo il contesto attivo entro i limiti dei token del modello.
Cosa fa
Ci sono due modi per capire cosa fa: leggere quanto segue o guardare questa super cool visualizzazione animata.
Quando una conversazione supera la finestra di contesto del modello, OpenClaw (come tutti gli altri agenti) normalmente tronca i messaggi più vecchi. LCM invece:
- Persiste ogni messaggio in un database SQLite, organizzato per conversazione.
- Riassume i blocchi di messaggi più vecchi in sintesi utilizzando il tuo LLM configurato.
- Condensa i riassunti in nodi di livello superiore man mano che si accumulano, formando un DAG (grafo aciclico diretto).
- Assembla il contesto ad ogni turno combinando riassunti + messaggi recenti non elaborati.
- Fornisce strumenti (
lcm_grep,lcm_describe,lcm_expand) in modo che gli agenti possano cercare e richiamare dettagli dalla storia compattata.
Nulla viene perso. I messaggi originali rimangono nel database. I riassunti si collegano ai loro messaggi sorgente. Gli agenti possono approfondire qualsiasi riassunto per recuperare il dettaglio originale.
Sembra di parlare con un agente che non dimentica mai. Perché non lo fa. In condizioni operative normali, non dovrai più pensare alla compattazione.
Comandi e Skill
Il plugin ora include una skill lossless-claw e una piccola superficie di comando per i provider di comandi chat/nativi di OpenClaw supportati:
| Comando | Descrizione |
|---|---|
/lcm | Mostra versione, stato di abilitazione/selezione, percorso e dimensione DB, conteggi riassunti e stato di 'salute' dei riassunti. |
/lcm backup | Crea un backup con timestamp del database SQLite LCM corrente. |
/lcm rotate | Riscrive la trascrizione della sessione attiva in una forma compatta che preserva la coda senza modificare l'identità della sessione OpenClaw Live o la conversazione LCM corrente. |
/lcm doctor | Scansiona alla ricerca di riassunti rotti o troncati. |
/lcm doctor clean | Mostra diagnostiche di 'spazzatura' ad alta confidenza in sola lettura per subagenti archiviati, sessioni cron e esecuzioni di subagenti orfani con chiave NULL. |
/lcm status | Mostra lo stato del plugin, della conversazione e della manutenzione, incluso il debito di compattazione differito. |
/lossless | Un alias per /lcm sulle superfici di comando native supportate. |
Questi sono comandi slash/nativi del plugin, non sottocomandi CLI di root shell. Esempi supportati:
/lcm/lcm backup/lcm rotate/lcm doctor/lcm doctor clean/lossless
Non supportati attualmente come comandi CLI di root:
openclaw lcmopenclaw losslessopenclaw /lcm
La skill inclusa si concentra sulla configurazione, sulla diagnostica, sull'architettura e sull'uso degli strumenti di richiamo. Il suo set di riferimento si trova sotto skills/lossless-claw/references/.
Avvio Rapido
Prerequisiti
- OpenClaw con supporto per il motore di contesto dei plugin
- Node.js 22+
- Un provider LLM configurato in OpenClaw (utilizzato per la creazione di riassunti)
Installare il plugin
Usa l'installer dei plugin di OpenClaw (raccomandato):
openclaw plugins install @martian-engineering/lossless-claw
Se stai eseguendo da un checkout locale di OpenClaw, usa:
pnpm openclaw plugins install @martian-engineering/lossless-claw
Per lo sviluppo locale del plugin, costruisci prima la tua copia di lavoro, quindi collegala invece di copiare i file:
cd /path/to/lossless-claw
pnpm build
openclaw plugins install --link /path/to/lossless-claw
# o da un checkout locale di OpenClaw:
# pnpm openclaw plugins install --link /path/to/lossless-claw
Esegui nuovamente pnpm build dopo le modifiche al codice locale in modo che l'output dist/ del plugin collegato rimanga aggiornato.
Il comando di installazione registra il plugin, lo abilita e applica la selezione di slot compatibili (incluso contextEngine quando applicabile).
Nota: Se la tua configurazione OpenClaw utilizza
plugins.allow, inserisci nella 'whitelist' l'ID del pluginlossless-clawpiù tutti gli altri plugin attivi su cui fai affidamento. Non aggiungere token di comando o alias comelosslesso/lcmaplugins.allow; questa impostazione accetta solo ID di plugin. In alcune configurazioni, la restrizione della 'whitelist' può impedire il caricamento di integrazioni basate su plugin, anche selossless-clawstesso è installato correttamente. Riavvia il gateway dopo le modifiche alla configurazione del plugin.
Configurare OpenClaw
Nella maggior parte dei casi, non sono necessarie modifiche manuali al JSON dopo openclaw plugins install.
Se è necessario impostarlo manualmente, assicurati che lo slot del motore di contesto punti a lossless-claw:
{
"plugins": {
"slots": {
"contextEngine": "lossless-claw"
}
}
}
Riavvia OpenClaw dopo le modifiche alla configurazione.
Configurazione
LCM è configurato tramite una combinazione di configurazione del plugin e variabili d'ambiente. Le variabili d'ambiente hanno la precedenza per la compatibilità con le versioni precedenti.
Configurazione del plugin
Aggiungi una voce lossless-claw sotto plugins.entries nella tua configurazione OpenClaw:
{
"plugins": {
"entries": {
"lossless-claw": {
"enabled": true,
"llm": {
"allowModelOverride": true,
"allowedModels": ["openai/gpt-5.4-mini"]
},
"config": {
"freshTailCount": 64,
"leafChunkTokens": 80000,
"newSessionRetainDepth": 2,
"contextThreshold": 0.75,
"incrementalMaxDepth": 1,
"cacheAwareCompaction": {
"enabled": true,
"cacheTTLSeconds": 300
},
"ignoreSessionPatterns": [
"agent:*:cron:**"
],
"transcriptGcEnabled": false,
"proactiveThresholdCompactionMode": "deferred",
"summaryModel": "openai/gpt-5.4-mini",
"expansionModel": "openai/gpt-5.4-mini",
"delegationTimeoutMs": 300000,
"summaryTimeoutMs": 60000
}
}
}
}
}
leafChunkTokens controlla quanti token sorgente possono accumularsi in un blocco di compattazione 'foglia' prima che venga attivata la riassunzione. Il valore predefinito è 20000, ma i provider di riassunti con quota limitata potrebbero beneficiare di un valore maggiore per ridurre la frequenza di compattazione. summaryModel e summaryProvider consentono di richiedere un modello di compattazione più economico o più veloce tramite la capacità api.runtime.llm.complete di OpenClaw; OpenClaw gestisce comunque la spedizione e l'autenticazione del provider. Le richieste esplicite di modelli di riassunto richiedono llm.allowModelOverride e voci di policy llm.allowedModels corrispondenti per lossless-claw. expansionModel fa lo stesso per le chiamate del sub-agente lcm_expand_query (che si approfondiscono nei riassunti per recuperare i dettagli). delegationTimeoutMs controlla per quanto tempo lcm_expand_query attende il completamento del sub-agente delegato prima di restituire un errore di timeout; il valore predefinito è 120000 (120s). summaryTimeoutMs controlla il timeout per chiamata per la riassunzione LCM basata su modello; il valore predefinito è 60000 (60s). Se non impostato, le impostazioni del modello tornano comunque al modello/provider predefinito configurato di OpenClaw. Vedere Requisiti di override del modello di espansione per la policy di fiducia del subagent richiesta quando si usa expansionModel.
Variabili d'ambiente
| Variabile | Predefinito | Descrizione |
|---|---|---|
LCM_ENABLED | true | Abilita/disabilita il plugin |
LCM_DATABASE_PATH | ~/.openclaw/lcm.db | Percorso del database SQLite |
LCM_IGNORE_SESSION_PATTERNS | "" | Pattern glob separati da virgole per le chiavi di sessione da escludere dalla memorizzazione LCM |
LCM_STATELESS_SESSION_PATTERNS | "" | Pattern glob separati da virgole per le chiavi di sessione che possono leggere da LCM ma non scriverci mai |
LCM_SKIP_STATELESS_SESSIONS | true | Abilita il salto di scrittura di sessioni stateless per le chiavi di sessione corrispondenti |
LCM_CONTEXT_THRESHOLD | 0.75 | Frazione della finestra di contesto che innesca la compattazione (0.0-1.0) |
LCM_FRESH_TAIL_COUNT | 64 | Numero di messaggi recenti protetti dalla compattazione |
LCM_NEW_SESSION_RETAIN_DEPTH | 2 | Contesto mantenuto dopo /new (-1 mantiene tutto il contesto, 2 mantiene d2+) |
LCM_LEAF_MIN_FANOUT | 8 | Messaggi grezzi minimi per riassunto foglia |
LCM_CONDENSED_MIN_FANOUT | 4 | Riassunti minimi per nodo condensato |
LCM_CONDENSED_MIN_FANOUT_HARD | 2 | Fanout rilassato per sweep di compattazione forzati |
LCM_INCREMENTAL_MAX_DEPTH | 1 | Quanto profonda è la compattazione incrementale (0 = solo foglia, 1 = un passeggio condensato, -1 = illimitato) |
LCM_LEAF_CHUNK_TOKENS | 20000 | Token sorgente massimi per blocco di compattazione foglia |
LCM_LEAF_TARGET_TOKENS | 1200 | Conteggio token target per riassunti foglia |
LCM_CONDENSED_TARGET_TOKENS | 2000 | Conteggio token target per riassunti condensati |
LCM_MAX_EXPAND_TOKENS | 4000 | Capienza token per query di espansione sub-agente |
LCM_LARGE_FILE_TOKEN_THRESHOLD | 25000 | Blocchi di file sopra questa dimensione vengono intercettati e memorizzati separatamente |
LCM_LARGE_FILE_SUMMARY_PROVIDER | "" | Override del provider per la creazione di riassunti di file di grandi dimensioni |
LCM_LARGE_FILE_SUMMARY_MODEL | "" | Override del modello per la creazione di riassunti di file di grandi dimensioni |
LCM_SUMMARY_MODEL | "" | Override del modello per la creazione di riassunti di compattazione; torna al modello predefinito di OpenClaw se non impostato |
LCM_SUMMARY_PROVIDER | "" | Override del provider per la creazione di riassunti di compattazione; torna a OPENCLAW_PROVIDER o al provider incorporato nel riferimento del modello |
LCM_SUMMARY_BASE_URL | (da OpenClaw / predefinito del provider) | Override dell'URL base per le chiamate all'API di riassunto |
LCM_EXPANSION_MODEL | (da OpenClaw) | Override del modello per il sub-agente lcm_expand_query (es. openai/gpt-5.4-mini) |
LCM_EXPANSION_PROVIDER | (da OpenClaw) | Override del provider per il sub-agente lcm_expand_query |
LCM_DELEGATION_TIMEOUT_MS | 120000 | Tempo massimo di attesa per il completamento del sub-agente lcm_expand_query delegato |
LCM_SUMMARY_TIMEOUT_MS | 60000 | Tempo massimo di attesa per una singola chiamata del riassuntore LCM basato su modello |
LCM_PRUNE_HEARTBEAT_OK | false | Elimina retroattivamente i cicli di turno HEARTBEAT_OK dalla memorizzazione LCM |
LCM_TRANSCRIPT_GC_ENABLED | false | Abilita la GC di riscrittura della trascrizione durante maintain() |
LCM_PROACTIVE_THRESHOLD_COMPACTION_MODE | deferred | Sceglie se la compattazione proattiva della soglia viene differita in debito di manutenzione o mantenuta in linea per il comportamento legacy |
LCM_CACHE_TTL_SECONDS | 300 | TTL della cache utilizzato dalla compattazione differita 'cache-aware' quando la telemetria del provider/runtime non fornisce una finestra di ritenzione più specifica |
Le riscritture GC della trascrizione sono disabilitate per impostazione predefinita. Imposta transcriptGcEnabled o LCM_TRANSCRIPT_GC_ENABLED per attivarle esplicitamente.
La compattazione proattiva differita è anche l'impostazione predefinita. Imposta proactiveThresholdCompactionMode o LCM_PROACTIVE_THRESHOLD_COMPACTION_MODE su inline solo se hai bisogno del comportamento di compattazione in primo piano legacy. In modalità differita, lossless-claw registra un elemento di debito che modifica il prompt dopo il turno, lascia che il maintain() in background elabori solo il lavoro che non modifica il prompt mentre la cache Anthropic è ancora 'calda', e quindi consuma quel debito prima dell'assemblaggio una volta che la cache è 'fredda' o il prompt si sta avvicinando al overflow.
Requisiti di override del modello di espansione
Se desideri che lcm_expand_query venga eseguito su un modello dedicato tramite expansionModel o LCM_EXPANSION_MODEL, OpenClaw deve fidarsi esplicitamente del plugin per richiedere override del modello del sub-agente.
Per la maggior parte delle configurazioni, openai/gpt-5.4-mini è un punto di partenza migliore di Anthropic Haiku perché è economico, veloce e non dipende dalla quota Anthropic rimanente.
Aggiungi una policy subagent sotto plugins.entries.lossless-claw e inserisci nella 'whitelist' il target provider/model canonico che desideri che il plugin utilizzi:
{
"models": {
"openai/gpt-4.1-mini": {}
},
"plugins": {
"entries": {
"lossless-claw": {
"enabled": true,
"subagent": {
"allowModelOverride": true,
"allowedModels": ["openai/gpt-4.1-mini"]
},
"config": {
"expansionModel": "openai/gpt-4.1-mini"
}
}
}
}
}
subagent.allowModelOverrideè richiesto affinché OpenClaw onori gli overrideprovider/modelper esecuzione richiesti dal plugin.subagent.allowedModelsè opzionale ma raccomandato. Usa"*"solo se intendi fidarti intenzionalmente di qualsiasi modello target.- Il target di espansione scelto deve essere anche disponibile nel normale catalogo modelli di OpenClaw. Se non è già configurato altrove, aggiungilo sotto la mappa
modelsdi primo livello come mostrato sopra. - Se preferisci dividere provider e modello, imposta
config.expansionProvidere usa unconfig.expansionModel'bare'.
Equivalenti di configurazione del plugin:
ignoreSessionPatternsstatelessSessionPatternsskipStatelessSessionstranscriptGcEnablednewSessionRetainDepthsummaryModelsummaryProviderdelegationTimeoutMssummaryTimeoutMs
Le variabili d'ambiente hanno comunque la precedenza sulla configurazione del plugin quando entrambe sono impostate.
Priorità del modello di riassunto
Per la riassunzione di compattazione, lossless-claw risolve il modello in questo ordine:
LCM_SUMMARY_MODEL/LCM_SUMMARY_PROVIDER- Configurazione del plugin
summaryModel/summaryProvider - Modello/provider di compattazione predefinito di OpenClaw
- Suggerimenti di modello/provider di runtime/sessione da OpenClaw
Se summaryModel include già un prefisso di provider come anthropic/claude-sonnet-4-20250514, summaryProvider viene ignorato per quella scelta. Altrimenti, il provider torna all'override corrispondente, quindi OPENCLAW_PROVIDER, quindi il provider inferito dal chiamante.
Le chiamate di riassunto vengono inviate tramite lo strato LLM di runtime di OpenClaw, quindi i profili di autenticazione, il refresh OAuth, le chiavi API, gli URL base e la preparazione delle richieste specifiche del provider rimangono di proprietà dell'host. Esegui openclaw doctor --fix dopo aver aggiunto override espliciti del modello di riassunto se vuoi che OpenClaw aggiunga la policy plugins.entries.lossless-claw.llm corrispondente.
Configurazione iniziale raccomandata
LCM_FRESH_TAIL_COUNT=64
LCM_LEAF_CHUNK_TOKENS=2000
Attività commit · ultime 26 settimane
stimaApprofondimenti AI
Chiedi al repo
AI · contesto README + issueFai una domanda sul progetto. L'AI legge README e issue recenti.
Hai bisogno di un server per far girare Martian-Engineering/lossless-claw?
Abbiamo testato decine di provider e Hostinger VPS è il miglior rapporto qualità/prezzo per self-hostare le repo che trovi qui. Setup in 1 click, pannello semplice e supporto 24/7.
Integra Martian-Engineering/lossless-claw in un progetto Lovable
Questa repo è compatibile con lo stack di Lovable. Importala in un nuovo progetto o aggiungila a uno esistente: Lovable si occupa di setup, deploy, backend e auth — tu chiedi in linguaggio naturale e l'AI scrive il codice.
Abbiamo rilevato segnali che indicano uno stack supportato da Lovable:
Questo progetto esiste grazie a voi
RepoRadar AI è gratis e senza pubblicità. Le donazioni coprono server, API e modelli AI.
Ogni analisi tradotta che leggi costa qualche centesimo di chiamate al modello. Se RepoRadar ti ha fatto risparmiare tempo, considera una piccola donazione cripto — anche pochi euro aiutano a mantenere il servizio libero per tutti.
0x86ECDF546d8dFc0739d44c066A6110F11cdB7773bc1qqe0wcmhnt78enk8ql0lxvey4z8hquxsxjtyz8rEtTK61Lz7kfdDM8543TMMiAUUTbFVpzX5tvPEcBtZ3ajGrazie di cuore — ogni contributo conta.