Kontextverwaltung - Amazon Q Developer

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Kontextverwaltung

Wahl des richtigen Kontextansatzes

Amazon Q bietet drei Möglichkeiten, Kontext bereitzustellen, die jeweils für unterschiedliche Anwendungsfälle optimiert sind:

Ansatz Auswirkung auf das Kontextfenster Persistenz Am besten für
Ressourcen für Agenten Immer aktiv (verbraucht Tokens) Sitzungsübergreifend persistent Wichtige Projektdateien, Standards und Konfigurationen
Sitzungskontext Immer aktiv (verbraucht Tokens) Nur aktuelle Sitzung Temporäre Dateien, schnelle Experimente
Wissensdatenbanken Nur wenn gesucht Sitzungsübergreifend persistent Große Codebasen, umfangreiche Dokumentation

Flussdiagramm für Entscheidungen

Verwenden Sie diesen Entscheidungsbaum, um den geeigneten Kontextansatz auszuwählen:

  1. Ist Ihr Inhalt größer als 10 MB oder enthält er Tausende von Dateien?

    • Ja → Wissensdatenbanken verwenden

    • Nein → Fahren Sie mit Schritt 2 fort

  2. Benötigen Sie diesen Kontext in jeder Konversation?

    • Ja → Agentenressourcen verwenden

    • Nein → Sitzungskontext verwenden

Kurzreferenz:

  • Wichtige Projektdateien (README, Konfigurationen, Standards) → Ressourcen für Agenten

  • Große Codebasen oder Dokumentationssätze → Wissensdatenbanken

  • Temporäre Dateien für die aktuelle Aufgabe → Sitzungskontext

Die Auswirkungen des Kontextfensters verstehen

Kontextdateien und Agentenressourcen verbrauchen bei jeder Anfrage Tokens aus Ihrem Kontextfenster, unabhängig davon, ob darauf verwiesen wird oder nicht. Wird verwendet/context show, um die Token-Nutzung zu überwachen:

q chat > /context show Total: ~1100 tokens

Token-Limits: Kontextdateien sind auf 75% des Kontextfensters Ihres Modells beschränkt. Dateien, die dieses Limit überschreiten, werden automatisch gelöscht.

Wissensdatenbanken verbrauchen erst dann Platz im Kontextfenster, wenn sie durchsucht werden, und eignen sich daher ideal für umfangreiche Referenzmaterialien. Weitere Informationen finden Sie unter Wissensdatenbank-Kontext (für große Datensätze).

Verwalten von Kontext

Kontextdateien enthalten Informationen, die Amazon Q bei Ihren Konversationen berücksichtigen soll. Dazu können Projektanforderungen, Kodierungsstandards, Entwicklungsregeln oder andere Informationen gehören, die Amazon Q dabei helfen, relevantere Antworten zu geben.

Konfigurieren eines persistenten Kontextes mit Agentenressourcen

Es wird empfohlen, den Kontext über das Feld resources in Ihrer Agentenkonfigurationsdatei zu konfigurieren. Dadurch entsteht ein persistenter Kontext, der bei jeder Verwendung des Agenten verfügbar ist.

Fügen Sie dem resources-Array in Ihrer Agentenkonfiguration Dateipfade oder Glob-Muster hinzu:

{ "name": "my-agent", "description": "My development agent", "resources": [ "file://README.md", "file://.amazonq/rules/**/*.md", "file://docs/**/*.md", "file://src/config.py" ] }

Ressourcen müssen mit dem Präfix file:// versehen werden, um als Kontextdateien aufgenommen zu werden. Diese Dateien sind automatisch in allen Chat-Sitzungen verfügbar, die diesen Agenten verwenden.

Hinzufügen von temporärem Sitzungskontext

Mit dem Befehl /context add können Sie Ihrer aktuellen Chat-Sitzung vorübergehend Dateien hinzufügen. Diese hinzugefügten Dateien sind nur für die aktuelle Sitzung verfügbar und bleiben nicht bestehen, wenn Sie eine neue Chat-Sitzung starten.

