Torna agli aggiornamenti
New releaseJul 23, 2026

LangAlpha v2026.07.22

Framework OSINT automatizzato per ricognizione, raccolta dati e raccolta di intelligence sulle minacce con crawler modulari, scanner e pipeline di estrazione.

Condividi

LangAlpha
Un framework per agenti di investimento 'vibe'
LangAlpha è progettato per aiutare a interpretare i mercati finanziari e supportare le decisioni di investimento.

Python 3.12+ LangChain License

Inglese简体中文日本語

Per iniziareDocumentazione APIAgent CoreBackendWebTUISkillsMCP

Fissa un riepilogo di notizie curato dalla dashboard, avvia la generazione di idee e invia subagenti paralleli per analizzare il mercato — poi ottieni cinque idee di coppie lunghe/corte in una dashboard interattiva inline, calibrata sul tuo portafoglio.

Perché LangAlpha

Ogni strumento finanziario AI oggi tratta gli investimenti come un processo una tantum: fai una domanda, ottieni una risposta e vai avanti. Ma gli investimenti reali sono bayesiani — inizi con una tesi, nuovi dati arrivano ogni giorno e aggiorni la tua convinzione di conseguenza. È un processo iterativo che si svolge nell'arco di settimane e mesi: affinare le tesi, rivedere le posizioni, sovrapporre nuove analisi a quelle vecchie. Nessun singolo prompt lo cattura.

Dal vibe coding al vibe investing

Ispirato dall'ingegneria del software: una codebase persiste e ogni commit si basa su ciò che è venuto prima. I framework per agenti di codice come Claude Code e OpenCode hanno avuto successo costruendo agenti che abbracciano questo schema, esplorando il contesto esistente e basandosi sul lavoro precedente. LangAlpha porta la stessa intuizione: dai all'agente uno spazio di lavoro persistente e la ricerca si accumula naturalmente.

In pratica, crei uno spazio di lavoro per obiettivo di ricerca ("ribilanciamento Q2", "approfondimento sulla domanda di data center", "rotazione del settore energetico"). L'agente ti intervista sui tuoi obiettivi e stile, produce il suo primo risultato e salva tutto nel filesystem dello spazio di lavoro. Torna domani e i tuoi file, discussioni e ricerche accumulate sono ancora lì.

Caratteristiche principali

  • Scoperta progressiva degli strumenti — Qualsiasi strumento MCP caricato come riepilogo nel contesto e documentazione completa inserita nello spazio di lavoro, consentendo all'agente di scoprire e utilizzare gli strumenti veramente su richiesta. Supporta anche il binding di strumenti JSON con competenze e li espone all'agente solo quando la competenza è attivata.
  • Chiamata programmatica degli strumenti (PTC) — L'agente scrive ed esegue Python per elaborare dati finanziari da server MCP invece di riversare dati grezzi nella finestra di contesto LLM, consentendo analisi complesse in più fasi riducendo drasticamente lo spreco di token.
  • Ecosistema di dati finanziari — Gerarchia di provider a più livelli con strumenti nativi per ricerche rapide e server MCP per elaborazione dati in blocco, creazione di grafici e analisi pluriennali in sandbox.
  • Spazi di lavoro persistenti — Ogni spazio di lavoro corrisponde a una sandbox dedicata con directory strutturate e un file di note dello spazio di lavoro (agent.md) che accumula la ricerca attraverso sessioni e thread. Un archivio di memoria a lungo termine separato (.agents/user/memory/, .agents/workspace/memory/) conserva preferenze utente durevoli e conoscenze tra sandbox, e un archivio memo gestito dall'utente (.agents/user/memo/) ti consente di caricare PDF e note di ricerca in markdown che l'agente può leggere su richiesta.
  • Competenze per la ricerca finanziaria — Flussi di lavoro predefiniti per modelli DCF, report di copertura iniziale, analisi degli utili, note mattutine, generazione di documenti e altro — attivabili tramite comando slash o rilevamento automatico.
  • Banco di lavoro per la ricerca finanziaria — Interfaccia web con grafici finanziari inline, visualizzatore di file multi-formato, grafici TradingView, dati di mercato WebSocket in tempo reale, annotazioni grafiche disegnate dall'agente, pannello di provenienza delle fonti per ogni turno, conversazioni condivisibili e monitoraggio dei subagenti.
  • Layer modello multi-provider — Astrazione LLM indipendente dal provider e failover automatico in caso di errore.
  • Automazioni — Pianifica attività ricorrenti o una tantum, o imposta automazioni attivate da prezzo che si attivano quando un titolo o un indice raggiunge una condizione di prezzo in tempo reale.
  • Segretario — L'agente Flash funge anche da segretario: crea e gestisci spazi di lavoro, invia analisi PTC approfondite in background, monitora le attività in esecuzione e recupera i risultati — tutto attraverso comandi conversazionali con approvazione umana nel ciclo.
  • Sciame di agenti — Subagenti asincroni paralleli con finestre di contesto isolate, set di strumenti/competenze precaricati, guida durante l'esecuzione, ripresa basata su checkpoint e monitoraggio dei progressi in tempo reale nell'interfaccia.
  • Guida dal vivo — Invia messaggi di follow-up mentre l'agente/subagente sta lavorando per correggere la rotta, chiarire o reindirizzare senza aspettare che finisca.
  • Stack middleware — uno stack middleware profondo e componibile che gestisce il caricamento delle competenze, la modalità piano, l'input multimodale, la compattazione automatica e la gestione del contesto per supportare sessioni di agenti di lunga durata.
  • Sicurezza e vault dello spazio di lavoro — Crittografia a riposo tramite pgcrypto, rilevamento e oscuramento automatico delle perdite di credenziali, esecuzione in sandbox e archiviazione segreta per spazio di lavoro per un accesso sicuro dell'agente
  • Integrazioni canali — Usa LangAlpha da Slack, Discord, Feishu e Telegram, oltre alla consegna via email per i risultati pianificati.
  • Infrastruttura pronta per la produzione — Attività dell'agente in streaming SSE con replay di riconnessione bufferizzato da Redis, esecuzione in background disaccoppiata dalle connessioni HTTP e persistenza dello stato basata su PostgreSQL.

