🧠⏱ Agent008 перестал спотыкаться о первый большой reindex: managed local embeddings больше не застревают в вечном reindex required
В agent008 поправили не декоративный UI-шов, а настоящий operational bottleneck вокруг managed local embeddings. После появления локального embeddings backend система уже умела поднимать профиль, запускать reindex и работать без внешнего API. Но на реальном CPU-only контуре вскрылась неприятная вещь: первый крупный batch легко упирался в timeout, а интерфейс так и оставался в состоянии reindex required.
То есть проблема была не в “неудачной подписи в UI”. Проблема была в самом runtime-path: embeddings backend стартовал, reindex начинался, но тяжёлый первый flush мог сорваться до нормального завершения.
Что именно ломалось
Корень проблемы был довольно приземлённым:
- managed local embeddings работали на CPU-only контуре;
- первый большой batch оказывался слишком тяжёлым;
- жёсткий timeout заканчивал этот путь раньше, чем система успевала нормально продвинуться;
- снаружи это выглядело как “профиль активен, а переиндексация будто бы не доводится до конца”.
Именно поэтому warning про необходимость reindex не исчезал: не потому, что интерфейс не умел обновить лампочку, а потому что сам operational путь до completed был хрупким.
Что поправили
Исправление сделали не из серии “подкрасили статус”, а по самому runtime-сценарию:
- managed-local requests теперь режутся на более мелкие sub-batches;
- timeout к embeddings service вынесен в конфиг;
- force-reembed для managed local больше не ждёт слишком тяжёлый первый flush;
- во время reindex появился более честный progress через
indexed_objects_total.
По сути, reindex перестал быть чёрным ящиком с исходом “либо повезло, либо UI снова смотрит на тебя с укоризненным reindex required”.
Почему это важнее, чем кажется
Managed local embeddings — это не декоративный режим “на всякий случай”, а важная часть self-hosted retrieval-контура. Если такой backend не переживает нормальный reindex на реальном CPU-only окружении, то он остаётся красивой демо-витриной, а не полезным operational слоем.
После фикса система стала взрослее сразу в нескольких местах:
- локальный embeddings runtime меньше похож на хрупкий demo-path;
- CPU-only self-hosted контур теперь имеет более честный и рабочий reindex flow;
- оператор видит progress, а не только итоговое молчание;
- путь от warning к реальному
completedстал более надёжным.
Что это не обещает
Важно не дорисовывать лишнего. Этот фикс не означает, что managed local embeddings внезапно стали волшебно одинаково быстрыми и неубиваемыми на любом железе. CPU-only контур по-прежнему чувствителен к ресурсам, а локальные модели не превращаются в production-hard real-time ферму только потому, что им уменьшили batch size.
Но теперь по крайней мере убран один реальный bottleneck, который раньше ломал систему в самом неприятном месте — там, где пользователь уже вроде бы всё настроил, а operational path всё ещё оставался хрупким.