q chat > /context add README.md Added 1 path(s) to context. Note: Context modifications via slash command is temporary.

Sie können auch mehrere Dateien gleichzeitig hinzufügen, indem Sie Glob-Muster verwenden:

q chat > /context add docs/*.md Added 3 path(s) to context. Note: Context modifications via slash command is temporary.

Wenn Sie Kontextänderungen dauerhaft festlegen möchten, fügen Sie die Dateien stattdessen dem Feld resources Ihres Agenten hinzu. Weitere Informationen finden Sie unter Konfigurieren eines persistenten Kontextes mit Agentenressourcen.

Wissensdatenbank-Kontext (für große Datensätze)

Verwenden Sie für umfangreiche Codebasen, Dokumentationssätze oder Referenzmaterialien, die die Grenzen des Kontextfensters überschreiten würden, Wissensdatenbanken. Wissensdatenbanken bieten semantische Suchfunktionen, ohne dass bis zur Suche Platz im Kontextfenster beansprucht wird.

Wissensdatenbanken aktivieren:

q settings chat.enableKnowledge true

Inhalte zu einer Wissensdatenbank hinzufügen:

q chat > /knowledge add /path/to/large-codebase --include "**/*.py" --exclude "node_modules/**"

Wissensdatenbanken werden von Amazon Q bei Bedarf durchsucht, wenn relevante Informationen benötigt werden, was sie ideal für umfangreiche Referenzmaterialien macht.

Anzeigen von Kontext

Verwenden Sie den Befehl /context show, um Ihren aktuellen Kontext anzuzeigen:

q chat > /context show 👤 Agent (my-agent): README.md (1 match) .amazonq/rules/**/*.md (3 matches) docs/**/*.md (5 matches) 💬 Session (temporary): <none> 5 matched files in use: 👤 README.md (~250 tkns) 👤 .amazonq/rules/security.md (~180 tkns) 👤 .amazonq/rules/coding-standards.md (~320 tkns) 👤 docs/architecture.md (~150 tkns) 👤 docs/best-practices.md (~200 tkns) Total: ~1100 tokens

Die Ausgabe zeigt Folgendes an:

  • 👤 Agent: dauerhafter Kontext aus dem Feld resources Ihres Agenten

  • 💬 Sitzung: temporärer Kontext, der während der aktuellen Sitzung hinzugefügt wurde

Entfernen von Kontext

Verwenden Sie den Befehl /context rm, um Dateien aus Ihrem aktuellen Sitzungskontext zu entfernen:

q chat > /context rm src/temp-file.py Removed 1 path(s) from context. Note: Context modifications via slash command is temporary.

Verwenden Sie den Befehl /context clear, um den gesamten Sitzungskontext zu löschen:

q chat > /context clear Cleared context Note: Context modifications via slash command is temporary.

Hinweis: Sie können den vom Agenten definierten Kontext nicht mithilfe von /context-Befehlen entfernen. Wenn Sie den Kontext dauerhaft entfernen möchten, bearbeiten Sie das Feld resources Ihres Agenten.

Häufige Anwendungsfälle

Im Folgenden finden Sie einige häufig auftretende Anwendungsfälle für die Kontextverwaltung:

Verwenden von Projektregeln

Amazon Q unterstützt Regeln auf Projektebene, mit denen Sicherheitsrichtlinien und Einschränkungen definiert werden können. Diese Regeln sind in Markdown-Dateien im Verzeichnis .amazonq/rules Ihres Projekts definiert.

Sie können beispielsweise Regeln erstellen, die Folgendes angeben:

  • Auf welche Verzeichnisse Amazon Q nicht zugreifen sollte

  • Sicherheitsanforderungen für generierten Code

  • Codierungsstandards und bewährte Methoden

Es wird empfohlen, Projektregeln über Ihre Agentenkonfiguration einzubeziehen:

{ "name": "my-project-agent", "resources": [ "file://.amazonq/rules/**/*.md", "file://README.md", "file://docs/architecture.md" ] }

