El modo Agent de GitHub Copilot en VS Code planifica una tarea, edita archivos en tu repo, ejecuta comandos de terminal con tu aprobación, y continúa hasta que la tarea esté hecha o te necesite. Este laboratorio lo configura en un pequeño repo Python: un archivo de instrucciones, una tarea de agente, una revisión de diff, una ejecución de test. Todo lo de abajo está comparado contra la documentación actual de VS Code y GitHub Copilot, con fuentes listadas en el front matter.
Qué realmente hace el modo Agent
El chat Copilot de VS Code tiene tres modos incorporados, seleccionados del dropdown arriba de la entrada de chat: Ask responde preguntas y no hace ediciones, Plan escribe un plan paso a paso y espera tu aprobación antes de que algo cambie, y Agent autónomamente planifica, edita archivos, ejecuta comandos de terminal, e invoca herramientas hasta que la tarea se ve terminada. Puedes cambiar modos en medio de una conversación.
Esto es una división diferente de escritos más antiguos que describen «Ask / Edit / Agent.» A partir de octubre de 2026 los docs de VS Code listan Ask, Plan, y Agent como los tres modos incorporados, sin un modo «Edit» separado en el chat UI. Si recuerdas una cosa: Agent es el modo que toca tus archivos y tu terminal sin un click «apply» por chunk.
El modo Agent necesita un modelo con soporte de tool-calling, una carpeta de workspace abierta, y chat.agent.enabled activada (default true desde VS Code 1.99). Las sesiones también pueden ejecutar Background (vía la CLI, sin atención) o Cloud (en la infraestructura de GitHub, abriendo un pull request) en lugar de Local; elige el tipo de sesión junto al selector de modo. Este laboratorio usa Local.
Paso 1 — Abre un pequeño repo y verifica lo básico
Crea una carpeta desechable y un proyecto Python de dos archivos:
# calculator.py
def total_with_discount(prices: list[float], discount_pct: float) -> float:
"""Return the total price after applying a percentage discount."""
subtotal = sum(prices)
return subtotal - discount_pct
# test_calculator.py
from calculator import total_with_discount
def test_discount_is_applied_as_percentage():
assert total_with_discount([100.0, 50.0], 10) == 135.0
total_with_discount tiene un bug real: resta discount_pct como una cantidad plana en lugar de un porcentaje, así que el test arriba falla. Abre la carpeta en VS Code, abre Preferences: Open Settings (UI), y confirma que chat.agent.enabled es true. Abre la vista Chat con Ctrl+Alt+I y confirma que Ask, Plan, y Agent aparecen en el dropdown de modo.
Paso 2 — Escribe un archivo de instrucciones personalizadas del repositorio
Las instrucciones personalizadas de repositorio viven en .github/copilot-instructions.md, en la raíz del repo, como Markdown plano:
<!-- .github/copilot-instructions.md -->
Este es un pequeño proyecto Python que usa pytest.
- Usa type hints en cada firma de función.
- Mantén lógica de negocio en calculator.py; mantén tests en archivos test_*.py junto a él.
- Cuando corrijas un bug, agrega o actualiza un test que lo hubiera atrapado.
- Ejecuta `pytest -q` después de hacer un cambio y reporta el resultado.
Una vez guardado, VS Code y Copilot en GitHub.com ambos recogen esto automáticamente para cada solicitud de chat en el repo — sin toggle para activar. Para reglas que aplican solo a ciertos archivos, agrega un archivo de instrucciones específico de ruta en su lugar: crea .github/instructions/python.instructions.md con un bloque front matter applyTo:
---
applyTo: "**/*.py"
---
Prefiere tipos de retorno explícitos. Evita cláusulas `except:` desnudas.
Las instrucciones de repositorio y las que coinciden de ruta específica se combinan, no una-u-otra — mantenlas no contradictoria. En GitHub.com mismo, los archivos de instrucciones específicos de ruta actualmente aplican solo al cloud agent y a la revisión de código Copilot; en VS Code, ambos archivos aplican a chats y sesiones de agente.
Paso 3 — Opcional: agrega un archivo de prompt reutilizable
Un archivo de prompt es un comando slash guardado. Crea .github/prompts/fix-and-test.prompt.md:
---
description: Corrige un test fallando y verifica con pytest
agent: agent
---
Ejecuta `pytest -q`. Lee el primer test fallando y la función que prueba.
Corrige la implementación, no el test, a menos que el test mismo esté mal.
Re-ejecuta `pytest -q` y reporta el resultado.
El campo agent fija este prompt al modo Agent sin importar la selección actual; un campo tools puede restringir qué herramientas o herramientas MCP el prompt puede llamar. Escribe /fix-and-test en la entrada de chat para ejecutarlo.
Paso 4 — Ejecuta una tarea de agente y aprueba el comando de terminal
De vuelta en la vista Chat, con Agent seleccionado, envía:
pytest is failing in test_calculator.py. Find out why and fix it.
El agente lee ambos archivos, propone una edición a total_with_discount, y — porque pytest -q es un comando nuevo en esta sesión — se pausa con un prompt de confirmación primero. Revisa el comando mostrado, luego elige Allow para ejecutarlo o Skip para redirigir el agente. Nada se ejecuta sin ese prompt a menos que el comando esté pre-aprobado vía chat.tools.terminal.autoApprove.
Una corrección razonable para el bug:
# calculator.py
def total_with_discount(prices: list[float], discount_pct: float) -> float:
"""Return the total price after applying a percentage discount."""
subtotal = sum(prices)
return subtotal * (1 - discount_pct / 100)
Paso 5 — Revisa el diff, luego ejecuta los tests tú mismo
Los cambios del modo Agent llegan como cambios pendientes en el editor, mostrados como un diff contra el archivo en disco. Revísalos en lugar y elige keep o discard cada uno — los docs son explícitos que tú decides qué cambios aceptar, el agente no hace commit por ti. No saltes este paso solo porque el agente reportó éxito: lee el diff real, no solo el resumen de chat.
Una vez que has mantenido la edición, confirma por ti mismo fuera del chat, con el mismo comando que ejecutarías normalmente:
pytest -q
Si pasa, estás hecho con el bucle local. Si aún falla, envía al agente la nueva salida de fallo en lugar de re-describir el bug de memoria — una pila de ejecución pegada o mensaje de aserción es una delegación mucho más fuerte que «aún está roto.»
Herramientas y servidores MCP en VS Code
El modo Agent llama herramientas: incorporadas (leer archivo, editar archivo, ejecutar comando de terminal, buscar workspace) más cualquier cosa expuesta por extensiones o por servidores MCP que configures. MCP es el mismo protocolo abierto cubierto en la guía de servidores MCP — VS Code es un cliente más para él.
Ejecuta MCP: Add Server desde la Paleta de Comandos, elige HTTP para un servidor basado en URL o Command (stdio) para uno local, y elige Workspace (escribe .vscode/mcp.json, compartible vía control de fuente) o tu perfil de usuario. Un archivo de workspace mínimo:
{
"servers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp"
},
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"]
}
}
}
Cada llamada de herramienta, incorporada o MCP, va a través del mismo flujo de aprobación que un comando de terminal la primera vez que se ejecuta, a menos que esté pre-aprobado. Los servidores MCP locales ejecutan código arbitrario con tus permisos — solo agrega los de fuentes en las que confías.
El cloud agent en issues y pull requests de GitHub
Todo lo arriba se ejecuta dentro de VS Code, contra archivos en disco. GitHub también envía un agente alojado en la nube que funciona directamente en GitHub.com. Abre un issue, haz clic en Assignees en la barra lateral derecha, y selecciona Copilot. Agrega guía opcional en el campo de prompt y elige el repositorio target, rama base, y modelo. Asignar el issue siempre produce un pull request — Copilot funciona en una rama en el fondo y solicita tu revisión cuando está hecho. Solo ve el título, descripción, y comentarios del issue como existían en el momento de asignación, así que publica actualizaciones posteriores como un comentario en el pull request resultante, no el issue original.
Revisión de código Copilot en un pull request
Separadamente del cloud agent, puedes pedir a Copilot que revise el diff de cualquier pull request. Abre el PR, encuentra Copilot bajo Reviewers, y haz clic en Request. Típicamente responde en menos de 30 segundos con comentarios etiquetados Alta, Media, o Baja severidad, a menudo con sugerencias de un clic. Desde la CLI de GitHub:
gh pr create --reviewer @copilot
# o, en un PR existente:
gh pr edit PR-NUMBER --add-reviewer @copilot
Por defecto esto deja una revisión Comment, no una revisión Approve o Request-changes, así que por sí misma no satisface una regla de aprobaciones requeridas.
Eligiendo un modelo
El selector de modelo se sienta al fondo de la entrada de chat, independiente del modo en el que estés. Auto ruta cada solicitud a un modelo basado en la complejidad de la tarea y disponibilidad actual — pasa el ratón sobre la respuesta para ver cuál respondió. Abre Manage Language Models (ícono de engranaje en el selector, o el comando Chat: Manage Language Models) para verificar tamaño de contexto y capacidad por modelo, oculta los no usados, o agrega un modelo vía tu propia API key.
Trampas
Aprobaste un comando una vez, no para siempre. chat.tools.terminal.autoApprove coincide con comandos específicos o patrones regex; no es un blanquete «dejar de preguntar.» La configuración global chat.tools.global.autoApprove quita el paso de aprobación para cada herramienta, y la descripción propia de VS Code la llama como desactivando una protección de seguridad crítica — no la actives en una máquina con algo que te importe.
Los archivos de instrucciones no corrigen una ejecución mala retroactivamente. .github/copilot-instructions.md forma nuevas solicitudes; no reescribe un plan que el agente ya se comprometió en medio de tarea. Si una sesión va de lado, corrige las instrucciones y comienza fresco en lugar de empujar el mismo contexto.
Las instrucciones específicas de ruta no son universales aún. En GitHub.com, los archivos .github/instructions/*.instructions.md actualmente aplican al cloud agent y a la revisión de código Copilot, no a cada superficie de Copilot en el sitio. En VS Code aplican más ampliamente, a chats y sesiones de agente. No asumsas que un cliente coincide con otro — exactamente el tipo de detalle cubierto en Claude Code vs. Copilot vs. Cursor.
«Reviewed by Copilot» no es «approved by a human.» Una revisión de código Copilot deja comentarios, no una aprobación que satisface protección de rama. Trátala como un paso rápido, del mismo modo que un paso en un flujo de trabajo TDD asistido por IA: señal útil, no una compuerta de merge.
El cloud agent no puede ver comentarios de issue nuevos. Congela el contenido del issue en el momento de asignación. Agrega seguimientos al pull request resultante, no al issue, o el agente nunca los lee.
Preguntas frecuentes
¿Qué es el modo agent de GitHub Copilot en VS Code?
Agent es uno de los modos de chat incorporados en VS Code, junto a Ask y Plan. En modo Agent, Copilot Chat planifica el trabajo, edita archivos en tu workspace, ejecuta comandos de terminal, e itera en el resultado con autonomía completa, en lugar de esperar a que apruebes cada edición individualmente.
¿Cómo activo el modo agent en VS Code?
Abre la vista Chat y elige Agent del dropdown de agent/modo arriba de la entrada de chat. La configuración subyacente es chat.agent.enabled, que por defecto está activada en VS Code 1.99 y posterior. Si no ves Agent en el dropdown, verifica esa configuración y actualiza VS Code.
¿Ejecuta el modo agent de Copilot comandos de terminal sin preguntar?
No, no por defecto. La primera vez que un agente quiere ejecutar un comando de terminal nuevo, se pausa y te pide que permitas o saltes. Puedes pre-aprobar comandos específicos con chat.tools.terminal.autoApprove, pero la configuración de auto-aprobación global explícitamente desactiva una protección de seguridad y está desactivada por defecto.
¿Cuál es la diferencia entre .github/copilot-instructions.md y un archivo .instructions.md?
.github/copilot-instructions.md mantiene instrucciones de repositorio que aplican a cada solicitud de Copilot en ese repo. Un archivo NAME.instructions.md bajo .github/instructions/ lleva un glob applyTo en su front matter y solo aplica a rutas de archivo que coinciden, lo que mantiene reglas específicas del framework o lenguaje fuera del archivo de instrucciones principal.
¿Puede Copilot abrir un pull request por sí mismo?
Sí. Asigna un issue de GitHub a Copilot desde el menú Assignees, o comienza una tarea de cloud agent desde el panel agents, y Copilot funciona en una rama y abre un pull request para que lo revises. También puedes pedir una revisión de código Copilot en cualquier pull request existente desde la barra lateral Reviewers.
Cómo se verificó esta guía
Escrita a mano a partir de la documentación oficial, con cada comando comprobado de nuevo y una segunda revisión antes de publicar. Última revisión: .
Fuentes oficiales consultadas para este artículo
- code.visualstudio.com/docs/copilot/agents/overview
- code.visualstudio.com/docs/copilot/getting-started
- code.visualstudio.com/docs/copilot/reference/copilot-settings
- code.visualstudio.com/docs/copilot/chat/chat-agent-mode
- code.visualstudio.com/learn/foundations/introduction-to-agent-first-development
- code.visualstudio.com/docs/copilot/customization/prompt-files
- code.visualstudio.com/docs/copilot/customization/overview
- code.visualstudio.com/docs/copilot/customization/mcp-servers
- code.visualstudio.com/docs/agents/reference/mcp-configuration
- code.visualstudio.com/docs/copilot/language-models
- docs.github.com/en/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot
- docs.github.com/en/copilot/concepts/prompting-and-context/custom-instructions
- docs.github.com/en/copilot/how-tos/copilot-on-github/use-copilot-agents/kick-off-a-task
- docs.github.com/en/copilot/how-tos/use-copilot-agents/cloud-agent/use-cloud-agent-on-github
- docs.github.com/en/copilot/how-tos/use-copilot-agents/use-code-review

