Copilot Memory ermöglicht Copilot, Ihre Codebasis und Ihre persönlichen Präferenzen kennenzulernen, sodass Copilot Agenten effektiver arbeiten können. Weitere Informationen findest du unter Informationen zu GitHub Copilot Memory.
Wenn Copilot Memory aktiviert ist, erstellt Copilot automatisch Erinnerungen, während es an Aufgaben arbeitet. Meistens können Sie Copilot aktiviert lassen, um Repository-Fakten und Benutzereinstellungen zu identifizieren und zu speichern. Gelegentlich möchten Sie jedoch explizit eine bestimmte Tatsache oder Einstellung hinzufügen, an die Copilot sich erinnern soll. Das ist der Schwerpunkt dieses Artikels.
Sie können in den Einstellungen auf GitHub.com keine einzelne Erinnerung erstellen oder bearbeiten. Stattdessen bitten Sie Copilot, den Speicher für Sie hinzuzufügen. Sie können dies mithilfe von Copilot CLI, Copilot cloud agent, GitHub Copilot app oder Visual Studio Code tun, wenn Copilot Memory für Ihr Konto verfügbar ist. Sie können auch Copilot CLI verwenden, um vorbereitete Translation Memories gesammelt zu importieren.
Wichtig
Die Aufforderung an Copilot, eine Erinnerung zu speichern, garantiert nicht, dass sie gespeichert wird. Das Modell entscheidet anhand der Eingabeaufforderung und des Kontexts, ob die Erinnerung gespeichert werden soll. Auch das erfolgreiche Hinzufügen eines Arbeitsspeichers garantiert nicht, dass Copilot ihn immer verwendet. Wenn Sie Anweisungen konsistent bereitstellen möchten, verwenden Sie benutzerdefinierte Anweisungen, anstatt sich auf Copilot Memory zu verlassen. Siehe Benutzerdefinierte Anweisungen für GitHub Copilot.
Aufforderung an Copilot, sich an eine Tatsache oder Vorliebe zu erinnern
Um Copilot dazu zu bringen, eine Erinnerung zu speichern, verwenden Sie einen Prompt (oder einen Kommentar in einem Pull Request), der eine eindeutige Anweisung enthält, und geben Sie präzise Details zu der Tatsache oder Präferenz an, die Sie im Erinnerungsspeicher erfassen möchten. Copilot entscheidet, ob die Erinnerung basierend auf dem Kontext und den von Ihnen bereitgestellten Informationen als Fakt auf Repository-Ebene oder als Benutzereinstellung gespeichert werden soll.
Wenn bereits ein passender Speicher vorhanden ist, Copilot kann diesen Speicher verstärken, anstatt ein Duplikat zu erstellen.
Sie können nur einen Fact auf Repository-Ebene in einem Repository erstellen, in dem Copilot Memory aktiviert ist und Sie Schreibzugriff haben.
Weitere Informationen zu Aufforderungen Copilot auf verschiedenen Oberflächen finden Sie unter:
- Copilot cloud agent: Verwenden von Copilot in der Cloud auf GitHub
- Copilot CLI: Verwenden von GitHub Copilot CLI
- Copilot code review: Überprüfen Sie die Ausgabe von Copilot
Beispiel-Prompts
Für Fakten auf Repositoryebene verwenden Sie Prompts wie die folgenden:
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.
Für Einstellungen auf Benutzerebene können Sie angeben, wie Copilot mit Ihnen zusammenarbeiten soll, wann Copilot um Genehmigung bitten soll oder welchen Workflow es in Ihren Projekten befolgen soll:
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.
Wichtig
Wenn Sie in einem Pull Request kommentieren, schreiben Sie @copilot am Anfang des Kommentars. Dadurch interpretiert Copilot cloud agent dies als Aufforderung, auf die sie reagieren sollte, anstatt als regulären Kommentar.
In Copilot CLI, nur der Root-Agent kann Erinnerungen speichern oder über Erinnerungen abstimmen. Subagenten können relevante Speicherinhalte verwenden, aber sie können den Speicherspeicherort nicht ändern.
Genehmigen von Speicherupdates in Copilot CLI
In interaktiven Sitzungen kann Copilot Sie je nach Ihren Berechtigungseinstellungen bitten, das Speichern einer Erinnerung zu genehmigen oder die Nützlichkeit einer vorhandenen Erinnerung zu bewerten. Der Prompt zeigt den Speicher an und gibt an, ob er für Sie gilt oder mit Mitbearbeitern des Repositorys geteilt wird.
Sie können das Update einmal genehmigen, mit optionalem Feedback ablehnen oder zukünftige Speicherupdates zulassen, ohne nachzufragen. Die Genehmigungsoption gibt an, ob sie für das aktuelle Repository, das aktuelle Verzeichnis oder die aktuelle Sitzung gilt.
Importieren von Erinnerungen mit Copilot CLI
Sie können Copilot CLI vorbereitete Erinnerungen aus einer JSONL-Datei importieren. Jede Zeile muss ein Versionsspeicherobjekt enthalten.
Dieses Beispiel enthält zwei umbrochene Zeilen. Jede Zeile (Speicherobjekt) beginnt mit {"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}]}
Die Felder type, version, scope, subject, fact, reason und citations sind erforderlich. Das feld externalId ist optional. Verwenden Sie ihn, um einen Datensatz in den Importergebnissen zu identifizieren und wiederholte IDs innerhalb der Eingabedatei zu erkennen. Es wird nicht als permanenter Speicherbezeichner gespeichert.
Für einen Fakt auf Repository-Ebene ersetzen Sie octo-org und octo-repo durch den Besitzer und den Namen eines Repositorys auf GitHub.com. Sie müssen über die Berechtigung zum Schreiben von Memories für dieses Repository verfügen. Ersetzen Sie PATH-TO-FILE in den folgenden Befehlen durch den Pfad zu Ihrer JSONL-Datei.
-
Überprüfen Sie die vollständige Datei, ohne Speicher zu übermitteln. Dadurch wird das Dateiformat überprüft, nicht die Berechtigung Ihres Kontos zum Speichern der gespeicherten Informationen:
copilot memories import PATH-TO-FILE --dry-run -
Importieren Sie die Speicher:
copilot memories import PATH-TO-FILE
Standardmäßig verursacht ein wiederholtes externalId innerhalb der Eingabedatei oder ein vorhandener Speicherkonflikt einen Fehler für diesen Datensatz. Fügen Sie --on-conflict skipzum Überspringen von Konflikten stattdessen hinzu. Um das Ergebnis als JSON zu erhalten, fügen Sie --output json hinzu.
Überprüfen Sie das Ergebnis für jeden Datensatz. Einige Datensätze können importiert werden, auch wenn andere fehlschlagen. Um einen Teilimport erneut zu versuchen, senden Sie nur die Datensätze, die fehlgeschlagen sind. Durch das Wiederholen des gesamten Imports können doppelte Speicherungen erstellt werden.
Das Ausführen des Importbefehls wird als Genehmigung zum Übermitteln der Datensätze behandelt, sodass Copilot CLI Sie nicht auffordert, jedes Translation Memory separat zu genehmigen. Normale Authentifizierungs-, Richtlinien-, Repositoryberechtigungs-, Bereichsvalidierungs- und Secret-Scanning-Anforderungen gelten weiterhin. Fakten auf Repositoryebene werden mit Mitwirkenden geteilt, die Copilot Memory im Repository verwenden können.
Bestimmen, ob eine Erinnerung für ein Repository oder für Sie gilt
Copilot entscheidet, ob eine Erinnerung als Tatsache auf Repository-Ebene oder als Benutzereinstellung auf Benutzerebene gespeichert werden soll, je nachdem, für wen die Erinnerung gilt, statt danach, wer sie geäußert hat. Geben Sie den vorgesehenen Umfang explizit an. Wenn der Umfang unklar ist, fordert Copilot Sie auf, dies zu präzisieren, anstatt zu raten.
| Speichern | Formuliere es als | Example |
|---|---|---|
| Eine Tatsache auf Repository-Ebene | Etwas, das für jeden, der in diesem Repository arbeitet, wahr ist | "In diesem Repository werden Datenbankmigrationen immer vor der Testsuite ausgeführt." |
| Eine Einstellung auf Benutzerebene | Etwas darüber, wie Sie persönlich gern arbeiten, in allen Ihren Projekten | In allen meinen Projekten möchte ich, dass Sie eine Änderung erklären, bevor Sie sie anwenden. |
Verlassen Sie sich nicht auf Ausdrücke wie "always" oder "going forward", um einen Geltungsbereich zu implizieren. Geben Sie an, ob die gespeicherte Information für Sie über Repositorys hinweg oder für alle Benutzer gilt, die im aktuellen Repository arbeiten.
Löschen eines Speichers
Speicherinhalte verfallen, wenn sie nicht innerhalb des standardmäßigen oder konfigurierten Aufbewahrungszeitraums erneuert werden. Copilot Eine Erinnerung kann nicht selbst als Reaktion auf eine Eingabeaufforderung gelöscht werden. Wenn Sie Copilot beispielsweise bitten, eine Erinnerung zu "vergessen", kann es diese Tatsache oder Präferenz herabsetzen, aber dies löscht sie nicht aus dem Speicher.
Um eine Erinnerung sofort zu löschen, müssen Sie dies in Ihren persönlichen Einstellungen oder Repository-Einstellungen tun. Siehe Verwalten des Copilot-Speichers für Ihr persönliches Konto für Einstellungen auf Benutzerebene und Verwalten von Copilot Speicher für ein Unternehmen, eine Organisation oder ein Repository für Informationen auf Repository-Ebene.