Copilot Memory permite Copilot obtener información sobre el código base y sus preferencias personales, lo que ayuda a los agentes a Copilot trabajar de forma más eficaz. Para obtener más información, vea Acerca de la memoria de GitHub Copilot.
Si Copilot Memory está habilitado, Copilot crea recuerdos automáticamente mientras trabaja en las tareas. La mayoría de las veces, puede dejar Copilot para identificar y almacenar la información del repositorio y las preferencias del usuario. Sin embargo, en ocasiones es posible que desee agregar explícitamente un hecho o preferencia concretos que quiere que Copilot recuerde. Este es el foco de este artículo.
No puede crear ni editar una memoria individual en la configuración de GitHub.com. En su lugar, le pides a Copilot que añada la memoria por ti. Puede hacerlo con Copilot CLI, Copilot cloud agent, GitHub Copilot appo Visual Studio Code, si Copilot Memory está disponible para su cuenta. También puede usar Copilot CLI para importar memorias preparadas de forma masiva.
Importante
Pedir a Copilot que guarde un recuerdo no garantiza que se guarde. El modelo decide si almacenar la memoria en función del prompt y del contexto. Incluso agregar una memory correctamente no garantiza que Copilot siempre lo use. Para proporcionar instrucciones de forma coherente, use instrucciones personalizadas en lugar de confiar en Copilot Memory. Consulte Instrucciones personalizadas para GitHub Copilot.
Pedirle a Copilot que recuerde un hecho o preferencia
Para hacer que Copilot almacene un recuerdo, use una instrucción (o un comentario en una pull request) que proporcione una instrucción inequívoca y dé detalles precisos sobre el hecho o la preferencia que desea capturar en el almacén de memoria. Copilot decidirá si almacenar la memoria como un hecho de nivel de repositorio o una preferencia de nivel de usuario, en función del contexto y de la información que proporciones.
Si ya existe una memoria coincidente, Copilot puede reforzar esa memoria en lugar de crear un duplicado.
Solo puede crear un hecho de nivel de repositorio en un repositorio donde Copilot Memory está habilitado y tiene acceso de escritura.
Para obtener más información sobre cómo usar Copilot indicaciones en varias interfaces, vea:
- Copilot cloud agent: Uso de GitHub Copilot en la nube en GitHub
- Copilot CLI: Uso de la CLI de GitHub Copilot
- Copilot code review: Revisar la salida de Copilot
Ejemplos de indicaciones
Para los hechos de nivel de repositorio, use indicaciones como estas:
Store a memory that api/openapi.gen.go is generated here. Edit openapi.yaml instead.Remember that API handlers in this repository return errors through formatApiError.Create a memory for this repository: Database migrations belong in db/migrations, not in application startup code.
En el caso de las preferencias de nivel de usuario, puede especificar cómo desea Copilot colaborar con usted, cuándo debe solicitar aprobación o un flujo de trabajo para seguir en todos sus proyectos:
Remember I always want the smallest change that fixes the problem, not a refactor.Across all my projects, remember to ask for my approval before publishing changes.Remember my workflow for all projects: Run the relevant tests and summarize their results before proposing a commit.
Importante
Al comentar en una pull request, escriba @copilot al principio del comentario. Esto hace que Copilot cloud agent lo vea como una solicitud a la que debe responder, en lugar de como un comentario normal.
En Copilot CLI, solo el agente raíz puede almacenar o votar sobre memorias. Los subagentes pueden usar memorias relevantes, pero no pueden cambiar el almacén de memoria.
Aprobación de actualizaciones de memoria en Copilot CLI
En sesiones interactivas, en función de la configuración de permisos, Copilot puede pedirle que apruebe el almacenamiento de un recuerdo o la valoración de la utilidad de un recuerdo existente. El mensaje muestra la memoria y si se aplica a usted o se comparte con colaboradores del repositorio.
Puede aprobar la actualización una vez, rechazarla con comentarios opcionales o optar por permitir futuras actualizaciones de memoria sin preguntar. La opción de aprobación indica si se aplica al repositorio, directorio o sesión actual.
Importación de recuerdos con Copilot CLI
Puede usar Copilot CLI para importar memorias preparadas desde un archivo JSONL. Cada línea debe contener un objeto de memoria versionado.
Este ejemplo contiene dos líneas con ajuste de línea. Cada línea (objeto de memoria) inicia {"type":"memory"....
{"type":"memory","version":1,"externalId":"personal-testing-1","scope":{"type":"user"},"subject":"testing","fact":"Run focused tests first.","reason":"This is the user's preferred validation workflow.","citations":[{"type":"text","text":"User input: \"Run focused tests first.\""}]}
{"type":"memory","version":1,"externalId":"repo-testing-1","scope":{"type":"repository","repository":{"host":"github.com","owner":"octo-org","name":"octo-repo"}},"subject":"testing","fact":"Run npm test before opening a pull request.","reason":"The repository requires this validation workflow.","citations":[{"type":"file","path":"CONTRIBUTING.md","lineStart":10,"lineEnd":12}]}
Los campos type, version, scope, fact, subject, reason y citations son obligatorios. El campo externalId es opcional. Úselo para identificar un registro en los resultados de importación y detectar identificadores repetidos dentro del archivo de entrada. No se almacena como un identificador de memoria permanente.
Para un hecho de nivel de repositorio, reemplace octo-org y octo-repo por el propietario y el nombre de un repositorio en GitHub.com. Debe tener permiso para escribir Memories para ese repositorio. Reemplace PATH-TO-FILE en los siguientes comandos por la ruta de acceso a su archivo JSONL.
-
Valide el archivo completo sin enviar memorias de traducción. Esto comprueba el formato de archivo, no el permiso de la cuenta para almacenar las memorias:
copilot memories import PATH-TO-FILE --dry-run -
Importar los recuerdos:
copilot memories import PATH-TO-FILE
De forma predeterminada, la repetición de externalId dentro del archivo de entrada o un conflicto de memoria existente produce un error para ese registro. Si desea omitir los conflictos, agregue --on-conflict skip. Para recibir el resultado como JSON, agregue --output json.
Compruebe el resultado de cada registro. Algunos registros se pueden importar incluso si se produce un error en otros. Para reintentar una importación parcial, envíe solo los registros que fallaron. Repetir toda la importación puede crear memorias duplicadas.
La ejecución del comando import se trata como aprobación para enviar los registros, por lo que Copilot CLI no le pide que apruebe cada memoria por separado. Se siguen aplicando los requisitos normales de autenticación, directiva, permisos de repositorio, validación de ámbito y examen de secretos. Los datos a nivel de repositorio se comparten con colaboradores que pueden usar Copilot Memory en el repositorio.
Determinar si un recuerdo se aplica a un repositorio o a usted
Copilot decide si almacenar una memoria como un hecho de nivel de repositorio o una preferencia de nivel de usuario, en función de a quién se aplica la memoria en lugar de quién la dijo. Indique explícitamente el ámbito previsto. Si el ámbito no está claro, Copilot le pide que aclare en lugar de adivinar.
| Almacenar | Formúlalo como | Example |
|---|---|---|
| Un dato a nivel de repositorio | Algo que es cierto para cualquier persona que trabaje en este repositorio | "En este repositorio, las migraciones de base de datos siempre se ejecutan antes del conjunto de pruebas". |
| Una preferencia de nivel de usuario | Algo sobre cómo te gusta trabajar personalmente en todos los proyectos | En todos mis proyectos, prefiero que expliques un cambio antes de aplicarlo. |
No confíe en frases como "siempre" o "en el futuro" para dar a entender un alcance. Indique si la memoria se aplica a usted en todos los repositorios o a todos los usuarios que trabajan en el repositorio actual.
Eliminación de una memoria
Las memorias expiran si no se refuerzan dentro del período de retención predeterminado o configurado. Copilot no puede por sí mismo eliminar una memoria en respuesta a un mensaje. Por ejemplo, si pide Copilot que "olvide" una memoria, puede restar prioridad a ese hecho o preferencia, pero esto no lo elimina del almacén de memoria.
Para eliminar un recuerdo inmediatamente, debe hacerlo en la configuración personal o del repositorio. Consulte Gestionar la memoria de Copilot para tu cuenta personal para obtener preferencias de nivel de usuario y Administración de la memoria de Copilot para una empresa, organización o repositorio para obtener datos del repositorio.