0Pricing
AI Agents · Урок

Процедурная память (библиотека навыков)

Создайте библиотеку успешных последовательностей промптов и вызовов инструментов, которые агент сможет повторять для типовых задач.

«Процедурная память (библиотека навыков)» — бесплатный урок 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 — локальная установка не требуется.

Все уроки этого курса

  1. Эпизодическая память (история сеанса)
  2. Семантическая память (векторизованные факты)
  3. Процедурная память (библиотека навыков)
  4. Забывание памяти и сборка мусора
← Назад к AI Agents