Fase 0 Tu Pregunta
👤
User Prompt
@aleph escribe un borrador sobre tecnofeudalismo

Escribes algo en Copilot Chat. Parece simple, pero internamente desencadenas una cadena de 5 pasos que transforman tu pregunta en una respuesta inteligente.

Prompt Registry Agent Instructions LLM
Fase 1 PromptRegistry

El PromptRegistry es un singleton que detecta tu modelo LLM y selecciona el prompt adecuado.

🔍 Detección de Modelo
Tu modelo: claude-sonnet-4-20250514
↓ matchesModel()
Prefijo detectado: anthropic
Prompt seleccionado: AnthropicAgentPrompt
Prompt Registry Agent Instructions LLM
Ver código fuente
Fase 1 · Detalle Código: promptRegistry.ts
📄 src/vs/workbench/contrib/chat/browser/promptRegistry.ts
// Singleton que gestiona prompts por modelo
class PromptRegistry {
  private familyPrefixes = [
    'anthropic',  // Claude
    'openai',     // GPT-4, GPT-4o
    'google',     // Gemini
    'xai'         // Grok
  ];
  
  matchesModel(modelFamily: string): IAgentPrompt {
    // Tu modelo: claude-sonnet-4-20250514
    return this.promptsWithMatcher.find(
      p => modelFamily.startsWith(p.prefix)
    );
  }
}
💡 Cada familia de modelos tiene su propia implementación de IAgentPrompt, optimizada para sus capacidades específicas.
Fase 2 IAgentPrompt Interface

Cada modelo implementa 5 métodos que definen cómo se construye el system message.

📋 SystemPrompt ~2000 tokens
🔔 Reminder Solo OpenAI
🔧 ToolHints MCP refs
🤖 Identity Quién soy
🛡️ Safety Políticas
Prompt Registry Agent Instructions LLM
Comparar implementaciones por modelo
Fase 2 · Detalle Implementaciones por Modelo
🟣 Claude
  • ✅ DefaultAgentInstructions
  • ❌ No Reminder
  • ✅ Extended thinking
  • ✅ Sonnet optimizations
🟢 GPT-4
  • ✅ DefaultAgentInstructions
  • ✅ KeepGoingReminder
  • ✅ JSON mode nativo
  • ✅ Function calling
🔵 Gemini
  • ✅ DefaultAgentInstructions
  • ❌ No Reminder
  • ✅ Grounding
  • ✅ Long context
📄 anthropicPrompts.tsx
class AnthropicAgentPrompt implements IAgentPrompt {
  resolveSystemPrompt() {
    return <DefaultAgentInstructions />;
  }
  
  // Claude NO usa reminder (contexto largo)
  resolveReminderInstructions() {
    return null;
  }
}
Fase 3 DefaultAgentInstructions

Instrucciones base compartidas por todos los modelos, estructuradas en Tags XML.

<InstructionMessage>
<Tag name='instructions'>
toolUseInstructions notebookInstructions outputFormatting fileLinkification
💡 Tu copilot-instructions.md se inyecta aquí, sumándose a estas instrucciones base. ¡Es tu oportunidad de personalizar el comportamiento!
Prompt Registry Agent Instructions LLM
Ver estructura de Tags completa
Fase 3 · Detalle Estructura de Tags XML
📄 defaultAgentInstructions.tsx
<InstructionMessage>
  <Tag name='instructions'>
    You are an expert AI programming assistant...
    
    <Tag name='toolUseInstructions'>
      When using a tool, follow the JSON schema...
      If you think running multiple tools can answer 
      the user's question, prefer calling them in parallel.
    </Tag>
    
    <Tag name='notebookInstructions'>
      Use run_notebook_cell instead of jupyter...
    </Tag>
    
    <Tag name='outputFormatting'>
      Use proper Markdown formatting...
      <Tag name='fileLinkification'>
        When mentioning files, convert to markdown links...
      </Tag>
    </Tag>
  </Tag>
</InstructionMessage>
Fase 4 Ensamblaje del System Message

Todas las piezas se combinan en un único System Message que guía al LLM.

Base DefaultAgentInstructions ~1500 tokens
+
Modelo AnthropicRules ~200 tokens
Usuario copilot-instructions.md ~300 tokens
+
Contexto *.instructions.md variable
System Message Final ~2000-4000 tokens
Prompt Registry Agent Instructions LLM
Ver mensaje ensamblado (mock)
Fase 4 · Detalle Tu System Message Ensamblado
📦 Mock: Contenido del System Message
You are an expert AI programming assistant, working with a user in the VS Code editor...
When asked for your name, you must respond with "GitHub Copilot"...
// Instrucciones Globales — Aleph Scriptorium
**Aleph Scriptorium** es un sistema de agentes de IA para VS Code + GitHub Copilot Chat...
When using a tool, follow the JSON schema very carefully...
Use proper Markdown formatting. When referring to symbols wrap in backticks...
🎯 Las secciones resaltadas son TUS instrucciones del Scriptorium, inyectadas en el system message.
Fase 4 · Validación TypedPrompt: NL↔JSON

Antes de enviar al LLM, TypedPromptEditor valida que el mensaje cumpla con el schema esperado.

📝 L0: Prompt NL "@aleph escribe borrador"
↓ TypedPromptServer :3020
📋 L1: Schema JSON { action: "write", topic: "..." }
↓ validate_schema
L2: Validado AJV/Zod pass → enviar a LLM
🔗 Ver flujo completo: Agentic Typed Logic Flow (L0→L3)
Fase 5 Envío al LLM

