Martian-Engineering
Martian-Engineering

lossless-claw

Lossless Claw — LCM (Lossless Context Management) plugin for OpenClaw

443fork
4.9kwatcher
223issue
TypeScript

Analisi AI · Italiano

openai · gpt-4o-mini

Sintesi

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

Archivio di Conversazioni Intelligenti

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.

AI Assistant per la Conoscenza Aziendale

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.

Ottimizzatore di Contesto per LLM

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.

Target utenti
Sviluppatori di applicazioni basate su intelligenza artificiale, ingegneri ML, aziende che implementano chatbot complessi o assistenti AI che richiedono una gestione del contesto a lungo termine e una memoria 'senza perdite', e utenti della piattaforma OpenClaw.
Categoria
TypeScript, Node.js, SQLite
Monetizzazione
Il modello di monetizzazione potrebbe includere licenze Enterprise per integrazioni su larga scala del plugin Lossless Claw in OpenClaw, o un modello 'pay-as-you-go' per una versione SaaS che offre la gestione del contesto come servizio (utilizzando anche crediti/costi per i modelli LLM di riassunto), con piani premium per funzionalità avanzate (ad es. analisi del contesto, integrazione multi-tenant, supporto prioritario).
Licenza
MIT License
Trend: La gestione efficiente e lossless del contesto è una delle sfide più impellenti nell'adozione su larga scala degli LLM in applicazioni complesse e di lunga durata.

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:

  1. Persiste ogni messaggio in un database SQLite, organizzato per conversazione.
  2. Riassume i blocchi di messaggi più vecchi in sintesi utilizzando il tuo LLM configurato.
  3. Condensa i riassunti in nodi di livello superiore man mano che si accumulano, formando un DAG (grafo aciclico diretto).
  4. Assembla il contesto ad ogni turno combinando riassunti + messaggi recenti non elaborati.
  5. 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:

ComandoDescrizione
/lcmMostra versione, stato di abilitazione/selezione, percorso e dimensione DB, conteggi riassunti e stato di 'salute' dei riassunti.
/lcm backupCrea un backup con timestamp del database SQLite LCM corrente.
/lcm rotateRiscrive 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 doctorScansiona alla ricerca di riassunti rotti o troncati.
/lcm doctor cleanMostra diagnostiche di 'spazzatura' ad alta confidenza in sola lettura per subagenti archiviati, sessioni cron e esecuzioni di subagenti orfani con chiave NULL.
/lcm statusMostra lo stato del plugin, della conversazione e della manutenzione, incluso il debito di compattazione differito.
/losslessUn 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 lcm
  • openclaw lossless
  • openclaw /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 plugin lossless-claw più tutti gli altri plugin attivi su cui fai affidamento. Non aggiungere token di comando o alias come lossless o /lcm a plugins.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 se lossless-claw stesso è 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

VariabilePredefinitoDescrizione
LCM_ENABLEDtrueAbilita/disabilita il plugin
LCM_DATABASE_PATH~/.openclaw/lcm.dbPercorso 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_SESSIONStrueAbilita il salto di scrittura di sessioni stateless per le chiavi di sessione corrispondenti
LCM_CONTEXT_THRESHOLD0.75Frazione della finestra di contesto che innesca la compattazione (0.0-1.0)
LCM_FRESH_TAIL_COUNT64Numero di messaggi recenti protetti dalla compattazione
LCM_NEW_SESSION_RETAIN_DEPTH2Contesto mantenuto dopo /new (-1 mantiene tutto il contesto, 2 mantiene d2+)
LCM_LEAF_MIN_FANOUT8Messaggi grezzi minimi per riassunto foglia
LCM_CONDENSED_MIN_FANOUT4Riassunti minimi per nodo condensato
LCM_CONDENSED_MIN_FANOUT_HARD2Fanout rilassato per sweep di compattazione forzati
LCM_INCREMENTAL_MAX_DEPTH1Quanto profonda è la compattazione incrementale (0 = solo foglia, 1 = un passeggio condensato, -1 = illimitato)
LCM_LEAF_CHUNK_TOKENS20000Token sorgente massimi per blocco di compattazione foglia
LCM_LEAF_TARGET_TOKENS1200Conteggio token target per riassunti foglia
LCM_CONDENSED_TARGET_TOKENS2000Conteggio token target per riassunti condensati
LCM_MAX_EXPAND_TOKENS4000Capienza token per query di espansione sub-agente
LCM_LARGE_FILE_TOKEN_THRESHOLD25000Blocchi 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_MS120000Tempo massimo di attesa per il completamento del sub-agente lcm_expand_query delegato
LCM_SUMMARY_TIMEOUT_MS60000Tempo massimo di attesa per una singola chiamata del riassuntore LCM basato su modello
LCM_PRUNE_HEARTBEAT_OKfalseElimina retroattivamente i cicli di turno HEARTBEAT_OK dalla memorizzazione LCM
LCM_TRANSCRIPT_GC_ENABLEDfalseAbilita la GC di riscrittura della trascrizione durante maintain()
LCM_PROACTIVE_THRESHOLD_COMPACTION_MODEdeferredSceglie se la compattazione proattiva della soglia viene differita in debito di manutenzione o mantenuta in linea per il comportamento legacy
LCM_CACHE_TTL_SECONDS300TTL 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 override provider/model per 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 models di primo livello come mostrato sopra.
  • Se preferisci dividere provider e modello, imposta config.expansionProvider e usa un config.expansionModel 'bare'.

Equivalenti di configurazione del plugin:

  • ignoreSessionPatterns
  • statelessSessionPatterns
  • skipStatelessSessions
  • transcriptGcEnabled
  • newSessionRetainDepth
  • summaryModel
  • summaryProvider
  • delegationTimeoutMs
  • summaryTimeoutMs

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:

  1. LCM_SUMMARY_MODEL / LCM_SUMMARY_PROVIDER
  2. Configurazione del plugin summaryModel / summaryProvider
  3. Modello/provider di compattazione predefinito di OpenClaw
  4. 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

stima

Approfondimenti AI

L'AI sta preparando gli approfondimenti…

Chiedi al repo

AI · contesto README + issue

Fai una domanda sul progetto. L'AI legge README e issue recenti.

Sponsor · Sconto esclusivo RepoRadar AI

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.

Deploy in 1 click
2 vCPU · 8 GB RAM · NVMe
Backup + DDoS inclusi
Attiva sconto Hostinger VPSLink affiliato — supporti RepoRadar senza costi extra per te.
Compatibile con Lovable · Invito esclusivo

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.

Setup zero-config
Backend + Auth inclusi
Deploy con 1 click
Motivo compatibilità

Abbiamo rilevato segnali che indicano uno stack supportato da Lovable:

langTypeScript
Registrati gratis su LovableLink invito — bonus crediti per chi si registra da RepoRadar.

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.

Ethereum
ETH
0x86ECDF546d8dFc0739d44c066A6110F11cdB7773
Bitcoin
BTC
bc1qqe0wcmhnt78enk8ql0lxvey4z8hquxsxjtyz8r
Solana
SOL
EtTK61Lz7kfdDM8543TMMiAUUTbFVpzX5tvPEcBtZ3aj

Grazie di cuore — ogni contributo conta.