Gesgocom.SparkClient 1.2.3

🧠 NeuraNetGes v1.5.12

Librería .NET empresarial para la orquestación unificada de Large Language Models (LLM), Agentic RAG y Sistemas de Enjambres Multi-Agente.

Diseñada para entornos de alta carga con soporte nativo de seguridad (Guardrails), persistencia en PostgreSQL y gestión asíncrona de contexto.


Novedades v1.5.12 — Blindaje de seguridad (Fase 1) + IChatClient

  • IChatClient de Microsoft.Extensions.AI 🆕: llmService.AsChatClient(LLMProvider.Anthropic, "claude-sonnet-5") expone NeuraNetGes como cliente estándar del ecosistema .NET (Agent Framework, evals, middleware de telemetría/caching). Chat, streaming, structured output y usage de tokens; compatible con GuardedLLMService.
  • Anti-ReDoS: todas las regex de Guards llevan ahora matchTimeout (250 ms) vía la fábrica GuardRegex — una entrada hostil bloquea la petición en vez de congelar el hilo.
  • SafeLog.Redact(ex) 🆕: las excepciones de SDKs se redactan antes de loguearse (API keys, tokens, passwords) en 28 puntos de la librería.
  • ToolExecutor corregido: GlobalTimeout y MaxParallelism de la política se respetan por fin; tope de 256 KB para argumentos de tools; JSON del LLM parseado con MaxDepth acotado.
  • Fix importante de DI: las tools registradas con AddNeuraNetGesTools(configureTools) no llegaban al contenedor real (se configuraba un registry temporal descartado). Corregido.
  • GenericRequest.Clone() 🆕: clonación completa centralizada (los guards ya no pierden ToolMetadata, NivelPensamiento ni imágenes adicionales).
  • ⚠️ Cambios de comportamiento deliberados: documentos > 20 MB o conversiones > 30 s lanzan excepción (configurable en DocumentConversionOptions); claves de filtros JSONB con comillas, barras o ; se rechazan (letras/dígitos Unicode y espacios sí se admiten).
  • Revisión cruzada post-implementación: el diff fue auditado por Codex y Google Antigravity y sus hallazgos (streams no posicionables en Azure, ChatOptions.Instructions, tope en ingesta directa, regex de conversores…) quedaron corregidos. Detalle y 56 tests nuevos: Documentación/12-implementacion-blindaje-2026.md.

Novedades v1.5.12 — Actualización de dependencias y hoja de ruta 2026

  • 25+ paquetes actualizados a última versión estable (OpenAI 2.12.0, Anthropic 12.35.1, Google.GenAI 1.12.0, ReverseMarkdown 6.1.0, Microsoft.Extensions.* 10.0.9…), con migración al nuevo API de configuración de ReverseMarkdown 6.x en los tres conversores de documentos. Compilación con 0 warnings y sin vulnerabilidades.
  • Aviso Anthropic: los modelos posteriores a Claude Opus 4.6 rechazan Temperature != 1.0 (error 400). La librería solo envía Temperature si se fija explícitamente en la petición.
  • Ingesta de documentos blindada (hallazgo S3 de la auditoría): los conversores PDF/DOCX/HTML/Azure validan ahora el tamaño de entrada y aplican timeout por conversión. Nuevas opciones en DocumentConversionOptions: MaxInputSizeBytes (por defecto 20 MB; 0 o negativo = sin límite, lanza InvalidOperationException si se supera) y ConversionTimeout (por defecto 30 s; TimeSpan.Zero o negativo = sin timeout, lanza TimeoutException si vence). Cambios 100 % aditivos y retrocompatibles.
  • Auditoría técnica completa con hallazgos verificados de seguridad y arquitectura: Documentación/10-auditoria-julio-2026.md.
  • Plan de mejoras 2026 en 4 fases (blindaje de seguridad → IChatClient/OpenTelemetry/resiliencia → RAG híbrido con reranking → MCP y evals): Documentación/11-plan-de-mejoras-2026.md.

Novedades v1.5.9 — Multi-Agent SDK Avanzado

