β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—     β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— 
β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•    β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β• 
β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—      β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•      β•šβ•β•β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•  β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β•šβ•β•β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘
β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•
 β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•    β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β•  β•šβ•β•β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β•β•šβ•β•  β•šβ•β•β•β• β•šβ•β•β•β•β•β• 
                    
Agente di Sviluppo Autonom β–ˆ

Agente di sviluppo software autonomo con memoria persistente,

apprendimento per rinforzo e consultazione preventiva delle lezioni apprese.

15 Memory Rooms
7 RL Dimensions
13 Safe Actions
4 Memory Levels

╔══ CONTEXT ENGINE ══╗

PerchΓ© pagare per token inutili? Compressione, indicizzazione e architettura dual-LLM per ridurre i costi di ordini di grandezza

β”Œβ”€ Il Problema degli Altri Agenti ─┐

❌ L'Approccio Tradizionale

Metodo: Invia tutto il contesto ad ogni chiamata
Risultato: Migliaia di token ridondanti per task semplici
Costo: Proporzionale alla storia, non al task
Scala: Impossibile β€” piΓΉ conversi, piΓΉ paghi

βœ… L'Approccio CodePalace

Metodo: Indicizza in memoria, recupera solo il rilevante
Risultato: Contesto minimizzato: solo ciΓ² che serve al task
Costo: Proporzionale alla complessitΓ  del task
Scala: La memoria cresce, i costi no

β”Œβ”€ Dual-LLM Architecture ─┐

🧠 LLM 1 β€” Dispatcher (Classificazione)

Ruolo: Classificazione & Retrieval dalla Memoria
Task: Analizza richiesta, recupera contesto rilevante, classifica tipo
Output: Contesto compresso + routing al Tier 2
Costo: Quasi zero β€” modello leggero, anche locale
Esecuzione: 100% Locale β€” zero dati al cloud

⚑ LLM 2 β€” Executor (Planning & Coding)

Ruolo: Planning & Code Generation
Input: Solo contesto essenziale filtrato dal Dispatcher
Task: Implementazione codice, modifica file, test
Costo: Ottimizzato β€” paga solo per i token necessari
Esecuzione: Cloud solo quando serve, fallback locale disponibile

β”Œβ”€ Context Compression Pipeline ─┐

1

Indexed Memory

Le esperienze sono indicizzate per scope e similaritΓ , non linearmente

2

Smart Retrieval

Il Dispatcher recupera solo le memorie rilevanti al task corrente

3

Dedup & Compress

Rimozione duplicati, deduplicazione contesto, compressione semantica

4

Minimized Prompt

L'Executor riceve solo il contesto essenziale β€” zero spreco

β”Œβ”€ PerchΓ© Costi Meno ─┐

πŸ“‰

Costi Frazionati

Il classificatore locale costa frazioni di centesimo. Solo l'Executor usa il modello costoso β€” e solo quando necessario

$0.00 classificazione β†’ $solo coding β†’ risparmio enorme
🏠

Funziona in Locale

Il Dispatcher gira sul tuo hardware con modelli leggeri. Nessun dato sensibile lascia la tua macchina per la classificazione

locale β†’ classificazione β†’ cloud (solo per coding)
πŸ”’

Privacy by Architecture

La separazione dei due LLM Γ¨ architetturale, non opzionale. Classificazione e retrieval restano sempre in locale

dati sensibili β†’ mai nel cloud di classificazione
⚑

Zero Wastage

Task informativi risolti dal Dispatcher senza attivare l'Executor. Niente chiamate costose per task banali

task info β†’ Dispatcher β†’ risposta diretta (no LLM costoso)

╔══ MEMPALACE ══╗

Sistema di memoria persistente strutturato in livelli

β”Œβ”€ Architettura Memoria ─┐

L4 Consolidated Insights Conoscenza derivata e generalizzata
L3 Knowledge Graph Relazioni semantiche tra concetti
L2 Memory Stack Contesto attivo e working memory
L1 Raw Storage Dati grezzi e esperienze dirette

