Przewodnik po samodzielności AI: Rozpocznij swoją podróż do tworzenia agentów AI
Poznaj podstawy tworzenia agentów AI. Odkryj narzędzia i techniki potrzebne do projektowania i wdrażania tych inteligentnych systemów.
Branża sztucznej inteligencji dynamicznie się rozwija. To ekscytujące, ale i często zagmatwane.
Studiowałem, zdobywałem wiedzę i budowałem swoje podstawy w dziedzinie nauki o danych, ponieważ wierzę, że przyszłość nauki o danych jest ściśle związana z rozwojem generatywnej sztucznej inteligencji.
Wydaje się, że to było wczoraj, kiedy zbudowałem swój pierwszy. Agent AIA dwa tygodnie później można było wybierać spośród wielu pakietów Pythona, nie wspominając o opcjach bez kodu, które działały bardzo dobrze, takich jak n8n.

Od zwykłych modeli, które mogą z nami rozmawiać, po tsunami agentów AI, którzy są wszędzie, przeszukują internet, obsługują pliki i realizują projekty. Nauka o danych Cały proces (od wstępnej eksploracji danych po modelowanie i ocenę) odbył się w ciągu zaledwie kilku lat.
Co?
Widząc to wszystko, moje myśli były następujące: „Muszę dołączyć tak szybko, jak to możliwe.”Koniec końców, lepiej płynąć z falą, niż dać się jej pochłonąć.
Z tego powodu zdecydowałem się rozpocząć tę serię postów, w których planuję przejść od podstaw, poprzez zbudowanie naszego pierwszego agenta AI, aż do bardziej złożonych koncepcji.
Dość gadania, ruszamy.
Podstawy agenta AI
Agent AI powstaje, gdy dajemy dużemu modelowi językowemu (LLM) możliwość interakcji z narzędziami i wykonywania czynności, które są dla nas przydatne. Zamiast być zwykłym chatbotem, potrafi on teraz umawiać spotkania, zarządzać naszym kalendarzem, przeszukiwać internet, pisać posty w mediach społecznościowych i wiele więcej. Ta transformacja czyni go pełnoprawnym asystentem cyfrowym.
Agenci korzystający ze sztucznej inteligencji mogą wykonywać przydatne czynności, nie tylko rozmawiać.
Ale w jaki sposób możemy nadać taką moc dużemu modelowi językowemu (LLM)?
Prosta odpowiedź brzmi: użyj API do interakcji z dużym modelem języka. Obecnie istnieje wiele pakietów Pythona do tego celu. Jeśli śledzisz mojego bloga, zobaczysz, że eksperymentowałem już z dwoma pakietami do tworzenia agentów: na przykład Langchain, Agno (dawniej Phidata) i CrewAI. W tej serii pozostanę przy Agno [1].
Najpierw skonfiguruj środowisko wirtualne za pomocą uv Albo Anacondę albo preferowanego kreatora środowiska. Następnie zainstaluj pakiety.
# 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
Krótka uwaga zanim przejdziemy dalej. Nie zapomnij o kluczu API Google Gemini [2].
Utworzenie prostego proxy jest bardzo proste. Wszystkie pakiety są bardzo podobne. Mają klasę Agent Lub coś podobnego, co pozwala nam zdefiniować model i rozpocząć interakcję z wybranym przez nas dużym modelem językowym. Główne komponenty tej klasy to:
modelPołącz się z dużym modelem językowym. Tutaj możemy wybrać między OpenAI, Gemini, Llama, Deepseek i tak dalej.descriptionTen parametr pozwala nam opisać zachowanie agenta. Jest on dodawany dosystem_message, które jest podobnym medium.instructionsLubię myśleć o agencie jak o pracowniku lub asystencie, którym zarządzamy. Aby wykonać zadanie, musimy udzielić instrukcji dotyczących tego, co należy zrobić. Oto miejsce, w którym możesz to zrobić.expected_outputTutaj możemy podać instrukcje dotyczące oczekiwanego wyniku.toolsTo właśnie sprawia, że duży model językowy staje się agentem, co pozwala mu na interakcję ze światem rzeczywistym przy użyciu tych narzędzi.
Teraz utwórzmy prostego agenta, który nie ma żadnych narzędzi, ale będzie służył do budowania naszej intuicji na temat struktury kodu.
# 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)
## ...
W maju w Nowym Jorku można spodziewać się umiarkowanych temperatur, wahających się zazwyczaj od ok. 10 do ok. 21 stopni Celsjusza. Istnieje ryzyko deszczu, dlatego zaleca się założenie warstwowej odzieży i zabranie parasola.
Świetnie. Używamy modelu Gemini 1.5. Zauważ, jak reaguje na podstawie danych, na których został wytrenowany. Jeśli poprosimy go o podanie dzisiejszej pogody, zobaczymy odpowiedź informującą, że nie ma dostępu do internetu.
Przyjrzyjmy się bliżej mediatorom. instructions و expected_outputTeraz chcemy uzyskać tabelę zawierającą miesiąc, porę roku i średnią temperaturę dla Nowego Jorku (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)
I oto wynik.
| ال | pora roku | Średnia temperatura (°F) |
|---|---|---|
| styczeń | zimowy | 32 |
| luty | zimowy | 35 |
| March | wiosna | 44 |
| kwiecień | wiosna | 54 |
| Maja | wiosna | 63 |
| czerwiec | lato | 72 |
| lipiec | lato | 77 |
| sierpień | lato | 76 |
| wrzesień | Jesień | 70 |
| październik | Jesień | 58 |
| listopad | Jesień | 48 |
| grudzień | zimowy | 37 |
ا' „Ø £ د'ˆØ§Øª
Powyższe odpowiedzi są dobre, ale oczywiście nie chcemy używać potężnych modeli języka dużego (LLM) do zabawy z chatbotem lub przekazywania nam starych wiadomości, prawda?
Chcemy, aby był to pomost do automatyzacji, produktywności i wiedzy. Dlatego doda ا' „Ø £ د'ˆØ§Øª Nasi agenci AI mogą wykonywać różnorodne zadania, budując w ten sposób pomost do realnego świata. Typowe przykłady narzędzi agentów to: przeszukiwanie internetu, uruchamianie zapytań SQL, wysyłanie e-maili czy wywoływanie interfejsów API.
Co więcej, możemy tworzyć niestandardowe funkcje dla naszych agentów, wykorzystując dowolną funkcję Pythona jako narzędzie, otwierając tym samym ogromne możliwości integracji z różnymi systemami i procesami.
Narzędzia Są to funkcje, które agent może uruchomić w celu realizacji zadań.
Jeśli chodzi o kod, dodanie widżetu do agenta to po prostu kwestia użycia oprogramowania pośredniczącego. tools W kategorii Agent.
Wyobraź sobie jednoosobową firmę z branży zdrowia i dobrego samopoczucia, która chce zautomatyzować tworzenie treści. Ta osoba codziennie publikuje porady dotyczące zdrowych nawyków. Wiem na pewno, że tworzenie treści nie jest tak proste, jak się wydaje. Wymaga kreatywności, researchu i umiejętności copywritingu. Dlatego jeśli da się to zautomatyzować, a przynajmniej jego część, oszczędza to czas.
Piszemy więc ten kod, aby stworzyć bardzo prostego agenta, który może utworzyć prosty post na Instagramie i zapisać go do pliku Markdown do weryfikacji. Skróciliśmy proces z „Myślenie” > „Badania” > „Pisanie” > „Recenzja” > „Publikacja” do „Recenzja” > „Publikacja”.
# 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)
W efekcie otrzymaliśmy następujące wyniki.
Uwolnij swoją pozytywną energię poprzez zdrową dietę:
1. Stawiaj na produkty pełnoziarniste: jedz dużo owoców, warzyw, chudych białek i produktów pełnoziarnistych. Są bogate w składniki odżywcze, dają uczucie sytości i energii.
2. Jedz uważnie: Zwracaj uwagę na sygnały głodu i sytości wysyłane przez twój organizm. Unikaj rozpraszania uwagi podczas jedzenia.
3. Pij dużo wody: Woda jest niezbędna do trawienia, utrzymania odpowiedniego poziomu energii i ogólnego stanu zdrowia..
4. Nie odmawiaj sobie: od czasu do czasu pozwól sobie na odrobinę słodyczy. Deprywacja może później prowadzić do przejadania się. Ciesz się umiarem we wszystkim!
5. Planuj z wyprzedzeniem: Przygotowuj posiłki i przekąski z wyprzedzeniem, aby uniknąć podejmowania niezdrowych decyzji.
#ZdroweOdżywianie #ZdrowyStylŻycia #Odżywianie #MiłośnicyJedzenia #ZdrowieIDobrePorady #ZdroweOdżywianie #UtrataWagi #ZdrowePrzepisy #PoradyOdżywiania #NatychmiastoweZdrowie #ZdroweJedzenie #UważneOdżywianie #ZdrowaPodróż #TrenerZdrowie
Oczywiście, moglibyśmy to jeszcze bardziej skomplikować, tworząc zespół z innymi agentami, którzy przeszukują listę stron internetowych pod kątem treści, osobę sprawdzającą i recenzującą treści oraz osobę, która stworzy grafikę do posta. Ale myślę, że rozumiesz już, jak to zrobić. tool Dla mnie Agent.
Innym typem narzędzia, które możemy dodać jest: narzędzie narzędzie funkcyjneMożemy użyć funkcji Pythona jako narzędzia dla dużego modelu językowego (LLM). Tylko nie zapomnij dodać wskazówek dotyczących typu, takich jak: video_id:str, aby model wiedział, co ma wykorzystać jako dane wejściowe dla funkcji. W przeciwnym razie może pojawić się błąd.
Przyjrzyjmy się pokrótce jak to działa.
Chcemy teraz, aby nasz agent mógł pobrać konkretny film z YouTube i go podsumować. Aby to osiągnąć, wystarczy utworzyć funkcję, która pobiera wersję wideo z YouTube i przekazuje ją do modelu w celu podsumowania.
# 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)
Następnie otrzymasz wynik.

