Asistente de código IA para VS Code con orquestación multiagente, memoria persistente y conciencia del proyecto — usa Copilot, Groq o ambos (Groq potencia Copilot). Mantiene un estado vivo y consciente del código y la lógica del proyecto.
Qué hace diferente a Agent System: Memoria persistente local (sesión, proyecto, global en SQLite; sin sincronización en la nube). Orquestación multiagente (Coder, Reviewer, Tester, Coordinator con routing por intención). API-agnostic (Copilot, Groq, futuros proveedores; cambia o combina desde la UI). Funciona sin API keys (DuckDuckGo para búsqueda web, Copilot cuando esté disponible; añade Groq para potenciar Copilot cuando quieras). Privacidad: Sin telemetría. Corre en local. Tu código no sale de tu máquina salvo por el proveedor configurado (p. ej. Copilot o Groq).
Arquitectura en capas (core, infra, app): core con interfaces (ports) sin dependencias de framework, infra con implementaciones (adapters) y app como punto de activación. Monorepo pnpm workspaces con tres paquetes: @agentsystem/core (dominio, EventBus, TOTON, tipos), @agentsystem/infra (adapters), apps/vscode-extension (activación y UI).
Sistema de agentes especializados: Coder (generación), Reviewer (revisión), Tester (tests), Coordinator (orquestación). AgentBase con StateGraph (lifecycle y task) y RagPort opcional (memoria + RAG de workspace en paralelo). AgentRouter con detección híbrida: semántica (embeddings) → cache (TTL 2 min) → keywords → LLM opcional (Groq 8B). Orquestador con estrategia best-match y colaboración entre agentes. Aprobación de tools por nivel de riesgo (ToolRiskRegistry central). Modos en el header: Auto (routing por intención), Agent (ejecución con agentes), Plan (solo análisis, sin modificar archivos ni terminal). Reasoning level Low/Medium/High (thinkingBudget) por mensaje.
LLM en cadena: Copilot Chat (principal) → VS Code LM → MCP como fallback. Groq solo para intent, no para chat. ModelSelectionPort con auto-selección, retries configurables y persistencia (globalState + contributes.configuration); selector de modelo persistente (Auto o modelo concreto). Configuración de threshold de confianza (default 0.4) para uso de agentes vs coordinator.
Memoria persistente en SQLite: wa-sqlite y sql.js, scopes session/project/global con TTL y evicción LRU. HybridMemoryAdapter con fábrica que usa projectId y storageUri. Embeddings opcionales (OpenAI text-embedding-3-small, 512 dims) para RAG; configuración desde sidebar (Project Memory → Set API Key) o comando Agent System: Set OpenAI API Key; fallback a FTS3 full-text search si no hay key. Project instructions y project summary inyectados en el prompt. Índice de workspace persistente en SQLite (chunks + hashes); carga en caliente al iniciar; archivos sin cambios se omiten por SHA-256 (sin llamadas a embeddings). Panel Project Memory en la sidebar: Index Project, Reindex, Clear Index, estado del índice, aviso "Index outdated" al cambiar workspace folders; badge Search (proveedor activo) en la misma sección.
AI Project Awareness: análisis estático del workspace (sin LLM) — framework (React, Next, NestJS, Express, …), lenguaje (TypeScript, Python, Go, …), build, test runner, arquitectura (clean, MVC, monorepo). Resultado inyectado como "Project Context" y badge de estado (Healthy / Needs Review / Unknown) en la sidebar.
Web Search: DuckDuckGo sin API key; opción de Brave, Serper, Tavily o endpoint custom; configuración desde badge Search en sidebar o comando Agent System: Configure Web Search Provider & API Key; hot-reload al cambiar proveedor.
Webview de chat con DOMPurify para sanitización, CSP con nonce, markdown (marked + highlight.js) y persistencia de estado. Flujo: code context del editor, RAG condicional por intención, buildMessagesWithCodeContext. Agent Loop: read_file, list_files, apply_edit, create_file, delete_file, search_web, get_web_content, run_tests; tools con aprobación en webview para operaciones sensibles.
Chat Participant @agent: mismo backend que el sidebar, code context del editor activo, RAG por intención, routing a agentes o LLM directo. Workspace tools: read_file, list_files, apply_edit, create_file, delete_file registrados en vscode.lm para Copilot Chat nativo.
Integración MCP (Model Context Protocol) como fallback de LLM con endpoint configurable. Integración con GitHub Auth (scopes repo, read:user) para Copilot. ProjectKnowledgeWatcher para invalidar cache ante cambios en AGENT_SYSTEM.md.
Build y packaging: tsc -b para core/infra, esbuild para extensión (bundle único, target node18, minify en producción). WASM de wa-sqlite y sql.js copiados a dist. Script package-with-node20.sh (nvm/fnm) con compile, secret-scan (@secretlint/node) y vsce package. Publicación en Open-VSX con OVSX_PAT. Parche para @secretlint/node: concurrency Math.max(1, os.cpus().length) en entornos tipo contenedores.
Activación con retries, health checks y resource availability. Fases de activación (health, commands, services, views, diagnostics) con logging estructurado. ExtensionHostHealthMonitor, ResourceAvailabilityChecker, ActivationRetryHandler con backoff configurable.
Features: sidebar chat con streaming, modelo persistente (Auto o concreto), RAG opcional (OpenAI + FTS3 fallback), Agent Loop con aprobación por riesgo; modos Auto/Agent/Plan; reasoning L/M/H; Chat Participant @agent; panel Project Memory (Index/Reindex/Clear, estado, Search badge); AI Project Awareness (badge + Project Context); memoria tree view; comandos (diagnostics, exportLogs, status, setProjectInstructions, refreshWorkspaceEmbeddings, Set OpenAI API Key, Configure Web Search Provider & API Key); Project Knowledge desde AGENT_SYSTEM.md; project instructions y project summary; workspace embeddings con índice persistente y hash-gating.
Stack: TypeScript (ES2022), VS Code API ^1.99.0, pnpm workspaces, esbuild, sql.js, wa-sqlite, groq-sdk, openai, marked, highlight.js, dompurify, zod, @modelcontextprotocol/sdk. Extension Kind: ui. Capabilities: languageModels (priority high).
Disponible en Open-VSX y en VS Code Marketplace: https://marketplace.visualstudio.com/items?itemName=JorgeLeal.agent-system.
Agent System
Extensión VS Code con agentes especializados y memoria local en SQLite. Arquitectura en capas (core, infra, app) para no acoplar el dominio al host del editor. VS Code extension with specialized agents and local SQLite memory. Layered core, infra, and app packages keep domain logic off the extension host.
- TypeScript
- VS Code Extension
- Clean Architecture
- SQLite
- Groq AI
- OpenAI
- MCP
- esbuild