Сегодня прочитал очень интересную статью об опыте разработки AI-агента Manus, в которой команда делится интересными деталями, наблюдениями и опытом создания этого решения. Manus был представлен как первая в мире масштабная автономная система-агент, способная самостоятельно планировать и выполнять многозадачные реальные операции без постоянного вмешательства человека. Сложность разработки программных систем практически не изменилась, но трансформировалась и, в случае с AI-агентами, перешла из области разработки и обучения small language models (как мы делали ранее для подобных задач) в область, которая сейчас называется “Context engineering”. Она заключается в подготовке для LLM правильного контекста, обеспечении её необходимыми инструментами для выполнения действий, а также в контроле и проверке результатов. По сути, это огромная задача по разработке правильной “обвязки” вокруг LLM, которая буквально «заставляет» (и с большим трудом) её выдавать правильный и нужный результат. LLM всё ещё имеют множество недостатков: плохо работают с большим контекстом, деградируют на сложных и длительных задачах, снижают качество при подключении большого количества разнообразных инструментов, склонны к дрейфу, чрезмерному обобщению, а иногда и к галлюцинациям. Окружения и инструменты возвращают ошибки, внешние сервисы могут работать некорректно, и постоянно возникают неожиданные пограничные случаи. В многоэтапных задачах сбои — не исключение, а часть процесса. Что мне показалось интересным и важным: • Context cache — очень важная часть агента, которая позволяет значительно сократить количество итераций формирования конечного prompt-а, что сильно снижает стоимость обращения (до 10 раз) и повышает скорость ответа. Идея в том, что в рамках решения задачи агент шаг за шагом использует инструменты, обращается к LLM и по частям собирает итоговый prompt. Чем больше шагов мы можем пропустить и взять результат из кэша, тем быстрее, надёжнее (меньше риск получить галлюцинацию на каждом шаге) и дешевле получится итоговое решение. • Количество инструментов. Подключение большого числа инструментов по MCP снижает качество работы модели. Поэтому для каждого типа задачи нужно определять чёткое и ограниченное количество инструментов, которые не пересекаются между собой по функциям, иначе модель “теряется”. • RAG и подготовка внешних данных остаются критически важными. Несмотря на то, что современные LLM имеют достаточно большое окно контекста, это зачастую создаёт больше проблем, чем решает. Во-первых, его всё равно часто недостаточно, чтобы избежать предобработки контекста. Во-вторых, на большом и «сыром» контексте качество работы LLM падает. Поэтому необходимо уделять большое внимание управлению и предварительной подготовке данных. В статье также приводится еще ряд предметных и практических рекомендаций. Context engineering — это наукоёмкая область, полная экспериментов, где нет очевидных и проверенных решений. Здесь приходится находить ту самую комбинацию инженерных подходов, которая будет эффективно решать поставленную задачу. https://manus.im/blog/Context-Engineering-for-AI-Agents-Lessons-from-Building-Manus