Sie können Ihrer aktuellen Sitzung auch vorübergehend Projektregeln hinzufügen:

q chat > /context add .amazonq/rules/*.md Added 3 path(s) to context. Note: Context modifications via slash command is temporary.

Weitere Informationen zum Erstellen und Verwenden von Projektregeln finden Sie in der IDE-Dokumentation unter Erstellen von Projektregeln für die Verwendung mit dem Chat von Amazon Q Developer.

Migration von Sitzungskontext zu den Agentenressourcen

Wenn Sie wiederholt dieselben Kontextdateien mithilfe von /context add-Befehlen hinzufügen, sollten Sie erwägen, sie aus Gründen der Persistenz in das Feld resources Ihres Agenten zu verschieben:

  1. Notieren Sie sich die Dateien, die Sie häufig mit /context add hinzufügen.

  2. Bearbeiten Sie Ihre Agenten-Konfigurationsdatei, indem Sie die Datei verwenden /agent edit oder direkt ändern

  3. Fügen Sie dem resources-Array die Dateipfade mit dem Präfix file:// hinzu.

  4. Speichern Sie die Agentenkonfiguration.

Beispiel für eine Migration:

# Instead of running these commands every session: > /context add README.md > /context add docs/*.md > /context add .amazonq/rules/*.md # Add them to your agent config once: { "resources": [ "file://README.md", "file://docs/**/*.md", "file://.amazonq/rules/**/*.md" ] }

Wann sollten Wissensdatenbanken verwendet werden

Erwägen Sie Wissensdatenbanken, wenn:

  • Ihre Kontextdateien überschreiten das Token-Limit (75% des Kontextfensters)

  • Sie haben große Codebasen oder Dokumentationssätze

  • Sie benötigen eine semantische Suche in umfangreichen Materialien

  • Sie möchten den ständigen Verbrauch von Kontextfenstern vermeiden

Beispiel: Anstatt eine große Codebasis als Kontextdateien hinzuzufügen:

# This would consume too many tokens: > /context add src/**/*.py # Use knowledge base instead: > /knowledge add src/ --include "**/*.py" --exclude "__pycache__/**"

Einen Standard-Agenten mit Kontext einrichten

Sie können einen Standard-Agenten konfigurieren, der Ihre bevorzugten Kontextdateien enthält:

q settings chat.defaultAgent my-project-agent

Dadurch wird sichergestellt, dass Ihr Kontext in neuen Chat-Sitzungen automatisch verfügbar ist, ohne dass Sie den Agenten jedes Mal angeben müssen.

Bewährte Methoden

Organisation von Kontextdateien

  • Sorgen Sie dafür, dass die Kontextdateien fokussiert und relevant sind, um Token-Limits zu vermeiden

  • Verwenden Sie aussagekräftige Dateinamen, die ihren Zweck angeben

  • Organisieren Sie Regeln und Dokumentation in logischen Verzeichnisstrukturen

  • Beachten Sie die Dateigröße — sehr große Dateien können erhebliche Tokens verbrauchen

Leistungsaspekte

  • Überwachen Sie die Token-Nutzung mit/context show, um die Grenzwerte einzuhalten

  • Verwenden Sie spezifische Glob-Muster statt zu weit gefasster Muster

  • Entfernen Sie unbenutzte Kontextdateien aus den Agentenkonfigurationen

  • Erwägen Sie, große Kontextdateien in kleinere, fokussierte Dateien aufzuteilen

  • Verwenden Sie Wissensdatenbanken für große Datensätze, um den Verbrauch von Kontextfenstern zu vermeiden

Sicherheitsüberlegungen

  • Vermeiden Sie es, vertrauliche Informationen in Kontextdateien aufzunehmen

  • Wird verwendet.gitignore, um versehentliche Übertragungen von sensiblem Kontext zu verhindern

  • Überprüfen Sie die Kontextdateien regelmäßig, um sicherzustellen, dass sie keine veralteten Informationen enthalten

  • Achten Sie darauf, welche Informationen geteilt werden, wenn Sie Kontext in Konversationen verwenden