Pi Agent Kontextverwaltung
Kontextverwaltung ist eine Kernkompetenz für die effiziente Nutzung von Pi Agent.
Dieses Kapitel erklärt, wie du das Verhalten der KI über Umgebungsdateien steuerst und wie du den Gesprächskontext verwaltest.
Übersicht über Kontextdateien
Pi Agent lädt beim Start automatisch Projektanweisungsdateien, sodass die KI deine Projektkonventionen, Befehle und Präferenzen versteht.
Diese Dateien sagen der KI, "wie in diesem Projekt gearbeitet wird."
AGENTS.md / CLAUDE.md
Dies sind die wichtigsten Kontextdateien für Pi Agent, geladen in der folgenden Reihenfolge:
- ~/.pi/agent/AGENTS.md- Globale Anweisungen, wirksam für alle Projekte
- AGENTS.md oder CLAUDE.md in übergeordneten Verzeichnissen ausgehend vom aktuellen Verzeichnis nach oben durchsuchen
- AGENTS.md oder CLAUDE.md im aktuellen Verzeichnis
Das Folgende istAGENTS.mdein vollständiges Beispiel, das im Projektstammverzeichnis abgelegt wird:
Beispiel
## Codestandards
- Der gesamte Code verwendet den TypeScript-Strict-Modus
- Funktionen müssen Rückgabetyp-Annotationen haben
- ESLint und Prettier verwenden, um den Code-Stil konsistent zu halten
## Arbeitsablauf
- `npm run check` ausführen, um nach Codeänderungen zu prüfen
- `npm test` vor dem Commit ausführen, um sicherzustellen, dass die Tests bestehen
- Führen Sie Produktions-Datenbankmigrationen nicht direkt auf Ihrem lokalen Rechner aus
## Sicherheitshinweise
- Schreiben Sie keine API-Schlüssel oder Passwörter in den Code
- Verwenden Sie Umgebungsvariablen für sensible Konfiguration
## Antwortstil
- Halten Sie Antworten prägnant und erklären Sie offensichtlichen Code nicht übermäßig
- Wenn Probleme auftreten, liefern Sie zuerst eine Lösung und erklären Sie dann die Ursache
Nach dem Aktualisieren von AGENTS.md verwenden Sie den Befehl/reloadzum Hot Reload; Pi Agent muss nicht neu gestartet werden.
Wenn Sie sowohl AGENTS.md als auch CLAUDE.md haben, lädt Pi Agent zuerst AGENTS.md.
Wenn Sie zuvor Claude Code verwendet haben, können Sie Ihre vorhandene CLAUDE.md direkt wiederverwenden.
Wenn AGENTS.override.md in einem Verzeichnis vorhanden ist, wird es anstelle der AGENTS.md und CLAUDE.md dieses Verzeichnisses geladen.
Um das Laden von Kontextdateien zu deaktivieren, verwenden Sie das Befehlszeilenargument:
$ pi --no-context-files $ pi -nc # 短形式
SYSTEM.md
SYSTEM.md wird verwendet, um den Standard-System-Prompt von Pi Agent vollständig zu ersetzen. Wenn Sie nur Inhalte anhängen möchten, verwenden Sie stattdessen APPEND_SYSTEM.md.
Beide haben eine globale und eine Projektebene, mit Pfaden und Auswirkungen wie folgt:
| Datei | Stufe | Wirkung |
|---|---|---|
| ~/.pi/agent/SYSTEM.md | Global | Ersetzt den Standard-System-Prompt |
| Projektstammverzeichnis/.pi/SYSTEM.md | Projekt | Ersetzt den Standard-System-Prompt |
| ~/.pi/agent/APPEND_SYSTEM.md | Global | Hängt nach dem Standard-System-Prompt an |
| Projektstammverzeichnis/.pi/APPEND_SYSTEM.md | Projekt | Hängt nach dem Standard-System-Prompt an |
In den meisten Fällen müssen Sie den System-Prompt nicht ändern.
AGENTS.md kann bereits den Großteil des Anpassungsbedarfs abdecken.
SYSTEM.md eignet sich für Szenarien, die eine tiefgehende Anpassung des KI-Verhaltens erfordern; unsachgemäße Änderungen können die Leistung der KI beeinträchtigen.
Kontextkomprimierung
Wenn eine Konversation sehr lang wird, füllt sich das Kontextfenster der KI allmählich.
Pi Agent löst dies durch Kontextkomprimierung – er fasst frühere Gesprächsinhalte automatisch zu einer kurzen Zusammenfassung zusammen und gibt so Kontextspeicher frei.
Automatische Komprimierung
Standardmäßig löst Pi Agent die Komprimierung automatisch aus, wenn der Kontext sich dem Modelllimit nähert.
Das Komprimierungsverhalten wird durch die Komprimierungskonfiguration in~/.pi/agent/settings.jsongesteuert:
Beispiel
"compaction": {
"enabled": true,
"reserveTokens": 16384,
"keepRecentTokens": 20000
}
}
| Konfigurationselement | Type | Standardwert | Beschreibung |
|---|---|---|---|
| compaction.enabled | boolesch | wahr | Ob die automatische Komprimierung aktiviert werden soll |
| compaction.reserveTokens | number | 16384 | Anzahl der für LLM-Antworten reservierten Tokens |
| compaction.keepRecentTokens | number | 20000 | Anzahl der neuesten Tokens, die unkomprimiert beibehalten werden |
Die Auslösebedingung ist, wenn die Kontext-Token den verfügbaren Platz überschreiten, nachdem reserveTokens von contextWindow subtrahiert wurde.
Die Prüfung erfolgt nach Abschluss jeder Tool-Ausführung und bevor der nächste Benutzer-Prompt gesendet wird.
Manuelle Kompaktierung
Sie können die Kompaktierung auch jederzeit manuell auslösen:
/compact
Beim Kompaktieren können Sie benutzerdefinierte Anweisungen hinzufügen, um der KI mitzuteilen, worauf sie beim Zusammenfassen achten soll:
/compact 重点关注错误修复和 API 变更
Die Kompaktierung ist nur für den aktuellen Gesprächskontext irreversibel.
Die komprimierten Originalnachrichten sind weiterhin vollständig in der Sitzungsdatei erhalten. Verwenden Sie /tree, um zum Knoten vor der Kompaktierung zurückzuspringen, um Details abzurufen.
Wenn Sie vor der Kompaktierung ein vollständiges Backup behalten möchten, wird /clone empfohlen.
/clone kopiert den aktuellen aktiven Branch vollständig in eine neue Sitzungsdatei, geeignet als Backup vor der Kompaktierung.
/fork startet nur von einer bestimmten historischen Benutzernachricht aus, und Inhalte danach werden nicht in die neue Sitzung übernommen.
Anzeige des Inferenzprozesses
Modelle, die Reasoning-Ausgabe unterstützen, denken vor der Antwort nach.
Sie können die Anzeige des Reasoning-Prozesses über die folgenden Einstellungen steuern:
| Einstellung | Type | Standardwert | Beschreibung |
|---|---|---|---|
| hideThinkingBlock | boolesch | false | Den Reasoning-Prozess ausblenden und nur die endgültige Antwort anzeigen |
| showCacheMissNotices | boolesch | false | Cache-Miss-Hinweise anzeigen und auch Token-Nutzungshinweise anzeigen, die durch Kompaktierung und Branch-Zusammenfassungen erzeugt werden |
Verwenden SieCtrl+T, um die Anzeige des Reasoning-Prozesses jederzeit während der Unterhaltung ein- oder auszublenden.
Hot Reload (/reload)
Ob Sie nach dem Ändern der Konfiguration neu starten müssen, hängt davon ab, was Sie geändert haben.
Die folgende Tabelle fasst zusammen, wie gängige Änderungen wirksam werden. Bei Einträgen, die mit "Nein" markiert sind, führen Sie einfach /reload aus:
| Änderung | Neustart erforderlich? | Beschreibung |
|---|---|---|
| AGENTS.md oder CLAUDE.md (Kontextdateien) | nein | Sofort nach dem Ausführen von /reload neu laden |
| Erweiterungen | nein | Sofort nach dem Ausführen von /reload neu laden |
| Skills | nein | Sofort nach dem Ausführen von /reload neu laden |
| Prompt-Vorlagen | nein | Sofort nach dem Ausführen von /reload neu laden |
| Theme-Dateien | nein | Sofort nach dem Ausführen von /reload neu laden |
| Tastaturkürzel-Konfiguration | nein | Sofort nach dem Ausführen von /reload neu laden |
| Einige Einstellungen in ~/.pi/agent/settings.json | Ja | Einige Konfiguration wird beim Start einmal eingelesen |
| Neu installierte Erweiterungspakete | Ja | Paketabhängigkeiten werden beim Start aufgelöst |
| auth.json-Anmeldedaten | Ja | Anmeldedaten werden beim Start geladen |
Kontextnutzung anzeigen
Die untere Statusleiste zeigt die Token-Nutzung und die Kosten des aktuellen Kontexts in Echtzeit an.
Verwenden Sie den/sessionBefehl, um detailliertere Informationen anzuzeigen:
/session
Beispielausgabe:
Session file: ~/.pi/agent/sessions/--Users-example-projects-example-demo--/2026-08-30T09-15-04-000Z_019fbb5d-7a2e-7f31-b5c4-1a2b3c4d5e6f.jsonl Session ID: abc123-def456 Messages: 42 Tokens: 85,432 Cost: $0.52 Current model: claude-sonnet-4-20250514Weitere Erweiterungen