
Marco automatizado de OSINT para reconocimiento, recolección de datos y recopilación de inteligencia de amenazas con rastreadores modulares, escáneres y tuberías de extracción.
Un arnés de agente para inversiones por vibra («vibe investing»)
LangAlpha está diseñado para ayudar a interpretar los mercados financieros y respaldar decisiones de inversión.
Primeros pasos • API Docs • Agent Core • Backend • Web • TUI • Skills • MCP
Fija en el panel un resumen de noticias seleccionado, inicia la generación de ideas y despliega subagentes paralelos para filtrar el mercado — luego recibe cinco ideas de pares largos/cortos en un panel interactivo integrado, calibrado según tu cartera.
Hoy en día, toda herramienta de inteligencia artificial para finanzas trata la inversión como algo de una sola vez: haces una pregunta, obtienes una respuesta y pasas a otra cosa. Pero la inversión real es bayesiana — partes de una tesis, cada día llegan nuevos datos y actualizas tu convicción en consecuencia. Es un proceso iterativo que se despliega a lo largo de semanas y meses: refinar tesis, revisar posiciones, superponer nuevos análisis sobre los anteriores. Ningún mensaje aislado logra capturarlo.
Inspirado en la ingeniería de software: una base de código persiste y cada «commit» se construye sobre lo que vino antes. Herramientas como Claude Code y OpenCode tuvieron éxito al crear agentes que adoptan este patrón, explorando el contexto existente y desarrollando trabajos previos. LangAlpha trae esa misma idea: dale al agente un espacio de trabajo persistente y la investigación se acumula de forma natural.
En la práctica, creas un espacio de trabajo por objetivo de investigación («rebalanceo del Q2», «análisis profundo de la demanda en centros de datos», «rotación del sector energético»). El agente te entrevista sobre tus metas y estilo, produce su primer entregable y lo guarda todo en el sistema de archivos del espacio de trabajo. Vuelve al día siguiente y tus archivos, hilos e investigación acumulada siguen ahí.
agent.md) que acumula investigación a través de sesiones e hilos. Un almacén de memoria a largo plazo separado (.agents/user/memory/, .agents/workspace/memory/») persiste preferencias de usuario duraderas y conocimiento entre entornos aislados, y un almacén de notas gestionado por el usuario (.agents/user/memo/`) te permite subir archivos PDF y notas de investigación en markdown que el agente puede leer bajo demanda.Arquitectura 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"]
### Capa de Modelo Multi-Proveedor
LangAlpha se ejecuta en una capa de modelo independiente del proveedor que abstrae múltiples backends de LLM. El mismo conjunto de middleware, herramientas y flujos de trabajo funcionan independientemente del modelo que los impulse. Viene con dos modos:
- **Modo PTC** para investigación de inversiones profunda y en varios pasos. Un razonamiento sólido impulsa análisis de varios pasos donde el agente planifica su enfoque, analiza datos financieros y escribe código para análisis complejos. El contexto largo le permite hacer referencias cruzadas de presentaciones ante la SEC e informes de investigación en una sola pasada.
- **Modo Flash** para respuestas conversacionales rápidas y orquestación del espacio de trabajo: consultas rápidas de mercado, gráficos y chat en MarketView, preguntas y respuestas ligeras, y un secretario que gestiona espacios de trabajo, envía análisis PTC profundos en segundo plano y transmite los resultados de vuelta a través de la conversación natural.
**Trae tu propio modelo** — Usa tus suscripciones de IA existentes y claves de API directamente. Conecta suscripciones de ChatGPT o Claude a través de OAuth (OpenAI Codex OAuth, Claude Code OAuth), usa planes de codificación de Kimi (Moonshot), GLM (Zhipu), MiniMax o Doubao (Volcengine), o proporciona tus propias claves de API para cualquier proveedor compatible a través de BYOK. Todas las claves se cifran en reposo mediante PostgreSQL pgcrypto (ver [Seguridad](#security)).
**Resiliencia del modelo** — reintentos automáticos ante errores transitorios, luego conmutación por error a un modelo de respaldo configurado. El esfuerzo de razonamiento (`low`/`medium`/`high`) se normaliza automáticamente entre los proveedores.
### Llamada Programática de Herramientas (PTC) y Arquitectura del Espacio de Trabajo
La mayoría de los agentes de IA interactúan con los datos mediante llamadas de herramientas JSON únicas que vierten el resultado directamente en la ventana de contexto. La Llamada Programática de Herramientas invierte esto: en lugar de pasar datos sin procesar a través del LLM, el agente escribe y ejecuta código dentro de un sandbox en la nube de [Daytona](https://www.daytona.io/) que procesa los datos localmente y devuelve solo el resultado final. Esto reduce drásticamente el desperdicio de tokens al tiempo que permite análisis que de otro modo superarían los límites de contexto.
**Flujo de Ejecución 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
Además, el entorno de trabajo permite la persistencia más allá de una sola sesión. Cada zona de pruebas tiene una estructura de directorios organizada: work/<tarea>/ para áreas de trabajo por tarea (datos, gráficos, código), results/ para informes finalizados y data/ para conjuntos de datos compartidos, por lo que los resultados intermedios sobreviven entre sesiones. En la raíz se encuentra agent.md, un archivo de notas del espacio de trabajo que el agente mantiene en todos los hilos: objetivos del espacio de trabajo, hallazgos clave, un índice de hilos y un índice de archivos de artefactos importantes. Una capa intermedia inyecta agent.md en cada llamada al modelo, de modo que el agente siempre tiene contexto completo del trabajo anterior sin necesidad de volver a leer archivos. De forma ortogonal, un sistema de memoria a largo plazo respaldado por almacenamiento (.agents/user/memory/, .agents/workspace/memory/) captura preferencias duraderas del usuario y conocimiento entre zonas de pruebas que sobrevive a los reinicios del espacio de trabajo, y un almacén de notas administrado por el usuario (.agents/user/memo/) contiene documentos que usted carga — los PDF se extraen como texto en el servidor y un LLM genera metadatos de forma asíncrona para que el agente pueda encontrarlos y citarlos por tema. Cada espacio de trabajo admite múltiples hilos de conversación vinculados a un único objetivo de investigación.
Cada espacio de trabajo se asigna a una zona de pruebas persistente: organice la investigación por tema, cartera o tesis.
El agente escribe código para crear paneles interactivos; aquí, un calendario de catalizadores de los 7 Magníficos + Semiconductores.
Si bien PTC sobresale en tareas complejas como el procesamiento de datos en múltiples pasos, la modelización financiera y la creación de gráficos, iniciar la ejecución de código para cada consulta de datos es excesivo. Por eso también construimos un conjunto de herramientas de datos financieros nativas que transforman los datos de uso frecuente en un formato digerible para LLM. Estas herramientas también vienen con artefactos que se renderizan directamente en el frontend, brindando a la capa humana un contexto visual inmediato junto con el análisis del agente.
Herramientas nativas para referencia rápida mediante llamadas directas a herramientas:
Servidores MCP para datos sin procesar consumidos a través de la ejecución de código de PTC:
El agente elige la capa adecuada automáticamente: herramientas nativas para búsquedas rápidas que encajan en el contexto, herramientas MCP cuando la tarea requiere procesamiento masivo de datos, creación de gráficos o análisis de tendencias plurianuales en la zona de pruebas.
Los servidores MCP son configurables por espacio de trabajo. Los servidores integrados se pueden desactivar individualmente, y se pueden agregar servidores HTTP o stdio personalizados — incluidos aquellos que leen credenciales de la bóveda del espacio de trabajo — a través de la API o la interfaz de usuario, con efecto en segundos sin necesidad de reiniciar.
LangAlpha admite una jerarquía de proveedores de datos de tres niveles. Cada nivel es opcional: el sistema se degrada correctamente cuando los niveles superiores no están disponibles:
Todos los niveles están habilitados por defecto. Para ejecutar con solo datos gratuitos (Yahoo Finance), ejecute make config con la selección guiada. También puede editar agent_config.yaml manualmente.
[!NOTA] Los datos de Yahoo Finance provienen de la comunidad y tienen limitaciones: sin datos intradiarios por debajo de intervalos de 1 hora, cotizaciones retrasadas, cobertura macro limitada y límites de tasa ocasionales. Se recomienda encarecidamente obtener una
FMP_API_KEY(nivel gratuito disponible).
El agente incluye 23 habilidades de investigación financiera predefinidas, cada una activable mediante comando de barra diagonal o detección automática. Las habilidades siguen la Especificación de Habilidades del Agente y se pueden ampliar colocando un archivo SKILL.md en el espacio de trabajo.
Agradecimientos: algunas habilidades están adaptadas de anthropics/financial-services-plugins.
La habilidad de Análisis de Comparables entrega un modelo de Excel y un informe en PDF, con rangos de precios implícitos a partir de múltiplos del grupo de pares.
El agente lee de forma nativa imágenes (PNG, JPG, GIF, WebP) y PDF: el middleware multimodal intercepta las lecturas de archivos, descarga contenido desde la zona de pruebas o URLs y lo inyecta como base64 en la conversación para su interpretación visual directa. En MarketView, el gráfico de velas en vivo del usuario se puede capturar y enviar al agente como contexto multimodal: la captura incluye tanto la imagen del gráfico como metadatos estructurados (símbolo, intervalo, OHLCV, medias móviles, RSI, rango de 52 semanas) para que el agente pueda razonar tanto sobre el patrón visual como sobre los datos subyacentes.
MarketView envía el gráfico en vivo al agente para análisis técnico en tiempo real.
Pídale al agente que marque el gráfico de MarketView y dibujará directamente sobre el lienzo: niveles de precio, líneas de tendencia, retrocesos de Fibonacci, insignias de eventos, rectángulos y marcadores de texto. Las anotaciones se transmiten en vivo a través de SSE, persisten por espacio de trabajo y por par símbolo:marco temporal (un dibujo en NVDA:1día se mantiene separado de NVDA:1hora) y se reproducen al reconectar. Cuando la conversación ocurre fuera de MarketView, la transcripción del chat muestra una tarjeta de vista previa en miniatura con la leyenda de anotaciones y un enlace de un clic al gráfico en vivo. La habilidad de anotación de gráficos se carga automáticamente cada vez que se envía un mensaje desde MarketView, por lo que el agente siempre sabe a qué ticker y marco temporal se refiere "el gráfico".
El agente puede programar sus propias tareas desde una conversación, sin necesidad de una interfaz de usuario separada. Los usuarios también pueden gestionar las automatizaciones desde la página dedicada de Automatizaciones con CRUD completo, historial de ejecución y activación manual. Todos los tipos de automatización comparten el mismo AutomationExecutor, modo de agente configurable (PTC o Flash) y desactivación automática después de fallos consecutivos.
Basadas en tiempo: expresiones cron estándar para programaciones recurrentes ("ejecutar este análisis todos los lunes a las 9 a. m.") y programación de fecha/hora única para ejecuciones futuras únicas.
Activadas por precio: establezca un objetivo de precio o movimiento porcentual en cualquier acción o índice importante, y el agente ejecuta sus instrucciones en el momento en que se cumple la condición. Un PriceMonitorService se suscribe a una conexión WebSocket ascendente compartida con ginlix-data para ticks en tiempo real (acciones en el nivel en tiempo real, índices en el nivel retrasado). La deduplicación basada en Redis evita activaciones duplicadas entre instancias del servidor.
| Condición | Ejemplo |
|---|---|
| Precio por encima / por debajo | Activar cuando AAPL cruce los $200 |
| Cambio porcentual por encima / por debajo | Activar cuando SPX se mueva +2% desde el cierre anterior |
Las condiciones se pueden combinar (lógica Y), y cada automatización de precio admite modo único (activar una vez) o recurrente con un período de espera configurable (mínimo 4 horas, o una vez por día de negociación de forma predeterminada).
[!NOTA] Las automatizaciones activadas por precio requieren la fuente de datos WebSocket en tiempo real de ginlix-data. Durante la beta, esta función está disponible exclusivamente en la plataforma alojada. Se planea un soporte más amplio de fuentes de datos WebSocket para versiones futuras.
Programe investigaciones recurrentes: aquí, los análisis previos a los resultados de los 7 Magníficos se ejecutan automáticamente antes de cada informe.
Arquitectura del 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
### Enjambre de Agentes
El agente principal se ejecuta sobre [LangGraph](https://github.com/langchain-ai/langgraph) y genera subagentes asíncronos en paralelo mediante una herramienta `Task()`. Los subagentes se ejecutan concurrentemente con ventanas de contexto aisladas, evitando la deriva en cadenas de razonamiento largas. Cada subagente devuelve resultados sintetizados al agente principal, manteniendo al orquestador ligero. El agente principal puede optar por esperar el resultado de un subagente o continuar con otro trabajo pendiente. También puedes cambiar a la vista **Subagentes** en la IU para ver su progreso en tiempo real (solo frontend web).
Más allá del envío simple, el agente principal puede enviar instrucciones adicionales a un subagente que aún se esté ejecutando, o reanudar uno completado con contexto completo para refinamiento iterativo. Si el servidor se reinicia, el estado del subagente se reconstruye automáticamente desde su último punto de control.
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/13458/dd8d54f3a8879372cf72c8a05d6ecce70c53ed0d86c8aed6a49c49276d4f97e4.png" alt="Subagentes paralelos investigando la cadena de cómputo del centro de datos con una línea de tiempo interactiva de cómputo de IA" width="800" />
</p>
<p align="center"><em>Subagentes de investigación se ejecutan en paralelo a lo largo de la cadena de cómputo — los resultados se fusionan en una línea de tiempo interactiva de cómputo de IA que abarca NVIDIA, Google, AMD, AWS y el resto de la industria.</em></p>
### Pila de Middleware
El agente viene con una pila de middleware que incluye:
- **Dirección en vivo** — los agentes pueden tomar caminos equivocados, perseguir datos irrelevantes o malinterpretar tu intención a medio análisis. La dirección te permite corregir el rumbo sin esperar. Envía un mensaje de seguimiento en cualquier momento mientras el agente está trabajando — instrucciones actualizadas, aclaraciones o preguntas completamente nuevas — y el agente lo recoge antes de su próximo paso, como si lo hubieras dicho en tiempo real. La dirección funciona en todos los niveles: redirige al agente principal, envía seguimientos a subagentes individuales en segundo plano, o permite que el sistema devuelva elegantemente los mensajes no consumidos a tu cuadro de entrada si el flujo de trabajo termina primero. No se pierde trabajo, no se requieren reinicios.
- **Carga dinámica de habilidades** mediante una herramienta `LoadSkill` que permite al agente descubrir y activar conjuntos de herramientas de habilidades bajo demanda, manteniendo la superficie de herramientas predeterminada ligera mientras hace disponibles capacidades especializadas cuando se necesitan.
- **Multimodal** intercepta lecturas de archivos para imágenes y PDFs, descarga contenido del sandbox o de URLs, y lo inyecta como base64 en la conversación para que los modelos multimodales puedan interpretarlo de forma nativa.
- **Modo Plan** con interrupciones de humano en el bucle que te permite revisar y aprobar la estrategia del agente antes de la ejecución.
- **Compactación automática** comprime el historial de conversación al acercarse a los límites de tokens, preservando el contexto clave mientras libera espacio.
- **Gestión de contexto** descarga automáticamente resultados grandes de herramientas al sistema de archivos del espacio de trabajo, manteniendo una vista previa breve en el contexto, y compacta conversaciones largas a medida que crecen — resumiendo turnos anteriores mientras mantiene la transcripción completa recuperable en el espacio de trabajo. Las sesiones de investigación pueden ejecutarse indefinidamente sin alcanzar límites de contexto.
Consulte [`src/ptc_agent/agent/middleware/`](https://github.com/ginlix-ai/langalpha/blob/HEAD/src/ptc_agent/agent/middleware/) para el conjunto completo.
Reconocimiento: algunos de los componentes del middleware están adaptados o inspirados en la implementación de [LangChain DeepAgents](https://github.com/langchain-ai/deepagents).
### Streaming e Infraestructura
El servidor transmite toda la actividad del agente a través de SSE: fragmentos de texto, llamadas a herramientas con argumentos y resultados, actualizaciones de estado de subagentes, artefactos de operaciones de archivos e interrupciones de humano en el bucle. Cada decisión del agente es completamente rastreable en la IU.
Los flujos de trabajo se ejecutan como tareas en segundo plano independientes, completamente desacopladas de la conexión HTTP/SSE. Si la pestaña del navegador se cierra o la red se cae, el agente sigue trabajando. Al reconectarse, se reproducen hasta 150,000 eventos almacenados en búfer para que el cliente retome exactamente donde lo dejó.
PostgreSQL respalda el checkpointing de LangGraph, el historial de conversaciones y los datos del usuario (listas de seguimiento, carteras, preferencias), por lo que el estado del agente y el contexto del usuario persisten entre sesiones. Redis almacena en búfer los eventos SSE para que los refrescos del navegador y las caídas de red no pierdan mensajes en vuelo: el cliente se reconecta y reproduce automáticamente. Los datos del usuario se exponen al agente como archivos JSON virtuales respaldados directamente por la base de datos — las lecturas serializan filas en vivo bajo demanda y las escrituras se aplican en una sola transacción validada, sin viaje de ida y vuelta de sincronización con el sandbox — mientras que las habilidades se sincronizan con el sandbox al inicio de la sesión mediante un caché basado en manifiestos, re-subiéndose solo cuando cambian. Consulte la [referencia completa de la API](https://github.com/ginlix-ai/langalpha/blob/HEAD/docs/api/README.md) para obtener más detalles.
### Procedencia de Fuentes
Cada fuente de datos externa que toca el agente es rastreada y expuesta. Un middleware de procedencia registra cada búsqueda web, recuperación de página, presentación ante la SEC, llamada de datos de mercado, invocación de herramienta MCP y lectura de archivo del espacio de trabajo — incluyendo accesos realizados por subagentes en segundo plano — y emite un evento de flujo de `provenance` por fuente, ninguno de los cuales ingresa al contexto del LLM. La IU los muestra como un panel de Fuentes junto a cada turno: fuentes agrupadas por tipo, favicons para orígenes web, y una vista detallada que expone el proveedor, la marca de tiempo, los argumentos capturados, una huella digital del contenido y un fragmento. Un conmutador *Este turno / Todas las fuentes* revela la huella de datos completa a lo largo de todo un hilo, y hacer clic en un archivo o fuente de memo lo abre directamente en el panel de archivos del espacio de trabajo — un rastro completamente auditable de los datos detrás de cada resultado de investigación.
## Seguridad y Cofre del Espacio de Trabajo
LangAlpha aplica un modelo de seguridad en capas a través de credenciales, ejecución de código y secretos proporcionados por el usuario.
**Cifrado en reposo** — Todos los datos sensibles (claves API BYOK, tokens OAuth, secretos del cofre) se cifran dentro de PostgreSQL usando `pgcrypto`. El texto plano nunca se almacena en la base de datos.
**Detección de fugas de credenciales** — Cada salida de herramienta se escanea antes de llegar al contexto del LLM. El middleware resuelve todos los valores de secretos conocidos (claves de servidor MCP, tokens del sandbox, secretos del cofre) y redacta cualquier coincidencia como `[REDACTED:KEY_NAME]`. La misma redacción se aplica a las superficies visibles para humanos: las lecturas y descargas de archivos se depuran antes de llegar al cliente.
**Ejecución de código en sandbox** — Cada espacio de trabajo se ejecuta en su propio sandbox en la nube [Daytona](https://www.daytona.io/) con un sistema de archivos y un límite de red dedicados. Las protecciones de rutas prohibidas evitan que el agente acceda a directorios internos del sistema — bloqueando tanto la entrada de la herramienta (cortocircuitando la llamada antes de la ejecución) como la salida de la herramienta (redactando rutas filtradas).
### Cofre del Espacio de Trabajo
Cada espacio de trabajo tiene un cofre de secretos incorporado para almacenar claves API y credenciales que el agente puede usar durante la ejecución de código — útil para acceder a fuentes de datos de terceros (APIs de corretaje, proveedores de datos externos, etc.) o construir flujos de trabajo impulsados por LLM dentro del espacio de trabajo. Almacena un secreto una vez en la IU, y estará disponible para cada sesión del agente en ese espacio de trabajo a través de una API simple de 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
Los secretos del Vault heredan todas las capas de protección anteriores: cifrados en reposo, redactados de todas las salidas visibles para agentes y humanos, y bloqueados contra el acceso directo a archivos. Solo el propietario del espacio de trabajo puede crear, actualizar, revelar o eliminar secretos.
La interfaz web es más que un chat: es un completo banco de trabajo de investigación:
ShowWidget, con estilo sensible al tema y iframes en espacio aislado.results/, servidos con semántica real de navegador (los scripts se ejecutan, las bibliotecas CDN se cargan, los activos relativos se resuelven), visibles a pantalla completa y exportables a PDF — distintos de los widgets en línea y los paneles en vivo.symbol:timeframe y previsualizadas en línea en el chat.
El panel muestra índices de mercado, un resumen personalizado y tu lista de seguimiento — cualquier mosaico se puede fijar al agente como contexto de chat para iniciar un hilo de investigación.
|
Usa LangAlpha desde las herramientas en las que ya trabajas. La pasarela de integración retransmite mensajes entre plataformas de mensajería y el agente central, recibiendo cada canal las respuestas en su formato nativo. Las integraciones de canales están disponibles exclusivamente en nuestro servicio alojado con configuración con un solo clic y vinculación rápida de cuentas — visita integrations para empezar.
Slack y Discord ofrecen canales nativos y grupos a nivel de hilo, que se asignan naturalmente a espacios de trabajo e hilos de LangAlpha — el contexto se gestiona de forma nativa. Telegram y WhatsApp carecen de estas primitivas, por lo que ejecutan un modo de orquestación simplificado. Feishu tiene mensajería completa e interfaz basada en tarjetas con OAuth próximamente. Telegram tiene soporte parcial con cobertura completa próximamente. WhatsApp está planificado.
[!TIP] ¿No quieres autoalojar? Prueba la versión alojada — incluye infraestructura de datos completa (FMP, datos de mercado en tiempo real, sandboxes en la nube) desde el primer momento. Trae tu propia clave LLM (BYOK) y comienza de inmediato sin configuración.
Puedes iniciar LangAlpha con nada más que Docker — sin claves API para datos, sin sandbox en la nube. Solo Docker para la infraestructura y tu propia suscripción LLM para el modelo de IA.```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 del backend:** [http://localhost:8000](http://localhost:8000) (documentación interactiva en `/docs`)
- **Verificar:** `curl http://localhost:8000/health`
Para la experiencia completa, el asistente te pedirá claves opcionales, o las puedes agregar al `.env` más tarde:
| Clave | Lo que desbloquea |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
| `DAYTONA_API_KEY` | Sandboxes persistentes en la nube con soporte de espacio de trabajo entre sesiones ([daytona.io](https://www.daytona.io/)) |
| `FMP_API_KEY` | Fundamentos de alta calidad, macro, presentaciones SEC, opciones ([nivel gratuito disponible](https://site.financialmodelingprep.com/)) |
| `SERPER_API_KEY` o `TAVILY_API_KEY` | Búsqueda web |
| `LANGSMITH_API_KEY` | Trazado de LangSmith para ejecuciones de LangGraph |
| `OTEL_EXPORTER_OTLP_ENDPOINT` | Trazas y métricas de OpenTelemetry a cualquier backend OTLP (Jaeger, Grafana Tempo, Datadog, Honeycomb, ...) |
| `SANDBOX_PROVIDER` | Sobrescribir el proveedor de sandbox (`daytona` o `docker`); se detecta automáticamente desde `DAYTONA_API_KEY` cuando no se establece |
> [!NOTA]
> Sin claves de servicios externos obtienes una experiencia funcional pero reducida: Yahoo Finance proporciona historial de precios gratuito, fundamentos, ganancias y datos de analistas, pero carece de cotizaciones en tiempo real, datos de ticks intradía, economía macro y análisis de opciones. El sandbox de Docker reemplaza los sandboxes en la nube de Daytona: la ejecución completa del código PTC funciona, pero con una seguridad y aislamiento degradados. Agrega claves de forma incremental para desbloquear más capacidades.
Ejecuta `make help` para ver todos los comandos disponibles. Para la configuración manual sin Docker, consulta [CONTRIBUTING.md](https://github.com/ginlix-ai/langalpha/blob/HEAD/CONTRIBUTING.md#manual-setup).
## Documentación
- **[Referencia de la API](https://github.com/ginlix-ai/langalpha/blob/HEAD/docs/api/README.md)** con endpoints para transmisión de chat, espacios de trabajo, estado del flujo de trabajo y más
- **Documentación interactiva de la API** en `http://localhost:8000/docs` cuando el servidor esté en ejecución
## Contacto
Para asociaciones, colaboraciones o consultas generales, comunícate con [[email protected]](mailto:[email protected]).
## Descargo de responsabilidad
LangAlpha es una herramienta de investigación, no un asesor financiero. Nada producido por este software constituye asesoramiento de inversión, una recomendación o una solicitud para comprar o vender ningún valor. Todo el resultado es solo con fines informativos y educativos. Úsalo bajo tu propio criterio: siempre realiza tu propia diligencia debida antes de tomar decisiones de inversión.
## Licencia
Licencia Apache 2.0
| Nivel | Proveedor | Clave Requerida | Lo que Añade |
|---|
| 1 | ginlix-data (proxy alojado) | GINLIX_DATA_URL | Fuente de datos WebSocket en tiempo real, datos intradiarios, datos de horario extendido, datos de opciones |
| 2 | FMP (Financial Modeling Prep) | FMP_API_KEY | Fundamentos de alta calidad, estados financieros, datos macro, datos de analistas |
| 3 | Yahoo Finance (yfinance) | Ninguna — gratis | Historial de precios, fundamentos básicos, resultados, tenencias, transacciones internas, ESG, filtro |
| Categoría | Habilidades |
|---|
| Valoración y Modelización | Modelo DCF, Análisis de Comparables, Modelo de 3 Estados, Actualización de Modelo, Auditoría de Modelo |
| Investigación de Renta Variable | Cobertura Inicial (informe de 30 a 50 páginas), Avance de Resultados, Análisis de Resultados, Seguimiento de Tesis |
| Inteligencia de Mercado | Nota Matutina, Calendario de Catalizadores, Resumen del Sector, Análisis Competitivo, Generación de Ideas, Investigación en X |
| Generación de Documentos | PDF, DOCX, PPTX, XLSX, HTML: crear, editar, extraer |
| Operaciones | Control de Calidad del Deck de Inversión, Automatizaciones Programadas, Perfil de Usuario y Cartera |
|
| Comienza desde un preestablecido seleccionado — Resumen matutino, Escritorio de agente, Investigador o Trader. | O compón el tuyo propio desde la galería de widgets — mercados, inteligencia, personal, agente y espacio de trabajo. |
| Característica | Slack | Discord | Feishu | Telegram |
|---|
| Texto enriquecido / markdown | ✅ | ✅ | ✅ | ✅ | 🔜 |
| Subida de archivos (usuario → agente) | ✅ | ✅ | ✅ | ❌ | ➖ |
| Descarga de archivos (agente → usuario) | ✅ | ✅ | ✅ | ❌ | ➖ |
| Renderizado de imágenes | ✅ | ✅ | ✅ | ❌ | ➖ |
| Interrupciones con supervisión humana | ✅ | ✅ | ✅ | ⚠️ | ➖ |
| Seguimiento de subagentes | ✅ | ✅ | ✅ | ✅ | 🔜 |
| Selección de espacio de trabajo / modelo | ✅ | ✅ | ✅ | ✅ | 🔜 |
| Entrega de automatizaciones (saliente) | ✅ | ✅ | ❌ | ➖ | ➖ |
| Vinculación simplificada de cuentas | ✅ | ✅ | ❌ | ❌ | ➖ |
| Comandos de barra diagonal | ✅ | ✅ | ✅ | ✅ | ➖ |