Руководство по самостоятельному использованию ИИ: начните свой путь к созданию агентов ИИ
Изучите основы создания агентов ИИ. Откройте для себя инструменты и методы, необходимые для проектирования и внедрения этих интеллектуальных систем.
Индустрия искусственного интеллекта переживает бурное развитие. Это впечатляет и часто сбивает с толку.
Я изучал, усваивал знания и закладывал основу в этой области науки о данных, поскольку считаю, что будущее науки о данных тесно связано с развитием генеративного искусственного интеллекта.
Кажется, вчера я построил свой первый Агент ИИА две недели спустя на выбор было представлено множество пакетов Python, не говоря уже о вариантах без кода, которые работали очень хорошо, например n8n.

От простых моделей, которые могут общаться с нами, до цунами агентов ИИ, которые повсюду, ищут в Интернете, обрабатывают файлы и выполняют проекты. Наука о данных Весь процесс (от первоначального изучения данных до моделирования и оценки) занял всего несколько лет.
мэра
Видя все это, я подумал: «Мне нужно присоединиться как можно скорее».. В конце концов, лучше плыть по течению, чем быть поглощенным им.
По этой причине я решил начать серию постов, в которых я планирую перейти от основ к созданию нашего первого ИИ-агента и далее к более сложным концепциям.
Хватит разговоров, пора идти.
Основы агента ИИ
Агент ИИ создается, когда мы даем большой языковой модели (LLM) возможность взаимодействовать с инструментами и выполнять действия, которые полезны для нас. Теперь он не просто чат-бот, а может планировать встречи, управлять нашим календарем, искать информацию в Интернете, писать посты в социальных сетях и этот список можно продолжать... Эта трансформация делает его полноценным цифровым помощником.
Агенты на базе искусственного интеллекта могут делать полезные вещи, а не только общаться.
Но как мы можем предоставить эту мощь большой языковой модели (LLM)?
Простой ответ — использовать API для взаимодействия с большой языковой моделью. В настоящее время существует множество пакетов Python для этого. Если вы следите за моим блогом, то увидите, что я уже экспериментировал с несколькими пакетами для создания агентов: например, Langchain, Agno (ранее Phidata) и CrewAI. В этой серии я остановлюсь на Agno[1].
Сначала настройте виртуальную среду с помощью uv Или Anaconda или ваш любимый процессор окружения. Далее устанавливаем пакеты.
# Agno AI
pip install agno
# module to interact with Gemini
pip install google-generativeai
# Install these other packages that will be needed throughout the tutorial
pip install agno groq lancedb sentence-transformers tantivy youtube-transcript-api
Прежде чем продолжить, небольшое замечание. Не забудьте получить ключ API Google Gemini [2].
Создать простой прокси очень просто. Все пакеты очень похожи. У них есть класс. Agent Или что-то подобное, что позволяет нам выбрать модель и начать взаимодействовать с более крупной языковой моделью по нашему выбору. Вот основные компоненты этой категории:
model:Подключение к большой языковой модели. Здесь мы выберем между OpenAI, Gemini, Llama, Deepseek и т. д.descriptionЭтот параметр позволяет нам описать поведение агента. Это добавлено кsystem_message, который является похожим средством массовой информации.instructionsМне нравится думать об агенте как о сотруднике или помощнике, которым мы управляем. Чтобы выполнить задачу, мы должны дать инструкции о том, что делать. Здесь вы можете это сделать.expected_outputЗдесь мы можем предоставить инструкции относительно ожидаемого результата.toolsИменно это делает большую языковую модель агентом, позволяя ей взаимодействовать с реальным миром с помощью этих инструментов.
Теперь давайте создадим простой агент, у которого нет инструментов, но который будет служить для формирования нашего интуитивного представления о структуре кода.
# Imports
from agno.agent import Agent
from agno.models.google import Gemini
import os
# Create agent
agent = Agent(
model= Gemini(id="gemini-1.5-flash",
api_key = os.environ.get("GEMINI_API_KEY")),
description= "An assistant agent",
instructions= ["Be sucint. Answer in a maximum of 2 sentences."],
markdown= True
)
# Run agent
response = agent.run("What's the weather like in NYC in May?")
# Print response
print(response.content)
## ...
В мае в Нью-Йорке ожидается умеренная температура, обычно от 50 до 70 градусов по Фаренгейту. Возможен дождь, поэтому рекомендуется надевать несколько слоев одежды и брать с собой зонтик.
Это здорово. Мы используем модель Gemini 1.5. Обратите внимание, как он реагирует на данные, на которых он был обучен. Если мы попросим его сообщить нам сегодняшнюю погоду, мы увидим ответ, в котором будет сказано, что у него нет доступа к Интернету.
Давайте рассмотрим посредников. instructions и expected_output. Теперь нам нужна таблица с месяцем, сезоном и средней температурой для Нью-Йорка (NYC).
# Imports
from agno.agent import Agent
from agno.models.google import Gemini
import os
# Create agent
agent = Agent(
model= Gemini(id="gemini-1.5-flash",
api_key = os.environ.get("GEMINI_API_KEY")),
description= "An assistant agent",
instructions= ["Be sucint. Return a markdown table"],
expected_output= "A table with month, season and average temperature",
markdown= True
)
# Run agent
response = agent.run("What's the weather like in NYC for each month of the year?")
# Print response
print(response.content)
И вот результат.
| месяц | сезон | Средняя температура (°F) |
|---|---|---|
| январь | зима | 32 |
| февраль | зима | 35 |
| март | весна | 44 |
| апрель | весна | 54 |
| май | весна | 63 |
| июнь | الصيف | 72 |
| июль | الصيف | 77 |
| август | الصيف | 76 |
| сентябрь | Осень | 70 |
| октябрь | Осень | 58 |
| ноябрь | Осень | 48 |
| декабрь | зима | 37 |
инструменты
Приведенные выше ответы хороши, но, конечно, мы не хотим использовать мощные большие языковые модели (LLM), чтобы играть с чат-ботом или рассказывать нам старые новости, верно?
Мы хотим, чтобы это стало мостом к автоматизации, производительности и знаниям. Итак, вы добавите инструменты возможностей нашим агентам ИИ, тем самым создавая мост с реальным миром. К типичным примерам агентов относятся: поиск в Интернете, запуск SQL, отправка электронной почты или вызов API.
Но более того, мы можем создавать индивидуальные возможности для наших агентов, используя любую функцию Python в качестве инструмента, что открывает широкие возможности для интеграции с различными системами и процессами.
Инструменты Это функции, которые агент может запускать для выполнения задач.
С точки зрения кода, добавление виджета к агенту — это просто вопрос использования промежуточного программного обеспечения. tools В категории Agent.
Представьте себе индивидуальное предприятие (бизнес, состоящий из одного человека) в сфере здравоохранения и оздоровления, которое хочет автоматизировать создание своего контента. Этот человек каждый день публикует советы по формированию здоровых привычек. Я точно знаю, что создание контента не так просто, как кажется. Это требует креативности, исследовательской деятельности и навыков копирайтинга. Поэтому, если этот процесс можно автоматизировать, или хотя бы его часть, это экономит время.
Итак, мы пишем этот код для создания очень простого агента, который может создать простую публикацию в Instagram и сохранить ее в файле Markdown для проверки. Мы сократили процесс с «думать» > «исследовать» > «написать» > «рецензировать» > «опубликовать» до «рецензировать» > «опубликовать».
# Imports
import os
from agno.agent import Agent
from agno.models.google import Gemini
from agno.tools.file import FileTools
# Create agent
agent = Agent(
model= Gemini(id="gemini-1.5-flash",
api_key = os.environ.get("GEMINI_API_KEY")),
description= "You are a social media marketer specialized in creating engaging content.",
tools=[FileTools(
read_files=True,
save_files=True
)],
show_tool_calls=True)
# Writing and saving a file
agent.print_response("""Write a short post for instagram with tips and tricks
that positions me as an authority in healthy eating
and save it to a file named 'post.txt'.""",
markdown=True)
В результате имеем следующее.
Высвободите свою позитивную энергию, питаясь здоровой пищей:
1. Отдавайте предпочтение цельным продуктам: ешьте много фруктов, овощей, нежирных белков и цельнозерновых продуктов. Они богаты питательными веществами и дают ощущение сытости и энергии.
2. Питайтесь осознанно: обращайте внимание на сигналы голода и сытости вашего организма. Избегайте отвлекающих факторов во время еды.
3. Пейте много воды: вода необходима для пищеварения, уровня энергии и общего состояния здоровья..
4. Не лишайте себя удовольствия: время от времени позволяйте себе сладости. Депривация может впоследствии привести к перееданию. Наслаждайтесь всем, но в меру!
5. Планируйте заранее: готовьте еду и закуски заранее, чтобы избежать принятия нездоровых решений.
#ЗдоровоеПитание #ЗдоровыйОбразЖизни #Питание #ЛюбителиЕды #ЗдоровьеИБлагополучие #ЗдоровыеСоветы #ЧистоеПитание #Похудение #ЗдоровыеРецепты #СоветыПоПитанию #МгновенноеЗдоровье #ЗдороваяПища #ОсознанноеПитание #ЗдоровоеПутешествие #ТренерПоЗдоровью
Конечно, мы могли бы усложнить задачу, создав команду из других агентов для поиска контента в списке веб-сайтов, проверяющего и рецензента контента и еще одного человека для создания изображения для поста. Но я думаю, вы поняли общую идею, как добавить tool إلى Agent.
Другой тип инструмента, который мы можем добавить: инструмент функциональный инструмент. Мы можем использовать функцию Python в качестве инструмента для большой языковой модели (LLM). Только не забудьте добавить подсказки по типу: video_id:str, поэтому модель знает, что использовать в качестве входных данных для функции. В противном случае вы можете увидеть ошибку.
Давайте вкратце рассмотрим, как это работает.
Теперь мы хотим, чтобы наш агент мог получить определенное видео на YouTube и сделать из него краткий обзор. Для выполнения такой задачи мы просто создаем функцию, которая загружает расшифровку видео с YT и передает ее в модель для резюмирования.
# Imports
import os
from agno.agent import Agent
from agno.models.google import Gemini
from youtube_transcript_api import YouTubeTranscriptApi
# Get YT transcript
def get_yt_transcript(video_id:str) -> str:
"""
Use this function to get the transcript from a YouTube video using the video id.
Parameters
----------
video_id : str
The id of the YouTube video.
Returns
-------
str
The transcript of the video.
"""
# Instantiate
ytt_api = YouTubeTranscriptApi()
# Fetch
yt = ytt_api.fetch(video_id)
# Return
return ''.join([line.text for line in yt])
# Create agent
agent = Agent(
model= Gemini(id="gemini-1.5-flash",
api_key = os.environ.get("GEMINI_API_KEY")),
description= "You are an assistant that summarizes YouTube videos.",
tools=[get_yt_transcript],
expected_output= "A summary of the video with the 5 main points and 2 questions for me to test my understanding.",
markdown=True,
show_tool_calls=True)
# Run agent
agent.print_response("""Summarize the text of the video with the id 'hrZSfMly_Ck' """,
markdown=True)
И тогда вы получите результат.

