Большинство строит ИИ-пайплайны как монолит: один агент, сорок файлов в контексте. И ждёт, что он сам разберётся. Конечно, это не работает.

Контекстное окно LLM конечно, а бардак вечен. Агент с сорока файлами работает хуже, чем с пятью *нужными*. Токены заняты ненужными данными, сигнал тонет в шуме. Исследования подтверждают: IACT оптимизирует эффективность, смягчая «когнитивную деградацию».

Как строить крутые текстовые аналитические пайплайны с ИИ? Практика показывает: трёхзвенка на каждый шаг: `[inputs]` → `[state]` → `[outputs]`.

– `inputs/` — всё извне: сырой парсинг, внешние сигналы, данные предыдущих шагов. Класть «как есть».
– `state/` — живая модель мира на этом шаге. Структурированное знание, выжимка.
– `outputs/` — то, что уходит наружу: посты, письма, аналитика, action items. Результат шага.

Да-да, привет всем фанатам микросервисов. Это оно и есть, только для ИИ-агентов.

Ключевое: это не глобальная архитектура, а структура *каждого отдельного шага*. Каждый шаг — самостоятельный проект со своей трёхзвенкой. Открывайте его в Claude, Cursor или Codex. Это соответствует модульной архитектуре (LangChain оптимизирует разработку LLM-приложений). Свой `CLAUDE.md`, скиллы, память, при желании — свой Git-репозиторий. Агент внутри шага заточен под одно: взять вход, применить к `state`, сгенерировать выход.

Пример из моего маркетингового репозитория:
– `parse-vacancies` парсит вакансии в `inputs/vacancies/`
– `vacancy-intel` читает их → пишет разбор в `market-state/analyses/`
– `market-analyst` читает `market-state/` → формирует гипотезы
– `action-planner` берёт гипотезы → кладёт action items в `market-state/actions/`
– Контентные скиллы читают `market-state/` → пишут посты в `outputs/facebook/`, `outputs/linkedin/`

Каждый агент видит только то, что ему нужно. Никакой каши. Дисциплина. Это не просто «порядок работы», а управление контекстом и чистый дебаг на каждом шаге. Каждый агент — узкий специалист. Такой подход повышает эффективность и ясность, что подтверждается исследованиями многоагентных систем.

Стыкуются слои элементарно: `outputs/` одного проекта — это симлинк в `inputs/` следующего. Никакого копирования. Запускаете следующего агента — он уже видит то, что положил предыдущий.

Кто говорит «в контекст не лезет» и «ИИшка путается» — в 99% случаев имеет в виду: «я всё свалил в одного агента и жду чуда». Это лечится только сменой парадигмы в голове. Иначе вы так и будете бороться с ветряными мельницами.