β”Œβ”€ Memory Rooms ─┐

PROJECT successful_strategies

Strategie che hanno portato a successo nei task completati

wing: project type: experience
PROJECT error_patterns

Pattern di errore ricorrenti e soluzioni trovate

wing: project type: experience
PROJECT project_context

Contesto del progetto: linguaggio, framework, struttura

wing: project type: context
USER user_preferences

Preferenze dell'utente apprese dalle interazioni

wing: user type: preference
USER conversations

Cronologia delle conversazioni e contesto comunicativo

wing: user type: conversation
GLOBAL consolidated_insights

Insight generalizzati estratti dal BackgroundConsolidator

wing: global type: insight
GLOBAL reward_signals

Segnali di reward ricevuti e lezioni di valore

wing: global type: reward
PROJECT task_history

Cronologia dei task completati con esito e reward

wing: project type: history
GLOBAL code_patterns

Pattern di codice riusciti e anti-pattern identificati

wing: global type: pattern
PROJECT debugging_patterns

Strategie di debugging efficaci per tipo di errore

wing: project type: pattern
USER user_facts

Fatti sull'utente: stile, preferenze, contesto lavorativo

wing: user type: fact
GLOBAL hall_discoveries

Scoperte emergenti dal consolidamento semantico

wing: global type: discovery

β”Œβ”€ Memory Stack ─┐

L4 β€” Consolidated
insight: "Preferire read_file prima di edit per file grandi" insight: "Mock consultation per test isolati"
L3 β€” Knowledge Graph
node(error_patterns) β†’ edge(APPLIES_TO) β†’ node(edit_file) node(successful_strategies) β†’ edge(LEADS_TO) β†’ node(high_reward)
L2 β€” Working Memory
context: task=info, phase=analysis, reward=2.20 recent: 8 steps, last_action=respond
L1 β€” Raw Storage
experience: "File grande β†’ usare block=N per leggere" experience: "edit_file richiede old_string preciso"
Project Scope β€” Dati specifici del progetto corrente
User Scope β€” Preferenze e fatti dell'utente
Global Scope β€” Conoscenza trasferibile tra progetti

╔══ REINFORCEMENT LEARNING ══╗

Ciclo di apprendimento per rinforzo con consultazione preventiva

01

Task Ricevuto

L'utente invia un task. L'agente classifica il tipo (Info/Action/Hybrid/Direct)

β–Έ
02

Pre-Action Check

LessonConsultant verifica pattern di errore passati e calcola rischio

β–Έ
03

Azione Eseguita

L'agente esegue l'azione (eventualmente modificata dal check)

β–Έ
04

Reward Calcolato

RewardFunction calcola score su 7 dimensioni

β–Έ
05

Memoria Aggiornata

L'esito viene memorizzato nelle rooms appropriate

↻

β”Œβ”€ Reward Dimensions ─┐

βœ“

Correctness

Il task Γ¨ stato completato correttamente?

β†’

Progression

Il task avanza verso la soluzione?

β—†

Quality

La qualitΓ  del codice prodotto Γ¨ alta?

⚑

Efficiency

Il task Γ¨ stato risolto con pochi passi?

πŸ”—

Coherence

Le azioni sono coerenti tra loro?

πŸ”

Exploration

L'agente esplora prima di agire?

β—Ž

Convergence

Il task converge verso la soluzione?

β”Œβ”€ Lesson Consultant ─┐

Scoring Formula

score = 0.4 Γ— relevance + 0.3 Γ— recency + 0.3 Γ— success

Pesi phase-aware: exploration privilegia recency, implementation privilegia relevance

Decision Points

code_generation strategy_selection error_handling file_operation test_execution dependency_management refactoring

Consultation Result

has_lessons: true
confidence: 0.82
top_recommendation: "Usare read_file con block=N per file grandi"
lessons_count: 3

β”Œβ”€ Background Consolidator ─┐