Cosa lo alimenta

Architettura del sistema```mermaid %%{init: {'theme': 'neutral'}}%%

flowchart TB Web["Web UI
React 19 · Vite · Tailwind"] -- "REST · SSE" --> API Web -- "WebSocket" --> WSP CLI["CLI / TUI"] -- "REST · SSE" --> API

subgraph Server ["FastAPI Backend"]
    API["API Routers<br/>Threads · Workspaces · Market Data<br/>OAuth · Automations · Skills"]
    WSP["WebSocket Proxy"]
    API --> ChatHandler["Chat Handler<br/>LLM Resolution · Workflow Dispatch"]
    ChatHandler --> BTM["Background Task Manager<br/>Decoupled Execution · Workflow Lifecycle"]
end

subgraph PostgreSQL ["PostgreSQL — Dual Pool"]
    AppPool[("App Data<br/>Users · Workspaces · Threads<br/>Turns · BYOK Keys · Automations")]
    CheckPool[("LangGraph Checkpointer<br/>Agent State · Checkpoints")]
end

subgraph Redis ["Redis"]
    EventBuf[("SSE Event Buffer<br/>150K events · Reconnect Replay")]
    DataCache[("API Cache<br/>Market Data · SWR")]
    Steering[("Steering Queue<br/>User Messages Mid-workflow")]
end

BTM --> AppPool
BTM --> CheckPool
BTM --> EventBuf
BTM --> Steering
API --> DataCache

BTM -. "Sandbox API" .-> Daytona["Daytona<br/>Cloud Sandboxes"]
API -. "REST" .-> FinAPIs["Financial APIs<br/>FMP · SEC EDGAR"]
WSP -. "WebSocket" .-> GData["ginlix-data<br/>Polygon.io · Massive"]
### Livello del Modello Multi-Provider

LangAlpha opera su un layer del modello indipendente dal provider che astrae diversi backend LLM. Lo stesso stack middleware, gli stessi strumenti e flussi di lavoro funzionano indipendentemente dal modello che li guida. Viene fornito con due modalità:

- **Modalità PTC** per ricerche di investimento profonde e multi-step. Un ragionamento potente guida analisi multi-step in cui l'agente pianifica il suo approccio, elabora dati finanziari e scrive codice per analisi complesse. Il contesto lungo permette di incrociare documenti SEC e report di ricerca in un unico passaggio.
- **Modalità Flash** per risposte conversazionali rapide e orchestrazione del workspace: consultazioni rapide di mercato, chart-e-chat in MarketView, domande e risposte leggere, e un segretario che gestisce i workspace, invia analisi PTC approfondite in background e riporta i risultati attraverso conversazioni naturali.

**Porta il tuo modello** — Utilizza le tue sottoscrizioni AI e chiavi API esistenti direttamente. Collega abbonamenti ChatGPT o Claude tramite OAuth (OpenAI Codex OAuth, Claude Code OAuth), usa piani di codifica da Kimi (Moonshot), GLM (Zhipu), MiniMax o Doubao (Volcengine), o fornisci le tue chiavi API per qualsiasi provider supportato tramite BYOK. Tutte le chiavi sono crittografate a riposo tramite PostgreSQL pgcrypto (vedi [Sicurezza](#security)).

**Resilienza del modello** — tentativi automatici su errori transitori, poi failover su un modello di fallback configurato. Lo sforzo di ragionamento (`low`/`medium`/`high`) viene normalizzato automaticamente tra i provider.

### Programmatic Tool Calling (PTC) e Architettura del Workspace

La maggior parte degli agenti AI interagisce con i dati attraverso chiamate singole a strumenti JSON che riversano il risultato direttamente nella finestra di contesto. Programmatic Tool Calling capovolge questo approccio: invece di passare dati grezzi attraverso l'LLM, l'agente scrive ed esegue codice all'interno di un cloud sandbox [Daytona](https://www.daytona.io/) che elabora i dati localmente e restituisce solo il risultato finale. Ciò riduce drasticamente lo spreco di token, consentendo al contempo analisi che altrimenti supererebbero i limiti di contesto.

**Flusso di Esecuzione PTC**```mermaid
%%{init: {'theme': 'neutral'}}%%