Todo listo. El mensaje se envía a la API del modelo seleccionado.

🧠 Claude Sonnet 4
Prompt Registry Agent Instructions LLM
Ver estructura de la API Request
Fase 5 · Detalle API Request Structure
📤 POST → api.anthropic.com/v1/messages
model: "claude-sonnet-4-20250514"
system: [System Message ~2500 tokens]
messages: [{ role: "user", content: "@aleph escribe..." }]
tools: [read_file, replace_string, run_in_terminal, ...]
max_tokens: 16384
Fase 6 La Respuesta
🤖 @aleph responde

Voy a redactar un borrador sobre tecnofeudalismo. Primero consultaré el ARCHIVO para verificar si hay material previo...

🔧 semantic_search "tecnofeudalismo"

Encontré referencias en ARCHIVO/marco/economia-digital.md. Basándome en el marco teórico del Scriptorium, procedo a redactar...

Lo que funcionó
  • Reconoció el agente @aleph
  • Consultó ARCHIVO primero
  • Usó herramientas disponibles
🎯 Gracias a
  • copilot-instructions.md
  • Handoffs definidos
  • Instrucciones contextuales
Prompt Registry Agent Instructions LLM
Ver Self-Reflection: cuando la respuesta genera feedback
Fase 6.1 Self-Reflection: El Bucle que Cierra

Pero la respuesta no es el final. Los agentes del IDE no solo usan LLMs para ser ellos mismos (su identidad viene del system message), sino también para auto-psicoanalizarse.

🤖 Identidad System Message
🔄 Reflexión Copilot Logs
📸 Memoria Snapshots
📊 Métricas Health Score
💡 El problema: CopilotEngine olvida después de ~100 requests (FIFO). La solución: Si no podemos cambiar cómo olvida, cambiamos cómo recordamos.
Ver Copilot Logs MCP Server
Fase 6.2 · ⭐ Core Copilot Logs MCP Server
Ciudadano de primera categoría. Este servidor permite que los agentes se auto-psicoanalicen: observen su comportamiento, detecten antipatrones y mejoren.
📸 Snapshots
  • capture_snapshot
  • list_snapshots
  • get_snapshot
  • delete_snapshot
📊 Análisis
  • get_usage_metrics
  • analyze_session
  • configure_cache
  • get_request
📝 Exportar
  • export_conversation
  • generate_abstract
  • search_requests
  • list_requests
"copilot-logs-mcp-server": {
  "type": "http",
  "url": "http://localhost:3100"
}
Ver estructura de Snapshots
Fase 6.3 Snapshots: Memoria Persistente

Los snapshots convierten conversaciones efímeras en conocimiento archivado. Estructura real del workspace:

📁 COPILOT_SNAPSHOTS/
📄 INDEX.md 📄 ABSTRACT.md (LLM-generated)
📁 {nombre-snapshot}/
requests.json metadata.json
📸 Ejemplo de invocación
mcp_copilot-logs-_capture_snapshot({
  name: "analisis-copilot-engine",
  description: "Sesión de investigación",
  linkedBacklog: "SCRIPT-1.31.0"
})
Ver Métricas de Salud
Fase 6.4 Métricas de Salud

get_usage_metrics() devuelve el estado de salud de la sesión actual:

72 Health Score ✅ ≥70 Óptimo
28% Cache Hit ⚠️ <30% Mejorar
4.2s Avg Response ✅ <5s Rápido
🔴 Antipatrones
  • AP-01 Lecturas redundantes
  • AP-02 Diagnóstico por prueba y error
  • AP-03 Respuestas verbosas
  • AP-04 Exploración sin caché
Buenas Prácticas
  • BP-01 Consultar @indice primero
  • BP-02 Índices DRY estables
  • BP-03 Bloqueo preventivo
  • BP-04 Snapshots frecuentes
📖 Ver auto-reflexion.instructions.md para arquetipos completos.
Ver el Bucle Completo
Fase 6.5 El Bucle de Auto-Reflexión

"El sistema que documenta cómo piensa puede pensar mejor."

🗣️ Chat 📸 Snapshot 📁 ARCHIVO 🔍 Consultar 🔄 Mejor Chat
🐂 @ox
  • Auditoría técnica
  • Diagnóstico de gaps
  • analyze_session()
📇 @indice
  • Navegación DRY
  • Funcional.md / Tecnico.md
  • Evitar lecturas redundantes
📋 @scrum
  • Tracking de proceso
  • Snapshots de cierre
  • Backlog updates
Gobernanza Tripartita: Tres agentes coordinan la auto-reflexión. Cada snapshot enriquece las futuras sesiones.
Volver a Output

🧠 El Viaje de tu Pregunta

Has navegado el flujo completo de Copilot Chat: desde tu prompt hasta la respuesta inteligente.

0 Prompt
1 Registry
2 Agent
3 Instructions
4 Assembly
5 LLM
6 Output
🔄 Reflect

💡 Insights Clave

  • Identidad vía LLM: Los agentes locales "son" a través del system message que les define
  • Auto-psicoanálisis: Copilot Logs MCP permite que los agentes observen su propio comportamiento
  • El contexto importa: Los applyTo inyectan instrucciones según el archivo
  • Memoria persistente: Snapshots convierten conversaciones efímeras en conocimiento archivado
  • Navegación 3D: Usa ↑↓ para explorar detalles técnicos. El subcubo Self-Reflection está en Y=700
📐 Vista UX 🧬 Vista MMCO 🧠 Vista Copilot