Агенты, способные рассуждать
Еще одна замечательная опция, которую предлагает Agno, — это возможность создавать агентов, которые могут анализировать ситуацию, прежде чем ответить на вопрос. Это инструмент рассуждения. проверять Типы агентов ИИ и их использование: подробное объяснение.
Мы создадим рассуждающий агент, используя модель Qwen-qwq-32b от Alibaba. Обратите внимание, что единственное отличие здесь, помимо модели, заключается в том, что мы добавляем виджет. ReasoningTools(). Этот инструмент позволяет агенту мыслить логически, прежде чем давать ответы.
Имущество означает adding_instructions=True Предоставление агенту подробных инструкций, повышающих надежность и точность использования им инструмента. При установке этого свойства произойдет следующее: False Заставить агента полагаться на собственные рассуждения, которые могут быть более подвержены ошибкам. Это позволяет независимо оценить возможности модели.
# Imports
import os
from agno.agent import Agent
from agno.models.groq import Groq
from agno.tools.reasoning import ReasoningTools
# Create agent with reasoning
agent = Agent(
model= Groq(id="qwen-qwq-32b",
api_key = os.environ.get("GROQ_API_KEY")),
description= "You are an experienced math teacher.",
tools=[ReasoningTools(add_instructions=True)],
show_tool_calls=True)
# Writing and saving a file
agent.print_response("""Explain the concept of sin and cosine in simple terms.""",
stream=True,
show_full_reasoning=True,
markdown=True)
Ниже приведены результаты.

