Letta Когда AI-агенты наконец-то обретают память и интеллект
Знакомая ситуация? Вы общаетесь с чат-ботом или AI-помощником, и он вроде бы понимает вас, но через пару реплик напрочь забывает, о чем шла речь минуту назад. Это классическая проблема большинства больших языковых моделей (LLM) — у них ограниченное "окно контекста", и они быстро "забывают" старую информацию. Представьте, если бы ваш коллега постоянно переспрашивал одно и то же! Раздражает, правда?
К счастью, мир AI не стоит на месте, и сегодня я хочу рассказать вам о проекте, который меняет правила игры. Встречайте — Letta (ранее известный как MemGPT). Это не просто очередная обертка для LLM, а полноценная платформа для создания stateful-агентов, то есть AI, которые действительно обладают продвинутой памятью, могут обучаться и даже самосовершенствоваться со временем. Звучит как научная фантастика, но это уже реальность!
Что такое Letta и почему это важно для разработчиков?
Letta — это, по сути, операционная система для вашей AI-памяти, вдохновленная одноименной исследовательской работой MemGPT. Если вы когда-либо пытались создать сложного AI-агента, который должен помнить историю диалога, адаптироваться к пользователю или выполнять многошаговые задачи, вы точно сталкивались с головной болью управления контекстом. Letta решает эту проблему, предоставляя агентам иерархическую систему памяти, которая позволяет им динамически управлять тем, что находится "в уме" (in-context), а что хранится во "внешней памяти" (out-of-context).
Кому это нужно?
- Разработчикам, создающим сложных чат-ботов и виртуальных ассистентов.
- Командам, работающим над автоматизацией бизнес-процессов с участием AI.
- Исследователям, экспериментирующим с автономными агентами.
- Всем, кто устал от "амнезии" LLM и хочет, чтобы их AI были по-настоящему умными.
Ключевые возможности Letta, которые вас удивят
Давайте разберем, что именно делает Letta таким интересным и полезным.
1. Бесконечная память с иерархией и саморедактированием
Представьте, что у вашего AI есть не просто короткая оперативная память, а целая библиотека, где он может хранить, искать и даже редактировать информацию о себе и окружающем мире. Letta реализует это через концепцию иерархии памяти и блоков памяти.
- Блоки памяти (Memory Blocks): Это как отдельные тетрадки в блокноте агента. Один блок может хранить информацию о "личности" агента (persona), другой — о пользователе (human), третий — об общих данных проекта. Агент может сам решать, какие блоки сейчас нужны в контексте, а какие можно "отложить" до востребования.
- Саморедактирование: Самое крутое — агент может самостоятельно редактировать свою память! Например, если пользователь говорит: "Кстати, меня зовут не Чэд, а Брэд", агент не просто ответит, но и обновит соответствующий блок памяти. Это позволяет агентам постоянно обучаться и адаптироваться.
Вот как это выглядит в коде на Python:
from letta_client import Letta
import os
client = Letta(api_key=os.getenv("LETTA_API_KEY"))
agent_state = client.agents.create(
model="openai/gpt-4.1",
memory_blocks=[
{
"label": "human",
"value": "The human's name is Chad. They like vibe coding." # Изначально неверная информация
},
{
"label": "persona",
"value": "My name is Sam, a helpful assistant."
}
],
tools=["web_search", "run_code"]
)
print(agent_state.id)
response = client.agents.messages.create(
agent_id=agent_state.id,
messages=[
{
"role": "user",
"content": "Hey, nice to meet you, my name is Brad." # Корректировка
}
]
)
# Агент обработает сообщение и обновит свой блок памяти "human"
for message in response.messages:
print(message)
2. Многоагентные системы и "подсознание" AI
Letta не ограничивается одним агентом. Вы можете создавать сложные системы, где несколько агентов взаимодействуют друг с другом, используя общую память. Представьте команду, где у каждого своя специализация, но есть общая база знаний.
- Общая память: Создайте общий блок памяти, который будет доступен нескольким агентам. Это идеально для командной работы AI, например, для координации задач между "супервайзером" и "исполнителем".
- Sleep-time агенты (Агенты "подсознания"): Это вообще бомба! Вы можете создать фонового агента, который будет разделять память основного, но работать в "фоновом режиме". Он может анализировать данные, обновлять память или выполнять рутинные задачи, пока основной агент общается с пользователем. Это как ваше подсознание, которое обрабатывает информацию, пока вы сосредоточены на чем-то другом.
Пример создания общей памяти:
# Создаем общий блок памяти
shared_block = client.blocks.create(
label="organization",
description="Shared information between all agents within the organization.",
value="Nothing here yet, we should update this over time."
)
# Создаем агента-супервайзера с доступом к общей памяти
supervisor_agent = client.agents.create(
model="anthropic/claude-3-5-sonnet-20241022",
memory_blocks=[{"label": "persona", "value": "I am a supervisor"}],
block_ids=[shared_block.id], # Присоединяем общий блок
)
# Создаем агента-работника с доступом к той же общей памяти
worker_agent = client.agents.create(
model="openai/gpt-4.1-mini",
memory_blocks=[{"label": "persona", "value": "I am a worker"}],
block_ids=[shared_block.id], # Присоединяем общий блок
)
3. Интеграция с файловой системой и внешними инструментами
Чтобы быть по-настоящему полезным, AI-агент должен уметь не только "думать", но и "действовать" и "читать". Letta предоставляет агентам доступ к файловой системе и возможность использовать внешние инструменты.
- Файловая система: Подключите к агенту папку, содержащую документы (PDF, TXT, MD, JSON). Агент сможет самостоятельно просматривать эти файлы, искать информацию, анализировать отчеты или медицинские записи, используя специальные инструменты вроде
open_file,grep_file,search_file. Это открывает огромные возможности для автоматизации работы с документами. - Модель контекстного протокола (MCP) и кастомные инструменты: Letta поддерживает MCP-инструменты, а также позволяет создавать свои собственные Python-инструменты. Агент может использовать их для веб-поиска, выполнения кода, работы с API и многого другого. Это превращает агента из простого собеседника в полноценного исполнителя.
# Создаем папку
folder = client.folders.create(name="my_folder")
# Загружаем файл в папку
job = client.folders.files.upload(folder_id=folder.id, file=open("my_file.txt", "rb"))
# Дожидаемся завершения загрузки... (код ожидания опущен для краткости)
# Присоединяем папку к агенту
client.agents.folders.attach(agent_id=agent.id, folder_id=folder.id)
# Агент теперь может читать содержимое файла
response = client.agents.messages.create(
agent_id=agent_state.id,
messages=[
{
"role": "user",
"content": "What data is inside of my_file.txt?"
}
]
)
4. Переносимость агентов и гибкость развертывания
Letta заботится о том, чтобы ваши агенты были не просто умными, но и гибкими в использовании.
- Agent File (.af): Весь "мозг" и память агента можно экспортировать в специальный файл формата
.af. Это позволяет легко сохранять состояния агентов, делать чекпоинты и, что самое главное, переносить агентов между разными серверами Letta — например, с локальной машины в облако или наоборот. Это как сохранение игры, но для AI. - Поддержка локальных моделей: Не хотите зависеть от облачных API? Letta полностью поддерживает локальные модели через Ollama и LM Studio. Вы можете использовать свои любимые открытые модели и запускать агентов полностью на своей инфраструктуре.
Практическое применение: Где Letta покажет себя во всей красе?
- Персональные AI-ассистенты: Создайте ассистента, который действительно помнит ваши предпочтения, историю общения и может выполнять сложные многошаговые задачи, например, планировать путешествия, бронировать билеты, основываясь на ваших предыдущих запросах.
- Умные системы поддержки клиентов: Агент, который помнит всю историю взаимодействия с клиентом, его проблемы и решения, значительно повышает качество сервиса. Он может быстро находить нужную информацию в документации и предлагать персонализированные решения.
- Автоматизация исследований и анализа данных: Агент может получать доступ к базам данных, читать научные статьи, проводить анализ и синтезировать отчеты, используя инструменты для работы с файловой системой и выполнения кода.
- Обучающие платформы: Агенты-тьюторы, которые адаптируются к прогрессу студента, помнят его сильные и слабые стороны, предлагают индивидуальные задания и объяснения.
Выводы: Стоит ли погружаться в Letta?
Если вы серьезно настроены на создание продвинутых AI-агентов, которые не просто генерируют текст, а действительно обладают "памятью" и "интеллектом", то Letta — это проект, который вы обязаны изучить. Он решает одну из фундаментальных проблем LLM и открывает двери для создания по-настоящему автономных и полезных AI-систем.
Мне кажется, что Letta — это не просто библиотека, а целая философия построения AI, где агенты становятся не просто инструментами, а полноценными, обучающимися сущностями. Порог входа достаточно низкий благодаря удобным SDK для Python и TypeScript, а также наличию облачной версии и локального ADE.
Так что, если вы готовы дать своим AI-агентам суперсилу памяти и самосовершенствования, смело идите на GitHub репозиторий Letta и начинайте экспериментировать. Уверен, вы найдете много интересного!
