Diseñado para Velocidad, Control y Trazabilidad

POCLI rechaza los prompts monolíticos inflados. Cada especialista se ejecuta en un proceso Linux aislado con herramientas acotadas por rol, gobernanza SDLC determinista y latencia inicial sub-segundo.

Capacidades

Minimal Harness y Eficiencia de Tokens

Inspirado en Pi (pi-mono) y en los hallazgos empíricos de Harness Engineering (arXiv:2609.00006), POCLI sustituye prompts monol...

Contexto en 3 Niveles y SQLite DAG

Construido sobre Node.js Native SQLite (node:sqlite) en modo WAL + FTS5, POCLI almacena todo el historial de ingeniería en $HOM...

QA Autónoma y Robot Framework

Siguiendo el principio estricto de “No Auto-Revisión”, el Senior Developer jamás valida su propio código. Cuando las pruebas un...

Agente PM e Informes 100% HTML

El Project Manager (PM) ofrece visibilidad unificada de todos los especialistas virtuales sin interferir nunca en contratos téc...

Knowledge Notebooks y RAG Híbrido

POCLI adapta las investigaciones sobre citas verificables (arXiv:2311.09533) y el paradigma NotebookLM / Open Notebook directam...

Sandboxing Linux y Router Multi-Modelo

Cada especialista virtual se ejecuta en un proceso hijo independiente en Linux comunicándose por JSON-RPC 2.0 sobre stdio delim...

Harness Engineering en IA

Matriz de Referencia: Capacidades Fundamentales de un AI Agent Harness

Taxonomía arquitectónica consolidada de los 9 pilares indispensables de un AI Agent Harness, qué problemática resuelven frente a una llamada directa a la API del LLM y su estado exacto en POCLI.

9 Pilares Consolidados 7 Implementados en POCLI 2 Parciales (Roadmap)
Pilar / Capacidad Fundamental ¿Qué es? (Definición) Problemática que resuelve Componentes clave / Conceptos Nivel de prioridad Estado e Implementación en POCLI
01 Bucle operativo y control de ejecución

Orquesta el ciclo maestro (prompt -> inferencia -> despacho de herramientas -> observación), con streaming hacia la interfaz y límites estrictos de iteración y tiempo.

Llamar directamente a la API impide autocorregirse ante fallos, provoca bucles infinitos, bloquea la UI y deja peticiones colgadas sin control de salida.

  • Turn loop dirigido por estado
  • Streaming JSON-RPC (agent.streamChunk)
  • Límite de ciclos (MAX_QA_CORRECTION_CYCLES = 3)
  • Timeouts de worker (120s)
  • Detección de bucles (stuck)
Imprescindible (MVP)
Implementado
Cómo se implementa en POCLI: PoCliOrchestrator gobierna cada turno vía JSON-RPC 2.0 sobre stdio hacia procesos worker (PersistentAgentRuntime), retransmite salida incremental por agent.streamChunk al TUI (CommandCenterApp), limita el bucle DEV<->QA a MAX_QA_CORRECTION_CYCLES = 3 y aplica timeouts de 120s por turno.
Pendiente: Detector semántico de estancamiento (stuck loop detector ante fallos repetidos idénticos) y streaming HTTP SSE nativo token a token en todos los adaptadores.
02 Pasarela y enrutamiento de modelos

Capa unificada multi-proveedor que normaliza peticiones LLM, controla cuotas en ventanas deslizantes, puntúa candidatos y ejecuta failover automático.

Acoplar el agente a una sola API provoca caídas ante errores HTTP 429/503, latencias impredecibles, bloqueo de proveedor y gestión frágil de credenciales.

  • Model gateway multi-proveedor
  • Bandit routing (auto:smart / fast / reliable)
  • Ventanas RPM / RPD / TPM / TPD
  • Cooldown y fallback en cascada
  • Limpieza de bloques
Imprescindible (MVP)
Implementado
Cómo se implementa en POCLI: LLMGateway y LLMRouter (llm-router.ts) unifican OpenRouter, Groq, Cerebras, Gemini, Pollinations, Ollama, Anthropic y OpenAI con presets inteligentes, control de cuotas y cooldown, failover en cascada ante HTTP 429/503 o timeouts y saneamiento con cleanModelOutput().
Pendiente: Reintentos con exponential backoff + jitter por código de error antes de conmutar de proveedor y evaluación shadow/canary automatizada.
03 Sistema de herramientas tipadas

