\n\n\n\n Il mio punto di vista di aprile 2026: Gli agenti AI stanno finalmente facendo delle cose Agent 101 \n

Il mio punto di vista di aprile 2026: Gli agenti AI stanno finalmente facendo delle cose

📖 13 min read2,509 wordsUpdated Apr 4, 2026

Ciao, agente in formazione! Emma qui, di nuovo su agent101.net. Puoi credere che sia già aprile 2026? Sembra ieri che stavamo tutti impazzendo per il rilascio iniziale di ChatGPT, e ora stiamo parlando di agenti AI che possono realmente fare cose per noi. È pazzesco.

Ho passato troppe notti in bianco (e probabilmente anche troppi soldi in caffè) a giocare con diversi framework per agenti. E onestamente, per un po’ mi sono sentita come se stessi affogando in un mare di acronimi e documentazione complessa. Ogni tutorial che trovavo sembrava presumere che avessi un dottorato in informatica. Frustrante, vero?

Per questo motivo, oggi voglio parlare di qualcosa di super specifico e, penso, incredibilmente pratico per chiunque si stia avventurando in questo mondo: **costruire il tuo primo agente AI per automatizzare un semplice compito di ricerca web.** Non stiamo puntando a Skynet, gente. Vogliamo un piccolo assistente digitale utile che possa farti risparmiare qualche clic e un po’ di energia mentale. Pensalo come il tuo ricercatore junior personale, pronto a cercare informazioni per te.

Non si tratta di una spiegazione vaga e di alto livello. Ci metteremo le mani in pasta e costruiremo veramente qualcosa. E fidati, se riesco a fare questo dopo aver cancellato accidentalmente l’intera cartella del mio progetto tre volte la settimana scorsa, lo puoi fare anche tu.

Perché la Ricerca Web? Perché Tutti Lo Facciamo (O Dovremmo!)

Ok, diciamolo chiaramente. Quante volte al giorno ti capita di aprire un browser, digitare qualcosa su Google, cliccare su alcuni link e poi magari copiare e incollare del testo? Che tu stia cercando il miglior caffè locale, ricercando un nuovo gadget, o semplicemente cercando di ricordare il nome di quell’attore di un film, la ricerca web è una parte fondamentale delle nostre vite digitali.

Ed è un progetto perfetto per un agente AI per alcune ragioni:

  • **È tangibile:** Puoi vedere chiaramente l’agente andare sui siti web e riportare informazioni.
  • **È iterativo:** Puoi iniziare in modo semplice e aggiungere complessità.
  • **Evidenzia le capacità dell’agente:** Dimostra come un agente può interagire con strumenti esterni (come un browser web) e processare informazioni.
  • **È genuinamente utile:** Immagina un agente che potrebbe rapidamente riassumere le ultime notizie su un argomento che ti interessa, o compilare un elenco di specifiche per un prodotto che stai considerando.

Per questo tutorial, ci concentreremo su un compito molto specifico, leggermente banale, ma incredibilmente comune: **trovare il prezzo delle azioni attuale e una breve descrizione dell’azienda per un determinato ticker azionario.**

Gli Strumenti di Cui Avremo Bisogno (Non Farti Prendere dal Panico, Sono Amichevoli!)

Renderemo tutto il più semplice possibile. Ecco cosa utilizzeremo:

  • **Python:** Il nostro linguaggio di programmazione preferito. Se non ce l’hai installato, è un ottimo momento per farlo. La versione 3.9+ va bene.
  • **Un’API di Large Language Model (LLM):** Utilizzeremo l’API di OpenAI per questo esempio perché è ampiamente accessibile e ben documentata. Avrai bisogno di una chiave API. Sì, costa un po’, ma per progetti piccoli come questo, di solito è solo una questione di spiccioli.
  • **CrewAI:** Questo è il framework agente che utilizzeremo. È relativamente nuovo ma incredibilmente intuitivo per i principianti, concentrandosi su ruoli, compiti e processi. L’ho trovato molto più facile da comprendere rispetto ad altri là fuori.
  • **beautifulsoup4 e requests:** Librerie Python per lo scraping web. Useremo queste per andare effettivamente su un sito web e estrarre informazioni.

