| id |
title |
type |
status |
priority |
epic |
project |
version |
created_date |
updated_date |
| RF-LLM-005 |
Integración de Herramientas (Tools) |
Requirement |
Done |
Alta |
OQI-007 |
trading-platform |
1.0.0 |
2025-12-05 |
2026-01-04 |
RF-LLM-005: Integración de Herramientas (Tools)
Épica: OQI-007 - LLM Strategy Agent
Versión: 1.0
Fecha: 2025-12-05
Estado: Planificado
Prioridad: P0 - Crítico
Descripción
El agente LLM debe poder ejecutar herramientas (tools) para obtener información en tiempo real, realizar cálculos y ejecutar acciones en la plataforma. Las herramientas permiten al agente interactuar con sistemas externos y proporcionar respuestas precisas basadas en datos actuales.
Requisitos Funcionales
RF-LLM-005.1: Herramienta de Market Data
- El agente debe consultar precio actual de cualquier símbolo
- El agente debe obtener OHLCV de múltiples timeframes
- El agente debe consultar indicadores técnicos calculados
- El agente debe obtener datos históricos para análisis
- El agente debe manejar símbolos de stocks y crypto
RF-LLM-005.2: Herramienta de Portfolio
- El agente debe consultar posiciones actuales del usuario
- El agente debe obtener P&L de posiciones
- El agente debe consultar historial de trades
- El agente debe calcular métricas de portfolio
- El agente debe verificar capital disponible
RF-LLM-005.3: Herramienta de Noticias
- El agente debe buscar noticias relevantes por símbolo
- El agente debe obtener sentiment de noticias
- El agente debe filtrar noticias por fecha
- El agente debe identificar noticias de impacto alto
RF-LLM-005.4: Herramienta de ML Signals
- El agente debe consultar predicciones del ML Engine
- El agente debe obtener nivel de confianza de predicciones
- El agente debe acceder a features usados en predicción
- El agente debe obtener histórico de precisión del modelo
RF-LLM-005.5: Herramienta de Paper Trading
- El agente debe poder crear órdenes de paper trading
- El agente debe consultar órdenes pendientes
- El agente debe cancelar órdenes si el usuario lo solicita
- El agente debe calcular impacto de orden propuesta
RF-LLM-005.6: Herramienta de Alerts
- El agente debe crear alertas de precio
- El agente debe listar alertas activas
- El agente debe modificar/eliminar alertas
- El agente debe configurar alertas de indicadores
RF-LLM-005.7: Herramienta de Cálculos
- El agente debe calcular position sizing
- El agente debe calcular risk/reward ratios
- El agente debe convertir monedas
- El agente debe calcular correlaciones entre activos
RF-LLM-005.8: Herramienta de Watchlist
- El agente debe agregar símbolos a watchlist
- El agente debe consultar watchlist actual
- El agente debe remover símbolos de watchlist
- El agente debe obtener resumen de watchlist
Criterios de Aceptación
Feature: Integración de Herramientas
Scenario: Consultar precio actual
Given el usuario pregunta "¿Cuál es el precio de BTC?"
When el agente usa la herramienta get_price
Then obtiene precio actualizado (max 15 seg delay)
And responde con precio formateado
And incluye cambio porcentual 24h
Scenario: Crear orden de paper trading
Given soy usuario Premium
And tengo paper trading habilitado
When digo "Compra 10 acciones de AAPL"
Then el agente usa herramienta create_paper_order
And confirma los parámetros antes de ejecutar
And muestra orden creada
Scenario: Consultar señales ML
Given soy usuario Pro
When pregunto "¿Qué dice el ML sobre TSLA?"
Then el agente usa herramienta get_ml_signals
And muestra predicción con confianza
And explica los features principales
Scenario: Crear alerta de precio
Given digo "Avísame cuando AAPL llegue a $190"
When el agente procesa la solicitud
Then usa herramienta create_alert
And confirma alerta creada
And muestra listado de alertas activas
Scenario: Herramienta no disponible por plan
Given soy usuario Free
When digo "Crea una orden de paper trading"
Then el agente detecta herramienta restringida
And informa que requiere plan Pro
And sugiere upgrade
Reglas de Negocio
| Regla |
Descripción |
| RN-001 |
Confirmar antes de ejecutar acciones (órdenes, alertas) |
| RN-002 |
Paper trading solo para Pro/Premium |
| RN-003 |
ML signals solo para Pro/Premium |
| RN-004 |
Máximo 10 herramienta-calls por mensaje |
| RN-005 |
Cache de market data: 5 segundos |
| RN-006 |
No ejecutar trades reales (solo paper) |
| RN-007 |
Logging de todas las herramientas ejecutadas |
Catálogo de Herramientas
Herramientas de Lectura (Todos los planes)
| Tool ID |
Nombre |
Descripción |
Rate Limit |
| T-001 |
get_price |
Obtener precio actual |
60/min |
| T-002 |
get_ohlcv |
Obtener velas OHLCV |
30/min |
| T-003 |
get_indicators |
Obtener indicadores técnicos |
30/min |
| T-004 |
get_news |
Buscar noticias por símbolo |
10/min |
| T-005 |
get_watchlist |
Obtener watchlist del usuario |
60/min |
| T-006 |
calculate |
Cálculos financieros |
100/min |
Herramientas Pro (Pro/Premium)
| Tool ID |
Nombre |
Descripción |
Rate Limit |
| T-007 |
get_ml_signals |
Obtener señales ML |
30/min |
| T-008 |
get_portfolio |
Obtener portfolio actual |
30/min |
| T-009 |
create_paper_order |
Crear orden paper trading |
10/min |
| T-010 |
cancel_paper_order |
Cancelar orden |
20/min |
| T-011 |
create_alert |
Crear alerta de precio |
20/min |
| T-012 |
manage_alerts |
Listar/modificar alertas |
30/min |
Herramientas Premium
| Tool ID |
Nombre |
Descripción |
Rate Limit |
| T-013 |
backtest_strategy |
Ejecutar backtest |
5/min |
| T-014 |
get_correlations |
Análisis de correlaciones |
10/min |
| T-015 |
portfolio_analysis |
Análisis avanzado portfolio |
10/min |
| T-016 |
export_data |
Exportar datos a CSV |
5/min |
Esquema de Tool Calls
# Ejemplo: get_price
tool_call:
name: "get_price"
parameters:
symbol: "AAPL"
tool_response:
success: true
data:
symbol: "AAPL"
price: 185.50
change_24h: 2.35
change_percent: 1.28
volume: 45000000
timestamp: "2025-12-05T15:30:00Z"
# Ejemplo: create_paper_order
tool_call:
name: "create_paper_order"
parameters:
symbol: "AAPL"
side: "buy"
quantity: 10
order_type: "market"
tool_response:
success: true
data:
order_id: "paper-12345"
status: "pending_confirmation"
estimated_cost: 1855.00
message: "Confirma la orden: Comprar 10 AAPL a mercado (~$1,855)"
Flujo de Ejecución de Tools
┌─────────────────────────────────────────────────────────────┐
│ 1. Usuario envía mensaje │
│ "Compra 5 TSLA si el precio baja a $240" │
└──────────────────────────┬──────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 2. LLM analiza intent │
│ - Acción: crear alerta + orden condicional │
│ - Tools necesarios: get_price, create_alert │
└──────────────────────────┬──────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 3. Verificar permisos │
│ - ¿Usuario tiene plan Pro? ✓ │
│ - ¿Rate limit OK? ✓ │
└──────────────────────────┬──────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 4. Ejecutar tool: get_price("TSLA") │
│ Response: { price: 245.30, ... } │
└──────────────────────────┬──────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 5. Ejecutar tool: create_alert │
│ { symbol: "TSLA", condition: "<=", price: 240 } │
└──────────────────────────┬──────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 6. LLM genera respuesta con resultados │
│ "He creado una alerta para TSLA a $240..." │
└─────────────────────────────────────────────────────────────┘
Dependencias
Épicas Requeridas
- OQI-001: Autenticación (verificar plan del usuario)
- OQI-003: Market data y paper trading
- OQI-006: ML Signals
Servicios Internos
- MarketDataService
- PaperTradingService
- AlertService
- MLSignalService
- PortfolioService
Especificaciones Técnicas Relacionadas
Historias de Usuario Relacionadas
- US-LLM-009: Consultar datos de mercado vía chat
- US-LLM-010: Crear órdenes de paper trading vía chat
Documento de requerimientos - Sistema NEXUS
Trading Platform