Что я понял, два года строя AI-агентов в Manus
Экс-тимлид Manus делится практическими уроками разработки AI-агентов: контекст-инжиниринг, KV-кеш, файловая система как память и другие принципы, которые работают в продакшене.

Когда Yichao «Peak» Ji начинал работу над Manus, перед командой стоял фундаментальный выбор: тренировать собственную модель или строить агента поверх контекстного обучения существующих frontier-моделей. Опыт предыдущего стартапа, где Ji тренировал модели для семантического поиска и потерял всё с выходом GPT-3, решил вопрос. Ставка на контекст-инжиниринг позволила команде выкатывать улучшения за часы, а не за недели.
За два года команда четырежды переписала агентный фреймворк с нуля. Этот процесс они в шутку называют «стохастическим градиентным спуском» — ручной поиск архитектуры, подбор промптов и эмпирические эксперименты. Теперь, после поглощения Manus компанией Meta, Ji публично делится принципами, к которым команда пришла.
KV-кеш — главная метрика
Если бы Ji мог выбрать только одну метрику для продакшен-агента, это был бы hit rate KV-кеша. В типичном агентном цикле контекст растёт с каждым шагом, а вывод модели остаётся коротким. В Manus соотношение входных и выходных токенов доходило до 100:1.
При использовании Claude Sonnet разница между кешированными и некешированными токенами — десятикратная: $0.30 против $3 за миллион токенов. Это не просто экономия, это вопрос жизнеспособности продукта. Три правила, которые Ji выделяет для поддержания высокого hit rate:
- Стабильный префикс промпта — даже одно изменение токена (например, таймстамп с точностью до секунды) убивает кеш от этой точки и далее
- Append-only контекст — не модифицировать предыдущие действия, убедиться что сериализация JSON детерминирована
- Явные cache breakpoints — если провайдер не поддерживает автоматическое инкрементальное кеширование
Маскируй, не удаляй
С ростом возможностей агента взрывается пространство инструментов. Появление MCP только усугубляет ситуацию — неизбежно кто-то подключит сотню загадочных инструментов к вашему агенту. Интуитивный ответ — динамическая загрузка через RAG. Команда Manus попробовала и отказалась.
Проблема в том, что определения инструментов живут в начале контекста. Любое изменение инвалидирует KV-кеш для всех последующих действий. Кроме того, когда предыдущие действия ссылаются на инструменты, которых больше нет в контексте, модель начинает галлюцинировать.
Решение Manus — конечный автомат, управляющий доступностью инструментов. Вместо удаления инструментов из контекста автомат маскирует логиты токенов при декодировании. Ji специально проектировал имена действий с общими префиксами — все браузерные инструменты начинаются с browser_, консольные — с shell_. Это позволяет ограничивать выбор группы инструментов без использования stateful logits processors.
Файловая система как бесконечный контекст
Даже 128K токенов контекстного окна часто недостаточно для реальных агентных сценариев. Наблюдения бывают огромными — веб-страницы, PDF-документы. Производительность модели деградирует на длинных контекстах, а длинные входы дорого стоят.
Вместо агрессивной компрессии, которая неизбежно теряет информацию, Manus использует файловую систему как основной контекст. Модель учится записывать данные в файлы и читать их по запросу. Файловая система становится не хранилищем, а структурированной внешней памятью.
Стратегии компрессии при этом остаются обратимыми. Содержимое веб-страницы можно убрать из контекста, если URL сохранён. Содержимое документа можно опустить, если путь к файлу доступен в песочнице. Контекст сжимается без необратимой потери информации.
Рецитация как управление вниманием
Пользователи Manus замечали, что агент создаёт файл todo.md и обновляет его по мере выполнения задачи. Это не декоративная фича — это механизм управления вниманием модели.
Типичная задача в Manus требует около 50 вызовов инструментов. На таких длинных цепочках модель склонна терять фокус и забывать первоначальные цели. Постоянная перезапись списка задач помещает глобальный план в конец контекста, прямо в зону активного внимания модели. По сути, агент использует естественный язык, чтобы сфокусировать собственное внимание на цели — без архитектурных модификаций.
Ошибки как обучающий сигнал
Естественное желание — скрыть ошибки агента: почистить трейс, повторить действие, сбросить состояние. Но удаление ошибки уничтожает доказательства. Без них модель не может адаптироваться.
Один из самых эффективных приёмов в арсенале Manus — оставлять неудачные действия в контексте. Когда модель видит провалившееся действие и стек-трейс, она неявно обновляет свои внутренние убеждения. Вероятность повторения той же ошибки снижается. Ji считает восстановление после ошибок одним из самых чётких индикаторов настоящего агентного поведения.
Не дай себя few-shotнуть
Few-shot промптинг — стандартная техника для улучшения ответов LLM. Но в агентных системах она может сработать против вас. Языковые модели — отличные имитаторы. Если контекст полон однотипных пар действие-наблюдение, модель будет повторять паттерн, даже когда это неоптимально.
При обработке 20 резюме агент часто впадал в ритм, повторяя одни и те же действия. Решение — контролируемое разнообразие: разные шаблоны сериализации, альтернативные формулировки, небольшой шум в порядке и форматировании. Чем более однородный контекст, тем более хрупким становится агент.
Что из этого следует
Ji завершает статью честным признанием: ничего из сказанного не является универсальной истиной. Это паттерны, которые сработали для Manus после нескольких переписываний, тупиков и тестирования на миллионах пользователей. Но за каждым принципом стоит конкретная боль продакшена.
Контекст-инжиниринг — ещё формирующаяся дисциплина. Модели становятся сильнее, быстрее и дешевле, но никакая сырая мощность не заменяет правильно выстроенную память, окружение и обратную связь. То, как вы формируете контекст, в конечном счёте определяет, как ваш агент себя ведёт.