Prima di addentrarci nel codice, assicurati di avere Python installato. Poi, apri il tuo terminale o prompt dei comandi e esegui questi comandi:


pip install crewai openai beautifulsoup4 requests python-dotenv

La libreria `python-dotenv` serve solo a tenere la tua chiave API al di fuori del tuo file di codice principale, che è una buona pratica!

Impostiamo il Palco: La Missione del Nostro Agente

La missione del nostro agente è semplice:

  1. Ricevere un simbolo di ticker azionario (ad esempio, “GOOGL” per Google).
  2. Utilizzare uno strumento di ricerca web per trovare una fonte affidabile per le informazioni azionarie attuali (come Yahoo Finance o un sito simile).
  3. Estrarre il prezzo attuale delle azioni e una breve descrizione dell’azienda.
  4. Presentare queste informazioni in modo chiaro e conciso.

Sembra facile, vero? Questo è il bello di partire semplici. Costruisce fiducia.

Passo 1: Ottieni la Tua Chiave API e Prepara l’Ambiente

Per prima cosa, vai alla pagina delle chiavi API di OpenAI e genera una nuova chiave segreta. Copiala subito in un posto sicuro, poiché non potrai vederla di nuovo.

Successivamente, crea un file chiamato `.env` nella stessa directory in cui si troverà il tuo script Python. All’interno metti:


OPENAI_API_KEY="your_openai_api_key_here"

Sostituisci `”your_openai_api_key_here”` con la chiave reale che hai appena generato. Questo mantiene la tua chiave sicura e separata dal tuo codice.

Passo 2: Definire il Nostro Agente e i Suoi Strumenti

Con CrewAI, definiamo gli agenti dando loro un `ruolo`, un `obiettivo` e una `storia`. Questo aiuta il LLM a capire *chi* è e *cosa* dovrebbe fare. Diamo anche a lui dei `tool` – funzioni che può chiamare per interagire con il mondo esterno.

Iniziamo il nostro script Python (lo chiamerò `stock_agent.py`):


from crewai import Agent, Task, Crew, Process
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv
import os
import requests
from bs4 import BeautifulSoup

# Carica le variabili d'ambiente
load_dotenv()
openai_api_key = os.getenv("OPENAI_API_KEY")

# Inizializza il LLM
llm = ChatOpenAI(model="gpt-4-turbo-preview", temperature=0.7, openai_api_key=openai_api_key)

# --- Definisci gli Strumenti ---
def search_web_for_stock_info(ticker: str) -> str:
 """Cerca informazioni sulle azioni per un dato ticker, concentrandosi su Yahoo Finance."""
 try:
 search_url = f"https://finance.yahoo.com/quote/{ticker}"
 headers = {
 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
 }
 response = requests.get(search_url, headers=headers)
 response.raise_for_status() # Solleva un'eccezione per errori HTTP
 return response.text
 except requests.exceptions.RequestException as e:
 return f"Errore nella ricerca delle informazioni sulle azioni: {e}"