πŸ“₯

Esperienze

successful_strategies + error_patterns

β†’
🧠

LLM Analysis

Estrazione insight generalizzati

β†’
πŸ’Ύ

Consolidated

Salvataggio in consolidated_insights

120s Intervallo
3 Tipi di consolidamento
daemon Thread mode

╔══ PROJECT MANAGER ══╗

Gestione progetti con auto-detection e multi-phase workflow

β”Œβ”€ Project Context ─┐

Auto-Detection

Linguaggio: Python 3.11
Framework: pytest
Test cmd: python3.11 -m pytest
Lint cmd: ruff check
Structure: src/ + tests/

CodeEnv β€” 13 Safe Actions

read_file write_file edit_file list_dir search_code run_command install_dep create_dir delete_file git_action ast_analyze file_exists respond

β”Œβ”€ Multi-Phase Workflow ─┐

1

Analysis

Esplorazione del task e raccolta informazioni

2

Planning

Pianificazione dell'approccio e degli step

3

Implementation Core

Implementazione della logica principale

4

Interactivity

Aggiunta interattivitΓ  e dinamismo

5

Assets

Risorse statiche e media

6

Verification

Test e validazione del codice

7

Consolidation

Documentazione e consolidamento

β”Œβ”€ Task Classification ─┐

ℹ️

Informational

Task informativi: spiegazioni, analisi, descrizioni

read β†’ respond
βš™οΈ

Action

Task di coding: creare, modificare, correggere

explore β†’ implement β†’ verify
πŸ”„

Hybrid

Misto: informazioni + implementazione

analyze β†’ implement β†’ explain
⚑

Direct

Azione immediata senza esplorazione

execute β†’ respond

╔══ CHAT INTERFACE ══╗

Interfaccia conversazionale con contesto memoria

Diego 14:32
Implementa il sistema di memoria persistente con feedback loop
CodePalace 14:32 MEM RL
β–Έ Consultazione MemPalace: 3 lezioni trovate (confidenza: 0.82)
β–Έ Lezione rilevante: "Preferire read_file con block=N per file grandi"
β–Έ Fase: analysis β†’ planning β†’ implementation

Perfetto! Analizzo il codice esistente e implemento il sistema di memoria persistente con feedback loop.

Il sistema includerΓ :

  • MemPalaceMemory con 15 rooms organizzate per scope
  • LessonConsultant per consultazione preventiva
  • RewardFunction con 7 dimensioni
  • BackgroundConsolidator per insight automatici
SYSTEM 14:33
ACTION read_file codepalace.py (lines 1-200)
ACTION search_code MEMPALACE_ROOMS
REWARD +1.60 progression
MEMORY stored in task_history
codepalace@agent:~$

╔══ USER PROFILES ══╗

Profili utente con preferenze apprese e contesto persistente

D

Diego

Sviluppatore β€” Creatore di CodePalace

47 Task completati
2.15 Reward medio
89% Success rate
Preferenze Apprese
Stile codice: Clean, ben documentato, type hints
Approccio: Metodico, esplora prima di implementare
Linguaggio: Italiano per spiegazioni, inglese per codice
Test: pytest con mock per isolamento
πŸ€–

CodePalace Agent

Agente Autonomo β€” Assistente di coding

∞ Memoria persistente
7 Dimensioni reward
15+ Memory rooms
CapacitΓ 
Memoria: 4 livelli (L1-L4) con scope separati
Apprendimento: RL con consultazione preventiva
Consolidamento: Background thread per insight automatici
Azioni sicure: 13 azioni sandboxed in CodeEnv

β”Œβ”€ Consolidated Insights ─┐

L4

Per file grandi (>200 linee), usare read_file con block=N per leggere blocchi specifici, poi edit_file con old_string preciso.

Fonte: 5 successi, 2 errori ValiditΓ : file > 200 linee
L4

Per task informativi, usare solo azioni di lettura e respond. Non modificare file.