Seis piezas nuevas que extienden el patrón Agent-As-A-Tool original sin breaking changes:

  • Argumentos tipadosTypedAgentBuilder.CreateTypedToolFromAgent permite definir un JSON Schema arbitrario para el sub-agente (no solo {query}) y un PromptBuilder que materializa los argumentos al prompt natural.
  • Handoff con historial conversacionalHistoryProvider opcional en TypedAgentBuilder: el sub-agente arranca con los mensajes previos que se le inyecten antes de su nuevo turno.
  • Memoria persistente por agenteStatefulAgentBuilder.CreateStatefulToolFromAgent envuelve un sub-agente sobre IConversacionManager: cada uno tiene su propia conversación PostgreSQL y se beneficia de Memory 3.0 (condensación asíncrona).
  • Métricas agregadas jefe + sub-agentesIAgentMetricsAggregator thread-safe (basado en ConcurrentQueue). Resuelto vía DI o pasado explícitamente al builder. Reporta tokens, latencia, fallos y desglose por agente.
  • Grafos DAG explícitos (tipo LangGraph)AgentGraph + AgentGraphRunner con orden topológico (Kahn), paralelismo automático por nivel, ramas condicionales, política FailFast o ejecución parcial, e integración con métricas.
  • Salvaguarda anti-bucles A→B→AAgentCallStackTracker detecta ciclos (case-insensitive) y profundidad excesiva (MaxDepth = 10) antes de gastar un solo token. Activo por defecto en los tres builders.

Manual técnico completo en Documentación/09-multi-agent-sdk-avanzado.md.

Compatibilidad: la firma original AgentBuilder.CreateToolFromAgent(name, desc, llm, blueprint) no cambia, pero ahora reporta automáticamente al aggregator del DI y aplica el call-stack tracker. 30 tests unitarios nuevos en NeuraNetGes.Tests/Tools/MultiAgent/.


Novedades v1.5.0 (docs)

  • Documentación /docs completamente actualizada a v1.5.0: versiones SDK, Azure migration (Azure.AI.Extensions.OpenAI), Spark/BGE-M3, Extended Thinking GA, streaming Anthropic, AzureContentSafetyGuard, CountTokensAsync y tabla de compatibilidad ampliada.

Novedades v1.5.0

  • Anthropic streaming real: ChatCompletionStreamAsync usa ahora CreateStreaming() del SDK 12.10+ para emitir tokens en tiempo real (antes usaba un fallback síncrono). Los ThinkingDelta se filtran automáticamente.
  • Extended Thinking GA en Claude: Soporte completo de NivelDePensamiento con ThinkingConfigEnabled (Mínimo=1024t, Medio=8000t, Máximo=20000t) y ThinkingConfigAdaptive. Ya en la API estable del SDK (sin .Beta).
  • Tokenizador Claude nativo: CountTokensAsync usa el tokenizador oficial de Claude de SharpToken 2.0.6 (encoding "claude") en lugar de la estimación length/3.5.
  • Gemini server-side tool invocations: Activado IncludeServerSideToolInvocations para recibir resultados de tools MCP server-side, Google Search y Code Execution.
  • Actualización SDK Azure Foundry: Migrado de Azure.AI.Projects.OpenAI (deprecado) a Azure.AI.Extensions.OpenAI 2.0.0 GA. Método GetProjectOpenAIClient() → propiedad ProjectOpenAIClient.
  • Todos los SDKs de proveedores actualizados a sus últimas versiones estables (OpenAI 2.10.0, Google.GenAI 1.6.1, Anthropic 12.11.0, Azure.AI.Projects 2.0.0).

Novedades v1.4.0

  • Spark BGE-M3 como proveedor RAG: Nuevo RagEmbeddingProvider.Spark que integra BGE-M3 (1024 dims) en el pipeline RAG a coste cero via hardware local.
  • Agentic RAG: Búsqueda vectorial activa donde el LLM decide qué investigar.
  • Multi-Agent SDK: Crea enjambres donde un LLM puede delegar tareas a otros sub-LLMs especializados.
  • Guardrails de Seguridad: Protección contra inyecciones de prompt, PII y fugas de secretos.
  • Memory 3.0: Condensación asíncrona de contexto para mantener costes bajos en chats largos.

🚀 ¿Qué es NeuraNetGes?

NeuraNetGes es más que un simple cliente para APIs de IA. Es un Framework de Orquestación que permite construir aplicaciones inteligentes, seguras y escalables utilizando los mejores proveedores del mercado (OpenAI, Gemini, Anthropic, Grok, Groq, Azure Foundry y Spark) bajo una única interfaz unificada.

Proveedores de Embeddings RAG

Proveedor Modelo Dimensiones Coste
Spark BGE-M3 1024 Cero (hardware local)
Azure Foundry text-embedding-3-large 3072 Por uso
OpenAI text-embedding-3-small/large 1536/3072 Por uso
Google Gemini gemini-embedding-001 768/1536/3072 Por uso

📖 Índice de Documentación Técnica