def extract_stock_data(html_content: str) -> dict:
 """Estrae il prezzo delle azioni e la descrizione dell'azienda dall'HTML di Yahoo Finance."""
 soup = BeautifulSoup(html_content, 'html.parser')
 
 price = "N/A"
 company_name = "N/A"
 description = "N/A"

 # Prova a trovare il prezzo (questo potrebbe necessitare di aggiustamenti in base alla struttura sempre cambiata di Yahoo Finance)
 try:
 # Cerca l'elemento del prezzo corrente. Questo è spesso in uno span specifico.
 # L'HTML di Yahoo Finance cambia, quindi questo è un selettore comune ma potrebbe rompersi.
 price_tag = soup.find('fin-streamer', {'data-field': 'regularMarketPrice'})
 if price_tag:
 price = price_tag.text.strip()
 except Exception as e:
 print(f"Impossibile trovare il prezzo: {e}")

 # Prova a trovare il nome/descritore dell'azienda (ricerca più generica)
 try:
 # Spesso, il nome dell'azienda è nel titolo o in un meta tag specifico
 title_tag = soup.find('title')
 if title_tag:
 title_text = title_tag.text
 if '|' in title_text:
 company_name = title_text.split('|')[0].strip()
 else:
 company_name = title_text.replace("Prezzo delle azioni, Notizie, Citazione e Storia", "").strip()

 # Un modo più efficace per ottenere una descrizione potrebbe comportare la ricerca di paragrafi specifici
 # Questo è un tentativo molto basilare. Per un agente reale, avresti bisogno di un'estrazione più sofisticata.
 description_paragraph = soup.find('p', class_='description') # Classe di esempio, potrebbe non esistere
 if description_paragraph:
 description = description_paragraph.text.strip()
 else:
 # Ripiego: cerca paragrafi generali nell'area principale dei contenuti
 main_content = soup.find('div', id='Main-Financials') or soup.find('div', id='quote-header-info')
 if main_content:
 paragraphs = main_content.find_all('p')
 if paragraphs:
 description = paragraphs[0].text.strip() # Prendi il primo paragrafo come descrizione generale
 except Exception as e:
 print(f"Impossibile trovare informazioni sull'azienda: {e}")

 return {
 "price": price,
 "company_name": company_name,
 "description": description
 }

# Definizione degli Strumenti CrewAI
from crewai_tools import Tool

web_search_tool = Tool(
 name="Ricerca Web per Informazioni sulle Azioni",
 func=search_web_for_stock_info,
 description="Utile per trovare il contenuto HTML grezzo della pagina Yahoo Finance di un'azione."
)

data_extraction_tool = Tool(
 name="Estrai Dati sulle Azioni",
 func=extract_stock_data,
 description="Utile per analizzare il contenuto HTML per estrarre il prezzo delle azioni e una breve descrizione dell'azienda."
)

# --- Definisci gli Agenti ---
researcher = Agent(
 role='Ricercatore Finanziario',
 goal='Raccogliere il prezzo attuale delle azioni e una descrizione concisa dell'azienda per un dato ticker.',
 backstory="""Sei un esperto ricercatore finanziario con una capacità di trovare rapidamente informazioni accurate sulle azioni online.
 Dai priorità a fonti finanziarie ufficiali come Yahoo Finance.""",
 verbose=True,
 allow_delegation=False,
 llm=llm,
 tools=[web_search_tool, data_extraction_tool]
)

# --- Definisci i Compiti ---
research_task = Task(
 description=(
 "Cerca le informazioni sulle azioni per '{ticker}'. "
 "Per prima cosa, utilizza lo strumento 'Ricerca Web per Informazioni sulle Azioni' per ottenere il contenuto HTML da Yahoo Finance. "
 "Poi, usa lo strumento 'Estrai Dati sulle Azioni' per analizzare l'HTML e ottenere il prezzo attuale e una breve descrizione dell'azienda. "
 "Infine, compila questo in un rapporto strutturato."
 ),
 expected_output=(
 "Un oggetto JSON contenente 'ticker', 'company_name', 'price' e 'description'."
 ),
 agent=researcher
)

# --- Definisci il Team ---
financial_crew = Crew(
 agents=[researcher],
 tasks=[research_task],
 process=Process.sequential, # I compiti vengono eseguiti uno dopo l'altro
 verbose=True
)

