Процедурная память (библиотека навыков)
Создайте библиотеку успешных последовательностей промптов и вызовов инструментов, которые агент сможет повторять для типовых задач.
«Процедурная память (библиотека навыков)» — бесплатный урок AI Agents на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения 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;Удаление неудачных навыков
Навыки с низкими показателями успешности или малым числом использований следует удалять:
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 и др., 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/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.
Чему я научусь в уроке «Процедурная память (библиотека навыков)»?
Создайте библиотеку успешных последовательностей промптов и вызовов инструментов, которые агент сможет повторять для типовых задач. Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Agents?
Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Процедурная память (библиотека навыков)»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Agents?
Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Эпизодическая память (история сеанса)
- Семантическая память (векторизованные факты)
- Процедурная память (библиотека навыков)
- Забывание памяти и сборка мусора