flowchart LR
    LLM["LLM"] -- "1 — Writes Python" --> EC["ExecuteCode Tool"]
    EC -- "2 — Sends to sandbox" --> Run["Code Runner"]

    subgraph Sandbox ["Daytona Cloud Sandbox"]
        Run -- "3 — import tools.*" --> Wrappers["Generated Wrappers<br/>One module per MCP server"]
        Wrappers -- "4 — JSON-RPC stdio" --> MCP["MCP Servers<br/>Subprocesses in sandbox"]
    end

    MCP -- "5 — REST / WS" --> APIs["Financial APIs<br/>FMP · Yahoo · Polygon"]
    APIs -- "6 — Data" --> MCP
    Run -- "7 — stdout · charts · files" --> EC
    EC -- "8 — Result" --> LLM

Inoltre, l'ambiente workspace consente la persistenza oltre una singola sessione. Ogni sandbox ha una struttura di directory organizzata — work/<task>/ per aree di lavoro per attività (dati, grafici, codice), results/ per report finalizzati e data/ per dataset condivisi — in modo che i risultati intermedi sopravvivano tra sessioni. Alla radice si trova agent.md, un file di note del workspace che l'agente mantiene tra i thread: obiettivi del workspace, risultati chiave, un indice dei thread e un indice dei file degli artefatti importanti. Un livello middleware inietta agent.md in ogni chiamata al modello, così l'agente ha sempre il contesto completo del lavoro precedente senza dover rileggere i file. In modo ortogonale, un sistema di memoria a lungo termine basato su archivi (.agents/user/memory/, .agents/workspace/memory/) cattura preferenze utente durevoli e conoscenze cross-sandbox che sopravvivono ai ripristini del workspace, e un archivio memo gestito dall'utente (.agents/user/memo/) contiene i documenti caricati — i PDF vengono estratti dal testo lato server e i metadati vengono generati in modo asincrono da un LLM in modo che l'agente possa trovarli e citarli per argomento. Ogni workspace supporta più thread di conversazione legati a un singolo obiettivo di ricerca.

Workspaces page with research workspace cards

Ogni workspace corrisponde a una sandbox persistente — organizza la ricerca per tema, portafoglio o tesi.

PTC agent generating a Mag 7 + Semiconductors catalyst calendar dashboard

L'agente scrive codice per creare dashboard interattive — qui, un calendario dei catalizzatori per Mag 7 + Semiconduttori.

Ecosistema dei Dati Finanziari

Mentre PTC eccelle in lavori complessi come l'elaborazione dati a più fasi, la modellazione finanziaria e la creazione di grafici, avviare l'esecuzione del codice per ogni ricerca di dati è eccessivo. Abbiamo quindi costruito anche un set di strumenti nativi per dati finanziari che trasforma i dati utilizzati frequentemente in un formato digeribile per un LLM. Questi strumenti sono inoltre dotati di artefatti che vengono renderizzati direttamente nel frontend, fornendo allo strato umano un contesto visivo immediato insieme all'analisi dell'agente.

Strumenti nativi per consultazioni rapide tramite chiamate dirette agli strumenti:

  • Panoramica aziendale con quotazioni in tempo reale, performance del prezzo, metriche finanziarie chiave, consenso degli analisti e ripartizione dei ricavi
  • Documenti SEC (10-K, 10-Q, 8-K) con trascrizioni delle chiamate sugli utili e markdown formattato per citazioni
  • Indici di mercato e performance dei settori per il contesto di mercato generale
  • Ricerca web (Tavily, Serper, Bocha) — selezione del fornitore basata su manifest con profondità a livelli (ricerca rapida a ricerca approfondita), più ricerca per immagini e modalità di ricerca AI, selezionabili per utente — e web crawling con tolleranza ai guasti con interruttore

Server MCP per dati grezzi consumati tramite esecuzione di codice PTC:

  • Dati sui prezzi per serie temporali OHLCV su azioni, materie prime, criptovalute e forex, più analisi degli interessi short e del volume short
  • Fondamentali per bilanci pluriennali, rapporti, metriche di crescita, valutazione, operazioni degli insider, dividendi e frazionamenti, flottante azionario, dirigenti chiave e indicatori tecnici
  • Macro economia per PIL, IPC, disoccupazione, tasso sui Fed funds, curva dei rendimenti dei titoli di Stato (1M–30Y), premi per il rischio paese, calendario economico e calendario degli utili
  • Opzioni per la catena di opzioni con filtri, OHLCV storico per contratti di opzioni e snapshot in tempo reale di bid/ask
  • Suite Yahoo Finance (prezzo, fondamentali, analisi, mercato) per copertura senza chiave di bilanci, rating degli analisti, detentori, screening e calendari
  • X (Twitter) ricerca di post in sola lettura, ricerca di utenti/tweet e recupero di thread per sentiment e monitoraggio eventi, più un server di scraping per pagine renderizzate con JS e protette da anti-bot

L'agente seleziona automaticamente il livello giusto: strumenti nativi per ricerche rapide che si adattano al contesto, strumenti MCP quando l'attività richiede elaborazione di grandi volumi di dati, creazione di grafici o analisi di tendenze pluriennali nella sandbox.