Agenci z umiejętnością rozumowania
Kolejną świetną opcją oferowaną przez pakiet Agno jest możliwość tworzenia agentów, którzy potrafią analizować sytuację przed udzieleniem odpowiedzi na pytanie. To narzędzie do wnioskowania. Sprawdź je. Typy agentów AI i ich zastosowania: szczegółowe wyjaśnienie.
Stworzymy agenta wnioskującego, korzystając z modelu Qwen-qwq-32b firmy Alibaba. Zauważ, że jedyną różnicą, poza modelem, jest dodanie narzędzia. ReasoningTools()Dzięki temu narzędziu agent może logicznie myśleć przed udzieleniem odpowiedzi.
Własność oznacza adding_instructions=True Zapewnianie agentowi szczegółowych instrukcji, co zwiększa niezawodność i dokładność korzystania z narzędzia. Podczas konfigurowania tej funkcji False Zmusza to agenta do polegania na własnym rozumowaniu, co może być bardziej podatne na błędy. Pozwala to na niezależną ocenę możliwości modelu.
# 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)
Poniżej znajdują się wyniki.

agent dostarczający wiedzę
To narzędzie to najprostszy sposób na stworzenie systemu generacji rozszerzonej wyszukiwania (RAG). Za pomocą tej funkcji można skierować agenta do strony internetowej lub listy stron internetowych, a on doda zawartość do wektorowej bazy danych. Zawartość można następnie przeszukiwać. Po wyświetleniu monitu agent może wykorzystać zawartość jako część odpowiedzi. Ta technologia zwiększa dokładność i wiarygodność odpowiedzi AI.
W tym prostym przykładzie dodałem pojedynczą stronę do mojej witryny i zapytałem agenta o książki tam wymienione. To ilustruje, jak agent może uzyskać dostęp do tych informacji i je wykorzystać.
# 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,
)