# --- Esegui il Team ---
if __name__ == "__main__":
 print("Benvenuto nell'Agente di Informazioni sulle Azioni!")
 ticker_input = input("Inserisci un ticker azionario (ad es., GOOGL, MSFT, AAPL): ").upper()

 print(f"\n--- Inizio dell'Agente per {ticker_input} ---")
 result = financial_crew.kickoff(inputs={'ticker': ticker_input})
 
 print("\n--- Rapporto Finale dell'Agente ---")
 print(result)

Una Rapida Panoramica del Codice

  • **`load_dotenv()` e `ChatOpenAI`**: Imposta la connessione LLM utilizzando la tua chiave API.
  • **`search_web_for_stock_info(ticker)`**: Questo è il nostro primo strumento personalizzato. Prende un ticker azionario, costruisce un URL di Yahoo Finance e recupera l’HTML grezzo. Ho aggiunto un header `User-Agent` di base – alcuni siti web bloccano le richieste senza di esso.
  • **`extract_stock_data(html_content)`**: Qui le cose diventano un po’ più “rozze.” Utilizziamo `BeautifulSoup` per analizzare l’HTML. Trovare elementi esatti come il prezzo delle azioni può essere complicato perché i siti web cambiano la loro struttura HTML. Ho inserito un selettore comune per Yahoo Finance, ma sii consapevole che il web scraping è un gioco costante di gatto e topo. Questa funzione prova ad ottenere il prezzo, il nome dell’azienda e una descrizione generale.
  • **`Tool`**: Il modo di CrewAI per incapsulare le nostre funzioni Python in modo che il LLM sappia come e quando usarle.
  • **`Agent`**: Definiamo il nostro agente `researcher`. Nota il `role`, `goal` e `backstory`. Questi sono cruciali per guidare il comportamento del LLM. Gli diamo anche i nostri strumenti personalizzati.
  • **`Task`**: Questo è il compito specifico che il nostro agente deve svolgere. La `description` dice all’agente esattamente quali passaggi seguire, incluso quali strumenti utilizzare. L’`expected_output` aiuta a guidare il LLM a formattare la sua risposta finale.
  • **`Crew`**: Questo orchestra i nostri agenti e compiti. Per questo esempio semplice, abbiamo solo un agente e un compito, che esegue `Process.sequential`.
  • **`financial_crew.kickoff()`**: Qui avviene la magia! Passiamo il nostro input (il ticker) al team e inizia a eseguire i compiti.

So che la funzione `extract_stock_data` potrebbe sembrare un po’ scoraggiante e rappresenta la parte più fragile di qualsiasi agente di web scraping. I siti web cambiano e le loro strutture HTML si spostano. Ma per un agente principiante, ti mostra come interagire con dati web reali.

Eseguire il Tuo Primo Agente!

Salva il codice come `stock_agent.py` (o come preferisci, assicurati solo che sia nella stessa cartella del tuo file `.env`). Poi, apri il tuo terminale o prompt dei comandi, naviga verso quella directory ed esegui:


python stock_agent.py

Lo script ti chiederà di inserire un ticker azionario. Prova “GOOGL”, “MSFT” o “AAPL”.

Vedrai un sacco di output! Quella è l’impostazione `verbose=True` di CrewAI che ti mostra cosa sta pensando l’agente, quali strumenti sta chiamando e i risultati che sta ottenendo. È incredibilmente utile per il debug e per comprendere il monologo interno dell’agente.

Dopo un momento, dovresti vedere il rapporto finale dell’agente, sperando di avere il prezzo attuale delle azioni e una descrizione!

La Mia Esperienza e Cosa Aspettarsi

Quando ho eseguito qualcosa di simile per la prima volta, sono rimasto veramente sorpreso. Sembrava un po’ magia, vedere il LLM decidere, “Okay, devo trovare informazioni. Ho un `web_search_tool`. Dovrei usare quello prima.” E poi, “Ora ho l’HTML. Devo analizzarlo. Ho un `data_extraction_tool` per questo!” È questa selezione intelligente degli strumenti che rende davvero potenti gli agenti.

