Важность понимания контекста в Cloud Code

Очень важный момент для понимания работы с контекстом. Когда вы будете работать с Cloud Code, от понимания этого момента будет зависеть, насколько эффективно будет работать LLM-система, насколько правильно будут выполняться команды и насколько LLM-система будет вас лучше понимать.

Что же у нас показано на этом графике? Фиолетовая линия показывает объём контекста, который используется. Коричневой линией показан объём памяти, который есть в данный момент у LLM-агента, который обрабатывает данные, то есть у Cloud Code.

Какие выводы мы можем сделать из этого графика? Чем больше контекста вы даёте вашей модели для обработки, чем больше вы этот контекст забиваете, тем меньше у модели остаётся памяти для обработки ваших запросов, и тем хуже качество ответов у нашей LLM-системы.

Как вы видите, при малом объёме контекста качество ответов практически 100%. Чем больше контекста, которым оперирует наша модель, тем значительно снижается качество её ответов. Обратите внимание, что на последних участках кривой, когда мы уже достигли практически предела по количеству контекста для данной модели, качество ответов падает значительно на приличное количество процентов.

Поэтому очень важно, когда вы даёте какие-то запросы LLM-модели, не доходить до этого конечного участка кривой. Это очень важно.

Основные команды для работы с контекстом

Если мы говорим про Cloud Code, у нас для работы с контекстом есть три основные команды.

Первая команда - это команда context. Благодаря этой команде мы можем увидеть, что находится у нас в контексте на данный момент. Context usage (использование контекста) показывает, сколько у нас свободного пространства остаётся. В данном случае у меня остаётся 60%. Также показывается, сколько осталось до автосжатия этого контекста и сколько занимают MCP-серверы.

Обратите внимание на MCP-серверы. Чем больше MCP-серверов вы используете в своём проекте и устанавливаете в свою операционную систему, тем сильнее они занимают размер контекста. У меня в данном случае около 8% от всего контекста занимают кастомные промпты, которые предоставляют нам MCP-серверы.

Для того чтобы работать с этими MCP-серверами, они дают нам некие промпты. Эти промпты, независимо от того, вызываете вы этот MCP-сервер или нет, попадают в общий служебный промпт, чтобы Cloud Code мог в любой момент обратиться к этому MCP-серверу и каким-то образом с ним взаимодействовать.

Имейте в виду, что установка большого количества MCP-серверов может быть вредна для вашей работы, потому что она значительно увеличивает контекст, который нужно будет обрабатывать LLM-модели.

С помощью команды context вы можете контролировать то, что у вас находится в контексте, и делать выводы насчёт того, нужно ли вам это очищать или нет. Как вы видите, в контекст попадают кастомные агенты, субагенты, которые мы можем создавать для обработки запросов, и файл cloud.md. Memory-файлы тоже занимают место в нашем контексте.

Самая простая команда для очистки контекста - это команда clear. Она просто очищает весь контекст, который вы передали в модель, и всё начинается с чистого листа. Это что-то вроде создания нового чата, если мы работаем в веб-интерфейсе.

Другая команда, которая предназначена для работы с контекстом - это команда compact. Мы можем вызывать её просто как compact. Тогда Cloud Code постарается автоматически понять из текущей ситуации, что он может почистить, и по своему решению сжать беседу, выкинуть ненужные части беседы.

Мы можем прямо указать, что нужно почистить информацию, которая не относится к определённой теме. Либо сказать "давай сконцентрируемся на таком-то моменте", чтобы он всё остальное выкинул. Такие инструкции мы можем прописать текстом, указав, что именно необходимо сжать.

Нужно понимать, что команда compact иногда вызывается автоматически. Когда вы уже дошли до предела лимита вашего контекста, она просто будет автоматически вызываться Cloud Code, чтобы он мог продолжить работу дальше. Он по своим алгоритмам будет её автоматически вызывать.

Команда compact - это уже крайний случай, когда уже ничего больше не помогает. Доводить до такого состояния, чтобы у вас срабатывал автокомпакт, не стоит. Если автокомпакт срабатывает, значит, что-то вы делаете не так, и вам нужно ограничивать лимит, чтобы не доводить до того участка кривой, в котором ваша LLM-система будет работать не столь эффективно, как если бы у неё было меньше контекста.

Это основные команды для работы с контекстом Cloud Code, которые вы можете применять.