Registro y ejecutor determinista de capacidades (archivos, artefactos, tests, QA) acotadas por rol mediante contratos validados y carga controlada.

Permitir salida de texto libre rompe la automatización, expone ficheros fuera del workspace e infla el contexto cargando herramientas innecesarias.

  • Tool calling nativo y bloques tipados
  • Permisos por rol (allowedTools)
  • Esquemas Zod
  • Ejecución acotada (run_unit_tests, QA)
  • Carga diferida JIT
Imprescindible (MVP)
Implementado
Cómo se implementa en POCLI: harnesses.ts define el subconjunto allowedTools por rol (architect, developer, qa, pm) y PoCliOrchestrator.executeAgentToolCalls() ejecuta herramientas tipadas de artefactos, código, tests, entorno QA (install_qa_tool, run_qa_suite) y handoffs. LLMGateway combina choiceMsg.tool_calls nativos con extractToolCalls() y contratos Zod.
Pendiente: Inyección nativa del array JSON Schema tools[] en el payload HTTP de todos los proveedores y carga diferida Just-In-Time (JIT) para catálogos extensos.
04 Ingeniería de contexto y memoria

Ensamblador determinista que combina prefijos normativos cacheables, memoria en capas, checkpoints de compactación sin pérdida e indexación RAG híbrida local.

Un historial sin poda sufre context rot (lost in the middle), olvida requisitos y ADR aprobados y dispara el gasto de tokens en cada turno.

  • Context Window en 3 Niveles
  • Memoria en 4 Capas (CONVERSATIONAL / WORKING / PROJECT / AGENT)
  • Compactación sin pérdida (/compact)
  • RAG Híbrido (SHA-256 + FTS5 + vectores)
Imprescindible (MVP)
Implementado
Cómo se implementa en POCLI: PoCliDatabase.assembleAgentContextWindow() ensambla 3 niveles: (T1) prefijo normativo cacheable, (T2) memoria en 4 capas + último checkpoint de context_compactions vía /compact (marca compacted_into_id preservando el historial) y (T3) turnos activos. NotebookRagEngine indexa conocimiento con hash SHA-256 + SQLite FTS5 + similitud vectorial y citas trazables.
Pendiente: Disparo automático de la compactación al superar un umbral porcentual de la ventana del modelo sin necesidad de invocar /compact manualmente.
05 Gobernanza, seguridad y límites

Controles duros policy-as-code, integridad de escritura centralizada, puertas humanas (HITL) y aislamiento del SO para evitar acciones destructivas o fuera de rol.

Sin barreras deterministas, un modelo puede modificar artefactos ajenos, saltarse fases críticas, corromper la base de datos o ejecutar comandos peligrosos en el host.

  • Máquina de estados SDLC (8 fases)
  • AuthorityGuard
  • Sole Write Owner + concurrencia optimista
  • HITL (/approve, /accept)
  • Linux Bubblewrap (bwrap) & OCI Podman
Imprescindible (MVP)
Implementado
Cómo se implementa en POCLI: AuthorityGuard (workflow.ts) valida transiciones de fase y permisos de artefactos por rol; PoCliCoordinator actúa como Sole Write Owner en SQLite con idempotencia (requestId), concurrencia optimista (expectedVersion) y coordinator_audit_log; LinuxAgentProcessRunner aísla workers con /usr/bin/bwrap (--unshare-pid) o Podman OCI, y el PO controla las puertas humanas con /approve y /accept.
Pendiente: Perfiles seccomp obligatorios por defecto y denegación granular de red por herramienta individual incluso en modo ligero local.
06 Persistencia, estado y durabilidad

Almacenamiento transaccional ACID de sesiones, artefactos versionados, memoria y checkpoints para recuperar cierres inesperados y auditar todo el ciclo de vida.

Guardar el estado solo en memoria RAM provoca pérdida total ante caídas del proceso, impide auditar decisiones y bloquea proyectos de varias sesiones.

  • SQLite WAL nativo (node:sqlite)
  • Historial estructurado de sesión
  • Checkpoints (context_compactions)
  • REPL SQL integrado (pocli db)
  • Reanudación y time-travel replay