Para profundizar en cada módulo, consulta nuestras guías detalladas en el directorio /docs:

  1. Arquitectura General: Visión de alto nivel y diseño del sistema.
  2. Módulo LLM: Cómo conectar con OpenAI, Gemini, Anthropic, Grok y Azure Foundry.
  3. Seguridad y Guardrails: Blindaje de prompts y validación de salidas.
  4. Gestión de Contexto: Persistencia en DB y optimización de memoria.
  5. Motor de Herramientas (Tools): Ejecución de funciones C# y Tool Calling.
  6. Sistema RAG (Vectorial): Embeddings, pgvector y recuperación semántica.
  7. Guía de Integración RAG: Manual paso a paso para configurar tu Base de Conocimientos.
  8. Multi-Agent SDK (Swarm): Cómo crear enjambres de agentes colaborativos.
  9. Posibilidades del RAG: Casos de uso avanzados y estrategias de recuperación.
  10. SparkClient: Cliente .NET para los 5 servicios del Nvidia Spark: Chat RAG (Qwen3.5-122B), Embeddings (BGE-M3), Reranker, NER y Chatbot multimodal (Gemma 4 E2B).
  11. Multi-Agent SDK Avanzado: Argumentos tipados, handoff con historial, memoria persistente, métricas agregadas, grafos DAG y salvaguarda anti-bucles.

🖥️ Gesgocom.SparkClient — Hardware Local (Nvidia Spark)

Gesgocom.SparkClient es el cliente .NET para los cinco servicios de IA desplegados en hardware propio (Nvidia Spark vía Tailscale). Disponible como NuGet independiente:

dotnet add package Gesgocom.SparkClient
Servicio Modelo Puerto Uso
Chat RAG Qwen3.5-122B-A10B-GPTQ-Int4 8000 Completions + streaming + tool calling
Embedding BGE-M3 (1024 dims) 8001 Vectores semánticos, coste cero
Reranker BGE-Reranker-v2-m3 8002 Reordenación por relevancia
NER BSC-LT RoBERTa 8003 Extracción PER, LOC, ORG
Chatbot Gemma 4 E2B 8004 Conversacional + multimodal (texto, imagen)
// Sin DI — todos los servicios de un golpe
var spark = new SparkClient();  // host por defecto: http://spark-a4ce

var reply  = await spark.Chat.CompleteAsync([SparkChatMessage.User("Explica el RGPD")]);
var vecs   = await spark.Embedding.EmbedBatchAsync(["texto1", "texto2"]);
var ranked = await spark.Reranker.RerankAsync("contrato menor", docs, topN: 5);
var ents   = await spark.Ner.AnalyzeAsync("Ana García trabaja en Madrid.");
var vision = await spark.Chatbot.CompleteAsync([SparkChatMessage.UserWithImage("¿Qué ves?", imageUrl)]);

Consulta la guía completa del SparkClient para uso con DI, timeouts, streaming, tool calling y mensajes multimodales.


🛠️ Inicio Rápido

1. Instalación

dotnet add package Gesgocom.NeuraNetGes

2. Configuración Mínima

builder.Services.AddNeuraNetGes(options => {
    options.OpenAIApiKey = "tu_clave";
    options.AnthropicApiKey = "tu_clave";
    options.AzureFoundryEndpoint = "https://tu-endpoint.models.ai.azure.com";
    
    // (Opcional) Extracción avanzada de PDFs con Azure Document Intelligence
    options.AzureDocumentIntelligenceEndpoint = "https://tu-document-intelligence.cognitiveservices.azure.com";
});

3. Tu primer Agente con Herramientas

var request = new GenericRequest {
    Model = "gpt-5-mini",
    Prompt = "¿Qué hora es en Madrid?",
    ToolsEnabled = true
};

// Registro automático de herramientas estándar (Reloj, Disco Duro, etc.)
_toolRegistry.RegisterStandardTools();

var response = await _llmService.ChatCompletionAsync(request);
Console.WriteLine(response.Content);

🎯 ¿Por qué elegir NeuraNetGes?

Beneficio NeuraNetGes Otros Wrappers
Agnóstico al Proveedor
Seguridad Nativa
Gestión de Memoria en DB
Orquestación Multi-Agente
RAG Correctivo (C-RAG)

📄 Licencia y Contribución

Este proyecto es propiedad de Gescom. Para más detalles sobre cambios recientes, consulta el CHANGELOG.md.

"Construyendo el futuro de la IA agéntica en .NET"

Showing the top 20 packages that depend on Gesgocom.SparkClient.

Packages Downloads
Gesgocom.NeuraNetGes
NeuraNetGes es una librería de apoyo para el uso de librerías de LLM.
4
Gesgocom.NeuraNetGes
NeuraNetGes es una librería de apoyo para el uso de librerías de LLM.
26
Gesgocom.NeuraNetGes
NeuraNetGes es una librería de apoyo para el uso de librerías de LLM.
39

Version Downloads Last updated
1.2.3 4 07/09/2026
1.2.2 55 05/11/2026