Fonte: 3 successi, 1 errore ValiditΓ : task type = informational
L4

Il mocking del consultation step Γ¨ essenziale per testare la logica decisionale in isolamento.

Fonte: 2 successi ValiditΓ : unit test di LessonConsultant

╔══ CODE EDITOR ══╗

Simulazione dell'ambiente di coding con syntax highlighting

12345 678910 1112131415 1617181920 2122232425
class MemPalaceMemory:
    """Sistema di memoria persistente con 4 livelli."""

    MEMPALACE_ROOMS = {
        "successful_strategies": {"wing": "project", "type": "experience"},
        "error_patterns":       {"wing": "project", "type": "experience"},
        "consolidated_insights": {"wing": "global",  "type": "insight"},
        "user_preferences":    {"wing": "user",    "type": "preference"},
    }

    def recall_room(self, room: str, limit: int = 10):
        """Recupera elementi da una room specifica."""
        return self._query(
            room=room,
            limit=limit,
            sort_by="timestamp"
        )

    def _add_drawer(self, text: str, room: str, metadata: dict):
        """Aggiunge un elemento a una room."""
        self._store(
            text=text,
            room=room,
            metadata=metadata
        )
[14:32:01] READ codepalace.py:1654-1850
[14:32:03] SEARCH MEMPALACE_ROOMS β†’ 6 matches
[14:32:05] RECALL room=error_patterns β†’ 3 lessons
[14:32:07] WRITE website/index.html
[14:32:08] REWARD +1.60 progression

▍ Pacchetti

Scegli il piano ideale per il tuo flusso di sviluppo

Mensile Annuale RISPARMIA 10%
ScriptKiddie Trial 7 Giorni
€0 / 7 giorni
  • βœ“ 1 progetto attivo
  • βœ“ Test ambiente locale
  • βœ“ Memoria persistente base
  • βœ“ Chat con agente
  • βœ— API esterne
  • βœ— Deploy automatico
Inizia Trial
WhiteHat Side-Project
€9 / mese
€9 €8,10 / mese
€97,20/anno
Risparmi €10,80/anno
Prezzi esclusi IVA
  • βœ“ 1 progetto attivo
  • βœ“ Uso commerciale
  • βœ“ Memoria persistente
  • βœ“ Chat avanzata
  • βœ“ Editor completo
  • βœ— API esterne
Scegli WhiteHat
BlackHat Power User
€99 / mese
€99 €89,10 / mese
€1.069,20/anno
Risparmi €118,80/anno
Prezzi esclusi IVA
  • βœ“ 20 progetti attivi
  • βœ“ Automazione avanzata
  • βœ“ Memoria illimitata
  • βœ“ API esterne (GitHub, Jira)
  • βœ“ Deploy multi-env
  • βœ“ Supporto prioritario
Scegli BlackHat
Root Enterprise
€499 / mese
€499 €449,10 / mese
€5.389,20/anno
Risparmi €598,80/anno
Prezzi esclusi IVA
  • βœ“ 100 progetti
  • βœ“ Software House / Agenzie
  • βœ“ Team multi-utente
  • βœ“ Tutte le API esterne
  • βœ“ Deploy illimitato
  • βœ“ Supporto dedicato 24/7
  • βœ“ Custom rules & SLA
Scegli Root

▍ Come Attivare la Tua Licenza

1

Registrati su CodePalace

Crea il tuo account gratuito con 14 giorni di prova.

2

Effettua il login alla dashboard

Accedi al tuo pannello di controllo personale.

3

Scegli un piano nella sezione Pricing

Seleziona il piano piΓΉ adatto alle tue esigenze.

4

Completa il pagamento su Stripe

Pagamento sicuro e protetto con crittografia.

5

La licenza viene attivata automaticamente

Nessuna azione richiesta β€” il sistema attiva la licenza in tempo reale.

6

Verifica la licenza nella dashboard

Controlla lo stato della tua licenza e le date di scadenza.