Imprescindible (MVP)
Implementado
Cómo se implementa en POCLI: PoCliDatabase (database.ts) persiste proyectos, mensajes, artefactos versionados, memoria en 4 capas, checkpoints de compactación y logs de auditoría en $HOME/.pocli/pocli.sqlite mediante SQLite WAL nativo de Node.js. Incluye consola interactiva pocli db y consultas CLI.
Pendiente: Reproducción determinista paso a paso (time-travel replay) de cualquier turno pasado y bifurcación/retroceso (branch/rewind) desde snapshots inmutables.
07 Orquestación multi-agente y delegación

Ejecución coordinada de especialistas aislados en procesos independientes con transferencia estructurada de contexto y bucles autónomos de verificación.

Un único agente generalista acaba evaluando su propio código, mezcla responsabilidades incompatibles y contamina su ventana con ruido de otras tareas.

  • Workers persistentes por rol y proyecto
  • Bus JSON-RPC 2.0
  • Handoffs tipados ([ARQ->DEV], [DEV->QA], [QA->ARQ])
  • QA aislado (.venv + Mutation Testing)
Avanzado / Producción
Implementado
Cómo se implementa en POCLI: PersistentAgentRuntime levanta workers aislados por (projectId, role) entre architect, developer, qa y pm. Cada rol recibe solo su contexto ensamblado y citas RAG sin ruido cruzado. PoCliOrchestrator automatiza los handoffs [ARQ->DEV], [DEV->QA], el ciclo DEV<->QA y la validación externa con Robot Framework y Mutation Testing (TC-MUT-001).
Pendiente: Ejecución paralela simultánea (fan-out / fan-in) de múltiples subagentes developer sobre submódulos disjuntos del repositorio.
08 Extensibilidad y estándares

Puntos de extensión estandarizados para acoplar servidores de herramientas externas, plugins empaquetables, overrides de rol y habilidades reutilizables sin tocar el núcleo.

Programar integraciones ad-hoc para cada servicio externo convierte el arnés en un monolito rígido difícil de extender entre equipos y repositorios.

  • Cliente MCP stdio (McpRegistry)
  • ACL de servidores MCP por rol
  • Overrides (~/.pocli/behavior/)
  • Plugins y sistema de skills
Avanzado / Producción
Parcial
Cómo se implementa en POCLI: McpRegistry (mcp-client.ts) descubre e invoca servidores Model Context Protocol (MCP) sobre JSON-RPC 2.0 stdio aplicando listas blancas por rol (allowedRoles), y harnesses.ts permite sobreescribir el comportamiento de cada especialista desde $HOME/.pocli/behavior/system/.md.
Pendiente: Cargador declarativo de paquetes/plugins de terceros, registro dinámico de skills (SKILL.md / lifecycle hooks) y transporte MCP remoto por HTTP/SSE.
09 Telemetría, costes y evaluación

Observabilidad cuantitativa de latencia, presupuestos de tokens, logs rotativos, informes ejecutivos y batería de evaluaciones E2E del propio arnés.

Sin métricas ni evals reproducibles del arnés es imposible detectar regresiones al cambiar de modelo o prompt, ni controlar cuellos de botella y costes reales.

  • Logs rotativos (pocli logs)
  • Contabilidad de tokens y ahorro
  • Informes HTML del PM (deliveries/)
  • Evals E2E y TUI virtual (pocli e2e, tui-test)
  • TTFT exacto, costes USD y OTLP
Avanzado / Producción
Parcial
Cómo se implementa en POCLI: Logger mantiene anillo en memoria y rotación en archivo ($HOME/.pocli/logs/pocli.log); LLMRouter mide latencyMs por proveedor; PoCliDatabase contabiliza tokens activos y ahorrados; PmReporter genera informes HTML en deliveries/; y pocli e2e / pocli tui-test junto a Vitest + Mutation Testing verifican el arnés de extremo a extremo.
Pendiente: Medición desglosada de TTFT (Time-To-First-Token) en el TUI, libro de costes USD por modelo y exportador estándar OpenTelemetry (OTLP).