Skip to main content
Skip to content

GitHub Copilot에 대한 메모리 수동으로 만들기

개인 기본 설정 또는 리포지토리에 대한 사실을 기억하도록 Copilot 프롬프트합니다.

누가 이 기능을 사용할 수 있나요?

모든 유료 Copilot 플랜에 사용할 수 있습니다.
Sign up for Copilot

Copilot Memory를 통해 Copilot가 코드베이스와 개인 선호를 학습하여 Copilot 에이전트가 더 효과적으로 작업할 수 있도록 돕습니다. 자세한 내용은 GitHub Copilot 메모리 정보을(를) 참조하세요.

Copilot이 사용 설정된 경우 Copilot Memory은 작업을 수행하면서 자동으로 메모리를 생성합니다. 대부분의 경우 리포지토리 정보 및 사용자 기본 설정을 식별하고 저장하도록 Copilot를 그대로 둘 수 있습니다. 그러나 가끔 Copilot이(가) 기억하기를 원하는 특정 사실 또는 기본 설정을 명시적으로 추가할 수도 있습니다. 이것이 이 문서의 초점입니다.

GitHub.com에서는 설정에서 개별 메모리를 만들거나 편집할 수 없습니다. 대신 Copilot에 메모리를 추가해 달라고 요청합니다. 계정에서 Copilot CLI을(를) 사용할 수 있는 경우 Copilot Memory, Copilot cloud agent, GitHub Copilot app 또는 Visual Studio Code을(를) 사용하여 이 작업을 수행할 수 있습니다. 준비된 메모리를 대량으로 가져오는 데 Copilot CLI를 사용할 수도 있습니다.

중요

메모리를 저장하도록 Copilot에 요청해도 메모리가 저장된다는 보장은 없습니다. 모델은 프롬프트 및 컨텍스트에 따라 메모리를 저장할지 여부를 결정합니다. 메모리를 성공적으로 추가해도 Copilot가 항상 메모리를 사용할 것이라는 보장은 없습니다. 지침을 일관되게 제공하려면 Copilot Memory에 의존하지 않고 사용자 지정 지침을 사용합니다. GitHub Copilot 대한 사용자 지정 지침을(를) 참조하세요.

Copilot에게 사실이나 선호를 기억하도록 요청

Copilot가 메모리를 저장하도록 하려면, 명확한 지침을 제공하고 메모리 저장소에 캡처하려는 사실 또는 기본 설정에 대한 정확한 세부 정보를 담은 프롬프트(또는 끌어오기 요청의 주석)를 사용하세요. Copilot 는 사용자가 제공하는 컨텍스트 및 정보에 따라 메모리를 리포지토리 수준 팩트 또는 사용자 수준 기본 설정으로 저장할지 여부를 결정합니다.

일치하는 기억이 Copilot 이미 있는 경우 중복을 만드는 대신 해당 기억을 강화할 수 있습니다.

Copilot Memory가 활성화되어 있고 쓰기 권한이 있는 리포지토리에서만 리포지토리 수준 팩트를 만들 수 있습니다.

다양한 인터페이스의 프롬프트 Copilot 에 대한 자세한 내용은 다음을 참조하세요.

예시 프롬프트

리포지토리 수준 팩트의 경우 다음과 같은 프롬프트를 사용합니다.

  • 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.

사용자 수준 기본 설정의 경우 Copilot가 사용자와 협업할 방식, 승인을 요청해야 하는 경우 또는 프로젝트 전반에서 따라야 하는 워크플로를 지정할 수 있습니다.

  • 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.

중요

풀 리퀘스트에 주석을 달 때 주석 시작 부분에 @copilot를 씁니다. 이 트리거는 Copilot cloud agent가 이를 일반 주석이 아니라 응답해야 하는 프롬프트로 인식하게 합니다.

Copilot CLI에서 루트 에이전트만 메모리를 저장하거나 투표할 수 있습니다. 하위 에이전트는 관련 기억을 사용할 수 있지만 메모리 저장소를 변경할 수는 없습니다.

Copilot CLI에서 메모리 업데이트 승인

대화형 세션에서 사용 권한 설정에 따라 Copilot가 메모리 저장을 승인하거나 기존 메모리의 유용성을 평가하도록 요청할 수 있습니다. 프롬프트는 메모리 및 메모리가 사용자에게 적용되는지 또는 리포지토리 공동 작업자와 공유되는지 여부를 보여 줍니다.

업데이트를 한 번 승인하거나, 선택적 피드백과 함께 거부하거나, 묻지 않고 향후 메모리 업데이트를 허용하도록 선택할 수 있습니다. 승인 옵션은 현재 리포지토리, 디렉터리 또는 세션에 적용되는지 여부를 표시합니다.