Potresti incontrare problemi:

  • **Cambiamenti nei Siti Web:** Yahoo Finance, come qualsiasi sito web, può aggiornare il suo HTML. Se la funzione `extract_stock_data` smette improvvisamente di trovare il prezzo, è probabile che l’ID o la classe dell’elemento HTML siano cambiati. Questa è una sfida comune nel web scraping.
  • **Limitazione della Frequenza:** Se esegui questo troppo spesso troppo rapidamente, i siti web o l’API di OpenAI potrebbero temporaneamente bloccarti.
  • **Allucinazioni del LLM:** Anche se meno probabile con chiamate a strumenti specifici, il LLM potrebbe a volte interpretare erroneamente le istruzioni o i dati che riceve.

Non ti scoraggiare! Il debug è parte del divertimento (per lo più). L’impostazione `verbose=True` è il tuo migliore amico qui, mostrandoti esattamente cosa sta facendo e pensando l’agente.

Lezioni Pratiche per il Tuo Viaggio con Gli Agenti

Quindi, hai costruito il tuo primo agente di ricerca web di base. Cosa succede dopo?

  1. **Inizia Semplice:** Sul serio, questo è il consiglio più importante. Non cercare di costruire un complesso sistema multi-agente sin dal primo giorno. Scegli un compito piccolo e automatizzabile.
  2. **Definisci Obiettivi e Strumenti Chiari:** Più specifico sei nel `goal`, `role` e nella `description` dei tuoi `tools`, meglio si comporterà il LLM.
  3. **Abbraccia l’Iterazione:** La tua prima versione non sarà perfetta. Eseguila, verifica cosa non funziona, affina i tuoi strumenti, aggiusta i tuoi prompt e riprova.
  4. **Esplora Altri Strumenti:** CrewAI ha molti strumenti integrati (come `BrowserTools` generico o `ScrapeWebsiteTool`) che potresti trovare utili per scenari più complessi, semplificando potenzialmente le tue funzioni personalizzate `search_web_for_stock_info` e `extract_stock_data` in futuro.
  5. **Pensa alla Gestione degli Errori:** In un agente di produzione, vorresti una gestione degli errori più solida nei tuoi strumenti (ad esempio, e se il sito web è giù, o se l’elemento non viene trovato?).
  6. **Considera Equipe Multi-Agente:** Una volta che ti senti a tuo agio, pensa a come potresti suddividere un compito più complesso in ruoli per più agenti. Ad esempio, un agente per “trovare fonti,” un altro per “estrarre dati,” e un terzo per “riassumere e riportare.”

Questo piccolo agente di ricerca azionaria è solo l’inizio. Immagina un agente che potrebbe:

  • Monitorare i titoli delle notizie per parole chiave specifiche e riassumerli.
  • Confrontare le specifiche dei prodotti su più siti di e-commerce.
  • Aiutarti a pianificare un viaggio trovando dettagli sui voli, prezzi degli hotel e attrazioni locali.

Le possibilità sono davvero entusiasmanti. Non si tratta solo di tecnologia interessante; si tratta di costruire assistenti digitali personalizzati che possono realmente rendere le nostre vite un po’ più facili. E questo, miei amici, è il motivo per cui sono così ossessionata da queste cose.

Andate avanti, costruite e rompete cose! È così che apprendiamo. E come sempre, se costruite qualcosa di interessante, condividerlo con me sui social media o nei commenti qui sotto!

Buona costruzione di agenti!

Emma Walsh

Blogger su agent101.net

🕒 Published:

🎓
Written by Jake Chen

AI educator passionate about making complex agent technology accessible. Created online courses reaching 10,000+ students.

Learn more →

Leave a Comment

Your email address will not be published. Required fields are marked *

Browse Topics: Beginner Guides | Explainers | Guides | Opinion | Safety & Ethics

Related Sites

ClawgoClawseoAgntboxAgntmax
Scroll to Top