I server MCP sono configurabili per workspace. I server integrati possono essere disabilitati singolarmente, e server HTTP o stdio personalizzati — inclusi quelli che leggono le credenziali dal vault del workspace — possono essere aggiunti tramite API o UI, con effetto in pochi secondi senza riavvio.

Catena di fallback dei fornitori di dati

LangAlpha supporta una gerarchia a tre livelli di fornitori di dati. Ogni livello è opzionale — il sistema si degrada gradualmente quando i livelli superiori non sono disponibili:

LivelloFornitoreChiave RichiestaCosa Aggiunge
1ginlix-data (proxy ospitato)GINLIX_DATA_URLFeed prezzi in tempo reale WebSocket, dati intraday, dati di trading extraorario, dati opzioni
2FMP (Financial Modeling Prep)FMP_API_KEYFondamentali di alta qualità, bilanci, dati macro, dati analisti
3Yahoo Finance (yfinance)Nessuna — gratuitoStorico prezzi, fondamentali base, utili, partecipazioni, transazioni insider, ESG, screener

Tutti i livelli sono abilitati per impostazione predefinita. Per funzionare con solo dati gratuiti (Yahoo Finance), esegui make config con la selezione guidata. Puoi anche modificare manualmente agent_config.yaml.

[!NOTE] I dati di Yahoo Finance provengono dalla comunità e hanno limitazioni: nessun dato intraday al di sotto di intervalli di 1 ora, quotazioni ritardate, copertura macro limitata e occasionali limitazioni di frequenza. Un FMP_API_KEY è fortemente raccomandato (livello gratuito disponibile).

Competenze di Ricerca Finanziaria

L'agente è dotato di 23 competenze di ricerca finanziaria predefinite, ciascuna attivabile tramite comando slash o rilevamento automatico. Le competenze seguono la Specifica Agent Skills e possono essere estese inserendo un file SKILL.md nel workspace.

CategoriaCompetenze
Valutazione & ModellazioneDCF Model, Comps Analysis, 3-Statement Model, Model Update, Model Audit
Ricerca AzionariaInitiating Coverage (report 30–50 pagine), Earnings Preview, Earnings Analysis, Thesis Tracker
Intelligence di MercatoMorning Note, Catalyst Calendar, Sector Overview, Competitive Analysis, Idea Generation, X Research
Generazione DocumentiPDF, DOCX, PPTX, XLSX, HTML — crea, modifica, estrai
OperazioniInvestment Deck QC, Scheduled Automations, User Profile & Portfolio

Riconoscimento: alcune competenze sono adattate da anthropics/financial-services-plugins.

Comps Analysis skill delivering an Excel model and PDF valuation report with implied price ranges for NVDA, AMD, and GOOGL

La competenza Comps Analysis fornisce un modello Excel e un report PDF — con intervalli di prezzo impliciti dai multipli del gruppo di pari.

Intelligenza Multimodale

L'agente legge nativamente immagini (PNG, JPG, GIF, WebP) e PDF — il middleware multimodale intercetta le letture dei file, scarica il contenuto dalla sandbox o dagli URL, e lo inietta come base64 nella conversazione per un'interpretazione visiva diretta. In MarketView, il grafico a candele live dell'utente può essere catturato e inviato all'agente come contesto multimodale — la cattura include sia l'immagine del grafico che i metadati strutturati (simbolo, intervallo, OHLCV, medie mobili, RSI, range a 52 settimane) in modo che l'agente possa ragionare sia sul pattern visivo che sui dati sottostanti.

MarketView showing NVDA candlestick chart with AI support and resistance analysis

MarketView invia il grafico live all'agente per l'analisi tecnica in tempo reale.

Annotazioni Grafiche Disegnate dall'Agente

Chiedi all'agente di annotare il grafico MarketView e disegna direttamente sulla tela — livelli di prezzo, trendline, ritracciamenti di Fibonacci, badge di eventi, rettangoli e marcatori di testo. Le annotazioni vengono trasmesse in tempo reale tramite SSE, persistono per workspace e per coppia symbol:timeframe (un disegno su NVDA:1day rimane separato da NVDA:1hour), e si riproducono alla riconnessione. Quando la conversazione avviene al di fuori di MarketView, la trascrizione della chat mostra una mini-card di anteprima con la legenda delle annotazioni e un link con un clic al grafico live. La competenza di annotazione grafica si carica automaticamente ogni volta che un messaggio viene inviato da MarketView, quindi l'agente sa sempre a quale ticker e timeframe "il grafico" si riferisce.

Automazioni

L'agente può pianificare i propri compiti direttamente da una conversazione — nessuna interfaccia separata necessaria. Gli utenti possono anche gestire le automazioni dalla pagina Automazioni dedicata con CRUD completo, cronologia delle esecuzioni e attivazione manuale. Tutti i tipi di automazione condividono lo stesso AutomationExecutor, modalità agente configurabile (PTC o Flash) e disabilitazione automatica dopo fallimenti consecutivi.

Basate sul tempo — Espressioni cron standard per pianificazioni ricorrenti ("esegui questa analisi ogni lunedì alle 9:00") e pianificazione data/ora one-shot per singole esecuzioni future.

