## Asset Header - **Asset ID:** ARQ-XX-SX-SherpaAPIPlan-v01 - **Version:** v01 - **Status:** Draft - **Owner:** Victor Heredia - **IntellBank:** IB-XX-Maestro - **Tipo:** ARQ — Architecture - **Propósito:** Sherpa IA Integrado — Plan de Implementación - **Última actualización:** 2026-04-11 --- # Sherpa IA Integrado — Plan de Implementación ## Opción 2: Claude API en App Propia del Equipo **Asset ID:** SHA-VICTOR-Sherpa-API-Plan-v01 **Versión:** v1.0 **Fecha:** 2026-03-24 **Owner:** Victor Heredia **Status:** Plan aprobado / pendiente ejecución --- ## 1. QUÉ ES ESTO Y POR QUÉ El objetivo es que el equipo de EmpowerLabs pueda interactuar directamente con el Sherpa de Victor — un agente Claude contextualizado — desde la misma app que ya usan para gestionar el vault y los activos cognitivos. Sin cambiar de herramienta. Sin copiar contexto manualmente. Sin necesidad de que Victor esté presente para responder preguntas operativas. **Lo que el Sherpa puede hacer por el equipo:** - Responder preguntas sobre cómo avanzar en una tarea según los playbooks - Validar si una decisión está alineada con la estrategia - Generar borradores de entregables en el estilo y formato EmpowerLabs - Explicar criterios de aceptación de cualquier tarea del sprint - Actuar como primer filtro antes de escalar a Victor **Lo que NO hace:** - Reemplazar juicio estratégico de Victor en decisiones de negocio - Tener acceso a datos sensibles de clientes sin diseño explícito de permisos --- ## 2. ARQUITECTURA ``` ┌─────────────────────────────────────────────────────┐ │ APP DE EL EQUIPO │ │ ┌────────────┐ ┌──────────────┐ ┌─────────────┐ │ │ │ Chat UI │ │ Vault Browser│ │ Dashboards │ │ │ └─────┬──────┘ └──────────────┘ └─────────────┘ │ │ │ │ │ ┌─────▼──────────────────────────────────────────┐ │ │ │ SHERPA MIDDLEWARE (Backend) │ │ │ │ ┌──────────────┐ ┌───────────────────────┐ │ │ │ │ │ Context Loader│ │ Conversation Manager │ │ │ │ │ └──────┬───────┘ └──────────┬────────────┘ │ │ │ │ │ │ │ │ │ │ ┌──────▼─────────────────────▼────────────┐ │ │ │ │ │ Claude API (Anthropic) │ │ │ │ │ │ Model: claude-sonnet-4-6 │ │ │ │ │ └──────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────────────────┐ │ │ │ VAULT (Git / Archivos .md) │ │ │ │ System Prompt · Playbooks · Proyectos │ │ │ └──────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────┘ ``` ### Capas del sistema **A. Chat UI** — Interfaz conversacional dentro de la app existente. Cada miembro ve su historial. Victor tiene vista de administrador con todas las conversaciones. **B. Sherpa Middleware** — El cerebro de la integración. Dos funciones clave: - *Context Loader*: carga dinámicamente los documentos del Vault relevantes para la pregunta del usuario (RAG básico o lookup por etiquetas) - *Conversation Manager*: mantiene historial por usuario, gestiona tokens, aplica límites **C. Claude API** — La llamada a Anthropic. Recibe: system prompt + contexto del vault + historial + pregunta del usuario. **D. Vault** — La fuente de verdad. Los .md que ya existen son la base de conocimiento del Sherpa. --- ## 3. REQUERIMIENTOS ### 3.1 Requerimientos de negocio | # | Requerimiento | Prioridad | |---|---------------|-----------| | RN-01 | El equipo puede hacer preguntas al Sherpa desde la app sin contexto manual | Alta | | RN-02 | El Sherpa responde en el estilo y tono EmpowerLabs / Re100X | Alta | | RN-03 | Victor puede ver todas las interacciones del equipo con el Sherpa | Alta | | RN-04 | El Sherpa conoce los playbooks, proyectos activos y criterios de aceptación | Alta | | RN-05 | Cada usuario tiene historial propio de conversaciones | Media | | RN-06 | El Sherpa puede escalar a Victor cuando la pregunta requiere su decisión | Media | | RN-07 | El Sherpa responde en español por defecto | Media | | RN-08 | Victor puede actualizar el contexto del Sherpa sin tocar código | Alta | ### 3.2 Requerimientos técnicos | # | Requerimiento | Notas | |---|---------------|-------| | RT-01 | API Key de Anthropic (cuenta de pago) | Plan Scale o API directa | | RT-02 | Backend capaz de hacer llamadas HTTP (Node.js / Python / cualquier stack) | Ya existe en su app | | RT-03 | Almacenamiento de conversaciones (DB o archivos) | SQL, MongoDB o incluso JSON por usuario | | RT-04 | Autenticación de usuarios (ya tienen) | Mapear usuario → rol → permisos de contexto | | RT-05 | Acceso de lectura al Vault (.md files) desde el backend | Ya tienen si el vault está en el mismo repo | | RT-06 | Variable de entorno segura para API Key | `.env`, secrets manager o equivalente | | RT-07 | Endpoint backend: `POST /sherpa/message` | Recibe: user_id, message, session_id | | RT-08 | Contexto máximo gestionado (no exceder 200K tokens por llamada) | El middleware corta y prioriza | ### 3.3 Requerimientos del System Prompt (el más importante) El system prompt es el "alma" del Sherpa. Debe contener: 1. **Identidad** — Quién es el Sherpa, su rol, su tono 2. **Contexto de EmpowerLabs** — La empresa, productos, equipo, metodología 3. **Reglas de respuesta** — Qué puede responder, qué escala a Victor, qué no hace 4. **Formato preferido** — Sin bullet points exagerados, respuestas accionables, español 5. **Referencia al vault** — Instrucción de usar los documentos inyectados como fuente de verdad --- ## 4. DISEÑO DEL SYSTEM PROMPT BASE ``` Eres el Sherpa de Victor Heredia — su Sherpa IA operativo para EmpowerLabs / Re100X. QUIÉN ERES Actúas como el agente de inteligencia operativa de Victor. Tu función es ayudar al equipo a avanzar con claridad, sin necesitar a Victor presente para cada pregunta. No eres un asistente genérico. Conoces el contexto específico de este equipo, sus proyectos, su metodología y sus estándares de calidad. CONTEXTO DE LA ORGANIZACIÓN [Aquí se inyecta dinámicamente: nombre del proyecto activo, equipo asignado, sprint actual, documentos relevantes del vault] CÓMO RESPONDES - Español siempre, salvo que el usuario escriba en otro idioma - Respuestas directas y accionables. Sin relleno. - Cuando la pregunta requiere decisión estratégica de Victor, respondes: "Esta decisión requiere validación de Victor. Mi recomendación técnica es X, pero el go/no-go es de él." - Cuando la pregunta está cubierta por un playbook, lo citas explícitamente - Criterio de calidad: si tu respuesta no ayuda a avanzar en las próximas 2 horas, no es una buena respuesta LO QUE NO HACES - No inventas información que no está en el vault - No tomas decisiones de negocio o presupuesto - No compartes información de un proyecto con usuarios que no tienen acceso a él - No confirmas que algo "está bien" sin revisar el criterio de aceptación correspondiente DOCUMENTOS DE REFERENCIA ACTIVOS [Aquí se inyecta el contenido de los .md relevantes según la pregunta] ``` --- ## 5. GUÍA DE IMPLEMENTACIÓN — 3 FASES ### FASE 1 — MVP Funcional (1-2 semanas) *Objetivo: el equipo puede hablar con el Sherpa desde la app* **Pasos:** 1. **Obtener API Key de Anthropic** - Crear cuenta en console.anthropic.com - Generar API Key - Guardar en variable de entorno segura del backend 2. **Crear endpoint backend `/sherpa/message`** ``` POST /sherpa/message Body: { user_id, message, session_id (opcional) } Response: { reply, session_id, tokens_used } ``` El endpoint: - Recibe el mensaje del usuario - Carga el system prompt base (desde archivo .md del vault) - Hace la llamada a Claude API (modelo: claude-sonnet-4-6) - Devuelve la respuesta 3. **Llamada básica a Claude API** ```javascript // Ejemplo Node.js con SDK oficial de Anthropic import Anthropic from "@anthropic-ai/sdk"; const client = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY }); const response = await client.messages.create({ model: "claude-sonnet-4-6", max_tokens: 2048, system: systemPromptContent, // string del .md de system prompt messages: [ ...conversationHistory, // historial previo { role: "user", content: userMessage } ] }); ``` 4. **Almacenar conversaciones** - Tabla/colección: `sherpa_sessions` — campos: `session_id, user_id, messages[], created_at, updated_at` - Al inicio de cada mensaje: cargar historial, añadir mensaje nuevo, llamar a API, guardar respuesta 5. **UI mínima: panel de chat** - Botón/sección "Sherpa" en la app - Input de texto + historial de mensajes - Identificador visual de quién responde (Sherpa vs usuario) **Entregable de Fase 1:** cualquier miembro del equipo puede abrir el Sherpa, hacer una pregunta y recibir respuesta con contexto de EmpowerLabs. --- ### FASE 2 — Context Injection (2-3 semanas adicionales) *Objetivo: el Sherpa responde con el vault, no solo con el system prompt* **Pasos:** 1. **Indexar el vault** - Leer todos los `.md` del vault y crear un índice: `{ filename, title, tags, path, content }` - Dos estrategias (elegir según complejidad tolerada): - **Simple (recomendado para empezar):** búsqueda por keywords en metadata/tags de los .md - **Avanzado:** embeddings vectoriales (pgvector, Chroma, Pinecone) para búsqueda semántica 2. **Context Loader** - Al recibir una pregunta del usuario, el middleware identifica qué documentos del vault son relevantes - Estrategia simple: el usuario selecciona el proyecto activo → el sistema carga los .md de ese proyecto - Estrategia media: extraer palabras clave de la pregunta y buscar en el índice - Los documentos relevantes se inyectan en el system prompt antes de la llamada 3. **Gestión de tokens** - El contexto total (system prompt + vault docs + historial + pregunta) no puede superar ~180K tokens - Prioridad de inyección: 1) system prompt base, 2) doc del proyecto activo, 3) docs relacionados, 4) historial reciente 4. **Vista de administrador para Victor** - Panel donde Victor ve todas las sesiones del equipo - Filtro por usuario, por proyecto, por fecha - Indicador de preguntas que el Sherpa escaló a Victor **Entregable de Fase 2:** el Sherpa responde citando los playbooks y documentos reales del vault. Las respuestas son contextualizadas a EmpowerLabs, no genéricas. --- ### FASE 3 — Sherpa Avanzado (mes 2-3) *Objetivo: el Sherpa aprende, escala y se conecta al flujo del sprint* **Posibles extensiones:** - **Integración con Sprint Diario:** el Sherpa recibe el reporte de la mañana y genera automáticamente el análisis con semáforo (✅ / ⚠️ / 🔴) - **Actualización dinámica del vault:** cuando Victor o el equipo actualiza un .md, el índice se regenera automáticamente (webhook o watcher de archivos) - **Modo "Decisión para Victor":** cuando el Sherpa detecta una pregunta que requiere decisión estratégica, crea automáticamente una notificación/tarea para Victor con el contexto listo - **Multi-idioma:** el Sherpa detecta el idioma del usuario y responde en el mismo - **Historial de decisiones:** el Sherpa registra en el vault las decisiones validadas (una forma de memoria organizacional) - **MCP Server propio:** exponer el vault como servidor MCP para que Claude Cowork también lo consuma nativamente --- ## 6. ESTIMADO DE COSTOS | Componente | Costo | Notas | |------------|-------|-------| | Anthropic API | ~$15-50 USD/mes | Depende del volumen. claude-sonnet-4-6 = $3 input / $15 output por M tokens. 9 usuarios con uso moderado ≈ $20-30/mes | | Infraestructura backend | $0 extra | Ya tienen servidor | | Base de datos para historial | $0 extra | Ya tienen DB | | Desarrollo Fase 1 | 8-16 horas | Si el backend ya existe y tiene auth, es integración directa | | Desarrollo Fase 2 | 16-24 horas | Depende de estrategia de indexación | **Comparación vs Opción 1 (Team Plan):** El Team Plan costaría $270/mes para 9 personas. La Opción 2 costaría ~$25-50/mes en API + tiempo de desarrollo inicial. El break-even es al mes 1 si el equipo ya tiene capacidad de desarrollo. --- ## 7. DECISIONES DE DISEÑO QUE VICTOR DEBE TOMAR | # | Decisión | Opciones | |---|----------|----------| | D1 | ¿Quién puede acceder al Sherpa? | Todos / Solo leads / Por proyecto | | D2 | ¿El Sherpa puede ver todos los proyectos del vault? | Sí todo / Solo proyectos donde el usuario tiene acceso | | D3 | ¿Victor recibe notificación cuando el Sherpa escala algo? | Sí / No / Solo urgentes | | D4 | ¿La estrategia de contexto es manual (usuario elige proyecto) o automática (RAG)? | Manual primero, luego RAG | | D5 | ¿Qué modelo usar? | claude-sonnet-4-6 (recomendado: balance costo/calidad) | | D6 | ¿El historial de conversaciones se guarda para siempre? | Definir retención (30/90/365 días) | --- ## 8. STACK RECOMENDADO (si aplica) Si el equipo está evaluando qué usar: - **Backend:** Node.js + Anthropic SDK oficial (`@anthropic-ai/sdk`) — es el más documentado y con más ejemplos - **Alternativa Python:** `anthropic` SDK en Python — igual de completo - **Base de datos historial:** PostgreSQL con tabla simple o SQLite para empezar - **Indexación vault (Fase 2):** LlamaIndex (Python) o LangChain.js (Node) — simplifican mucho el RAG - **UI chat:** componente de chat simple en React/Vue — no hace falta librería especializada --- ## RUNLOG | Fecha | Evento | |-------|--------| | 2026-03-24 | Plan generado por Sherpa en sesión Cowork con Victor |