2026-04-07 · DATA ROOM
ObservaAgent
IA Diagnóstica: Elimina Interrupciones de Red Proactivamente
ELEVATOR PITCH
ObservaAgent dota a los equipos de SRE y DevOps de un motor de IA avanzado para detectar y diagnosticar fallas de red con precisión. Nuestra solución API-first reduce drásticamente el Tiempo Medio de Resolución, previniendo interrupciones costosas y con una escalabilidad del 90%.
VALUE PROPOSITION
Nuestra IA de 'agentes y críticos' colaborativos ofrece una precisión superior y menos falsos positivos que las soluciones tradicionales, integrándose sin fricciones en sus herramientas de observabilidad existentes.
EXPLAINER.md
ObservaAgent — Collaborative AI Agents for Network Telemetry Fault Detection
Concept
Modern SRE teams are buried in telemetry noise. ObservaAgent is an API-first SaaS that applies a collaborative Agent + Critic pattern to network telemetry data to dramatically reduce Mean-Time-To-Resolution (MTTR).
Instead of a single AI model making fault judgments, ObservaAgent employs two cooperating agents:
| Role | Responsibility |
|---|---|
| Detection Agent | Scans incoming metric streams for threshold violations, anomaly patterns (CPU spikes, latency surges, packet loss, error-rate elevation) |
| Critic Agent | Cross-validates agent findings, correlates related anomalies (e.g. CPU + memory co-occurrence), eliminates false positives, assigns confidence scores |
Architecture
┌─────────────────────────────────────────────────────────────────────┐
│ ObservaAgent API │
│ │
│ POST /v1/telemetry │
│ │ │
│ ▼ │
│ IngestionController ──► AnalysisService.createPendingReport() │
│ │ │ (synchronous, returns incidentId)│
│ │ ▼ │
│ │ IncidentReportRepository.save() │
│ │ │
│ └──────────────► AnalysisService.processAsync() ◄─────────┐ │
│ │ (@Async / Virtual Thread) │ │
│ ▼ │ │
│ ┌───────────────┐ │ │
│ │ Agent Phase │ threshold scan │ │
│ └──────┬────────┘ │ │
│ ▼ │ │
│ ┌───────────────┐ │ │
│ │ Critic Phase │ correlation + confidence │ │
│ └──────┬────────┘ │ │
│ ▼ │ │
│ ┌───────────────┐ │ │
│ │ Persistence │ UPDATE incident report ──┘ │
│ └───────────────┘ │
│ │
│ GET /v1/reports/{incidentId} ◄── poll until status = RESOLVED │
│ GET /v1/reports ◄── list all incidents for owner │
│ │
│ POST /v1/api-keys ◄── public (bootstrap) │
│ GET /v1/api-keys ◄── list own keys (masked) │
│ DELETE /v1/api-keys/{id} ◄── revoke key │
└─────────────────────────────────────────────────────────────────────┘
Key Design Decisions
- Stateless JWT-free auth — every request carries an
X-API-Keyheader validated
ApiKeyAuthFilter against the database. Simple, auditable, revocable.
- Virtual Threads (Java 25) — the async executor in
AsyncConfiguses
Thread.ofVirtual(), allowing thousands of concurrent analysis tasks at minimal
heap cost compared to platform threads.
- Records for all DTOs — %%INLINE4%%, %%INLINE5%%,
IngestionResponse,
- JPA entities for persistence — %%INLINE9%% and %%INLINE10%% are standard
- Constructor injection throughout — all Spring beans use constructor injection;
@Autowired field injection.
Package Layout
com.forge.solutions.observaagentapi
├── config/
│ ├── AsyncConfig.java — virtual-thread @Async executor + @EnableAsync
│ ├── JacksonConfig.java — tools.jackson.* JsonMapper bean (pre-written)
│ └── SecurityConfig.java — Spring Security 7 API-key filter chain
├── controller/
│ ├── ApiKeyController.java — /v1/api-keys CRUD
│ ├── IngestionController.java — POST /v1/telemetry
│ └── ReportController.java — GET /v1/reports
├── dto/
│ ├── ApiKeyResponse.java — Record
│ ├── CreateApiKeyRequest.java — Record
│ ├── IngestionResponse.java — Record
│ ├── MetricDataPoint.java — Record (nested within TelemetryPayload)
│ ├── ReportResponse.java — Record
│ └── TelemetryPayload.java — Record
├── model/
│ ├── ApiKey.java — JPA Entity
│ ├── IncidentReport.java — JPA Entity
│ └── Severity.java — Enum (LOW | MEDIUM | HIGH | CRITICAL)
├── repository/
│ ├── ApiKeyRepository.java — Spring Data JPA
│ └── IncidentReportRepository.java
├── security/
│ └── ApiKeyAuthFilter.java — OncePerRequestFilter for X-API-Key
└── service/
├── AnalysisService.java — Agent + Critic pipeline (@Async)
└── ApiKeyService.java — Key generation & revocation
API Endpoints
API Key Management
POST /v1/api-keys — Create a new API key (public)
POST /v1/api-keys
Content-Type: application/json
{
"ownerId": "acme-corp",
"description": "Production SRE pipeline"
}
Response 201 Created:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"keyValue": "oa-abc123XYZ...",
"ownerId": "acme-corp",
"description": "Production SRE pipeline",
"createdAt": "2026-04-07T10:00:00",
"active": true
}
⚠️ keyValue is only shown once at creation time. Store it securely.
GET /v1/api-keys — List keys (requires X-API-Key)
GET /v1/api-keys
X-API-Key: oa-abc123XYZ...
Response 200 OK: (key values masked)
[
{
"id": "550e8400-...",
"keyValue": "oa-abc123***",
"ownerId": "acme-corp",
"active": true
}
]
DELETE /v1/api-keys/{id} — Revoke a key (requires X-API-Key)
DELETE /v1/api-keys/550e8400-e29b-41d4-a716-446655440000
X-API-Key: oa-abc123XYZ...
Response: 204 No Content
Telemetry Ingestion
POST /v1/telemetry — Ingest telemetry snapshot (requires X-API-Key)
POST /v1/telemetry
Content-Type: application/json
X-API-Key: oa-abc123XYZ...
{
"resourceId": "node-prod-42",
"serviceId": "payment-gateway",
"environment": "production",
"resourceType": "k8s.pod",
"attributes": {
"cluster": "us-east-1",
"namespace": "payments"
},
"metrics": [
{ "name": "cpu.utilization", "value": 94.5, "unit": "%", "labels": {} },
{ "name": "memory.utilization", "value": 88.2, "unit": "%", "labels": {} },
{ "name": "http.request.latency","value": 1540, "unit": "ms", "labels": {} },
{ "name": "error_rate", "value": 7.1, "unit": "%", "labels": {} }
],
"collectedAt": "2026-04-07T10:00:00Z"
}
Response 202 Accepted:
{
"incidentId": "INC-A3F2B1C0",
"status": "PENDING",
"message": "Telemetry accepted. Analysis pipeline started. Poll GET /v1/reports/INC-A3F2B1C0",
"receivedAt": "2026-04-07T10:00:00.123Z"
}
Incident Reports
GET /v1/reports/{incidentId} — Get report (requires X-API-Key)
GET /v1/reports/INC-A3F2B1C0
X-API-Key: oa-abc123XYZ...
Response 200 OK (after analysis completes):
{
"incidentId": "INC-A3F2B1C0",
"serviceId": "payment-gateway",
"environment": "production",
"severity": "CRITICAL",
"status": "RESOLVED",
"affectedComponents": "payment-gateway, node-prod-42, k8s.pod, env:production",
"rootCauseAnalysis": "Root Cause Analysis for Service: payment-gateway\n...",
"agentFindings": "Agent Analysis — 4 anomalies detected...",
"criticValidation": "Critic Validation:\n• Confirmed: Resource exhaustion pattern...",
"detectedAt": "2026-04-07T10:00:00",
"resolvedAt": "2026-04-07T10:00:01"
}
Lifecycle statuses: %%INLINE19%% → %%INLINE20%% (or FAILED)
GET /v1/reports — List all reports for the authenticated owner
GET /v1/reports
X-API-Key: oa-abc123XYZ...
Response 200 OK: Array of ReportResponse objects, newest first.
Business Analysis
| Dimension | Assessment |
|---|---|
| Target Market | SRE / DevOps teams at companies with ≥$10M ARR and 24/7 uptime SLAs |
| Monetization | API-first SaaS — tiered by ingestion volume (events/month) + premium for advanced AI tiers |
| Moat | Agent + Critic reduces false-positive rate vs. threshold-only alerting; proprietary training data grows with usage |
| ROI Signal | 1 hour of downtime for a mid-size e-commerce = $100K+ loss; MTTR reduction from 60 min → 10 min yields clear ROI |
| Competition | Datadog, Dynatrace (expensive, monolithic), PagerDuty (alerting only, no root cause) — ObservaAgent is lightweight & API-native |
| Risk | AI hallucinations in root-cause; cold-start accuracy problem without training data |
| Mitigation | Critic agent provides a second opinion; confidence scores flag low-certainty reports |
How to Run
Prerequisites
- Java 25+
- Maven 3.9+
- PostgreSQL 16+ running locally (or update
application.yml)
1. Configure the Database
Add database credentials to src/main/resources/application.yml (or export as env vars):
spring:
datasource:
url: jdbc:postgresql://localhost:5432/observa_agent
username: postgres
password: yourpassword
jpa:
hibernate:
ddl-auto: create-drop # use 'validate' in production
show-sql: false
2. Build and Run
cd solutions/2026-04-07-observa-agent-api
# Compile only
mvn clean compile
# Package
mvn clean package -DskipTests
# Run
java -jar target/observa-agent-api-0.0.1-SNAPSHOT.jar
3. Quick Test with curl
# Step 1 — Create an API key (public endpoint)
curl -s -X POST http://localhost:8080/v1/api-keys \
-H "Content-Type: application/json" \
-d '{"ownerId":"acme","description":"dev key"}' | jq .
# Copy the keyValue from the response, e.g. oa-xyz...
export API_KEY="oa-xyz..."
# Step 2 — Ingest telemetry
curl -s -X POST http://localhost:8080/v1/telemetry \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{
"resourceId":"node-01","serviceId":"payments","environment":"production",
"metrics":[
{"name":"cpu.utilization","value":95,"unit":"%","labels":{}},
{"name":"error_rate","value":8,"unit":"%","labels":{}}
],
"collectedAt":"2026-04-07T10:00:00Z"
}' | jq .
# Copy incidentId from response, e.g. INC-ABCD1234
export INCIDENT_ID="INC-ABCD1234"
# Step 3 — Poll for the report (wait ~1 second for async analysis)
sleep 1
curl -s http://localhost:8080/v1/reports/$INCIDENT_ID \
-H "X-API-Key: $API_KEY" | jq .
# Step 4 — List all reports
curl -s http://localhost:8080/v1/reports \
-H "X-API-Key: $API_KEY" | jq .
# Step 5 — Health check (no key required)
curl -s http://localhost:8080/actuator/health | jq .
References
- Primary Research Paper: Collaborative AI Agents for Network Fault Detection
- OpenTelemetry Specification
- Spring Boot 4.0 Reference
- Java 25 Virtual Threads (JEP 491)
- Jakarta Persistence 3.2
FinOps Analysis para ObservaAgent
Resumen de Costos y Rentabilidad
El modelo de micro-startup ObservaAgent opera con una estructura de costos operativos inicial muy ajustada, lo que se traduce en un margen de beneficio excepcionalmente alto, incluso con un número limitado de clientes. Esto es característico de las soluciones SaaS API-first con un fuerte apalancamiento en servicios de IA de bajo costo.
- Ingresos Mensuales Estimados: $500 (basado en 5 clientes pagando $100/mes por un plan básico).
- Costos Operativos Mensuales Totales: $60
Desglose Detallado de Costos
La mayor parte de los costos operativos recae en la infraestructura cloud base para la ejecución de la API de Spring Boot y la base de datos PostgreSQL. Los costos de LLM, aunque esenciales para la propuesta de valor, son sorprendentemente bajos gracias a la eficiencia de modelos como %%INLINE28%% y %%INLINE29%% a volúmenes de micro-startup.
Estrategias de Optimización FinOps
Para mantener este alto margen de beneficio y escalar de manera eficiente, ObservaAgent debe considerar las siguientes optimizaciones FinOps:
- Optimización del Uso de LLM:
Claude 3 Sonnet) solo para la etapa crítica de análisis de causa raíz.
- Optimización de Infraestructura Cloud:
AnalysisService) para la API y el motor de análisis asíncrono. Esto permitiría escalar a cero cuando no hay tráfico, reduciendo drásticamente los costos fijos de cómputo.
* Aprovechamiento de Niveles Gratuitos: Asegurarse de maximizar el uso de los niveles gratuitos de AWS/GCP/Azure durante el primer año.
* Instancias Reservadas/Planes de Ahorro: Una vez que la carga de trabajo sea predecible, invertir en instancias reservadas o planes de ahorro para EC2 y RDS para obtener descuentos significativos.
* Optimización de Base de Datos: Monitorear el rendimiento de PostgreSQL y optimizar índices y consultas. Si el volumen de datos es muy bajo al inicio, considerar hospedar PostgreSQL en la misma instancia EC2 para eliminar el costo de RDS dedicado (aunque con mayor riesgo de SPOF).
- Monitoreo y Alertas de Costos:
Conclusión
ObservaAgent demuestra un modelo de negocio con una excelente economía unitaria para una micro-startup. La clave para mantener esta rentabilidad a medida que crece será la gestión proactiva de los costos de LLM y la optimización de la infraestructura cloud para escalar de manera eficiente y elástica, evitando el sobreaprovisionamiento y aprovechando las opciones de pago por uso.
MVP FEATURES
- 01API de Ingesta: Un endpoint REST para recibir datos de telemetría en formato estándar (ej. OpenTelemetry).
- 02Motor de Análisis Asíncrono: Un sistema de agentes de IA que procesa los datos ingeridos para detectar anomalías, validarlas con agentes 'críticos' y determinar la causa raíz probable.
- 03API de Reportes de Incidentes: Un endpoint para que los clientes recuperen los informes de fallas estructurados, incluyendo severidad, componentes impactados y análisis de causa.
- 04Gestión de Claves de API: Funcionalidad básica para que los usuarios generen y gestionen sus claves de API para un acceso seguro.
“Minimiza interrupciones de red con IA que diagnostica y resuelve fallas antes de que impacten.”
Revisemos el motor de IA y preparemos la estrategia de validación con clientes piloto.
NetSentry AI
85NetSentry AI capacita a los equipos de SRE y DevOps para convertir el vasto ruido de la telemetría en análisis de causa raíz instantáneos, ahorrando millones en tiempo de inactividad. Nuestra innovadora arquitectura de agentes colaborativos, validada con un Health Score del 87%, ofrece claridad y eficiencia sin precedentes.
RootCause AI
81RootCause AI es una API que utiliza agentes de IA colaborativos para diagnosticar la causa raíz de fallos de red en segundos, no en horas, eliminando la fatiga de alertas para equipos SRE/DevOps. Con un Health Score del 87% y un Margen de Beneficio del 92%, ofrecemos una solución escalable y financieramente sólida.
NetGuardian AI
77NetGuardian AI equipa a equipos SRE/DevOps con IA colaborativa para detectar y diagnosticar automáticamente la causa raíz de fallos de red en telemetría compleja. Esto reduce drásticamente el tiempo de inactividad y las pérdidas de ingresos, demostrando una sólida viabilidad (Profit Margin 77%, Scalability 100%) y un alto potencial de inversión (VC Score 71, SharkTank INVEST).