I ricercatori di Tsinghua hanno pubblicato su GitHub AKV, un sistema open source per la gestione della cache degli agenti LLM. Anziché accorciare o riassumere la conversazione di un agente quando diventa troppo lunga, AKV permette di eliminare alcune informazioni archiviate e di riposizionare quelle rimanenti. Il progetto si basa su SGLang, un software per eseguire modelli linguistici, e comprende sia un componente che sceglie le operazioni sulla cache sia un sistema di serving che le esegue.
La distinzione è importante perché la cronologia di un agente può includere numerose osservazioni, chiamate agli strumenti e relativi risultati. Mantenere tutto questo nel contesto attivo del modello richiede memoria e capacità di elaborazione. Tuttavia, modificare i messaggi precedenti può costringere il sistema a ricalcolare il contesto successivo, un passaggio chiamato «re-prefilling». Secondo il paper di AKV, questa operazione può essere costosa, mentre eliminare troppa cronologia può compromettere l’accuratezza nelle attività. AKV lascia invece intatta la cronologia della conversazione e modifica le parti della cache key-value a cui il modello presta attenzione.
Come funziona AKV?
AKV mette a disposizione degli agenti due operazioni sulla cache. «Drop» esclude determinate informazioni dall’attenzione futura, mentre «reposition» compatta le posizioni delle informazioni mantenute. Nell’esempio del progetto, si conserva il risultato più recente di uno strumento, si elimina quello precedente dopo l’arrivo del nuovo e poi si riposiziona la cache rimanente. I messaggi originali restano nella richiesta; è il server AKV ad applicare le istruzioni sulla cache. Secondo il paper, in questo modo si evita di ripetere il re-prefilling del contesto mantenuto.
Il sistema deve anche tenere conto delle modifiche apportate alla cache. Il paper osserva che la stessa sequenza di token di una conversazione può produrre stati della cache diversi se l’agente ha eseguito operazioni differenti. Di conseguenza, un server non può riutilizzare in sicurezza le informazioni memorizzate basandosi soltanto sulla corrispondenza del prefisso della conversazione. AKV combina una policy lato agente con un server basato su SGLang che gestisce il riutilizzo, l’eliminazione e il ripristino della cache. Il progetto afferma che il server usa un’interfaccia stateless compatibile con le API di serving esistenti, gestendo internamente lo stato della cache.
Cosa mostrano i test?
Negli esperimenti degli autori, una policy di eliminazione progressiva delle risposte degli strumenti ha aumentato di 1.7 punti i punteggi medi dei benchmark e ridotto del 27.7% il costo medio rispetto alla sintesi attivata al superamento di una soglia. Il paper riporta inoltre fino a 1.2 volte il throughput in output e un’accelerazione di 1.5 volte della latenza delle richieste al 95° percentile. Un metodo separato per migliorare le policy della cache ha ridotto ricorsivamente i costi del 7.1% rispetto a policy progettate da esperti. Si tratta di risultati riportati dagli autori del paper; i materiali forniti non indicano verifiche indipendenti.
Le istruzioni su GitHub descrivono l’installazione di AKV con Rust, Cargo e Python 3.12. L’esempio introduttivo esegue GPT-OSS-120B tramite AKV e invia richieste nel formato chat-completions compatibile con OpenAI. Il progetto spiega anche come integrare la propria policy in un harness per agenti esistente, elaborando le richieste prima di inviarle al server. I risultati riportati riguardano quattro benchmark per agenti, ma i materiali forniti non specificano quali siano né offrono dettagli sufficienti per valutare come i risparmi si applicherebbero ad altri modelli o carichi di lavoro.
Perché conta
Per i team che sviluppano agenti che richiamano ripetutamente strumenti, AKV offre un modo per eliminare i vecchi risultati senza riscrivere la cronologia della conversazione. Nei test, gli autori hanno registrato costi inferiori, ma i risparmi effettivi dipenderanno dal modello e dal carico di lavoro di ciascun team.