Lesson 05 · 計画

ドメインの知識がオンデマンドでロードされる

「システム プロンプトにすべてを入力しないでください。オンデマンドでロードしてください。」

⏱ 約 10 分 · 📝 3 つのインタラクティブ要素 · 🧑‍💻 出典 shareAI-lab · s05_skill_loading.py

「フルシステムプロンプト」の落とし穴

あなたには 20 のスキルがあり、それぞれが詳細に書かれています: pdf-processing (PDF の読み方)、code-review (レビュー チェックリスト)、git-workflow (一般的に使用される git ルーチン)... 直感的な方法: それらをすべてシステム プロンプトに入力すると、いつでもモデルを参照できます。

結果:

  • 呼び出しごとに 15~30,000 の入力トークンを書き込みます (問題にまったくスキルが必要ない場合でも)。
  • モデルの注意力が薄れます。長いシステム プロンプトで説明されるルールへの準拠性が低下します。
  • スキルを変更すると、すべての会話履歴のキャッシュが無効になります。

s05 の作り方は 2 つのレイヤーに分割します。

2層アーキテクチャ

レイヤー 1 · 安価: スキルの名前と 1 文の説明のみがシステム プロンプトに表示されます (それぞれ約 100 トークン)。 20 スキル = 2,000 トークン、許容可能。

# 系统提示里的 skill 清单
Skills available:
  - pdf: Process PDF files. Extract text, tables, metadata.
  - code-review: Systematic code review checklist.
  - git-workflow: Common git branching and rebase patterns.

レイヤー 2 · オンデマンド: モデルが特定のスキルを使用する必要がある場合、load_skill(name="pdf") を呼び出すと、完全なスキル本体 (おそらく 5 ~ 10,000 トークン) が、tool_result を通じてコンテキストに挿入されます。未使用のスキルのトークンはロードされません。

# tool_result 里返回完整 skill
<skill name="pdf">
  Step 1: Use pdfplumber for extraction...
  Step 2: Handle OCR fallback when needed...
  Step 3: Structure output as Markdown table...
</skill>

トークンのコストを比較する

実際のシナリオでテストします。 20 のスキルがあり、各ボディに平均 3000 のトークンがあるとします。ユーザーが質問をします (「ログイン インターフェイスのバグを修正してください」など)。この質問にはおそらくスキルは必要ありません。

SKILL.md形式

スキル ファイルは YAML フロントマター + ボディを使用します:

---
name: pdf
description: Process PDF files. Extract text, tables, metadata.
tags: document,parsing
---

Step 1: Use pdfplumber for extraction. Handle multi-column layouts...
Step 2: For scanned PDFs, fall back to OCR via tesseract...

フロントマターはレイヤー 1 (名前/説明/タグ)、本文はレイヤー 2 です。この書き方は静的ブログ (Jekyll、Hugo) からインスピレーションを得たもので、慣れている人なら一目で理解できます。

Interactive

Widget 1 · トークンエコノミー · 2 つのアーキテクチャの比較

左: 完全なシステム プロンプト。右: 2 層アーキテクチャ。 20回の会話後に蓄積されたトークンを見てください。

全塞 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%
Interactive

Widget 2 · Frontmatter パーサー · スキルのメタデータを抽出する

SKILL.md を入力し、s05 で YAML フロントマター解析ロジックを使用して、レイヤー 1 とレイヤー 2 がそれぞれ何を取得するかを確認します。

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

          
Layer 2 · load_skill 时的 tool_result

          
Interactive

Widget 3 · 発見可能性 · モデルはスキルの説明が書かれた後でのみ見つけることができます。

レイヤ 1 の記述は、モデルのスキルを選択するための基礎となります。 3 セットの比較を行い、より優れた記述が可能な方を選択してください。一部の記述方法では、モデルがこのスキルを見つけられない場合があります。

答对 0 / 3