Attivate dal prezzo — Imposta un obiettivo di prezzo o un movimento percentuale su qualsiasi azione o indice principale, e l'agente esegue le tue istruzioni nel momento in cui la condizione è soddisfatta. Un PriceMonitorService si sottoscrive a una connessione WebSocket upstream condivisa a ginlix-data per tick in tempo reale (azioni sul livello realtime, indici sul livello ritardato). La deduplicazione basata su Redis previene trigger duplicati tra istanze del server.

CondizioneEsempio
Prezzo sopra / sottoAttiva quando AAPL supera $200
Variazione percentuale sopra / sottoAttiva quando SPX si muove del +2% rispetto alla chiusura precedente

Le condizioni possono essere combinate (logica AND), e ogni automazione di prezzo supporta la modalità one-shot (si attiva una volta) o ricorrente con un cooldown configurabile (minimo 4 ore, o una volta per giorno di trading per impostazione predefinita).

[!NOTE] Le automazioni attivate dal prezzo richiedono il feed WebSocket in tempo reale da ginlix-data. Durante la beta, questa funzionalità è disponibile esclusivamente sulla piattaforma ospitata. Il supporto per fonti dati WebSocket più ampie è previsto per versioni future.

Automations page with template gallery and Mag 7 pre-earnings schedule

Pianifica ricerche ricorrenti — qui, le analisi pre-utili Mag 7 vengono eseguite automaticamente prima di ogni report.

Architettura dell'Agente```mermaid %%{init: {'theme': 'neutral'}}%%

flowchart TB subgraph Orchestrator ["BackgroundSubagentOrchestrator"] direction TB Agent["Main Agent · LangGraph ReAct"] end

Agent -- "Task(init · update · resume)" --> SubPool
SubPool -- "results" --> Orchestrator

subgraph SubPool ["Subagent Pool — Parallel Async"]
    direction LR
    S1["general-purpose"]
    S2["research"]
    S3["user-defined"]
end

subgraph Middleware ["Middleware Stack"]
    direction LR
    MW1["Tool Safety<br/>Leak Detection<br/>Protected Paths<br/>Error Handling"]
    MW2["Context & Skills<br/>agent.md Injection<br/>Skill Loading<br/>Multimodal"]
    MW3["Coordination<br/>HITL · Plan Mode<br/>Steering<br/>Subagent Dispatch"]
    MW4["Resilience<br/>Compaction<br/>Retry + Fallback<br/>Prompt Caching"]
end

Agent -- "wraps model + tool calls" --> Middleware
Middleware --> LLM["Multi-Provider LLM<br/>OpenAI · Anthropic · Gemini · DeepSeek<br/>Qwen · Kimi · Doubao · GLM · MiniMax · ..."]

Agent <--> Tools

subgraph Tools ["Tool Layer"]
    direction LR
    T1["execute_code<br/>bash"]
    T2["Filesystem<br/>read · write · edit<br/>glob · grep"]
    T3["Finance<br/>Market Data · SEC<br/>Options · Screener"]
    T4["Web<br/>Search · Fetch"]
    T5["ShowWidget<br/>Inline HTML"]
end

T1 <--> Workspace
T2 <--> Workspace

subgraph Workspace ["Workspace — Daytona Sandbox"]
    direction LR
    W1["agent.md<br/>Workspace Notes"]
    W2["work/‹task›/<br/>data · charts"]
    W3["results/<br/>Reports"]
    W4["tools/<br/>MCP Wrappers"]
end
### Agent Swarm

