Команда Python for Devs перевела материал о том, как в LangChain 1.0 собирать продакшен-LLM-агентов через middleware. Главный вывод: отдельные прослойки для контекста, безопасности и контроля делают поведение агента более управляемым.LangChain 1.0 вводит компонуемую архитектуру middleware вместо сложных pre/post-хуков, с которыми часто сталкивались в LangChain v0.x.Каждый middleware — изолированный компонент, который решает одну задачу, тестируется независимо и комбинируется через стандартный интерфейс.Выделены четыре категории middleware: Monitor, Modify, Control и Enforce.Разобраны пять компонентов: SummarizationMiddleware, PIIMiddleware, HumanInTheLoopMiddleware, TodoListMiddleware и LLMToolSelectorMiddleware.В демонстрации суммирования порог — 400 токенов и сохранение последних 5 сообщений; отдельно отмечено, что в продакшене обычно используют 4000 токенов и 20 сообщений.В примере диалога показано снижение входных токенов до 184 вместо оценочных 705 (−74%) после включения суммирования по порогу.Почему это важно: Паттерн middleware переносит ключевые «обвязочные» функции агента в отдельные, проверяемые блоки и снижает связанность кода. Это упрощает сочетание подходов вроде суммирования истории, обработки чувствительных данных и контроля критичных действий в одном сценарии. В тексте это сопоставляется с веб-middleware подходам и практикам и подчёркивает переиспользуемость компонентов.На что обратить внимание: В примерах значения порогов и настроек намеренно занижены для демонстрации, поэтому перенос в продакшен подразумевает подбор параметров под реальные диалоги и модели. Отдельно показано, что фильтрация чувствительных данных применяется до обработки сообщения моделью, а чувствительные действия могут требовать паузы и продолжения из сохранённого состояния. Как следующий шаг для более сложных сценариев в материале упоминается LangGraph для координации и работы с общим состоянием.