Lektion 05 · Planung

Domänenwissen wird bei Bedarf geladen

「Don't put everything in the system prompt. Load on demand.」

⏱ ~10 Min · 📝 3 interaktive Widgets · 🧑‍💻 Basiert auf shareAI-lab · s05_skill_loading.py

Die Gefahr einer „vollständigen Systemaufforderung“

Sie verfügen über 20 Fähigkeiten, von denen jede im Detail beschrieben ist: pdf-processing (wie man PDF liest), code-review (Überprüfungscheckliste), git-workflow (häufig verwendete Git-Routinen) ... Intuitive Methode: Fügen Sie sie alle in die Systemeingabeaufforderung ein, damit das Modell jederzeit eingesehen werden kann.

Ergebnis:

  • Verbrennen Sie 15-30.000 Eingabe-Tokens für jeden Aufruf (auch wenn das Problem überhaupt keine Fähigkeiten erfordert).
  • Die Aufmerksamkeit des Modells wird geschwächt – die Einhaltung der in der langen Systemaufforderung genannten Regeln nimmt ab.
  • Ändern Sie einen Skill und der Cache aller historischen Konversationen wird ungültig.

Die Art und Weise, wie s05 erstellt wird, besteht darin, es in zwei Schichten aufzuteilen.

zweistufige Architektur

Ebene 1 · Günstig: Nur der Name der Fertigkeit und eine Beschreibung aus einem Satz werden in die Systemeingabeaufforderung eingefügt (jeweils etwa 100 Token). 20 Fertigkeiten = 2.000 Token, akzeptabel.

# Fähigkeitsliste in der Systemeingabeaufforderung
Verfügbare Fähigkeiten:
  - pdf: PDF-Dateien verarbeiten. Extrahieren Sie Text, Tabellen und Metadaten.
  - Code-Review: Checkliste für die systematische Code-Überprüfung.
  - git-workflow: Gängige Git-Verzweigungs- und Rebase-Muster.

Schicht 2 · On-Demand: Wenn das Modell eine bestimmte Fähigkeit verwenden muss, rufen Sie load_skill(name="pdf") auf und der gesamte Fähigkeitskörper (vielleicht 5-10.000 Token) wird über tool_result in den Kontext eingefügt. Es werden keine Token für ungenutzte Fähigkeiten geladen.

# tool_result gibt den vollständigen Skill zurück
<Skillname="pdf">
  Schritt 1: Verwenden Sie pdfplumber zum Extrahieren ...
  Schritt 2: OCR-Fallback bei Bedarf durchführen ...
  Schritt 3: Ausgabe als Markdown-Tabelle strukturieren...
</skill>

Vergleichen Sie die Token-Kosten

Testen Sie es in einem realen Szenario. Angenommen, Sie verfügen über 20 Fertigkeiten und jeder Körper verfügt über durchschnittlich 3000 Token. Der Benutzer stellt eine Frage (z. B. „Behebe den Fehler in der Anmeldeoberfläche“) – für diese Frage sind wahrscheinlich keine Kenntnisse erforderlich.

SKILL.md-Format

Skill-Dateien verwenden YAML frontmatter + body:

---
Name: pdf
Beschreibung: PDF-Dateien verarbeiten. Extrahieren Sie Text, Tabellen und Metadaten.
Tags: Dokument, Parsen
---

Schritt 1: Verwenden Sie pdfplumber zum Extrahieren. Behandeln Sie mehrspaltige Layouts...
Schritt 2: Greifen Sie bei gescannten PDFs auf OCR über tesseract zurück...

Der Titel ist für Schicht 1 (Name/Beschreibung/Tags) und der Körper ist für Schicht 2. Diese Schreibmethode ist von statischen Blogs (Jekyll, Hugo) inspiriert und Personen, die damit vertraut sind, können sie auf einen Blick verstehen.

Interaktiv

Widget 1 · Token Economy · Vergleich zweier Architekturen

Links: Vollständige Systemaufforderung. Rechts: Zweischichtige Architektur. Schauen Sie sich die gesammelten Token nach 20 Gesprächen an.

全塞 system prompt
System prompt: 60000 tokens
(20 × 3000 token 的 skill 全塞入)
× 对话次数: 1

总计: 60000 tokens
两层架构
System prompt: 2000 tokens
(20 个描述 × ~100 token 每个)
+ 按需加载的 skill body: 0 tokens
(每 5 次对话触发一次)

总计: 2000 tokens
1
省 0%
Interaktiv

Widget 2 · Frontmatter Parser · Skill-Metadaten extrahieren

Geben Sie SKILL.md ein und verwenden Sie die YAML-Frontmatter-Parsing-Logik in s05, um zu sehen, was Layer 1 bzw. Layer 2 erhält.

SKILL.md(可编辑)
Layer 1 · system prompt 里塞这个

          
Layer 2 · load_skill 时的 tool_result

          
Interaktiv

Widget 3 · Auffindbarkeit · Das Modell kann erst gefunden werden, nachdem die Fertigkeitsbeschreibung geschrieben wurde.

Die Beschreibung der Schicht 1 ist die Grundlage für die Auswahl der Fähigkeiten für das Modell. Geben Sie Ihnen 3 Vergleichssätze an, wählen Sie den mit der besseren Schreibweise aus – einige Schreibmethoden führen dazu, dass das Modell diese Fähigkeit nie findet.

答对 0 / 3