Il core agent esegue su [LangGraph](https://github.com/langchain-ai/langgraph) e genera subagenti asincroni paralleli tramite uno strumento `Task()`. I subagenti vengono eseguiti contemporaneamente con finestre di contesto isolate, prevenendo derive nelle lunghe catene di ragionamento. Ogni subagente restituisce risultati sintetizzati all'agente principale, mantenendo l'orchestratore snello. L'agente principale può scegliere di attendere il risultato di un subagente o continuare altri lavori in sospeso. È inoltre possibile passare alla vista **Subagenti** nell'interfaccia utente per vedere i loro progressi in tempo reale (solo frontend web).

Oltre al semplice invio, l'agente principale può inviare istruzioni di follow-up a un subagente ancora in esecuzione, o riprenderne uno completato con contesto completo per un raffinamento iterativo. Se il server viene riavviato, lo stato del subagente viene automaticamente ricostruito dal suo ultimo checkpoint.

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/13458/dd8d54f3a8879372cf72c8a05d6ecce70c53ed0d86c8aed6a49c49276d4f97e4.png" alt="Subagenti paralleli che ricercano la catena di elaborazione del data center con una timeline interattiva di calcolo AI" width="800" />
</p>
<p align="center"><em>I subagenti di ricerca vengono eseguiti in parallelo lungo la catena di elaborazione — i risultati si fondono in una timeline interattiva di calcolo AI che copre NVIDIA, Google, AMD, AWS e il resto del settore.</em></p>

### Stack Middleware

L'agente è dotato di uno stack middleware, che include:

- **Direzione in tempo reale**: gli agenti possono prendere percorsi sbagliati, inseguire dati irrilevanti o fraintendere le tue intenzioni durante l'analisi. La direzione in tempo reale ti consente di correggere la rotta senza aspettare. Invia un messaggio di follow-up in qualsiasi momento mentre l'agente sta lavorando — istruzioni aggiornate, chiarimenti o domande completamente nuove — e l'agente lo recepisce prima del suo passo successivo, come se lo avessi detto in tempo reale. La direzione funziona a tutti i livelli: reindirizza l'agente principale, invia follow-up a singoli subagenti in background, o lascia che il sistema restituisca con garbo i messaggi non consumati nella tua casella di input se il flusso di lavoro termina per primo. Nessun lavoro viene perso, non sono necessari riavvii.
- **Caricamento dinamico delle skill** tramite uno strumento `LoadSkill` che consente all'agente di scoprire e attivare set di strumenti skill su richiesta, mantenendo la superficie degli strumenti predefinita snella mentre rende disponibili capacità specializzate quando necessario
- **Multimodale**: intercetta le letture di file per immagini e PDF, scarica contenuti dalla sandbox o da URL e li inietta come base64 nella conversazione in modo che i modelli multimodali possano interpretarli nativamente
- **Modalità piano** con interruzioni human-in-the-loop che ti permettono di rivedere e approvare la strategia dell'agente prima dell'esecuzione
- **Compattazione automatica**: comprime la cronologia della conversazione quando si avvicina ai limiti di token, preservando il contesto chiave mentre libera spazio
- **Gestione contesto**: scarica automaticamente i grandi risultati degli strumenti nel filesystem dell'area di lavoro, mantenendo un breve riepilogo nel contesto, e compatta le conversazioni lunghe man mano che crescono — riassumendo i turni più vecchi mentre mantiene la trascrizione completa recuperabile nell'area di lavoro. Le sessioni di ricerca possono durare indefinitamente senza raggiungere i limiti di contesto.

Vedi [`src/ptc_agent/agent/middleware/`](https://github.com/ginlix-ai/langalpha/blob/HEAD/src/ptc_agent/agent/middleware/) per l'insieme completo.

Riconoscimento: alcuni dei componenti middleware sono adattati o ispirati dall'implementazione in [LangChain DeepAgents](https://github.com/langchain-ai/deepagents).

### Streaming e Infrastruttura

Il server trasmette in streaming tutta l'attività dell'agente tramite SSE: blocchi di testo, chiamate a strumenti con argomenti e risultati, aggiornamenti di stato dei subagenti, artefatti di operazioni sui file e interruzioni human-in-the-loop. Ogni decisione dell'agente è completamente tracciabile nell'interfaccia utente.

I flussi di lavoro vengono eseguiti come attività di background indipendenti, completamente disaccoppiati dalla connessione HTTP/SSE. Se la scheda del browser si chiude o la rete cade, l'agente continua a lavorare. Alla riconnessione, fino a 150.000 eventi bufferizzati vengono riprodotti in modo che il client riprenda esattamente da dove si era interrotto.

PostgreSQL supporta il checkpointing di LangGraph, la cronologia delle conversazioni e i dati utente (watchlist, portafogli, preferenze), quindi lo stato dell'agente e il contesto utente persistono tra le sessioni. Redis bufferizza gli eventi SSE in modo che gli aggiornamenti del browser e le cadute di rete non perdano messaggi in volo: il client si riconnette e riproduce automaticamente. I dati utente sono esposti all'agente come file JSON virtuali supportati direttamente dal database — le letture serializzano le righe live su richiesta e le scritture si applicano in una singola transazione validata, senza un round-trip di sincronizzazione della sandbox — mentre le skill vengono sincronizzate con la sandbox all'inizio della sessione tramite una cache basata su manifest, ricaricate solo quando cambiano. Vedi il [riferimento API](https://github.com/ginlix-ai/langalpha/blob/HEAD/docs/api/README.md) completo per i dettagli.

### Provenienza delle Fonti

Ogni fonte di dati esterna toccata dall'agente viene tracciata e resa visibile. Un middleware di provenienza registra ogni ricerca web, recupero di pagina, deposito SEC, chiamata dati di mercato, invocazione di strumento MCP e lettura di file nell'area di lavoro — inclusi gli accessi effettuati dai subagenti in background — e emette un evento di stream `provenance` per fonte, nessuno dei quali entra nel contesto LLM. L'interfaccia utente li visualizza come pannello Fonti accanto a ogni turno: fonti raggruppate per tipo, favicon per origini web, e una vista dettagliata che mostra il provider, il timestamp, gli argomenti catturati, un'impronta del contenuto e un estratto. Un interruttore *Questo turno / Tutte le fonti* rivela l'impronta completa dei dati attraverso un intero thread, e cliccare su un file o memo sorgente lo apre direttamente nel pannello dei file dell'area di lavoro — una traccia completamente verificabile dei dati alla base di ogni output di ricerca.

## Sicurezza e Vault dell'Area di Lavoro

LangAlpha applica un modello di sicurezza a strati su credenziali, esecuzione di codice e segreti forniti dall'utente.

**Crittografia a riposo**: tutti i dati sensibili (chiavi API BYOK, token OAuth, segreti del vault) sono crittografati all'interno di PostgreSQL utilizzando `pgcrypto`. Il testo in chiaro non viene mai memorizzato nel database.

**Rilevamento fughe di credenziali**: ogni output di strumento viene scansionato prima di raggiungere il contesto LLM. Il middleware risolve tutti i valori segreti noti (chiavi del server MCP, token della sandbox, segreti del vault) e oscura qualsiasi corrispondenza come `[REDATTO:NOME_CHIAVE]`. La stessa oscurazione si applica alle superfici rivolte all'utente: letture di file e download vengono ripuliti prima di raggiungere il client.

**Esecuzione codice in sandbox**: ogni area di lavoro viene eseguita nella propria sandbox cloud [Daytona](https://www.daytona.io/) con un filesystem dedicato e un confine di rete. Le protezioni dei percorsi impediscono all'agente di accedere alle directory di sistema interne — bloccando sia l'input dello strumento (cortocircuitando la chiamata prima dell'esecuzione) sia l'output dello strumento (oscuramento dei percorsi trapelati).

### Vault dell'Area di Lavoro

Ogni area di lavoro ha un vault di segreti integrato per memorizzare chiavi API e credenziali che l'agente può utilizzare durante l'esecuzione del codice — utile per accedere a fonti di dati di terze parti (API di brokeraggio, fornitori di dati esterni, ecc.) o per costruire flussi di lavoro basati su LLM all'interno dell'area di lavoro. Memorizza un segreto una volta nell'interfaccia utente, e sarà disponibile per ogni sessione agente in quell'area di lavoro tramite una semplice API Python:```python
from vault import get, list_names, load_env

api_key = get("MY_API_KEY")       # retrieve a single secret
names = list_names()               # list available secret names
load_env()                         # bulk-load all secrets as env vars

I segreti del vault ereditano tutti i livelli di protezione sovrastanti — crittografati a riposo, oscurati da tutti gli output rivolti all'agente e all'umano, e bloccati dall'accesso diretto ai file. Solo il proprietario del workspace può creare, aggiornare, rivelare o eliminare i segreti.

Frontend

L'interfaccia web è più di una chat — è un vero e proprio banco di lavoro per la ricerca:

  • Dashboard configurabile — inizia da un layout preimpostato (Morning Brief, Trader, Researcher, Agent Desk, Trader (TradingView) o Portfolio Steward) o costruisci il tuo da una galleria di widget che copre mercati, intelligence, contesto personale, superfici agente e scorciatoie del workspace
  • Grafici finanziari in-linea — i risultati degli strumenti vengono renderizzati come sparkline interattivi, grafici a barre e schede di panoramica direttamente nel thread della chat
  • Widget HTML in-linea — l'agente può renderizzare visualizzazioni HTML/SVG interattive (grafici Chart.js, schede metriche, tabelle dati) direttamente nella chat tramite il tool ShowWidget, con stile adattivo al tema e iframe in sandbox
  • Report di ricerca HTML — l'agente scrive documenti HTML completi e autonomi in results/, serviti con semantica reale del browser (gli script vengono eseguiti, le librerie CDN caricate, gli asset relativi risolti), visualizzabili a schermo intero ed esportabili in PDF — distinti dai widget in-linea e dalle dashboard live
  • Visualizzatore di file multi-formato — PDF (paginato, zoomabile), Excel, CSV, anteprima HTML e codice sorgente (editor Monaco con modalità diff) — tutti visualizzabili in-linea senza download
  • Grafici TradingView — TradingView Advanced Chart completo con strumenti di disegno, indicatori e stile professionale a candele
  • Dati di mercato in tempo reale — feed prezzi WebSocket in tempo reale con risoluzione tick di 1 secondo (azioni USA), visualizzazione after-hours e sovrapposizioni multiple di medie mobili
  • Annotazioni ai grafici disegnate dall'agente — l'agente annota il grafico MarketView con livelli di prezzo, trendline, ritracciamenti di Fibonacci e badge di evento, persistiti per symbol:timeframe e visualizzati in anteprima in-linea nella chat
  • Conversazioni condivisibili — condivisione con un clic con permessi granulari (attiva/disattiva la navigazione dei file e l'accesso al download), riproduzione tramite URL pubblico
  • Monitoraggio subagente in tempo reale — osserva in diretta l'output in streaming e le chiamate agli strumenti di ogni attività in background, con la possibilità di inviare istruzioni a metà esecuzione
  • Pannello di provenienza delle fonti — ogni turno elenca le fonti esterne a cui l'agente ha avuto accesso (web, documenti SEC, dati di mercato, strumenti MCP, file) con favicon, impronte digitali del contenuto e un toggle di ambito per thread
  • Automazioni — gestione CRUD con builder cron, cronologia esecuzioni, trigger manuale e automazioni attivate da prezzo che si attivano quando un'azione o un indice raggiunge una condizione di prezzo in tempo reale

Dashboard con strip degli indici di mercato, brief di notizie di mercato e watchlist — con un brief di notizie inserito nella chat dell'agente come contesto

La dashboard mostra gli indici di mercato, un brief personalizzato e la tua watchlist — qualsiasi tile può essere appuntato all'agente come contesto della chat per avviare un thread di ricerca.

Selettore preset della dashboard con modelli Morning Brief, Agent Desk, Researcher e Trader Galleria widget della dashboard con categorie mercati, intelligence, personale, agente e workspace
Inizia da un preset curato — Morning Brief, Agent Desk, Researcher o Trader.Oppure componi il tuo dalla galleria widget — mercati, intelligence, personale, agente e workspace.

Integrazioni dei Canali

Usa LangAlpha dagli strumenti in cui già lavori. Il gateway di integrazione inoltra i messaggi tra le piattaforme di messaggistica e l'agente centrale, con ogni canale che riceve risposte nel suo formato nativo. Le integrazioni dei canali sono disponibili esclusivamente sul nostro servizio ospitato con configurazione con un clic e collegamento rapido dell'account — visita integrations per iniziare.

CaratteristicaSlackDiscordFeishuTelegramWhatsApp
Testo ricco / markdown🔜
Caricamento file (utente → agente)
Download file (agente → utente)
Rendering immagini
Interruzioni human-in-the-loop⚠️
Tracciamento subagente🔜
Selezione workspace / modello🔜
Consegna automazioni (outbound)
Collegamento account semplificato
Comandi slash

Slack e Discord offrono canali nativi e gruppi a livello di thread, che si mappano naturalmente a workspace e thread di LangAlpha — il contesto è gestito nativamente. Telegram e WhatsApp mancano di questi primitivi, quindi eseguono una modalità di orchestrazione semplificata. Feishu ha messaggistica completa e interfaccia basata su carte, con OAuth in arrivo. Telegram ha supporto parziale con copertura completa in arrivo. WhatsApp è in programma.

Per Iniziare

[!TIP] Non vuoi auto-ospitare? Prova la versione ospitata — include l'infrastruttura dati completa (FMP, dati di mercato in tempo reale, sandbox cloud) pronta all'uso. Porta la tua chiave LLM (BYOK) e inizia subito senza configurazione.

Puoi avviare LangAlpha con nient'altro che Docker — nessuna chiave API per i dati, nessuna sandbox cloud. Solo Docker per l'infrastruttura e la tua sottoscrizione LLM per il modello AI.```bash git clone https://github.com/ginlix-ai/langalpha.git cd langalpha make config # interactive wizard — creates .env, configures LLM, data sources, sandbox, and search make up # starts PostgreSQL, Redis, backend, and frontend

- **Frontend:** [http://localhost:5173](http://localhost:5173)
- **API backend:** [http://localhost:8000](http://localhost:8000) (documentazione interattiva su `/docs`)
- **Verifica:** `curl http://localhost:8000/health`

Per l'esperienza completa, la procedura guidata ti chiederà le chiavi opzionali — oppure potrai aggiungerle in seguito al file `.env`:

| Chiave                               | Cosa sblocca                                                                                                             |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
| `DAYTONA_API_KEY`                    | Sandbox cloud persistenti con supporto di workspace cross-sessione ([daytona.io](https://www.daytona.io/))               |
| `FMP_API_KEY`                        | Fondamentali di alta qualità, macro, documenti SEC, opzioni ([piano gratuito disponibile](https://site.financialmodelingprep.com/)) |
| `SERPER_API_KEY` o `TAVILY_API_KEY`  | Ricerca web                                                                                                              |
| `LANGSMITH_API_KEY`                  | Tracciamento LangSmith per esecuzioni LangGraph                                                                           |
| `OTEL_EXPORTER_OTLP_ENDPOINT`        | Tracce e metriche OpenTelemetry verso qualsiasi backend OTLP (Jaeger, Grafana Tempo, Datadog, Honeycomb, ...)            |
| `SANDBOX_PROVIDER`                   | Sostituisce il provider di sandbox (`daytona` o `docker`); rilevato automaticamente da `DAYTONA_API_KEY` se non impostato |

> [!NOTE]
> Senza chiavi di servizi esterni ottieni un'esperienza funzionale ma ridotta: Yahoo Finance fornisce gratuitamente cronologia prezzi, fondamentali, utili e dati degli analisti, ma mancano quotazioni in tempo reale, dati tick intraday, economia macro e analisi delle opzioni. La sandbox Docker sostituisce le sandbox cloud Daytona — l'esecuzione completa del codice PTC funziona, ma con una sicurezza e un isolamento ridotti. Aggiungi le chiavi gradualmente per sbloccare più funzionalità.

Esegui `make help` per vedere tutti i comandi disponibili. Per la configurazione manuale senza Docker, consulta [CONTRIBUTING.md](https://github.com/ginlix-ai/langalpha/blob/HEAD/CONTRIBUTING.md#manual-setup).

## Documentazione

- **[Riferimento API](https://github.com/ginlix-ai/langalpha/blob/HEAD/docs/api/README.md)** con endpoint per chat streaming, workspace, stato del flusso di lavoro e altro
- **Documentazione API interattiva** all'indirizzo `http://localhost:8000/docs` quando il server è in esecuzione

## Contatti

Per partnership, collaborazioni o richieste generali, contatta [[email protected]](mailto:[email protected]).

## Dichiarazione di non responsabilità

LangAlpha è uno strumento di ricerca, non un consulente finanziario. Nulla di quanto prodotto da questo software costituisce un consiglio di investimento, una raccomandazione o una sollecitazione all'acquisto o alla vendita di titoli. Tutti gli output sono solo a scopo informativo ed educativo. Usalo a tuo rischio e discrezione — effettua sempre la tua due diligence prima di prendere decisioni di investimento.

## Licenza

Licenza Apache 2.0

Categorie