агент, предоставляющий знания
Этот инструмент — самый простой способ создания системы Recovery Augmented Generation (RAG). С помощью этой функции вы можете направить агента на веб-сайт или список веб-сайтов, и он добавит контент в векторную базу данных. После этого контент становится доступным для поиска. При появлении соответствующего запроса агент может использовать содержимое как часть ответа. Эта технология повышает точность и надежность ответов ИИ.
В этом простом примере я добавил одну страницу со своего веб-сайта и спросил агента, какие книги там перечислены. Это объясняет, как агент может получить доступ к информации и использовать ее.
# Imports
import os
from agno.agent import Agent
from agno.models.google import Gemini
from agno.knowledge.url import UrlKnowledge
from agno.vectordb.lancedb import LanceDb, SearchType
from agno.embedder.sentence_transformer import SentenceTransformerEmbedder
# Load webpage to the knowledge base
agent_knowledge = UrlKnowledge(
urls=["https://gustavorsantos.me/?page_id=47"],
vector_db=LanceDb(
uri="tmp/lancedb",
table_name="projects",
search_type=SearchType.hybrid,
# Use Sentence Transformer for embeddings
embedder=SentenceTransformerEmbedder(),
),
)
# Create agent
agent = Agent(
model=Gemini(id="gemini-2.0-flash", api_key=os.environ.get("GEMINI_API_KEY")),
instructions=[
"Use tables to display data.",
"Search your knowledge before answering the question.",
"Only inlcude the content from the agent_knowledge base table 'projects'",
"Only include the output in your response. No other text.",
],
knowledge=agent_knowledge,
add_datetime_to_instructions=True,
markdown=True,
)
if __name__ == "__main__":
# Load the knowledge base, you can comment out after first run
# Set recreate to True to recreate the knowledge base if needed
agent.knowledge.load(recreate=False)
agent.print_response(
"What are the two books listed in the 'agent_knowledge'",
stream=True,
show_full_reasoning=True,
stream_intermediate_steps=True,
)

