State, context и memory: как управлять состоянием и памятью LLM-агента
Как сохранять ход задачи, собирать контекст модели и переносить полезный опыт между сессиями. Подходы, инструменты и критерии проверки.

Обзор основан на первичной документации и исследовательских работах, проверенных 16 октября 2026 года. Классификация, схема и критерии выбора — инженерный синтез. Собственных сравнительных испытаний продуктов не проводилось. Основная область — приложения вокруг LLM; внутренние механизмы модели рассмотрены для разграничения понятий.
Три задачи управления
Для приложения на основе большой языковой модели (LLM) полезно проектировать три связанных механизма: состояние выполнения, сборку контекста и долговременную память. Они могут использовать одну базу данных, но требуют разных правил записи, чтения и проверки.
На узком экране таблицу можно прокрутить в сторону.
| Механизм | На какой вопрос отвечает | Пример | Основное требование |
|---|---|---|---|
| State management — управление состоянием | Где находится процесс и что действительно выполнено? | Задача ждёт проверки; внешний объект уже создан, его ID сохранён | Корректность переходов, восстановление, согласованность |
| Context management — управление контекстом | Какие сведения модель должна увидеть в следующем вызове? | Текущая цель, последние сообщения, нужный документ и найденная процедура | Релевантность, достаточность, лимит токенов |
| Memory management — управление памятью | Что из прошлого сохранять и применять в будущей работе? | Предпочтение пользователя, история решения, проверенный способ исправления ошибки | Происхождение, применимость, обновление и забывание |
Это рабочее разграничение обязанностей, а не общепринятые непересекающиеся типы данных. В широком программном смысле память тоже является состоянием системы. LangGraph называет thread state краткосрочной памятью; Letta включает долгосрочную память в state агента. Поэтому сравнивать продукты лучше по гарантиям и поведению, чем по слову memory в названии. LangGraph persistence, Letta stateful agents.
Рекомендация: начать с явного состояния задачи, сохранённых артефактов и поиска по актуальным источникам. Дополнительную память вводить для конкретной потери: повторных объяснений, повторного исследования или неприменённого полезного опыта. Хорошая память не компенсирует ненадёжное исполнение.
Какие состояния нужно различать
В предлагаемой модели у приложения есть несколько самостоятельных объектов:
На узком экране таблицу можно прокрутить в сторону.
| Объект | Что сохраняем | Кто подтверждает истинность |
|---|---|---|
| Предметное состояние | Статус заказа, версия документа, результат операции | Владеющая бизнес-система или артефакт |
| Состояние процесса | Цель, этап, незавершённые вызовы, разрешённые действия, попытки, бюджет | Оркестратор и проверенные результаты инструментов |
| Состояние диалога | Сообщения, идентификаторы вызовов инструментов и ответы, отложенные запросы | Протокол приложения |
| Рабочая среда | Файлы, checkout, результаты вычислений, ссылки на объекты | Файловая система и внешние сервисы |
| Память для повторного использования | Факты, эпизоды, предпочтения, процедуры | Источник записи, область применимости и процедура проверки |
Срок хранения — отдельная ось. Процесс может ждать человека неделю; это всё ещё состояние процесса. Предпочтение может действовать один день; это всё ещё память о предпочтении. Аналогично область «пользователь / проект / организация», формат «текст / JSON / граф» и способ поиска не заменяют назначение записи.
Документальный ориентир: Pydantic AI отдельно описывает сохранение Conversation, checkpoints после шагов, память между диалогами и durable execution. Сохранённый диалог также содержит служебные данные, включая отложенные tool requests; один список видимых в интерфейсе реплик может быть недостаточен для продолжения. Persistence.
Следствие для архитектуры: утверждение агента «операция выполнена» должно иметь подтверждение. Текстовый план, summary разговора и запись в memory store не заменяют квитанцию внешнего сервиса или проверку артефакта.
State management: сохранение, переходы и восстановление
Для короткого чата часто достаточно сериализовать диалог. Для длительной задачи требуется явная модель переходов: например, queued → running → waiting → running → completed, с отдельными исходами ошибки и отмены. Событие меняет состояние через проверку допустимого перехода; модель может предлагать действие, а приложение проверяет его и фиксирует результат. Это рекомендуемый способ организации, а не обязательная схема конкретного SDK.
Checkpoint — сохранённый снимок, из которого можно продолжить работу. Журнал событий — последовательность произошедшего, из которой можно восстановить состояние при корректной модели событий. Durable execution добавляет правила продолжения и повторов после сбоев. Эти подходы можно сочетать; журнал не обязан быть полной реализацией event sourcing.
В LangGraph checkpointer сохраняет состояние thread, а Store обслуживает данные между threads. In-memory saver теряет содержимое при перезапуске процесса, поэтому само наличие объекта MemorySaver не доказывает устойчивость. Persistence.
У checkpoints LangGraph есть режимы exit, async и sync: запись при выходе, асинхронно во время следующего шага или до его начала. Replay от старого checkpoint повторно выполняет последующие узлы, включая вызовы модели и интерфейсов программирования приложений (API); это не отмена внешнего мира. Checkpointers.
Условный пример сбоя. Агент создал заявку во внешней системе, затем процесс завершился до записи результата. После запуска локальный state не знает, завершилась ли операция. Простое повторение может создать вторую заявку. Рекомендуемый контракт: стабильный идентификатор операции, идемпотентность на стороне получателя либо проверка результата по этому идентификатору, сохранённая квитанция и явное состояние «исход неизвестен» до сверки. Если API не даёт такого механизма, нельзя обещать отсутствие дублей одним checkpoint.
Это ограничение подтверждает Temporal: завершённые Activities не запускаются повторно при replay, но операция, не сообщившая результат серверу, может быть повторена. Поэтому Activities рекомендуют делать идемпотентными — повтор должен давать тот же внешний эффект. Activity definition.
Минимальный состав состояния для такого приложения, пример проектирования:
task-state.yaml · условный примерtask_id: task-42
run_id: run-7
state_version: 12
schema_version: 1
phase: waiting_for_verification
goal_ref: task-42/spec
pending_operation:
operation_id: task-42/create-ticket-1
outcome: unknown
artifact_refs: []
next_action: reconcile_external_ticket
Для параллельной работы добавить контроль версии при записи, явного владельца изменения и правило объединения результатов. Скалярный статус нельзя бездумно объединять как список сообщений. При смене кода проверять совместимость старого состояния с новой схемой; при восстановлении — наличие файлов и актуальность внешних объектов. Перезапуск orchestration не восстанавливает автоматически диск, браузерную сессию или удалённый ресурс.
Context management: что передать модели сейчас
Контекст — выбранное представление доступной информации для следующего вызова. Всё сохранённое приложение не обязано передавать в каждый запрос. Anthropic описывает загрузку по мере необходимости, сжатие истории, внешние заметки и изоляцию контекстов отдельных исполнителей. При сжатии возможна потеря деталей, значение которых станет понятно позже. Context engineering.
На узком экране таблицу можно прокрутить в сторону.
| Подход | Где полезен — инженерная оценка | Что проверять |
|---|---|---|
| Полная история / длинный контекст | Короткий процесс; эталонный вариант для сравнения | Помещается ли история, растут ли цена и задержка, сохраняется ли точность |
| Последние сообщения / trimming | Локальные диалоги с небольшими зависимостями | Не удалены ли ранние ограничения и нужные пары tool call/result |
| Summary / compaction | Продолжение длинной задачи | Сохранились ли цель, открытые вопросы, ограничения и ссылки на доказательства |
| Структурированная капсула задачи | Передача между сессиями и исполнителями | Какие поля обязательны; совпадают ли они с артефактами и state |
| Retrieval по запросу | Большой корпус источников и памяти | Найден ли нужный материал, верна ли версия и хватает ли соседнего контекста |
| Поэтапное чтение: индекс → обзор → исходник | Репозитории, документы, процедуры | Можно ли дойти от краткой записи до проверяемого источника |
Текущая Claude API предлагает серверное сжатие по запросу и по порогу токенов; оба варианта на дату проверки обозначены beta. Context editing отдельно позволяет убирать выбранные старые блоки без summary. Это инструменты обслуживания контекста, их настройка сама по себе не задаёт жизненный цикл памяти приложения. Compaction overview.
Рекомендация по сборке: отдельно выделять действующие инструкции, запрос пользователя, проверенную проекцию текущего состояния и извлечённые сведения с источниками. Резервировать место для ответа и следующего результата инструмента. Крупный лог хранить как артефакт, а в контекст передавать релевантный фрагмент и адрес. Важные инварианты восстанавливать из явных полей и канонических правил, а качество summary проверять на отложенных вопросах.
Memory management: что переживает отдельную задачу
Полезно различать семантическую память о фактах, эпизодическую о событиях и результатах, процедурную о способах выполнения. Это функциональные аналогии, а не доказательство сходства с человеческим мозгом. Семантическая память не означает обязательный семантический поиск: факт можно найти по ключу, SQL или имени файла. Memory overview.
На узком экране таблицу можно прокрутить в сторону.
| Форма | Пример | Сильная сторона — инженерная оценка | Основная цена или риск |
|---|---|---|---|
| Профиль / структурированный JSON | Предпочтительный язык и формат ответа | Компактность, точечная загрузка | Чрезмерное обобщение частного предпочтения |
| Набор атомарных записей | Утверждение с источником и датой действия | Локальное исправление, адресуемость | Дубли и противоречия |
| Эпизоды и трассы | Задача, условия, действия, проверенный исход | Основание для анализа опыта | Большой объём, дорогой отбор |
| Файлы и иерархия заметок | MEMORY.md, проектная заметка, skill |
Ревью человеком, версии, обычный поиск | Разрастание, устаревшие ссылки, конфликты записи |
| Временной граф | Кто занимал роль в определённый период | Связи и история изменений | Ошибки выделения сущностей и сложность сопровождения |
| Процедура / skill / playbook | Условия запуска, шаги и проверка результата | Повторное применение способа работы | Перенос успешного случая в неподходящую среду |
RAG (retrieval-augmented generation, генерация с поиском внешних сведений) обозначает получение внешних сведений для генерации ответа и может быть частью чтения памяти. Исходная работа объединяет параметрическую модель и внешнюю память с retriever. Lewis et al., RAG, v4. В этой схеме поиск по документации ещё не определяет, что извлекать из опыта, как разрешать противоречия и когда пересматривать вывод. Векторный индекс решает задачу поиска по близости; правила жизненного цикла данных проектируются отдельно.
Предлагаемый жизненный цикл памяти:
- Захват: сохранить ссылку на исходное сообщение, событие или подтверждённый результат.
- Отбор: решить, есть ли будущая польза и допустима ли запись в выбранной области.
- Извлечение: сформулировать факт, эпизод или процедуру, сохранив условия и степень подтверждения.
- Согласование: найти дубли и противоречия, определить замену либо оставить спор открытым.
- Запись и индексирование: сохранить идентификатор, версию, происхождение и права.
- Чтение: ограничить доступ, найти кандидатов, проверить применимость, собрать контекст.
- Обновление и забывание: исправить или исключить запись, обработать зависимые сводки и индексы.
- Оценка: проверить влияние на будущий ответ или действие, включая случаи, когда память надо проигнорировать.
Запись в основном ходе работы делает новые сведения доступными быстрее, но добавляет задержку; фоновая обработка разгружает ход работы, однако допускает отставание памяти. Это документированный компромисс. Writing memories. Для явного исправления пользователя рекомендуем сначала надёжно фиксировать само исправление; консолидацию и переиндексацию можно выполнять позже с наблюдаемым статусом.
Минимальная запись памяти, условный пример:
memory-record.yaml · условный примерid: preference-17
kind: semantic
subject_id: user-example
scope: project-example
statement: "Для отчётов этого проекта использовать русский язык"
evidence_ref: conversation-4/message-8
evidence_kind: explicit_user_statement
valid_from: 2026-10-16
valid_to: null
recorded_at: 2026-10-16
status: active
supersedes: preference-9
Область здесь помогает определить применимость. Проверка доступа выполняется отдельно на уровне сервиса и хранилища: произвольный user_id из запроса не даёт права читать чужие записи. Для производной записи полезны derived_from с версиями источников; для процедуры — предусловия, отрицательный опыт и способ проверки результата. Истечение применимости и физическое удаление — разные операции.
Как связать всё в приложении
Ниже пример архитектуры приложения. Блоки обозначают обязанности; несколько блоков могут жить в одном процессе или PostgreSQL.
- 1. Восстановить задачуЗапрос пользователя → оркестратор. State и checkpoints задают текущий этап.
- 2. Собрать контекстАктуальные документы, артефакты и память → проверка доступа, поиск и применимость → контекст LLM.
- 3. Выполнить действиеПредложение LLM → проверка действия → инструмент или внешний сервис.
- 4. Подтвердить результатПроверка эффекта → обновление state и журнал подтверждённых событий.
- 5. Сохранить полезный опытОтбор и согласование событий → долговременная память для следующих задач. Следующий шаг текущей задачи снова начинается со state.
Условный процесс разработки поясняет разделение. State сообщает: «патч подготовлен, тесты ещё не выполнены». Контекст содержит цель, patch diff и подходящий способ запуска тестов. Память хранит: «при таких версиях зависимостей этот тест требует отдельной настройки». После запуска инструмент возвращает результат; только тогда меняется статус проверки. Успешный приём может стать кандидатом в процедурную память вместе с условиями и ссылкой на проверку.
Для следующей сессии нужно восстановить как состояние задачи, так и реальные файлы. Для новой похожей задачи переносится применимый опыт; прежний статус «тесты прошли» не переносится на новый код.
Карта реализаций на 16 октября 2026 года
Это выбор представителей разных обязанностей. Качество продуктов здесь не ранжируется; последний столбец задаёт условия проверки перед выбором. Лицензии, тарифы, регионы доступности и условия обработки данных требуют отдельного сравнения.
На узком экране таблицу можно прокрутить в сторону.
| Решение | Что подтверждает первичный источник | Когда рассматривать / что проверить |
|---|---|---|
| LangGraph | Раздельные checkpointers для thread state и Stores для междиалоговых данных; режимы сохранения и replay. Persistence, checkpointers | Явный граф исполнения; проверить восстановление, параллельные записи и повтор внешнего эффекта |
| Pydantic AI + durable engine | Отдельные механизмы persistence и durable execution; интеграции с Temporal, DBOS, Prefect, Restate и другими движками. Durable execution | Типизированное приложение с длительными процессами; проверить границы повтора и стоимость сопровождения выбранного engine |
| Claude compaction + memory tool | Сжатие активного контекста; memory tool запрашивает файловые операции, которые исполняет клиентское приложение на своём хранилище. Memory tool | Управляемое сжатие и файловая память в своём приложении; проверить handler, пути, области и сохранность данных |
| Letta / MemFS | Git-репозиторий памяти; корневые файлы загружаются в контекст, вложенные читаются по необходимости. Векторного индекса по умолчанию нет. MemFS | Постоянный агент с редактируемой памятью; проверить конфликты, синхронизацию, объём постоянно включённых файлов |
| Mem0 | Извлечение сведений из переданных сообщений; add описан как добавление без удаления и перезаписи прежних записей. Add Memory |
Подключаемая память фактов и предпочтений; проверить противоречия и отдельный процесс исправления |
| Graphiti / Zep | Graphiti строит временной граф сущностей и связей с происхождением из эпизодов; Zep — отдельная управляемая инфраструктура. Graphiti | Изменяющиеся отношения и исторические вопросы; проверить entity resolution и правильность временной применимости |
| OpenViking | viking://-иерархия ресурсов, памяти и skills; загрузка abstract → overview → details; поиск в выбранном поддереве. README |
Общая адресуемая среда контекста; проверить свежесть производных записей и качество отбора нужного исходника |
| Hindsight | Банки памяти и отдельные retain, recall, reflect; поиск объединяет семантику, ключевые слова, связи и время. README |
Эпизоды и рассуждение по накопленному; проверить дополнительную пользу reflect, происхождение обобщений и задержку |
Два уточнения, меняющих чтение старых сравнений:
- В документации Letta прежние memory blocks находятся в разделе V1 SDK (legacy). Текущая основная модель описана через MemFS. Фоновое dreaming консолидирует уроки из разговоров; это описание процесса, а не измеренное доказательство улучшения. Memory & dreaming.
- Mem0 документирует истечение записи как исключение из обычного поиска, при этом получение по ID остаётся доступным. Нельзя считать это физическим удалением. Также нельзя по старому описанию ожидать автоматического обновления при каждом
add. Текущая семантика add.
Инструменты поиска по файлам подробнее разобраны в обзоре баз знаний для ИИ. Объединение нескольких продуктов оправдано только различимыми обязанностями; два memory backend без понятного владельца записи усложнят исправление и поиск истины.
Что относится к внутренней памяти модели
KV cache сохраняет вычисленные key/value-представления токенов attention, чтобы не пересчитывать их при генерации. Это вычислительный механизм; его наличие не предоставляет приложению API исправления предпочтения пользователя или статуса задачи. Hugging Face: How caching works.
Параметрическая память — знания и навыки, отражённые в параметрах модели. Дообучение меняет параметры модели или добавленные обучаемые компоненты: например, LoRA сохраняет исходные веса и обучает низкоранговые матрицы. LoRA v2. Внешняя память меняет доступные модели сведения без такого обучения. В рамках этого обзора рекомендуем сохранять часто меняющиеся и требующие точечного исправления данные во внешнем адресуемом виде. Выбор fine-tuning для устойчивого поведения требует отдельного эксперимента.
Обучаемые модули памяти — ещё одно направление. Например, Titans исследует нейронный модуль долгосрочной памяти, работающий вместе с attention. Это изменение архитектуры модели, а не замена прикладного Store или workflow engine. Здесь проверен abstract первой версии, без воспроизведения результатов. Titans v1.
Как выбирать и измерять
На узком экране таблицу можно прокрутить в сторону.
| Наблюдаемая проблема | С чего начать — рекомендация |
|---|---|
| Агент теряет этап задачи после остановки | Durable state, checkpoints и проверка артефактов |
| После повтора создаются дубли | Идентификаторы операций, идемпотентность и сверка внешнего результата |
| История переполняется или отвлекает модель | Сборка контекста, trimming, compaction и чтение по необходимости |
| Пользователь повторяет устойчивые предпочтения | Небольшой профиль с областью действия и явным исправлением |
| Агент заново исследует уже решённую проблему | Проверяемые эпизоды и процедуры с условиями применимости |
| Ответ неверен после изменения факта | Версии, временная применимость и обновление производных записей |
| Нужен ответ по большому корпусу документов | Сначала поиск по каноническим источникам; затем проверка пользы отдельной памяти |
У памяти минимум три независимых места отказа: нужное не сохранено; сохранено, но не найдено; найдено, но неверно применено. Отдельно проверяется актуальность и допустимость доступа. Поэтому качество retrieval и успешность конечной задачи следует измерять отдельно.
Первичные ориентиры оценки. LongMemEval проверяет извлечение сведений, рассуждение между сессиями и во времени, обновление знаний и отказ от ответа при недостатке данных; это benchmark разговорной памяти. MemoryArena связывает опыт предыдущих действий с выполнением будущих зависимых задач. Они отвечают на разные вопросы; высокий результат первого не доказывает полезность для второго. В этом обзоре использованы abstracts и метаданные, не проведён аудит всей методики. LongMemEval v2, 04.03.2025, MemoryArena v2, 17.09.2026.
Как сравнить подходы на своей задаче:
- База: явный state, доступные исходники и артефакты, последние сообщения и чтение источников по запросу.
- Та же база плюс компактная капсула продолжения / summary.
- Та же база плюс отобранная межсессионная память с происхождением.
- Диагностический вариант: нужное свидетельство подано напрямую, чтобы отделить ошибку поиска от ошибки применения.
Модель, инструменты, права, исходные сведения и условия задач фиксируются. Если память добавляет новые сведения, это отдельный фактор, а не чистое сравнение механизмов retrieval. Подготовка памяти проводится до открытия отложенных задач. Число и разнообразие повторов выбираются под цель эксперимента; универсальный минимальный размер выборки здесь не обоснован.
На узком экране таблицу можно прокрутить в сторону.
| Проверка | Наблюдаемый результат |
|---|---|
| Остановка до/после внешнего действия и до записи checkpoint | Корректное продолжение; число дублей и неизвестных исходов |
| Сжатие посреди задачи | Сохранены ограничения, открытые действия и доказательства |
| Изменение предпочтения или правила | Новая версия применяется в нужной области; исторический вопрос получает историческую версию |
| Исправление/удаление источника | Не возвращаются запрещённые или устаревшие производные записи; отдельно учтены архивы и кэши |
| Два параллельных изменения | Нет незаметной потери записи; конфликт виден и разрешается по правилу |
| Разные пользователи и проекты | Недоступные записи не попадают в выдачу; доступный чужой опыт не применяется без оснований |
| Неподтверждённая или вредная запись | Она не становится полномочием либо действующим правилом автоматически |
| Отказ memory backend | Задача продолжается без памяти, когда это допустимо; недостаток сведений остаётся видимым |
Основные метрики: успешность задачи, ошибочное применение памяти, правильность исправлений, корректное воздержание, число дублей внешних действий, задержка и полная стоимость. Стоимость включает извлечение, индексацию, хранение, retrieval, compaction, генерацию и участие человека. Результаты по качеству и затратам показывать раздельно, вместе с разбросом повторов.
С чего начать
Выберите один сценарий, который прерывается между сессиями и повторяет знакомый класс задач. Сначала проверьте продолжение, корректность внешних эффектов и актуальность файлов. Затем сравните варианты контекста и дополнительной памяти по протоколу выше. Так выбор инструмента будет опираться на наблюдаемую потерю и результат проверки.
В подборке о памяти собраны разборы отдельных подходов: от опыта организации до уроков, процедур и обновления контекста агента.
Термины
- State — сохранённое состояние задачи и процесса: что выполнено, что ожидается, какие результаты подтверждены.
- Context — информация, которую модель получает при конкретном вызове.
- Memory — данные и опыт, сохраняемые для повторного применения; в широком программном смысле это тоже состояние системы.
- Checkpoint — снимок состояния, из которого приложение может продолжить выполнение.
- Durable execution — исполнение с сохранением прогресса и правилами восстановления после сбоев.
- Идемпотентность — свойство операции: её повтор не создаёт дополнительного внешнего эффекта.
- Compaction — сжатие накопленного контекста, обычно с сохранением краткого содержания вместо части истории.
- Retrieval — поиск и извлечение сведений, которые могут понадобиться для ответа или действия.
- Семантическая память — память о фактах и утверждениях; не предписывает конкретный способ поиска.
- Эпизодическая память — память о событиях, условиях, действиях и результатах.
- Процедурная память — память о способах выполнения задач и условиях их применения.
- RAG — retrieval-augmented generation: генерация ответа с использованием найденных внешних сведений.
- KV cache — кэш вычисленных key/value-представлений токенов, используемый для ускорения генерации.
- Entity resolution — определение того, какие упоминания относятся к одной сущности.
- Skill — переиспользуемая инструкция или процедура для определённого класса задач.
Источники
Документация и README проверены 16 октября 2026 года как живые страницы, без установки пакетов и фиксации commit. Для внедрения нужно закрепить конкретные версии. Научные работы указаны с версиями arXiv; для LongMemEval, MemoryArena и Titans использованы аннотации и метаданные, без аудита всей методики.
- LangGraph persistence — состояние, checkpoints и жизненный цикл памяти.
- Letta stateful agents — состояние агента и текущая файловая модель памяти.
- Persistence — сохранение диалогов и устойчивое исполнение.
- Checkpointers — состояние, checkpoints и жизненный цикл памяти.
- Activity definition — повторы и идемпотентность внешних действий.
- Context engineering — сборка и сокращение контекста.
- Compaction overview — сжатие контекста и клиентский memory tool.
- Memory overview — состояние, checkpoints и жизненный цикл памяти.
- Lewis et al., RAG, v4 — исследовательское основание механизма или оценки.
- Writing memories — состояние, checkpoints и жизненный цикл памяти.
- Durable execution — сохранение диалогов и устойчивое исполнение.
- Memory tool — сжатие контекста и клиентский memory tool.
- MemFS — состояние агента и текущая файловая модель памяти.
- Add Memory — семантика добавления и истечения записей.
- Graphiti — временной граф и происхождение записей.
- README — иерархия и поиск контекста.
- README — операции банков памяти.
- memory blocks — состояние агента и текущая файловая модель памяти.
- Memory & dreaming — состояние агента и текущая файловая модель памяти.
- Hugging Face: How caching works — вычислительный кэш токенов.
- LoRA v2 — исследовательское основание механизма или оценки.
- Titans v1 — исследовательское основание механизма или оценки.
- LongMemEval v2, 04.03.2025 — исследовательское основание механизма или оценки.
- MemoryArena v2, 17.09.2026 — исследовательское основание механизма или оценки.
Налаживаете работу с ИИ-агентами?
Помогаю командам выбрать рабочий процесс, подготовить знания и проверить результат внедрения. Практические заметки публикую в Telegram-канале.