📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Learn 90% of Building AI Agents in 30 Minutes

Cole Medin29:20

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, Mixtral 8x7B — это те, которые я рекомендую прямо сейчас. И если вы никогда не пробовали Open Router или подобный инструмент, который просто направляет вас между различными поставщиками LLM, я настоятельно рекомендую попробовать один, потому что он так легко позволяет итерировать LLM для вашего агента, предоставляя вам мгновенный доступ. Посмотрите на это. У нас есть Grok, Anthropic, Gemini, у нас есть модели GPT, у нас есть Llama 3, Mixtral 8x7B, все модели с открытым исходным кодом. Независимо от того, с чем вы хотите экспериментировать, у вас это есть здесь. И поэтому просто используйте это как свой инструмент для очень быстрого итерирования 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. Так что теперь в облаке я могу встроить это в полный рабочий процесс ИИ-кодирования, что очень круто. Я покажу вам простую демонстрацию прямо сейчас. Я просто скажу, знаете ли, используйте Sneak MCP для анализа моего кода и зависимостей на предмет уязвимостей. И поэтому он способен использовать различные инструменты в MCP-сервере для проверки обоих, верно? Это очень надежное решение. И поэтому я дам ему немного времени. Я поставлю на паузу и вернусь, когда он завершит обнаружение уязвимостей. Отлично, это так круто. Посмотрите на это. Итак, в моем базовом репозитории агента, сначала он использовал сервер Sneak MCP для анализа любых уязвимостей в моих зависимостях, таких как Pantic AI, например. А затем он выполняет сканирование кода. Так что это также обнаружит такие вещи, как если бы у меня были жестко закодированы переменные окружения, как в примере, который я дал ранее. Итак, он нашел три проблемы с моими зависимостями и ничего с моим кодом, чем я очень горжусь. У меня нет проблем с моим кодом. И он не только выполняет анализ, но и дает мне сводку и перечисляет действия, которые я могу предпринять для устранения проблем. Например, вот мои уязвимости средней степени тяжести, которые есть у меня в нескольких моих зависимостях. Ничего в моем коде. А затем он дает мне рекомендации по устранению проблем. И поэтому я могу перейти и сказать "да, принять меры сейчас". И это обновит мои требования.ext, исправит эти вещи. И я даже могу снова запустить сервер 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. А затем, после того, как вы настроили соединение и инструментировали своего агента, вашего агента Pantic 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, что бы это ни было. Итак, вот и все, что я имею для вас сегодня, помогая вам просто сохранять простоту, что не только поможет вам создавать лучшие агенты, даже когда вам придется масштабировать сложность, но это также поможет вам преодолеть этот барьер мотивации, потому что я даю вам разрешение не быть идеальным с самого начала. Вы просто начинаете с основ, как я показал, а затем строите сверху и итерируете по мере необходимости. И поэтому я надеюсь, что это вдохновит вас просто пойти и создать своего следующего ИИ-агента прямо сейчас, потому что начать может быть очень просто. И поэтому, если вы оценили это видео и с нетерпением ждете большего о создании ИИ-агентов и использовании ИИ-ассистентов кодирования, я был бы очень признателен за лайк и подписку. И с этим, я увижу вас в следующем.