Skip to main content
Skip to content

Создание воспоминаний вручную для GitHub Copilot

Запрос Copilot на запоминать личные предпочтения или факт о репозитории.

Кто может использовать эту функцию?

Доступно для всех платных Copilot планов.
Sign up for Copilot

Copilot Memory Давайте Copilot узнаем вашу кодовую базу и личные предпочтения, помогая Copilot агентам работать более эффективно. Дополнительные сведения см. в разделе О памяти GitHub Copilot.

Если Copilot Memory этот параметр включен, Copilot автоматически создает воспоминания, так как он работает над задачами. Большую часть времени можно оставить Copilot , чтобы определить и сохранить факты репозитория и предпочтения пользователей. Однако иногда может потребоваться явно добавить определенный факт или предпочтения, которые вы хотите Copilot помнить. Это фокус этой статьи.

В параметрах GitHub.comнельзя создать или изменить отдельную память. Вместо этого вы попросите Copilot добавить память для вас. Это можно сделать с помощью Copilot CLI, Copilot cloud agentGitHub Copilot appили Visual Studio Code, если Copilot Memory он доступен для вашей учетной записи. Вы также можете использовать Copilot CLI для массового импорта подготовленных воспоминаний.

Внимание

Copilot Запрос на хранение памяти не гарантирует, что он будет сохранен. Модель решает, следует ли хранить память на основе запроса и контекста. Даже добавление памяти успешно не гарантирует, что Copilot она всегда будет использоваться. Чтобы последовательно предоставлять инструкции, используйте пользовательские инструкции, а не полагаться на Copilot Memory. См . раздел AUTOTITLE.

Запрос 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Обязательные поля , , fact``subject``reason``version``scopeа также citations поля. Поле externalId является необязательным. Используйте его для идентификации записи в результатах импорта и обнаружения повторяющихся идентификаторов в входном файле. Он не хранится в качестве постоянного идентификатора памяти.

Для факта уровня репозитория замените 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 для предприятия, организации или репозитория см. в разделе AUTOTITLE для фактов уровня репозитория.