手続き記憶(スキルライブラリ)
繰り返し発生するタスクで再利用できる、成功したプロンプトやツールの手順をライブラリ化します。
「手続き記憶(スキルライブラリ)」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
手続き記憶とは
手続き記憶には、「物事をどのように行うか」、つまり成功した再利用可能なアクションの手順が保存されます。エージェントが再生できる小さなレシピ集と考えるとよいでしょう。
例:
- 「経費報告書を提出するには、A、次にB、次にCを実行します。」
- 「ステージングビルドをデプロイするには、Xを実行し、Yを待ってからZを実行します。」
手続き記憶が必要な理由
手続き記憶がなければ、エージェントは毎回同じ計画を最初から考え直すため、遅く、高コストで、一貫性もなくなります。スキルライブラリがあれば、繰り返し発生するタスクをすぐに解決できます。
Storage Format
CREATE TABLE skills (
id UUID PRIMARY KEY,
name TEXT NOT NULL,
description TEXT NOT NULL,
embedding vector(1536),
steps JSONB NOT NULL, -- list of tool calls
success_rate REAL DEFAULT 1.0,
use_count INT DEFAULT 0,
created_at TIMESTAMPTZ
);新しいスキルを記録
実行が成功した後、LLMに手順を抽出させます。
extract_prompt = '''
The agent successfully completed: {user_request}
The trace was:
{trace}
Write this as a reusable skill with name, description, and step list.
Return JSON: {name, description, steps: [{tool, args_template}]}
'''
print(extract_prompt.strip())
Storing the Skill
skill = json.loads(llm.invoke(extract_prompt).content)
vec = embed(skill['description'])
conn.execute('''
INSERT INTO skills (id, name, description, embedding, steps)
VALUES (%s, %s, %s, %s, %s::jsonb)
''', (str(uuid.uuid4()), skill['name'], skill['description'], vec, json.dumps(skill['steps'])))関連するスキルの取得
新しいユーザーリクエストが届いたら、スキルライブラリを検索します。
def find_skill(query):
qvec = embed(query)
rows = conn.execute('''
SELECT name, steps FROM skills
ORDER BY embedding <=> %s LIMIT 3
''', (qvec,))
return rowsスキルテンプレート
スキルは、パラメータ用のスロットを持つテンプレートです。エージェントは実行ごとに実際の値を設定します。
skill = {
'name': 'file_expense_report',
'steps': [
{'tool': 'open_form', 'args': {'form_id': 'expense'}},
{'tool': 'fill_field', 'args': {'field': 'amount', 'value': '{amount}'}},
{'tool': 'fill_field', 'args': {'field': 'category', 'value': '{category}'}},
{'tool': 'submit'}
]
}
import json
print(json.dumps(skill, indent=2))
LLMへのスキルの提示
候補となるスキルをシステムプロンプトに注入し、どれを使うかをLLMに判断させます。
candidates = find_skill(user_request)
prompt = f'''
You can use these existing skills if applicable:
{json.dumps(candidates, indent=2)}
Or you can plan a new sequence.
'''スキルの成功状況の追跡
使用するたびに、スキルの統計情報を更新します。
UPDATE skills
SET use_count = use_count + 1,
success_rate = (success_rate * use_count + (CASE WHEN %s THEN 1 ELSE 0 END)) / (use_count + 1)
WHERE id = %s;不適切なスキルの削除
success_rate が低いスキルや use_count が少ないスキルは削除する必要があります。
DELETE FROM skills
WHERE (success_rate < 0.5 AND use_count >= 5)
OR (use_count = 0 AND created_at < NOW() - INTERVAL '30 days');Voyager:有名な事例
Voyager(Wang et al. 2023)は、コードスニペットの「スキルライブラリ」を構築するMinecraftプレイエージェントです。手続き記憶に関する画期的な論文として知られています。
スキルの合成
スキルから別のスキルを呼び出すこともできます。エージェントは、より抽象度の高い手続きを段階的に学習します。
low_level_skill = {'name': 'open_email', 'steps': [...]}
high_level_skill = {'name': 'process_inbox', 'steps': [
{'skill': 'open_email'},
{'skill': 'reply_or_archive'}
]}
print(low_level_skill)
print(high_level_skill)
スキルのプライバシー
スキルは通常、ユーザー間で共有できるほど汎用的です。ただし、一部の「スキル」には、特定の口座番号など、ユーザー固有の情報が含まれる場合があります。共有ライブラリに保存する前に匿名化してください。
手続き記憶の定義
手続き記憶には何が保存されるのでしょうか。
まとめ
手続き記憶 = スキルライブラリです。成功した実行から手順を抽出し、新しいリクエストに関連する手順を取得し、成功率を追跡して、使われなくなったものを削除します。
よくある質問
「手続き記憶(スキルライブラリ)」レッスンは無料ですか?
はい。「手続き記憶(スキルライブラリ)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。
「手続き記憶(スキルライブラリ)」で何を学びますか?
繰り返し発生するタスクで再利用できる、成功したプロンプトやツールの手順をライブラリ化します。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Agentsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「手続き記憶(スキルライブラリ)」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Agentsレッスンでコードを書いて実行できますか?
はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- エピソード記憶(セッションごとの履歴)
- 意味記憶(ベクトル化された事実)
- 手続き記憶(スキルライブラリ)
- 記憶の減衰とガベージコレクション