Пять способов не захламлять контекст. Разбор гайда LangChain
Подготавливая свои материалы, нашёл концептуальный гайд от LangChain про то, как агенты помнят, не держа всё в голове. Статья полезная, хотя и написана наполовину как витрина их собственного харнесса. Перескажу суть и скажу, что из этого реально работает у меня.
Проблема простая. Чем дольше работает агент, тем больше он в себе тащит: инструкции, выдачу инструментов, куски файлов, свои прошлые ответы. В какой-то момент он начинает тупеть — не ломаться, а именно тупеть, терять нить и путать детали. Метафора в статье хорошая: как подготовка к экзамену в ночь перед ним, чем больше учишь, тем сильнее вылетают первые главы.
Что предлагается: не пускать лишнее внутрь и разбираться с тем, что уже внутри.
Не пускать
Выгружать большое в файлы. Агент дёрнул инструмент, тот вернул простыню на тысячи строк. В контекст кладётся не простыня, а её начало, конец и путь к файлу. Понадобится деталь — дочитает. Ключевое отличие от обрезки: обрезка теряет данные навсегда, выгрузка оставляет их доступными. Разница кажется мелкой, пока агент не упирается в то, что нужная строка была в середине отрезанного.
Грузить инструкции по требованию. Вместо того чтобы держать все инструкции в системном промпте, агент видит только список названий с однострочным описанием, а полную инструкцию подтягивает, когда решил, что она нужна. У них точная формулировка: десять скиллов стоят примерно столько же контекста, сколько десять однострочников.
Это, кстати, второй раз за месяц, когда я вижу ровно эту архитектуру. В скилле для диаграмм, про который я писал, — то же самое: тонкий индекс плюс референсы по запросу. Похоже, паттерн устоялся.
Выносить шумную работу в субагента. Если вы заранее знаете, что задача грязная — обойти двадцать страниц, перелопатить выгрузку, — её отдают отдельному агенту с собственным контекстом. Назад приходит только результат. В их примере субагент читает полный отчёт у себя и возвращает три пункта; главный агент сырых данных вообще не видит. Бонус: такие задачи мелкие, их можно гнать параллельно и на модели подешевле.
Разбираться с тем, что уже внутри
Сжимать историю. Когда окно заполнено процентов на восемьдесят пять, старые сообщения схлопываются в сводку, свежие остаются как есть. Два важных условия: оригиналы при этом пишутся в файл, чтобы можно было вернуться, и процесс цикличный — следующая сводка включает предыдущую.
Полезная диагностика оттуда же. Выгрузка файлов срезает резкие скачки, сжатие истории гасит медленный подъём. Это разные болезни. Если у вас контекст распухает рывками — лечится первым. Если ползёт вверх ровно — вторым. Я до этого валил в одну кучу и чинил не тем.
Память между запусками. Отдельный markdown-файл, который читается в начале прогона и обновляется, когда агент узнал что-то, что стоит сохранить. Пример у них ровно редакторский: сказали «в саммари буллеты, а не абзацы» — без памяти будете повторять это каждую неделю.
Что в статье главное
Для меня — не пять техник, а тезис про владение памятью. Память агента у них лежит обычным файлом в вашем хранилище, а не внутри сервиса провайдера. Поэтому модель можно сменить, а всё накопленное останется.
Для контентных команд это не техническая деталь, а вопрос собственности. Ваш редстандарт, ваши правила, ваши накопленные исключения — где они физически лежат? Если markdown-файлом в репозитории, вы переживёте смену любого инструмента. Если внутри чужого продукта — нет.
И что меня смущает
В статье ноль цифр. Деградация объявлена, механизм описан, но насколько именно падает качество и насколько помогают эти пять приёмов — ни слова. Для компании, которая продаёт платформу для наблюдаемости и оценки агентов, отсутствие замеров странное.
Пороги — восемьдесят пять процентов, двадцать тысяч токенов — поданы как данность, откуда взялись, не объясняется. Там же сказано, что их надо настраивать под задачу, а как понять, что текущие не годятся, — нет.
И главное умолчание. Все пять приёмов — это обмен информации на место. Сводка решает, что считать важным. Превью решает, какие строки показать. Субагент решает, какие три пункта вернуть. Каждое из этих решений принимает модель, и каждое может выбросить не то. Сказано, что всё восстановимо, но восстановить можно, только если агент догадается, что ему чего-то не хватает. А он не догадается: он не знает, что выбросил.
Это ровно тот класс ошибок, который не ловится на демо и вылезает на третьем месяце работы. Держите в голове, когда будете это всё внедрять.
Почитать можно тут: langchain.com/blog/context-engineering-deep-agents-remember
#ai_agents
Подготавливая свои материалы, нашёл концептуальный гайд от LangChain про то, как агенты помнят, не держа всё в голове. Статья полезная, хотя и написана наполовину как витрина их собственного харнесса. Перескажу суть и скажу, что из этого реально работает у меня.
Проблема простая. Чем дольше работает агент, тем больше он в себе тащит: инструкции, выдачу инструментов, куски файлов, свои прошлые ответы. В какой-то момент он начинает тупеть — не ломаться, а именно тупеть, терять нить и путать детали. Метафора в статье хорошая: как подготовка к экзамену в ночь перед ним, чем больше учишь, тем сильнее вылетают первые главы.
Что предлагается: не пускать лишнее внутрь и разбираться с тем, что уже внутри.
Не пускать
Выгружать большое в файлы. Агент дёрнул инструмент, тот вернул простыню на тысячи строк. В контекст кладётся не простыня, а её начало, конец и путь к файлу. Понадобится деталь — дочитает. Ключевое отличие от обрезки: обрезка теряет данные навсегда, выгрузка оставляет их доступными. Разница кажется мелкой, пока агент не упирается в то, что нужная строка была в середине отрезанного.
Грузить инструкции по требованию. Вместо того чтобы держать все инструкции в системном промпте, агент видит только список названий с однострочным описанием, а полную инструкцию подтягивает, когда решил, что она нужна. У них точная формулировка: десять скиллов стоят примерно столько же контекста, сколько десять однострочников.
Это, кстати, второй раз за месяц, когда я вижу ровно эту архитектуру. В скилле для диаграмм, про который я писал, — то же самое: тонкий индекс плюс референсы по запросу. Похоже, паттерн устоялся.
Выносить шумную работу в субагента. Если вы заранее знаете, что задача грязная — обойти двадцать страниц, перелопатить выгрузку, — её отдают отдельному агенту с собственным контекстом. Назад приходит только результат. В их примере субагент читает полный отчёт у себя и возвращает три пункта; главный агент сырых данных вообще не видит. Бонус: такие задачи мелкие, их можно гнать параллельно и на модели подешевле.
Разбираться с тем, что уже внутри
Сжимать историю. Когда окно заполнено процентов на восемьдесят пять, старые сообщения схлопываются в сводку, свежие остаются как есть. Два важных условия: оригиналы при этом пишутся в файл, чтобы можно было вернуться, и процесс цикличный — следующая сводка включает предыдущую.
Полезная диагностика оттуда же. Выгрузка файлов срезает резкие скачки, сжатие истории гасит медленный подъём. Это разные болезни. Если у вас контекст распухает рывками — лечится первым. Если ползёт вверх ровно — вторым. Я до этого валил в одну кучу и чинил не тем.
Память между запусками. Отдельный markdown-файл, который читается в начале прогона и обновляется, когда агент узнал что-то, что стоит сохранить. Пример у них ровно редакторский: сказали «в саммари буллеты, а не абзацы» — без памяти будете повторять это каждую неделю.
Что в статье главное
Для меня — не пять техник, а тезис про владение памятью. Память агента у них лежит обычным файлом в вашем хранилище, а не внутри сервиса провайдера. Поэтому модель можно сменить, а всё накопленное останется.
Для контентных команд это не техническая деталь, а вопрос собственности. Ваш редстандарт, ваши правила, ваши накопленные исключения — где они физически лежат? Если markdown-файлом в репозитории, вы переживёте смену любого инструмента. Если внутри чужого продукта — нет.
И что меня смущает
В статье ноль цифр. Деградация объявлена, механизм описан, но насколько именно падает качество и насколько помогают эти пять приёмов — ни слова. Для компании, которая продаёт платформу для наблюдаемости и оценки агентов, отсутствие замеров странное.
Пороги — восемьдесят пять процентов, двадцать тысяч токенов — поданы как данность, откуда взялись, не объясняется. Там же сказано, что их надо настраивать под задачу, а как понять, что текущие не годятся, — нет.
И главное умолчание. Все пять приёмов — это обмен информации на место. Сводка решает, что считать важным. Превью решает, какие строки показать. Субагент решает, какие три пункта вернуть. Каждое из этих решений принимает модель, и каждое может выбросить не то. Сказано, что всё восстановимо, но восстановить можно, только если агент догадается, что ему чего-то не хватает. А он не догадается: он не знает, что выбросил.
Это ровно тот класс ошибок, который не ловится на демо и вылезает на третьем месяце работы. Держите в голове, когда будете это всё внедрять.
Почитать можно тут: langchain.com/blog/context-engineering-deep-agents-remember
#ai_agents
🔥2
Anti-Malware собрали карту российского рынка ИИ-агентов: семь корпоративных платформ, фреймворки, нормативная база, риски. Полезно хотя бы для того, чтобы увидеть масштаб.
#ai_agents
#ai_agents
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Это мог быть я на выходных, но я делаю ремонт и пишу агентов.
А следующая часть про второй мозг и фабрику контента завтра.
А следующая часть про второй мозг и фабрику контента завтра.
❤🔥2