Сегодня прочитал очень интересную статью об опыте разработки 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
Обсуждение 0
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram