Transcription
Не только я сам построил сотни ИИ-агентов, но и видел, как другие люди создали тысячи для каждого мыслимого случая использования. И те, кто наиболее успешен, — это те, кто не усложняет. И в этом видео я хочу показать вам, как это можете сделать и вы. Потому что вот в чем дело, и я вижу это постоянно. Когда люди впервые думают о создании своих ИИ-агентов, у них включается перфекционизм, и они беспокоятся о создании идеального системного промпта, определении идеальных инструментов, размышлении о LLM, которую они хотят использовать. Они рассматривают контекст и наблюдаемость, задержку и безопасность, развертывание. Они перегружаются всем. И это, возможно, касается и вас. Итак, что я хочу сказать вам прямо сейчас: сделайте глубокий вдох. Вот почему я здесь. Честно говоря, вы можете узнать 90% того, что вам нужно для создания ИИ-агентов, только из этого видео. И это, мой друг, то, что я приготовил для вас в этом видео. Я хочу осветить каждый из основных компонентов создания агентов, таких как системные промпты, инструменты, безопасность и контекст. И я хочу разбить то, на чем вам следует сосредоточиться, чтобы создать первые 90% вашего агента. По сути, создать доказательство концепции. И затем, честно говоря, даже более важно, я хочу поговорить о том, на чем вам не следует сосредотачиваться в первую очередь, потому что иначе вы будете усложнять. Это те вещи, которые вам нужно будет изучить в какой-то момент, когда вы захотите специализировать своих агентов и перейти к производству. Но для этого есть мой другой контент. Независимо от того, новичок ли вы в создании агентов или просто хотите создавать их быстрее, я хочу помочь вам сосредоточиться на первых 90%, чтобы сделать вещи предельно простыми. Ах, и кстати, этот агент, который вы здесь видите, — это талисман нового курса по кодированию Dynamis Agentic. Так что, если вы хотите освоить создание систем вокруг ИИ-кодирования, перейдите по ссылке в описании. Хорошо. Итак, первое, что я хочу осветить с вами, — это четыре основных компонента любого ИИ-агента, которые, кратко напомним, ИИ-агент — это любая большая языковая модель, которой предоставлена возможность взаимодействовать с внешним миром от вашего имени через инструменты. И, таким образом, он может сделать что-то вроде бронирования встречи в вашем календаре, поиска в интернете для вас. Это первая часть агентов — эти инструменты. Это функции, которые мы ему даем, которые он может вызывать для выполнения действий. А затем мозг нашего ИИ-агента — это большая языковая модель. Она обрабатывает наши запросы и решает на основе инструкций, которые мы ей даем, какие инструменты использовать. И говоря об этих основных инструкциях, это наша программа агента, также известная как системный промпт. Это набор инструкций самого высокого уровня, который мы даем любому ИИ-агенту в начале любого разговора, который инструктирует его о его личности, целях, как использовать инструменты. Мы немного позже рассмотрим различные основные компоненты системных промптов. И, наконец, у нас есть системы памяти. Это контекст, который у нас есть из наших разговоров, как краткосрочная, так и долгосрочная память. Мы поговорим об этом немного больше, когда перейдем к контексту. И, таким образом, когда мы будем проходить через каждый из этих основных компонентов, я буду двигаться довольно быстро, потому что я просто хочу осветить основы с вами, но я также буду ссылаться на различные видео на моем канале на протяжении всего этого видео, если вы хотите углубиться в что-либо. И при создании ИИ-агента начать очень просто. И я покажу вам пример кода чуть позже, чтобы вы могли действительно увидеть, о чем я говорю. Итак, когда вы создаете самую основу вашего ИИ-агента, это всего лишь три шага. Вам нужно выбрать большую языковую модель, написать базовый системный промпт в качестве инструкций агента и затем добавить ваш первый инструмент, потому что вам нужен инструмент, иначе это просто обычная большая языковая модель, а не агент. И поэтому для выбора большой языковой модели я настоятельно рекомендую использовать платформу под названием Open Router, потому что она дает вам доступ практически к любой большой языковой модели, которую вы только можете пожелать. И поэтому Claude Haiku 4.5 — это общий вариант, который я использую, просто когда я прототипирую свои ИИ-агенты, но вы можете использовать GPT 5 Mini. Вы можете использовать модель с открытым исходным кодом, такую как DeepSeek, например. Как все они доступны на этой платформе. А затем при создании системного промпта вам просто нужно определить роль и поведение вашего агента. И вы можете дорабатывать это со временем. Просто начните действительно просто, а затем добавьте ваш первый инструмент. Например, вы можете дать ему доступ к поиску в интернете. Вы можете дать ему возможность выполнять математические вычисления с помощью инструмента-калькулятора. Буквально что угодно, просто начните с простого, а затем, когда у вас будет эта основа, тогда вы сможете наращивать больше возможностей и интеграций. И я хочу показать вам больше, чем просто теорию. Например, давайте действительно пойдем и создадим ИИ-агента прямо сейчас, чтобы вы могли практически увидеть, насколько это просто. И я также оставлю ссылку на этот репозиторий в описании, если вы хотите углубиться в этот чрезвычайно простой агент, который охватывает все компоненты этого видео, даже некоторые вещи, о которых мы поговорим чуть позже, такие как наблюдаемость. Так что вы можете запустить его самостоятельно, даже использовать его в качестве шаблона для вашего первого агента, если хотите. И поэтому я буду создавать его с нуля вместе с вами прямо сейчас, покажу построчно, насколько это просто. В итоге это будет менее 50 строк, как я и обещал на слайде. И поэтому сначала я импортирую все зависимости Python. Я использую Pantic AI, так как это мой любимый фреймворк для ИИ-агентов, но на самом деле не имеет значения, какой вы используете. Принципы, которые я освещаю в этом видео, применимы независимо от того, как вы создаете своих агентов, даже если это с помощью такого инструмента, как N8N, потому что то, на чем я здесь сосредоточен, — это просто определение наших четырех основных компонентов. LLM, инструменты, память и системный промпт. И поэтому первое, что я сделаю, — это определю большую языковую модель, которую я хочу использовать. И, как я уже говорил, я использую Open Router. Так что сейчас я буду использовать Claude Haiku 4.5 в качестве моей модели. Но буквально просто изменив эту строку или просто изменив мою переменную окружения. Изменение одной строки. Я могу переключиться на любую модель, которую хочу, например, Gemini или DeepSeek или OpenAI. Это так просто. После того, как я определил LLM, теперь я определяю сам агент, включая системный промпт, высокоуровневые инструкции. И поэтому я импортирую это из отдельного файла. Я просто покажу вам очень, очень простой пример системного промпта здесь, а затем больше об этом чуть позже. Основные компоненты, которые я обычно включаю, включая инструкции по роли и целям агента, формат вывода, как он общается с нами, а затем также любые другие дополнительные инструкции, которые я хочу включить. Так что у меня это сохранено здесь. Теперь это часть моего агента, которую я определил. И поэтому следующее, что нам нужно добавить, — это инструмент, чтобы действительно превратить его из LLM или чат-бота в полноценного агента. И способ сделать это с большинством фреймворков для ИИ-агентов — это определить функцию Python, очень просто, а затем добавить то, что называется декоратором. Это сигнализирует Pantic AI, что эту функцию я хочу взять и прикрепить к моему агенту как возможность, которую он теперь может вызывать. И поэтому агент определяет эти параметры при вызове инструмента. Так, в этом случае это очень простой инструмент для сложения двух чисел, потому что большие языковые модели как машины для предсказания токенов на самом деле плохо справляются с математикой. Интересный факт. И поэтому он определяет эти параметры и использует эту строку документации, как она называется, этот комментарий включен как часть промпта для LLM, потому что он определяет, когда и как использовать этот инструмент, функциональность которого в данном случае очень проста, просто сложение двух чисел. Но это может быть инструмент для поиска в интернете на основе запроса, который он определяет, создания события в нашем календаре на основе диапазона времени и заголовка, которые он определяет, как все эти вещи являются параметрами, а затем мы выполняем функциональность для агента на основе этого. Это инструмент, который мы получили для агента. И это очень хорошо. Мы создали нашего агента и добавили инструменты. Единственное, что нам осталось сделать, — это настроить способ взаимодействия с ним. Так что я создам очень простой интерфейс командной строки здесь. Мы начинаем с пустого разговора. Здесь мы добавим память, которая является четвертым компонентом агентов. И поэтому в бесконечном цикле мы получаем ввод от пользователя. Э-э, и мы выходим из программы, если он говорит "выйти". В противном случае мы вызовем агента. Так что это очень просто: agent.run, запустить с последним сообщением пользователя и передать для краткосрочной памяти историю разговора, чтобы он знал, что мы говорили друг другу до этого момента, а затем я добавлю к истории разговора все, что мы только что сказали, а затем выведу последний ответ агента. Посмотрите на это. И даже после того, как мы вызовем нашу основную функцию здесь, мы все равно остаемся ниже 50 строк кода. Так просто определить наших агентов. И, очевидно, есть еще много вещей, которые нам нужно сделать, чтобы действительно довести нашего агента до состояния готовности к производству. Но опять же, я просто хочу сосредоточиться на том, чтобы сделать это предельно простым для вас прямо сейчас. И я знаю, что многое из этого может быть повторением для вас, если вы создавали агентов раньше. Но особенно если вы уже создали много ИИ-агентов, вы, вероятно, как и я, часто все усложняете, потому что вы знаете, сколько всего может потребоваться для создания агентов. Вот что я пытаюсь сделать: просто вернуть вас к основам, потому что вам нужно сохранять простоту, когда вы впервые создаете любого агента, действительно любое программное обеспечение вообще. И поэтому да, мы можем перейти в терминал и взаимодействовать с нашим агентом. Так что я запущу agent.py здесь. Все, что мы только что построили, я могу сказать "привет", чтобы получить очень простой ответ. А затем я могу сказать, например, "что такое", и я просто приведу пару больших чисел, которые я хочу сложить. И вот здесь он знает благодаря описанию инструмента, что он должен использовать инструмент "сложить числа", который мы ему дали, чтобы получить эту сумму. Вот, посмотрите на это. И я даже могу спросить: "Ты использовал инструмент?", и он должен сказать "да". Как он на самом деле распознает на основе истории разговора, что он использовал инструмент "сложить числа". Хорошо, отлично. Итак, у нас есть этот агент с историей разговора. Он знает, когда использовать этот инструмент. И теперь на этом этапе мы можем начать расширять инструменты, которые мы ему даем. Мы можем уточнить наш системный промпт, поэкспериментировать с различными LLM. И я хочу поговорить об этом тоже. Начиная с больших языковых моделей, выбора вашей LLM, как я говорил, когда я создавал агента, Claude Haiku 4.5 — это тот, который я рекомендую, просто дешевый и быстрый вариант, который действительно хорош для создания доказательств концепции, когда я не хочу тратить много денег на токены, когда я изначально итерирую своего агента. А затем Claude Sonnet 4.5 — это, как правило, лучший универсальный вариант прямо сейчас. Это может измениться буквально через неделю, и у людей разные мнения. Главное, что я хочу донести здесь, — это не беспокойтесь о выборе идеальной LLM заранее, особенно когда вы используете платформу, такую как Open Router, где так легко переключаться между LLM. Даже если вы не используете Open Router, это все равно очень просто. А затем, если вам нужна локальная модель по соображениям конфиденциальности или вы хотите работать на 100% бесплатно на своем оборудовании, то Mistral 3.1 и Llama 3 — это те, которые я рекомендую прямо сейчас. И если вы никогда не пробовали Open Router или подобный инструмент, который просто направляет вас между различными поставщиками LLM, я настоятельно рекомендую попробовать один, потому что он так легко позволяет итерировать LLM для вашего агента, давая вам мгновенный доступ. Посмотрите на это. У нас есть Grok, Anthropic, Gemini, у нас есть модели GPT, у нас есть Llama 3, все модели с открытым исходным кодом. Независимо от того, с чем вы хотите экспериментировать, у вас есть это здесь. И поэтому просто используйте это как свой инструмент для очень быстрого итерирования LLM и просто не думайте об этом слишком много. А затем для компонента системного промпта я обещал углубиться немного больше в различные категории, которые у меня есть. Так что именно об этом я хочу очень быстро поговорить. Может быть особенно легко переусердствовать с системным промптом, потому что это такая широкая проблема, как, какой должен быть набор инструкций верхнего уровня для моего агента? И поэтому я люблю сохранять простоту, работая по шаблону, который я использую для всех моих ИИ-агентов, по крайней мере, в качестве отправной точки. У меня всегда есть личность и цели, инструкции по инструментам и примеры, формат вывода и дополнительные инструкции. И о чем вам не следует беспокоиться на данном этапе, так это о настройке сложных оценок промптов или A/B-тестировании ваших системных промптов. Вы можете заняться этим, когда действительно захотите уточнить инструкции своего агента. Но прямо сейчас просто сохраняйте простоту и уточняйте на высоком уровне, пока вы вручную тестируете своего агента. И если вы хотите увидеть этот шаблон системного промпта в действии, я позаботился об этом. Я оставлю ссылку на это в описании. Это реальный пример того, как я заполняю эти различные разделы, создавая системный промпт для агента управления задачами. Итак, у меня определена моя личность. Я определяю цели для агента управления задачами. Инструкции по инструментам, как я могу использовать различные инструменты вместе для управления задачами на моей платформе. Формат вывода, просто указывая способы, которыми я хочу, чтобы он общался со мной, или вещи, которых следует избегать. Некоторые примеры. Теперь это больше относится к более сложным агентам и системным промптам, где вы действительно хотите дать пример рабочего процесса, связывающего различные инструменты вместе, поэтому это не совсем применимо здесь. И затем последнее — это просто дополнительные инструкции. Это также место, куда можно добавить дополнительные инструкции для исправления мелких проблем, которые вы видите у своего агента, которые не обязательно вписываются во все остальные. Таким образом, универсальное решение, чтобы убедиться, что есть место для всего, пока вы экспериментируете со своим агентом и уточняете свой системный промпт. А затем, что касается инструментов для ваших ИИ-агентов, есть всего несколько вещей, которые я хочу быстро осветить, чтобы помочь вам сохранить простоту и сосредоточенность. Первое — это то, что вы должны ограничить свои инструменты до менее чем 10 для ваших ИИ-агентов, по крайней мере, при начале работы. И вы определенно хотите убедиться, что цель каждого инструмента очень четкая. Потому что, если ваши инструменты имеют перекрывающуюся функциональность или если их слишком много, тогда ваша большая языковая модель начинает перегружаться всеми возможностями своих способностей, и она будет использовать неправильные инструменты. Она забудет вызвать инструменты. Э-э, и это просто беспорядок. Определенно ограничьте их до менее чем 10. А затем также MCP-серверы — отличный способ найти готовые наборы инструментов, которые вы можете интегрировать в своего агента, когда вы, знаете, создаете что-то изначально и просто хотите двигаться очень быстро. И поэтому определенно, в зависимости от того, что вы строите, вы, вероятно, сможете найти MCP-сервер, который предоставит вам некоторую функциональность прямо из коробки для ваших агентов. А затем последнее, что я скажу, это то, что многие люди спрашивают меня: "На каких возможностях мне следует сосредоточиться в первую очередь при создании агентов?" И я хочу дать им инструменты, и RAG всегда является ответом, который я им даю. Предоставление вашему ИИ-агенту инструментов, которые позволяют ему искать ваши документы и базу знаний. Это то, что такое генерация с расширенным поиском. И поэтому, по сути, это предоставление вашим агентам возможности обосновывать свои ответы реальными данными. И я бы сказал, что, вероятно, более 80% ИИ-агентов, работающих в дикой природе прямо сейчас, независимо от отрасли или ниши, в той или иной степени используют RAG в качестве части возможностей для агента. А затем, продолжая нашу тему, что не следует фокусировать при создании инструментов, это не беспокойтесь о многоагентных системах или сложной оркестровке инструментов через это пока. Когда у вас есть система, которая начинает иметь более 10 инструментов, это, как правило, когда вы начинаете разделяться на специализированные под-агенты, и у вас есть маршрутизация между ними. Такие системы мощны и необходимы для многих приложений, но определенно избыточны, когда вы только начинаете создавать своего агента или систему. Также, если вы хотите узнать больше о RAG и его интеграции в ваших агентов, посмотрите видео, которое я оставлю здесь. Я постоянно рассказываю об этом на своем канале, потому что это так важно. И поэтому, с этим, переходя к следующему, у нас есть основы безопасности, потому что важно думать о безопасности при создании любого программного обеспечения заранее. Но я не хочу, чтобы вы усложняли это пока, верно? Как будто вы не становитесь экспертом по безопасности в одночасье. Существуют существующие инструменты, которые помогут нам с безопасностью. Так что мы все еще можем двигаться быстро, когда мы изначально создаем нашего агента. Мы определенно захотим уделять больше внимания безопасности, когда будем переходить к производству. Но сначала есть пара инструментов, которые я хочу выделить здесь. А затем просто общие принципы, которым нужно следовать. Например, не кодируйте свои API-ключи жестко, верно? Как будто вы не хотите, чтобы ваш API-ключ OpenAI или Anthropic просто лежал там прямо в вашем коде или вашем рабочем процессе, например. Вы всегда хотите хранить его безопасным способом с помощью таких вещей, как переменные окружения. А затем также, когда мы думаем о создании ИИ-агентов в частности, есть много мер безопасности, которые мы хотим реализовать с помощью так называемых "защитных барьеров", верно? Так ограничение того, какая информация может поступать в большую языковую модель, а затем также ограничение видов ответов, которые агент может давать, и заставлять его фактически повторять, если он выдает какой-либо неприемлемый для нас ответ. И есть суперпопулярный репозиторий с открытым исходным кодом, на который я всегда полагаюсь, чтобы помочь с защитными барьерами, и он очень креативно называется Guardrails AI. И поэтому это Python-фреймворк, потому что я всегда люблю создавать свои ИИ-агенты с помощью Python, который помогает создавать надежные ИИ-приложения, предоставляя вам как входные, так и выходные защитные барьеры, о которых я говорю. Так ограничение того, что входит, и ограничение того, что агент может производить. И они предоставляют много различных вариантов для защитных барьеров. Например, одна вещь, которую вы часто хотите избежать, — это вставка любой личной идентифицирующей информации (PII) в промпт для LLM, особенно когда он отправляется в какую-либо модель в облаке, такую как Anthropic или Gemini, вместо локальной LLM. Так ограничение такого рода вещей, возможно, обнаружение любого вульгарного языка, который выводится из LLM, потому что они иногда это делают. Как эти просто некоторые примеры входных и выходных защитных барьеров. И очень легко установить это как пакет Python и интегрировать эти защитные барьеры прямо в ваш код, когда вы взаимодействуете со своими агентами, как мы видели ранее, когда у меня был этот, знаете ли, простой инструмент командной строки для общения с агентом. Как я мог просто добавить защитный барьер до или после этого вызова агента. Так что да, защитные барьеры не должны быть сложными. Существуют такие инструменты, даже полностью с открытым исходным кодом, такие как Guardrails AI, которые делают это очень простым. Хорошо, мы поговорили о защитных барьерах, и я дал вам один пример лучших практик безопасности в нашей кодовой базе. Но как насчет других миллиона различных уязвимостей, которые мы должны учитывать в нашей кодовой базе и зависимостях, которые мы привносим в наш проект? Мы не можем ожидать, что станем экспертами по безопасности в одночасье. И поэтому важно изучать эти вещи, но мы также можем полагаться на существующие инструменты, чтобы помочь нам с обнаружением уязвимостей. Существует множество вариантов, но Sneak Studio — это один из тех, на который я в последнее время много полагаюсь. И у них также есть MCP-сервер в студии, чтобы помочь нам автоматически обрабатывать обнаружение уязвимостей прямо в процессе кодирования. Так что, как всегда, я стараюсь сосредоточиться на решениях с открытым исходным кодом для этого видео, но я не знаю ни одного открытого альтернативы Sneak. Эта платформа невероятна. Так что в Sneak Studio мы можем настраивать эти различные проекты и интеграции. Мы можем анализировать нашу кодовую базу и зависимости на предмет уязвимостей в наших репозиториях GitHub. У них есть CLI. Мы можем делать вещи локально. У них есть MCP-сервер, который я покажу чуть позже. Я оставлю ссылки на все это в описании. Но да, MCP-сервер в частности очень крут для меня, потому что мы можем встроить обнаружение уязвимостей прямо в наши рабочие процессы ИИ-кодирования. Теперь, посмотрите на это. У меня есть MCP-сервер Sneak, подключенный напрямую к моему облачному коду после того, как я прошел аутентификацию Sneak через CLI. И вы можете подключить это к любому ИИ-ассистенту по кодированию или клиенту MCP. Так что теперь в Cloud я могу встроить это в полный рабочий процесс ИИ-кодирования, что очень круто. Я покажу вам простую демонстрацию прямо сейчас. Я просто скажу, знаете ли, используйте Sneak MCP для анализа моего кода и зависимостей на предмет уязвимостей. И поэтому он способен использовать различные инструменты в MCP-сервере для проверки обоих, верно? Это очень надежное решение. И поэтому я дам ему немного времени. Я поставлю на паузу и вернусь, когда он завершит обнаружение уязвимостей. Хорошо, это так круто. Посмотрите на это. Итак, в моем базовом репозитории агента, сначала он использовал сервер Sneak MCP для анализа любых уязвимостей в моих зависимостях, таких как Pydantic AI, например. А затем он выполняет сканирование кода. Так что это также обнаружит такие вещи, как если бы у меня были мои переменные окружения жестко закодированы, как в примере, который я дал ранее. Итак, он нашел три проблемы с моими зависимостями и ничего с моим кодом, чем я очень горжусь. У меня нет проблем с моим кодом. И он не только выполняет анализ, но и дает мне сводку и перечисляет действия, которые я могу предпринять для устранения проблем. Например, вот мои уязвимости средней степени тяжести, которые есть у меня в нескольких моих зависимостях. Ничего в моем коде. А затем он дает мне рекомендации по устранению проблем. И поэтому я могу перейти и сказать "да, принять меры сейчас". И он обновит мои requirements.txt, исправит эти вещи. И я даже могу снова запустить сервер Sneak MCP. И вы определенно можете увидеть, как вы бы встроили такую вещь непосредственно в слой проверки вашего рабочего процесса ИИ-кодирования. Очень, очень здорово для любого ИИ-агента или действительно любого программного обеспечения, которое вы хотите создать вообще. Продолжая, я хочу поговорить о памяти. Теперь управление токенами, которые мы передаем в вызовы LLM для наших агентов. И это действительно горячая тема прямо сейчас, особенно со всеми ограничениями скорости, которые люди получают от ИИ-ассистентов по кодированию, таких как Claude Code. Действительно важно эффективно управлять нашим контекстом, предоставляя нашим агентам только ту информацию, которая им действительно нужна, и не раздувая наши системные промпты тысячами строк инструкций и инструментов, которые им на самом деле не нужны. Вот чего вы хотите избежать. И поэтому, всего пара простых советов здесь, в соответствии с нашей темой. Первый — это делать ваши промпты очень краткими. как ваши системные промпты, так и описания инструментов, которые описывают вашему агенту, когда и как использовать инструменты, как я показывал в коде ранее. Вам не нужно усложнять. Вот почему у меня есть эти шаблоны для вас, например, шаблон для системного промпта, верно? Как у вас есть ваша цель всего в паре предложений, ваша личность всего в паре предложений. Держите его очень организованным, и организация также помогает вам сделать его довольно кратким. Вам не нужно переусердствовать. И поэтому я обычно рекомендую делать ваши системные промпты максимум в пару сотен строк. Некоторые решения могут потребовать большего, но тогда я бы начал спрашивать, действительно ли вы можете сделать это более кратким или разделить его на разные специализированные агенты, чтобы у каждого агента все еще был простой системный промпт. Другое, что вы можете сделать для агентов, у которых более длинные разговоры, — это ограничить, скажем так, в скользящем окне до 10 или 20 последних сообщений, например, которые вы фактически включаете в контекст. И возвращаясь к коду, я даже покажу вам, как это выглядит здесь. Например, прямо сейчас, когда мы вызываем нашего агента, мы запускаем его, мы передаем всю историю разговора. Но в Python, если бы я хотел включить только последние 10 сообщений, я мог бы сделать что-то вроде этого. И поэтому теперь, возможно, предыдущие сообщения уже не так актуальны. Мы просто хотим включить последние 10. Вот как мы можем это сделать. Так что это еще одна очень популярная стратегия. Также такие инструменты, как N8N, имеют это как опцию, встроенную непосредственно в их узлы краткосрочной памяти. Так что очень полезно знать. А затем также, когда у вас начинает накапливаться столько информации об одном пользователе, что вы не хотите включать ее в краткосрочную память, тогда вы можете обратиться к долгосрочной памяти. Но также не создавайте ее с нуля. Опять же, не усложняйте. Существуют инструменты, которые вы можете использовать, как и с безопасностью, чтобы помочь нам с долгосрочной памятью, и Memzero — один из них. Memzero — это полностью открытый фреймворк для долгосрочной памяти агентов. И поэтому я покажу GitHub через секунду, но да, когда у вас накапливается столько информации о пользователе, что вы не можете включить ее всю в контекст, вам нужен способ искать в более долгосрочном наборе воспоминаний и включать только те, которые актуальны для текущего разговора, который, кстати, использует RAG под капотом. Так что опять же, еще один пример того, почему это такая важная возможность. Э-э, но да, по сути, вы можете извлекать основные воспоминания из разговоров и хранить их для последующего поиска. Вот что предлагает нам Memzero. И его так легко интегрировать в наш код Python, как и Guardrails AI. Я быстро покажу пример в их быстром старте. Вы устанавливаете его как пакет Python, а затем у вас есть функция для поиска воспоминаний, как выполнение RAG для поиска воспоминаний, связанных с последним сообщением, а затем у вас есть функция для добавления воспоминаний. И поэтому он будет использовать большую языковую модель для извлечения ключевой информации для хранения и последующего извлечения. И поэтому это определенно решает проблему контекста, потому что теперь вы можете иметь бесконечную память для агента, но вам не нужно передавать ее всю LLM одновременно. Он просто извлекает вещи по мере необходимости. И, конечно, последнее, на чем я хочу остановиться в отношении контекста, — это то, на чем не следует фокусироваться, когда вы впервые создаете своего агента. Не беспокойтесь о продвинутых методах сжатия памяти. Есть много интересных вещей, над которыми Anthropic особенно проводит исследования, но не беспокойтесь об этом. Не беспокойтесь о специализированных под-агентах. Это оба решения для решения проблемы памяти, когда она становится действительно технической. Но прямо сейчас просто начните с простого, и вы всегда сможете оптимизировать вещи, когда начнете расширять своего агента и переходить к производству и столкнетесь с некоторыми ограничениями. Но прямо сейчас, сосредоточение на этих вещах заранее — это все, что вам нужно, чтобы пройти первые 90%, возможно, даже больше, в зависимости от того, насколько просты ваши агенты. И контекст был последним из четырех основных компонентов агентов. Итак, мы рассмотрели основные четыре и безопасность. Теперь я хочу немного поговорить об наблюдаемости и развертывании. Подготовке нашего агента к производству. И я скажу, что безопасность, наблюдаемость и развертывание определенно входят в последние 10% создания агента. Но я хочу коснуться их здесь, потому что есть некоторые способы очень просто спроектировать вещи заранее, особенно с наблюдаемостью. Я хочу представить вам Langfuse прямо сейчас. И я уже рассказывал об этом на своем канале. Ссылка на видео здесь о Langfuse, если вы хотите углубиться в наблюдаемость. Но мы можем настроить возможность отслеживать действия, которые предпринимает наш агент, просматривать их на панели управления. Мы можем делать такие вещи, как тестирование различных промптов для наших агентов. Это прекрасная платформа, и ее действительно легко интегрировать в наш код. И поэтому я уже сделал это очень незаметно, когда создавал агента вместе с вами, но у меня есть эта функция под названием setup_observability. И все, что она делает, — это инициализирует Langfuse на основе некоторых переменных окружения, которые я установил здесь. И я рассказываю обо всем этом в своем видео на YouTube о Langfuse, если вам интересно. Но вы просто подключаетесь к своему экземпляру Langfuse. И затем, после того как вы настроили соединение и инструментировали своего агента, вашего агента Pydantic AI для наблюдаемости, это все, что вам нужно сделать. Буквально больше кода здесь для Langfuse нет. И он будет отслеживать все наши выполнения агента, даже получая представление о вызовах инструментов, которые он делает под капотом. Так что посмотрите на это. Итак, я нахожусь на панели управления Langfuse, где я могу просмотреть выполнение, которое у нас было из нашего предыдущего теста, где он использовал функцию add_numbers, и у нас есть все эти очень богатые данные о количестве использованных токенов, задержке. Мы можем просматривать инструменты и также смотреть на различные параметры, которые у нас есть, такие как аргументы инструмента, например, для чисел, которые нужно сложить. Мы можем просмотреть системный промпт, который был использован здесь, на основе этого шаблона, который мы определили. У нас есть вся эта наблюдаемость, которая также действительно помогает для мониторинга наших агентов в производстве, когда другие пользователи используют агента. Так что мы не можем просто посмотреть на наш чат и увидеть, как работает агент. И есть так много других вещей в Langfuse, в которые я не хочу вдаваться прямо сейчас, например, eval для вашего агента. Это полностью открытая платформа, как и Memzero и Guardrails AI. Так что опять же, сосредоточение на открытом исходном коде в этом видео. Существуют другие решения для такой наблюдаемости, такие как Helicone и Langsmith, например, но Langfuse — это то, что я люблю использовать. И я знаю, что я не особо много освещал это в коде, но это действительно так же просто, как я показал. И поэтому вы можете использовать репозиторий, который я оставил ниже, в качестве шаблона, чтобы начать агента с уже встроенной наблюдаемостью, если вы заинтересованы. А затем последний компонент, который я хочу хотя бы затронуть прямо сейчас, — это то, как вы можете заранее настроить своего агента для работы в продакшене, когда вы будете готовы вывести своего агента в производство. Очевидно, что это будет частью последних 10%. Не то, о чем я буду много говорить в этом видео, но одна большая золотая крупица, которую я хочу вам дать, — это то, что вы всегда должны думать о том, как вы можете создать своего ИИ-агента для работы в качестве Docker-контейнера. Docker — это мой метод упаковки любого приложения, особенно ИИ-агентов, которые я хочу развернуть в облаке, и я также скажу, что ИИ-ассистенты по кодированию очень хороши в настройке конфигурации Docker, такой как ваши Docker-файлы и файлы Docker Compose. Да. Так что используйте их, а затем вы можете добавить, знаете ли, простое приложение Streamlit с Python или создать фронтенд React для создания интерфейса чата для вашего агента, если это агент, управляемый разговором, или иначе, что я люблю делать для более, знаете ли, фоновых агентов, которые периодически работают с набором данных, я запускаю его просто как бессерверную функцию, так что это своего рода фоновый агент, запускаемый как бессерверный в Docker-контейнере, разговорный агент, вы запускаете его в Docker-контейнере, также с фронтенд-приложением, это примерно два пути, которые у меня есть для любого агента, который я хочу развернуть. Так что да, просто думайте "Docker-native". Держите это в уме с самого начала, когда вы создаете своего агента. Чего вы не хотите фокусировать на наблюдаемости и развертывании и всем, что готово к производству, — это оркестрация Kubernetes, обширные оценки LLM или A/B-тестирование промптов. Как некоторые из вещей, которые у нас есть в Langfuse, которые очень мощны, когда вы хотите очень точно настроить инструменты вашего агента, системный промпт и все остальное, не беспокойтесь об этом пока. Вы определенно можете добраться туда, и, как я сказал, это основная часть последних 10%. Но прямо сейчас также не думайте об инфраструктуре так сильно, потому что, если вы не используете локальные большие языковые модели, вам вообще не нужна тяжелая инфраструктура для ваших агентов. Как очевидно, это зависит от объема использования вашего агента. Но для большинства случаев использования, просто пара vCPU и несколько гигабайт ОЗУ — это все, что вам нужно для запуска ИИ-агента, даже если у вас есть фронтенд-приложение. очень, очень легкое, пока вы вызываете стороннего поставщика для большой языковой модели, такого как Open Router, или, знаете ли, Anthropic или Gemini, что бы это ни было. Итак, вот и все, что я имею для вас сегодня, помогая вам просто сохранять простоту, что не только поможет вам создавать лучшие агенты, даже когда вам придется масштабировать сложность, но и поможет вам преодолеть этот барьер мотивации, потому что я даю вам разрешение не быть идеальным с самого начала. Вы просто начинаете с основ, как я показал вам, а затем наращиваете и итерируете по мере необходимости. И поэтому я надеюсь, что это вдохновит вас просто пойти и создать своего следующего ИИ-агента прямо сейчас, потому что начать может быть очень просто. И поэтому, если вы оценили это видео и с нетерпением ждете большего по созданию ИИ-агентов и использованию ИИ-ассистентов по кодированию, я был бы очень признателен за лайк и подписку. И с этим я увижу вас в следующем.