Агент с поддержкой памяти
Последний тип, который мы рассмотрим в этой статье, — это агент с поддержкой памяти, фундаментальная концепция в области агентов ИИ.
Этот тип агента имеет возможность хранить и извлекать информацию о пользователях из предыдущих взаимодействий, что позволяет ему понимать предпочтения пользователей и персонализировать свои ответы. Эта память делает агента более эффективным в последующих взаимодействиях.
Давайте рассмотрим пример, в котором я сообщаю агенту некоторые вещи и прошу дать рекомендации на основе этого взаимодействия. Это демонстрирует, как агент с поддержкой памяти может улучшить пользовательский опыт.
# imports
import os
from agno.agent import Agent
from agno.memory.v2.db.sqlite import SqliteMemoryDb
from agno.memory.v2.memory import Memory
from agno.models.google import Gemini
from rich.pretty import pprint
# User Name
user_id = "data_scientist"
# Creating a memory database
memory = Memory(
db=SqliteMemoryDb(table_name="memory",
db_file="tmp/memory.db"),
model=Gemini(id="gemini-2.0-flash",
api_key=os.environ.get("GEMINI_API_KEY"))
)
# Clear the memory before start
memory.clear()
# Create the agent
agent = Agent(
model=Gemini(id="gemini-2.0-flash", api_key=os.environ.get("GEMINI_API_KEY")),
user_id=user_id,
memory=memory,
# Enable the Agent to dynamically create and manage user memories
enable_agentic_memory=True,
add_datetime_to_instructions=True,
markdown=True,
)
# Run the code
if __name__ == "__main__":
agent.print_response("My name is Gustavo and I am a Data Scientist learning about AI Agents.")
memories = memory.get_user_memories(user_id=user_id)
print(f"Memories about {user_id}:")
pprint(memories)
agent.print_response("What topic should I study about?")
agent.print_response("I write articles for Towards Data Science.")
print(f"Memories about {user_id}:")
pprint(memories)
agent.print_response("Where should I post my next article?")

На этом мы завершаем эту первую статью о Агенты искусственного интеллекта. Мы надеемся, что этот обзор различных типов агентов ИИ оказался полезным.
Перед отъездом
В этой статье содержится много информации. Мы сделали первый шаг на пути к обучению агентов ИИ. Я знаю, что это может сбивать с толку, поскольку информации так много, что сложно понять, с чего начать и что изучать.
Я предлагаю вам пойти тем же путем, что и я. Шаг за шагом выберите всего несколько пакетов, таких как Agno и CrewAI, изучите их и узнайте, как каждый раз создавать более сложных агентов. Такой постепенный подход лучше всего подходит для понимания сложных концепций ИИ.
В этой статье мы начали с нуля, изучая, как просто взаимодействовать с большой языковой моделью (LLM), вплоть до создания агентов с памятью или даже создания простой системы дополнения поиска (RAG) для агента ИИ. Эти базовые навыки необходимы для понимания принципов работы агентов ИИ.
Очевидно, что с помощью всего лишь одного агента можно сделать многое. Более подробные примеры см. в ссылке [4].
Обладая этими простыми навыками, вы наверняка опередите многих людей, и многое вы уже умеете делать. Просто проявите свою креативность, почему бы и нет? Попросите большую языковую модель помочь вам создать что-то потрясающее! Используйте инструменты ИИ для повышения своей креативности.
В следующей статье мы узнаем больше об ИИ-агентах и их оценке. Оставайтесь с нами!
Репозиторий GitHub
https://github.com/gurezende/agno-ai-labs
ссылки
[1] https://docs.agno.com/introduction
[2] https://ai.google.dev/gemini-api/docs
[3] https://pypi.org/project/youtube-transcript-api/
[4] https://github.com/agno-agi/agno/tree/main/cookbook
[5] https://docs.agno.com/introduction/agents#agent-with-knowledge
Комментарии закрыты.