Agent z włączoną pamięcią
Ostatnim typem agenta, jaki omówimy w tym artykule, jest agent obsługujący pamięć. Jest to podstawowa koncepcja w dziedzinie agentów AI.
Ten typ agenta ma możliwość przechowywania i pobierania informacji o użytkownikach z poprzednich interakcji, co pozwala mu zrozumieć preferencje użytkownika i dostosować swoje odpowiedzi. Dzięki tej pamięci agent jest skuteczniejszy w kolejnych interakcjach.
Przyjrzyjmy się temu przykładowi, w którym powiem agentowi kilka rzeczy i poproszę o rekomendacje na podstawie tej interakcji. To ilustruje, jak agent z obsługą pamięci może poprawić doświadczenie użytkownika.
# 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?")

Na tym kończymy pierwszy artykuł na temat Agenci sztucznej inteligencjiMamy nadzieję, że ten przegląd różnych typów agentów AI był przydatny.
Przed wyjazdem
Ten artykuł zawiera mnóstwo informacji. Zrobiliśmy pierwszy krok na drabinie uczenia się agentów AI. Wiem, że może to być mylące; jest tak dużo informacji, że trudno wiedzieć, od czego zacząć i czego się uczyć.
Proponuję pójść tą samą drogą, którą ja podążam. Krok po kroku, wybierz tylko kilka pakietów, takich jak Agno i CrewAI, zagłębiaj się w nie i ucz się, jak za każdym razem tworzyć bardziej złożonych agentów. To stopniowe podejście najlepiej sprawdza się w zrozumieniu złożonych koncepcji sztucznej inteligencji.
W tym artykule zaczęliśmy od podstaw, ucząc się, jak w prosty sposób wchodzić w interakcję z dużym modelem językowym (LLM), aż po tworzenie agentów z pamięcią, a nawet tworzenie prostego systemu wspomagania wyszukiwania (RAG) dla agenta AI. Te podstawowe umiejętności są niezbędne do zrozumienia, jak działają agenci AI.
Oczywiście, można zrobić wiele, używając tylko jednego agenta. Zapoznaj się z referencją [4], aby zapoznać się z zaawansowanymi przykładami.
Dzięki tym prostym umiejętnościom z pewnością wyprzedzisz konkurencję, a możliwości są jeszcze większe. Wystarczy, że użyjesz swojej kreatywności, a czemu nie? Skorzystaj z pomocy rozbudowanego modelu językowego, aby stworzyć coś niesamowitego! Wykorzystaj narzędzia AI, aby rozwinąć swoją kreatywność.
W następnym artykule dowiemy się więcej o agentach AI i ich ocenie. Bądźcie czujni!
Repozytorium GitHub
https://github.com/gurezende/agno-ai-labs
recenzent
[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
Możliwość dodawania komentarzy nie jest dostępna.