Copilot CLI로 추억 가져오기

Copilot CLI를 사용하여 JSONL 파일에서 준비된 메모리를 가져올 수 있습니다. 각 줄에는 하나의 버전이 지정된 메모리 개체가 포함되어야 합니다.

이 예제에서는 줄바꿈된 두 줄을 포함합니다. 각 줄(메모리 개체)은 {"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}]}

type, version, scope, subject, fact, reason 및 citations 필드는 필수입니다. externalId 필드는 선택 사항입니다. 가져오기 결과에서 레코드를 식별하고 입력 파일 내에서 반복되는 ID를 검색하는 데 사용합니다. 영구 메모리 식별자로 저장되지 않습니다.

리포지토리 수준 팩트의 경우, octo-org 및 octo-repo을 GitHub.com에 있는 리포지토리의 소유자와 이름으로 바꾸세요. 해당 리포지토리에 대한 메모리를 쓸 수 있는 권한이 있어야 합니다. 다음 명령에서 PATH-TO-FILE를 JSONL 파일 경로로 바꾸십시오.

  1. 메모리를 제출하지 않고 전체 파일의 유효성을 검사합니다. 이렇게 하면 계정의 메모리 저장 권한이 아닌 파일 형식이 확인됩니다.

    copilot memories import PATH-TO-FILE --dry-run
    
  2. 추억 가져오기:

    copilot memories import PATH-TO-FILE
    

기본적으로 입력 파일 내에서 externalId가 반복되거나 기존 메모리 충돌이 발생하면 해당 레코드에 오류가 발생합니다. 대신 충돌을 건너뛰려면 --on-conflict skip를 추가합니다. 결과를 JSON으로 받으려면 --output json를 추가합니다.

각 레코드의 결과를 확인합니다. 일부 레코드는 다른 레코드가 실패하더라도 가져올 수 있습니다. 부분 가져오기를 다시 시도하려면 실패한 레코드만 제출하세요. 전체 가져오기를 반복하면 중복된 메모리가 생성됩니다.

가져오기 명령을 실행하면 레코드를 제출하는 승인으로 처리되므로 Copilot CLI는 각 메모리를 개별적으로 승인하라는 요청을 하지 않습니다. 일반 인증, 정책, 리포지토리 권한, 범위 유효성 검사 및 비밀 검사 요구 사항은 여전히 적용됩니다. 리포지토리 수준 정보는 리포지토리에서 Copilot Memory를 사용할 수 있는 공동 작업자와 공유됩니다.

기억이 리포지토리에 적용되는지 또는 사용자에게 적용되는지 확인

Copilot 는 메모리가 누가 말한 것이 아니라 메모리가 누구에게 적용되는지에 따라 메모리를 리포지토리 수준 팩트 또는 사용자 수준 기본 설정으로 저장할지 여부를 결정합니다. 의도한 범위를 명확히 밝힙니다. 범위가 명확하지 않은 경우 Copilot는 추측하기보다는 명확히 해달라고 요청합니다.

저장다음과 같이 표현합니다.Example
리포지토리 수준의 사실이 리포지토리에서 작업하는 모든 사용자에게 해당되는 사항"이 리포지토리에서 데이터베이스 마이그레이션은 항상 테스트 도구 모음 전에 실행됩니다."
사용자 수준 기본 설정모든 프로젝트에서 개인적으로 선호하는 작업 방식에 대한 내용내 모든 프로젝트에서 당신이 변경 사항을 적용하기 전에 설명해 주기를 바랍니다.

범위를 암시하기 위해 "항상" 또는 "향후"와 같은 구에 의존하지 마세요. 메모리가 여러 리포지토리에서 나에게 적용되는지 또는 현재 리포지토리에서 작업하는 모든 사용자에게 적용되는지 여부를 말합니다.

메모리 삭제

기억은 기본 또는 설정된 보존 기간 내에 강화되지 않으면 만료됩니다. Copilot 자체적으로는 프롬프트에 대한 응답으로 메모리를 삭제할 수 없습니다. 예를 들어, Copilot에 메모리를 "잊어버리라"고 요청하면 해당 사실 또는 기본 설정을 다운보트할 수 있지만 메모리 저장소에서 삭제되지는 않습니다.

기억을 즉시 삭제하려면 개인 또는 리포지토리 설정에서 삭제해야 합니다. 사용자 수준 기본 설정은 개인 계정에 대한 Copilot 메모리 관리을 참조하고 리포지토리 수준 팩트는 엔터프라이즈, 조직 또는 리포지토리에 대한 Copilot 메모리 관리을 참조하세요.