00:00:00Одним из важнейших аспектов в ИИ был протокол MCP,
00:00:03но спустя шесть месяцев он стал для нас огромной проблемой.
00:00:06Когда мы начинали,
00:00:07у людей было всего два-три MCP-сервера,
00:00:09работающих локально,
00:00:11но MCP развился во что-то гораздо большее.
00:00:13Теперь у людей буквально сотни MCP-серверов с тысячами инструментов одновременно,
00:00:18и это стало огромной проблемой.
00:00:20Как вы знаете,
00:00:20Cloudflare заметил это первым,
00:00:22а Claude последовал за ними,
00:00:23опубликовав исследовательскую работу по этой проблеме.
00:00:26Но Docker на самом деле предложил решение этой проблемы и решил одну из самых критических проблем для MCP,
00:00:31предложив совершенно новый способ их использования.
00:00:34Динамический режим,
00:00:35который позволяет сэкономить множество токенов,
00:00:37ускорить работу ваших агентов и создавать совершенно новые виды автоматизации,
00:00:42которых я лично очень жду.
00:00:43Итак,
00:00:44Docker выпустил статью об этом,
00:00:45в которой они,
00:00:46по сути,
00:00:47призывают нас прекратить жестко кодировать окружение наших агентов.
00:00:50Что они под этим подразумевают?
00:00:51Во-первых, каким MCP-серверам мы на самом деле доверяем?
00:00:54Во-вторых,
00:00:55как избежать заполнения нашего контекста определениями инструментов,
00:00:58которые мы,
00:00:59возможно,
00:00:59даже не используем?
00:01:00Например,
00:01:01если у вас тысяча инструментов,
00:01:03вы можете использовать только два или три в одном чате.
00:01:05В-третьих,
00:01:06как агенты обнаруживают,
00:01:07настраивают и затем используют эти инструменты эффективно и автономно?
00:01:12Но я хочу,
00:01:12чтобы вы сосредоточились на втором пункте: как избежать заполнения нашего контекста определениями инструментов,
00:01:17которые мы,
00:01:17возможно,
00:01:18даже не используем?
00:01:19Например,
00:01:19если у вас тысяча инструментов,
00:01:21вы можете использовать только два или три в одном чате.
00:01:23Anthropic также опубликовал пост об этом,
00:01:25который мы освещали в одном из наших предыдущих видео,
00:01:28и мы получили очень позитивный отклик от людей,
00:01:30которые хотели реализации.
00:01:32И Docker на самом деле взял и реализовал это.
00:01:34Прежде чем мы пойдем дальше,
00:01:35вам нужно знать,
00:01:36что Docker на самом деле настроил всю инфраструктуру для этого задолго до того,
00:01:40как это стало проблемой.
00:01:41И для этого вам нужно знать об их каталоге MCP,
00:01:43в котором они перечислили проверенные MCP-серверы,
00:01:46которым вы действительно можете доверять.
00:01:48И к нему очень легко подключиться,
00:01:50вы просто подключаете их здесь,
00:01:51в Docker.
00:01:52Например,
00:01:52я подключил Notion здесь,
00:01:54вы видите,
00:01:54что сейчас у меня два сервера,
00:01:56и мой MCP-клиент,
00:01:57который в большинстве случаев является кодом Claude,
00:01:59подключается только к Docker,
00:02:01а затем Docker,
00:02:02по сути,
00:02:02управляет всеми моими MCP-серверами.
00:02:04Таким образом,
00:02:05это полностью решает первую проблему,
00:02:07касающуюся того,
00:02:07каким MCP-серверам мы на самом деле доверяем.
00:02:09Теперь,
00:02:10чтобы наши агенты могли динамически использовать эти MCP,
00:02:13они реализовали этот шлюз MCP,
00:02:15который уже имеет встроенные инструменты для использования MCP-серверов из каталога и автономного их использования.
00:02:22Итак,
00:02:23по сути,
00:02:23происходит следующее: вы подключаете только один MCP,
00:02:26и этот MCP имеет весь контекст того,
00:02:28к каким инструментам он подключен в каталоге.
00:02:31Я подключен к двум,
00:02:32и он знает,
00:02:32какие определения инструментов на самом деле нужно внести в окно контекста.
00:02:36Таким образом, ваше окно контекста не перегружается..
00:02:39Чтобы это действительно работало,
00:02:40они добавили новые инструменты,
00:02:42включая MCP find,
00:02:43add и remove,
00:02:44которые,
00:02:44по сути,
00:02:45находят MCP-серверы в каталоге по имени или описанию.
00:02:48И как я покажу вам,
00:02:49проведу вас через процесс их правильного добавления.
00:02:51Итак,
00:02:52например,
00:02:52я использую свой GitHub MCP прямо здесь и говорю ему,
00:02:55что хочу найти интересные репозитории.
00:02:57После указания типа репозиториев,
00:02:59он не вызывает сам инструмент,
00:03:01а использует Docker MCP-сервер,
00:03:03который затем вызывает инструмент с правильной информацией и,
00:03:07очевидно,
00:03:07возвращает все результаты.
00:03:09Теперь я хочу,
00:03:10чтобы вы заметили одну вещь: LLM возвращает всю информацию о репозиториях.
00:03:14Он возвращает ссылку,
00:03:16количество звезд,
00:03:17описание и даже знает дату публикации этих репозиториев..
00:03:21Я просто хочу,
00:03:22чтобы вы это запомнили,
00:03:23потому что это будет важно в дальнейшем.
00:03:25Теперь перейдем к динамическому выбору инструментов.
00:03:28Это самая важная часть статьи,
00:03:30и это то,
00:03:30о чем я говорил,
00:03:31когда упоминал новый способ использования MCP-серверов..
00:03:35Ссылаясь снова на статью Claude,
00:03:36они говорят о том,
00:03:37как Claude или любой другой ИИ-агент на самом деле использует больше токенов.
00:03:41Первое — это определения инструментов в окне контекста,
00:03:44а второе — промежуточные результаты работы инструментов.
00:03:47Здесь мы говорим о необработанных результатах,
00:03:49которые фактически возвращаются из вызовов инструментов MCP.
00:03:52Таким образом,
00:03:53все эти детали,
00:03:53которые мы искали с помощью инструмента GitHub,
00:03:56были возвращены в окно контекста.
00:03:57Вот почему Claude знает каждую мелочь о репозиториях,
00:04:00хотя я хотел только описание и ссылку на репозиторий.
00:04:03Таким образом,
00:04:04требуется всего несколько вызовов инструментов,
00:04:06как в моем случае,
00:04:07возможно,
00:04:0720 вызовов,
00:04:08прежде чем все окно контекста будет заполнено.
00:04:10Это одно из улучшений,
00:04:11которое они внесли в проект шлюза MCP,
00:04:13где они предоставляют только те инструменты,
00:04:15которые действительно полезны.
00:04:17Так,
00:04:17например,
00:04:18в моем случае,
00:04:19один из способов сохранения контекста — это предоставить мне только инструмент поиска репозиториев,
00:04:24а не остальные 40 инструментов,
00:04:25которые входят в этот GitHub MCP.
00:04:27Потому что в этой сессии я хочу использовать только инструмент поиска репозиториев.
00:04:31Но опять же,
00:04:32как только вы начинаете выбирать инструменты таким образом,
00:04:35это также открывает новые возможности.
00:04:37И это подводит нас к режиму кода.
00:04:38Cloudflare,
00:04:39по сути,
00:04:39обрисовал,
00:04:40как мы неправильно использовали MCP,
00:04:42и что это неверный подход.
00:04:43И именно здесь Docker является первым,
00:04:45кто реализовал это новое решение.
00:04:47Я много с ним экспериментировал.
00:04:48И должен сказать,
00:04:49я очень удивлен тем,
00:04:50как прошла реализация.
00:04:51Итак,
00:04:52они говорят,
00:04:52что,
00:04:53позволяя агентам кодировать напрямую с использованием инструментов MCP,
00:04:56то есть брать инструменты и реализовывать их в коде,
00:04:59они могут предоставить агентам эти инструменты режима кода,
00:05:02которые используют инструменты совершенно по-новому.
00:05:05Так что же делает режим кода?
00:05:06Он создает инструмент с поддержкой JavaScript,
00:05:08который может вызывать другие инструменты MCP.
00:05:11Это может показаться очень простым,
00:05:13но примеры,
00:05:13которые я покажу,
00:05:14надеюсь,
00:05:15прояснят ситуацию.
00:05:15Теперь,
00:05:16прежде чем мы углубимся в реализацию,
00:05:18есть и другие вещи,
00:05:19которые стоит рассмотреть.
00:05:20Во-первых,
00:05:21поскольку это код,
00:05:22написанный агентом,
00:05:23очевидно,
00:05:23он не протестирован и небезопасен.
00:05:25Поэтому Docker планирует,
00:05:26чтобы это фактически работало в песочнице.
00:05:28И поскольку они уже предоставляют контейнеры Docker,
00:05:31это было для них очевидным решением.
00:05:33Этот подход предлагает три ключевых преимущества.
00:05:35Во-первых,
00:05:36это абсолютно безопасно,
00:05:37потому что это главное преимущество песочницы.
00:05:39Это не наносит никакого реального ущерба вашей системе.
00:05:42Затем идет вся эффективность токенов и инструментов,
00:05:44о которой мы говорили,
00:05:46когда используемый инструмент не нужно отправлять модели при каждом запросе; модели просто нужно знать об одном новом инструменте режима кода.
00:05:53Так,
00:05:53без режима кода,
00:05:54если вы используете,
00:05:55скажем,
00:05:56только эти три инструмента,
00:05:57и они запускаются многократно,
00:05:58контекст тех 47 других инструментов также передается вместе с тремя инструментами,
00:06:03которые мы фактически используем.
00:06:04Но в режиме кода агент пишет пользовательский инструмент «анализировать мои репозитории»,
00:06:09используя только те инструменты,
00:06:10которые нам действительно нужны.
00:06:12И каждый раз он просто ссылается на этот один инструмент режима кода.
00:06:15И таким образом,
00:06:16он сохраняет весь остальной контекст,
00:06:18не отправляя инструменты,
00:06:19которые нам на самом деле не нужны.
00:06:21А затем у нас есть сохранение состояния,
00:06:23при котором тома управляют тем,
00:06:25как данные сохраняются между этими вызовами инструментов.
00:06:28И они фактически не отправляются модели.
00:06:30Очень простым примером этого может быть конвейер обработки данных.
00:06:33Итак,
00:06:34предположим,
00:06:34что мы хотим загрузить набор данных; набор данных загружается и возвращается,
00:06:38но фактически сохраняется в томе,
00:06:40и модель узнает только о том,
00:06:41что он был успешно загружен.
00:06:43Модель не перегружается пятью гигабайтами данных.
00:06:45Затем,
00:06:46если мы хотим обработать первые 10 000 строк,
00:06:48модель может просто прочитать из тома,
00:06:50где хранятся данные,
00:06:51и вернуть фактическое резюме.
00:06:52Таким образом,
00:06:53только те данные,
00:06:54которые должны быть переданы модели,
00:06:56такие как окончательные результаты,
00:06:58резюме,
00:06:58любые сообщения об ошибках или ответы на вопросы,
00:07:01передаются модели,
00:07:01и окно контекста остается чистым..
00:07:07Причина,
00:07:08по которой я искал эти репозитории GitHub,
00:07:10заключается в том,
00:07:10чтобы найти новые инструменты с открытым исходным кодом для своих видео.
00:07:14Обычно я выполняю несколько вызовов с помощью инструмента поиска репозиториев GitHub.
00:07:18Я просто пишу разные ключевые слова для поиска инструментов.
00:07:20Поэтому я представил это коду Claude,
00:07:22и он объединил все эти различные вызовы инструментов в один инструмент,
00:07:25который ищет репозитории на основе любых ключевых слов,
00:07:28которые я ему даю.
00:07:29Вы видите,
00:07:29что даже здесь,
00:07:30без режима кода,
00:07:31Docker фактически выполняет несколько запросов.
00:07:33И это то, что я хотел исправить.
00:07:34Созданный им инструмент назывался «multi search repos»..
00:07:37И после создания инструмента он использовал инструмент MCP exec,
00:07:41чтобы фактически запустить его.
00:07:42Он,
00:07:43по сути,
00:07:43выдал мне 29 уникальных репозиториев,
00:07:45выполнив поиск по шести различным ключевым словам,
00:07:47но результаты были возвращены непосредственно в ответе и в терминале,
00:07:51что означало,
00:07:51что все результаты возвращались в окно контекста.
00:07:54Чтобы исправить это,
00:07:55я сказал ему,
00:07:55что он должен записывать все в файл,
00:07:57а модель должна получать только описание репозиториев.
00:08:00Не нужно указывать ни звезд, ни чего-либо еще.
00:08:02И он изменил инструмент и записал все эти результаты в текстовый файл в моем репозитории,
00:08:07чтобы,
00:08:07если я захочу найти что-то конкретное об одном репозитории,
00:08:10я мог сделать это,
00:08:11обратившись к текстовому файлу.
00:08:12Теперь есть одна вещь,
00:08:13которую я хотел бы видеть реализованной: способ сохранения и повторного использования этого инструмента прямо сейчас.
00:08:19Единственный вариант — это вручную сохранить его как файл.
00:08:22После этого я попросил его найти MCP Notion.
00:08:24После подключения я спросил,
00:08:26может ли он создать инструмент,
00:08:27который выводит результаты поиска GitHub непосредственно в Notion вместо использования текстового файла.
00:08:32И снова,
00:08:33используя режим кода,
00:08:34он фактически создал инструмент «GitHub to Notion»,
00:08:36который позволил бы мне вставлять результаты в Notion..
00:08:40И после того,
00:08:41как он запустился,
00:08:42возникли некоторые небольшие проблемы,
00:08:43которые мне пришлось исправить.
00:08:45Но по сути, теперь у меня есть эта база данных в Notion.
00:08:47Она, по сути, жестко закодирована.
00:08:49Поэтому,
00:08:49какой бы запрос я ни предоставил,
00:08:51он просто возьмет и введет результаты в эту базу данных в соответствии с различными полями..
00:08:55И он даже будет включать дату,
00:08:57чтобы я мог легко фильтровать их и искать только те результаты,
00:09:00которые мне действительно нужны.
00:09:01Модель узнает только имя и описание репозитория GitHub,
00:09:04который она получает за раз.
00:09:05Она не получает ничего другого,
00:09:07но вся остальная информация сохраняется здесь.
00:09:09Честно говоря,
00:09:10если вы просто просмотрите этот каталог,
00:09:12вы получите хотя бы одну идею о том,
00:09:14какие MCP вы могли бы объединить,
00:09:15чтобы создать эти удивительные рабочие процессы.
00:09:18И в то же время вы экономите токены и сохраняете производительность своего собственного ИИ-агента.
00:09:22Начать работу с ними, честно говоря, довольно просто.
00:09:25Вам нужно обновить версию Docker.
00:09:27Но если у вас его все еще нет,
00:09:28они могут быть отключены в бета-функциях.
00:09:30Поэтому убедитесь,
00:09:31что этот набор инструментов Docker MCP включен..
00:09:34Кроме того,
00:09:35у вас будет ваш каталог,
00:09:36и эти новые функции включены по умолчанию.
00:09:38Так что все,
00:09:39что вам нужно сделать,
00:09:40это подключить своего клиента,
00:09:41и вы,
00:09:41по сути,
00:09:42можете начать с ними работать.
00:09:43На этом наше видео подходит к концу.
00:09:45Если вы хотите поддержать канал и помочь нам продолжать создавать подобные видео,
00:09:49вы можете сделать это,
00:09:50нажав кнопку «Суперспасибо» ниже.
00:09:51Как всегда,
00:09:52спасибо за просмотр,
00:09:53и увидимся в следующем видео..