(I-click ang larawan sa itaas upang panoorin ang video ng araling ito)
Metacognition sa mga AI Agent
Maligayang pagdating sa aralin tungkol sa metacognition sa mga AI agent! Ang kabanatang ito ay dinisenyo para sa mga baguhan na interesado kung paano maaaring pag-isipan ng mga AI agent ang kanilang sariling proseso ng pag-iisip. Sa pagtatapos ng araling ito, mauunawaan mo ang mga pangunahing konsepto at magkakaroon ka ng mga praktikal na halimbawa upang mailapat ang metacognition sa disenyo ng AI agent.
Pagkatapos makumpleto ang araling ito, magagawa mong:
Ang metacognition ay tumutukoy sa mga proseso ng mataas na antas ng pag-iisip na kinasasangkutan ang pag-iisip tungkol sa sariling pag-iisip. Para sa mga AI agent, nangangahulugan ito ng kakayahang suriin at ayusin ang kanilang mga aksyon base sa kamalayan sa sarili at mga nakaraang karanasan. Ang metacognition, o “pag-iisip tungkol sa pag-iisip,” ay isang mahalagang konsepto sa pagbuo ng mga agentic AI system. Kasama rito ang pagiging kamalayan ng mga AI system sa kanilang sariling mga internal na proseso at ang kakayahang subaybayan, i-regulate, at iakma ang kanilang pag-uugali nang naaayon. Katulad ng ginagawa natin kapag binabasa natin ang paligid o tinitingnan ang isang problema. Ang kamalayan sa sarili ay maaaring makatulong sa mga AI system na gumawa ng mas magagandang desisyon, matukoy ang mga pagkakamali, at pagbutihin ang kanilang pagganap sa paglipas ng panahon – na muling nag-uugnay sa Turing test at ang debate kung sakop ba ng AI ang mundo.
Sa konteksto ng mga agentic AI system, makakatulong ang metacognition na tugunan ang ilang mga hamon, tulad ng:
Ang metacognition, o “pag-iisip tungkol sa pag-iisip,” ay isang mataas na antas ng proseso ng pag-iisip na kinasasangkutan ang kamalayan sa sarili at pag-regulate ng sariling mga proseso ng pag-iisip. Sa larangan ng AI, pinapagana ng metacognition ang mga agent na suriin at iakma ang kanilang mga estratehiya at aksyon, na nagreresulta sa pinahusay na kakayahan sa paglutas ng problema at paggawa ng desisyon. Sa pag-unawa sa metacognition, makakalikha ka ng mga AI agent na hindi lamang mas matalino kundi mas nakakaya ring mag-adapt at mas epektibo. Sa tunay na metacognition, makikita mong tahasan na pinag-iisipan ng AI ang sarili nitong pag-iisip.
Halimbawa: “Pinili ko ang mga mas murang flight dahil… maaaring may mga direct flight na naiiwan, kaya susuriin ko muli.”. Sinusubaybayan kung paano o bakit ito pumili ng isang partikular na ruta.
Mahalaga ang metacognition sa disenyo ng AI agent dahil sa ilang mga dahilan:

Bago sumabak sa mga metacognitive na proseso, mahalagang maunawaan ang mga pangunahing bahagi ng isang AI agent. Karaniwang binubuo ang isang AI agent ng:
Ang mga bahaging ito ay nagtutulungan upang makalikha ng isang “expertise unit” na kayang magsagawa ng mga tiyak na gawain.
Halimbawa: Isipin ang isang travel agent, serbisyong agent na hindi lamang nagpaplano ng iyong bakasyon kundi nag-aakma rin ng landas batay sa real-time data at mga nakaraang karanasang paglalakbay ng customer.
Isipin na nagdidisenyo ka ng isang serbisyong travel agent na pinatatakbo ng AI. Ang agent na ito, “Travel Agent,” ay tumutulong sa mga user sa pagpaplano ng kanilang mga bakasyon. Upang maisama ang metacognition, kailangang suriin at baguhin ng Travel Agent ang mga aksyon nito batay sa kamalayan sa sarili at mga nakaraang karanasan. Ganito ang maaaring papel ng metacognition:
Ang kasalukuyang gawain ay tumulong sa isang user na magplano ng isang paglalakbay sa Paris.
Ginagamit ng Travel Agent ang metacognition upang suriin ang pagganap nito at matuto mula sa mga nakaraang karanasan. Halimbawa:
Narito ang isang pinaikling halimbawa kung paano maaaring magmukhang ang code ng Travel Agent habang isinisingit ang metacognition:
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
# Maghanap ng mga flight, hotel, at atraksyon batay sa mga kagustuhan
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
itinerary = create_itinerary(flights, hotels, attractions)
return itinerary
def adjust_based_on_feedback(self, feedback):
self.experience_data.append(feedback)
# Suriin ang mga puna at ayusin ang mga susunod na rekomendasyon
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
# Halimbawa ng paggamit
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
travel_agent.adjust_based_on_feedback(feedback)
Sa pamamagitan ng pagsasama ng metacognition, makakapagbigay ang Travel Agent ng mas personalisado at tumpak na mga rekomendasyon para sa paglalakbay, na nagpapabuti sa pangkalahatang karanasan ng user.
Mahalaga ang pagpaplano bilang bahagi ng pag-uugali ng AI agent. Kabilang dito ang paggawa ng balangkas ng mga hakbang na kinakailangan upang makamit ang isang layunin, isinasaalang-alang ang kasalukuyang kalagayan, mga yaman, at mga posibleng hadlang.
Halimbawa: Narito ang mga hakbang na kailangang gawin ng Travel Agent upang epektibong matulungan ang isang user sa pagpaplano ng kanilang paglalakbay:
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
itinerary = create_itinerary(flights, hotels, attractions)
return itinerary
def adjust_based_on_feedback(self, feedback):
self.experience_data.append(feedback)
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
# Halimbawang gamit sa loob ng isang humihiyaw na kahilingan
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
travel_agent.adjust_based_on_feedback(feedback)
Magsimula tayo sa pag-unawa ng pagkakaiba ng RAG Tool at Pre-emptive Context Load

Pinagsasama ng RAG ang isang retrieval system at generative model. Kapag may query, kinukuha ng retrieval system ang mga kaugnay na dokumento o data mula sa panlabas na pinagmulan, at ginagamit ang impormasyong ito upang dagdagan ang input ng generative model. Nakakatulong ito sa modelong makabuo ng mas tumpak at kontekstwal na mga sagot.
Sa isang RAG system, kinukuha ng agent ang kaugnay na impormasyon mula sa isang knowledge base at ginagamit ito upang makabuo ng angkop na tugon o aksyon.
Nakatuon ang Tamang-tama na pamamaraan ng RAG sa paggamit ng mga teknik ng RAG upang itama ang mga pagkakamali at mapabuti ang katumpakan ng mga AI agent. Kabilang dito ang:
Isang search agent na naghahanap ng impormasyon mula sa web upang sagutin ang mga query ng user. Maaring kabilang sa Tamang-tama na pamamaraan ng RAG ang:
Pinapalakas ng Tamang-tama na RAG (Retrieval-Augmented Generation) ang kakayahan ng AI na kumuha at makabuo ng impormasyon habang itinatama ang mga posibleng kamalian. Tingnan natin kung paano magagamit ng Travel Agent ang pamamaraan ng Tamang-tama na RAG upang makapagbigay ng mas tumpak at kaugnay na mga rekomendasyon sa paglalakbay.
Kasama dito ang:
Halimbawa:
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
Halimbawa:
flights = search_flights(preferences)
hotels = search_hotels(preferences)
attractions = search_attractions(preferences)
Halimbawa:
itinerary = create_itinerary(flights, hotels, attractions)
print("Suggested Itinerary:", itinerary)
Halimbawa:
feedback = {
"liked": ["Louvre Museum"],
"disliked": ["Eiffel Tower (too crowded)"]
}
Halimbawa:
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
Halimbawa:
new_attractions = search_attractions(preferences)
new_itinerary = create_itinerary(flights, hotels, new_attractions)
print("Updated Itinerary:", new_itinerary)
Halimbawa:
def adjust_preferences(preferences, feedback):
if "liked" in feedback:
preferences["favorites"] = feedback["liked"]
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
return preferences
preferences = adjust_preferences(preferences, feedback)
Narito ang isang pinaikling halimbawa ng Python code na nagsasama ng pamamaraan ng Tamang-tama na RAG sa Travel Agent:
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
itinerary = create_itinerary(flights, hotels, attractions)
return itinerary
def adjust_based_on_feedback(self, feedback):
self.experience_data.append(feedback)
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
new_itinerary = self.generate_recommendations()
return new_itinerary
# Halimbawa ng paggamit
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
new_itinerary = travel_agent.adjust_based_on_feedback(feedback)
print("Updated Itinerary:", new_itinerary)
Ang Pre-emptive Context Load ay kinabibilangan ng pag-load ng kaugnay na konteksto o impormasyong panloob sa modelo bago iproseso ang isang query. Ibig sabihin nito ay may access ang modelo sa impormasyong ito mula pa sa simula, na makakatulong upang makabuo ito ng mas may kaalamang mga sagot nang hindi na kailangang kumuha ng karagdagang datos habang nagpapatuloy ang proseso.
Narito ang isang pinasimpleng halimbawa kung paano maaaring magmukhang ganito ang pre-emptive context load para sa isang travel agent application sa Python:
class TravelAgent:
def __init__(self):
# I-load nang maaga ang mga sikat na destinasyon at ang kanilang impormasyon
self.context = {
"Paris": {"country": "France", "currency": "Euro", "language": "French", "attractions": ["Eiffel Tower", "Louvre Museum"]},
"Tokyo": {"country": "Japan", "currency": "Yen", "language": "Japanese", "attractions": ["Tokyo Tower", "Shibuya Crossing"]},
"New York": {"country": "USA", "currency": "Dollar", "language": "English", "attractions": ["Statue of Liberty", "Times Square"]},
"Sydney": {"country": "Australia", "currency": "Dollar", "language": "English", "attractions": ["Sydney Opera House", "Bondi Beach"]}
}
def get_destination_info(self, destination):
# Kunin ang impormasyon ng destinasyon mula sa naunang na-load na konteksto
info = self.context.get(destination)
if info:
return f"{destination}:\nCountry: {info['country']}\nCurrency: {info['currency']}\nLanguage: {info['language']}\nAttractions: {', '.join(info['attractions'])}"
else:
return f"Sorry, we don't have information on {destination}."
# Halimbawa ng paggamit
travel_agent = TravelAgent()
print(travel_agent.get_destination_info("Paris"))
print(travel_agent.get_destination_info("Tokyo"))
Inisyal na Paglikha (__init__ method): Ang klase na TravelAgent ay unang naglo-load ng isang diksyunaryo na naglalaman ng impormasyon tungkol sa mga sikat na destinasyon tulad ng Paris, Tokyo, New York, at Sydney. Kasama sa diksyunaryong ito ang mga detalye gaya ng bansa, pera, wika, at mga pangunahing atraksyon sa bawat destinasyon.
Pagkuha ng Impormasyon (get_destination_info method): Kapag nagtatanong ang user tungkol sa isang tiyak na destinasyon, kinukuha ng get_destination_info method ang kaugnay na impormasyon mula sa pre-loaded na diksyunaryo ng konteksto.
Sa pamamagitan ng pag-pre-load ng konteksto, mabilis na nakakasagot ang travel agent application sa mga tanong ng user nang hindi na kailangang kumuha ng impormasyon mula sa ibang pinagmulan ng real-time. Ginagawa nitong mas epektibo at responsive ang aplikasyon.
Ang pag-bootstrapping ng plano gamit ang layunin ay kinabibilangan ng pagsisimula sa isang malinaw na layunin o target na resulta. Sa pamamagitan ng pagtukoy ng layuning ito agad, maaaring gamitin ito ng modelo bilang gabay sa buong proseso ng pag-uulit. Nakakatulong ito upang matiyak na ang bawat iteration ay umuusad nang mas malapit upang makamit ang ninanais na resulta, kaya mas epektibo at tutok ang proseso.
Narito ang halimbawa kung paano mo maaaring i-bootstrap ang isang plano sa paglalakbay gamit ang layunin bago mag-iterate para sa isang travel agent gamit ang Python:
Nais ng isang travel agent na magplano ng customized na bakasyon para sa kliyente. Ang layunin ay lumikha ng isang itinerary ng paglalakbay na nagpapataas ng kasiyahan ng kliyente base sa kanilang mga gusto at budget.
class TravelAgent:
def __init__(self, destinations):
self.destinations = destinations
def bootstrap_plan(self, preferences, budget):
plan = []
total_cost = 0
for destination in self.destinations:
if total_cost + destination['cost'] <= budget and self.match_preferences(destination, preferences):
plan.append(destination)
total_cost += destination['cost']
return plan
def match_preferences(self, destination, preferences):
for key, value in preferences.items():
if destination.get(key) != value:
return False
return True
def iterate_plan(self, plan, preferences, budget):
for i in range(len(plan)):
for destination in self.destinations:
if destination not in plan and self.match_preferences(destination, preferences) and self.calculate_cost(plan, destination) <= budget:
plan[i] = destination
break
return plan
def calculate_cost(self, plan, new_destination):
return sum(destination['cost'] for destination in plan) + new_destination['cost']
# Halimbawa ng paggamit
destinations = [
{"name": "Paris", "cost": 1000, "activity": "sightseeing"},
{"name": "Tokyo", "cost": 1200, "activity": "shopping"},
{"name": "New York", "cost": 900, "activity": "sightseeing"},
{"name": "Sydney", "cost": 1100, "activity": "beach"},
]
preferences = {"activity": "sightseeing"}
budget = 2000
travel_agent = TravelAgent(destinations)
initial_plan = travel_agent.bootstrap_plan(preferences, budget)
print("Initial Plan:", initial_plan)
refined_plan = travel_agent.iterate_plan(initial_plan, preferences, budget)
print("Refined Plan:", refined_plan)
Inisyal na Paglikha (__init__ method): Ang klase na TravelAgent ay ini-inisyalisa gamit ang listahan ng mga potensyal na destinasyon, bawat isa ay may mga katangian tulad ng pangalan, gastos, at uri ng aktibidad.
Pag-bootstrapping ng Plano (bootstrap_plan method): Gumagawa ang method na ito ng paunang plano ng paglalakbay base sa mga gusto at budget ng kliyente. Nag-iiterate ito sa listahan ng mga destinasyon at idinadagdag ang mga ito sa plano kung tugma sila sa mga gusto ng kliyente at pasok sa budget.
Pagtutugma ng Mga Gusto (match_preferences method): Sinusuri ng method na ito kung ang isang destinasyon ay tugma sa mga gusto ng kliyente.
Pag-uulit ng Plano (iterate_plan method): Pinapahusay nito ang paunang plano sa pamamagitan ng pagsubok na palitan ang bawat destinasyon sa plano ng mas angkop na tugma, isinasaalang-alang ang mga gusto at limitasyon sa budget ng kliyente.
Pagkalkula ng Gastos (calculate_cost method): Kinakalkula ng method na ito ang kabuuang gastos ng kasalukuyang plano, kasama ang posibleng bagong destinasyon.
Sa pamamagitan ng pag-bootstrapping ng plano gamit ang malinaw na layunin (hal., pagpapataas ng kasiyahan ng kliyente) at pag-uulit para pinuhin ito, makakalikha ang travel agent ng isang customized at optimized na itinerary ng paglalakbay para sa kliyente. Tinitiyak ng diskarteng ito na ang plano sa paglalakbay ay naka-align sa mga gusto at budget ng kliyente mula pa sa simula at pinapabuti sa bawat iteration.
Maaaring gamitin ang Large Language Models (LLMs) para sa re-ranking at scoring sa pamamagitan ng pagtatasa ng kaugnayan at kalidad ng mga nakuhang dokumento o nilikhang sagot. Ganito ang proseso:
Retrieval: Sa unang hakbang, kumukuha ng set ng mga kandidato ng dokumento o sagot base sa query.
Re-ranking: Sinusuri ng LLM ang mga kandidato at inaayos muli ang kanilang ranggo base sa kaugnayan at kalidad. Pinapahusay nito na ang pinaka-kaugnay at mataas na kalidad na impormasyon ang unang ipapakita.
Scoring: Nagbibigay ang LLM ng mga iskor sa bawat kandidato bilang tanda ng kaugnayan at kalidad. Nakakatulong ito sa pagpili ng pinakamahusay na sagot o dokumento para sa user.
Sa pamamagitan ng paggamit ng LLM para sa re-ranking at scoring, maaaring magbigay ang sistema ng mas tumpak at kontekstwal na kaugnay na impormasyon, na nagpapabuti sa kabuuang karanasan ng user.
Narito ang halimbawa kung paano maaaring gamitin ng isang travel agent ang isang Large Language Model (LLM) para sa re-ranking at scoring ng mga destinasyon ng paglalakbay base sa mga gusto ng user gamit ang Python:
Nais ng travel agent na irekomenda ang pinakamahusay na mga destinasyon sa paglalakbay sa isang kliyente base sa kanilang mga gusto. Tutulungan ng LLM na i-re-rank at i-score ang mga destinasyon upang matiyak na ang pinaka-kaugnay na mga opsyon ang ipapakita.
Narito kung paano mo mae-update ang naunang halimbawa gamit ang Azure OpenAI Services:
import requests
import json
class TravelAgent:
def __init__(self, destinations):
self.destinations = destinations
def get_recommendations(self, preferences, api_key, endpoint):
# Gumawa ng prompt para sa Azure OpenAI
prompt = self.generate_prompt(preferences)
# Tukuyin ang mga header at payload para sa kahilingan
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
}
payload = {
"prompt": prompt,
"max_tokens": 150,
"temperature": 0.7
}
# Tawagin ang Azure OpenAI API upang makuha ang muling nasusuri at may iskor na mga destinasyon
response = requests.post(endpoint, headers=headers, json=payload)
response_data = response.json()
# Kunin at ibalik ang mga rekomendasyon
recommendations = response_data['choices'][0]['text'].strip().split('\n')
return recommendations
def generate_prompt(self, preferences):
prompt = "Here are the travel destinations ranked and scored based on the following user preferences:\n"
for key, value in preferences.items():
prompt += f"{key}: {value}\n"
prompt += "\nDestinations:\n"
for destination in self.destinations:
prompt += f"- {destination['name']}: {destination['description']}\n"
return prompt
# Halimbawa ng paggamit
destinations = [
{"name": "Paris", "description": "City of lights, known for its art, fashion, and culture."},
{"name": "Tokyo", "description": "Vibrant city, famous for its modernity and traditional temples."},
{"name": "New York", "description": "The city that never sleeps, with iconic landmarks and diverse culture."},
{"name": "Sydney", "description": "Beautiful harbour city, known for its opera house and stunning beaches."},
]
preferences = {"activity": "sightseeing", "culture": "diverse"}
api_key = 'your_azure_openai_api_key'
endpoint = 'https://your-endpoint.com/openai/deployments/your-deployment-name/completions?api-version=2022-12-01'
travel_agent = TravelAgent(destinations)
recommendations = travel_agent.get_recommendations(preferences, api_key, endpoint)
print("Recommended Destinations:")
for rec in recommendations:
print(rec)
Inisyal na Paglikha: Inisyalisa ang klase na TravelAgent gamit ang listahan ng mga potensyal na destinasyon ng paglalakbay, bawat isa ay may mga katangiang tulad ng pangalan at paglalarawan.
Pagkuha ng Mga Rekomendasyon (get_recommendations method): Gumagawa ang method na ito ng prompt para sa Azure OpenAI service base sa mga gusto ng user at nagsasagawa ng HTTP POST request sa Azure OpenAI API upang makuha ang mga na-re-rank at na-score na destinasyon.
Pagbuo ng Prompt (generate_prompt method): Gumagawa ang method na ito ng prompt para sa Azure OpenAI, kabilang ang mga gusto ng user at listahan ng mga destinasyon. Ginatitiyak ng prompt na i-re-rank at i-score ng modelo ang mga destinasyon base sa ibinigay na mga gusto.
API Call: Ginagamit ang requests library para magsagawa ng HTTP POST request sa Azure OpenAI API endpoint. Nasa tugon ang mga na-re-rank at na-score na destinasyon.
Halimbawa ng Paggamit: Kinokolekta ng travel agent ang mga gusto ng user (hal., interes sa sightseeing at sari-saring kultura) at ginagamit ang Azure OpenAI service para makuha ang mga na-re-rank at na-score na rekomendasyon para sa mga destinasyon ng paglalakbay.
Siguraduhing palitan ang your_azure_openai_api_key ng iyong totoong Azure OpenAI API key at ang https://your-endpoint.com/... ng totoong URL ng endpoint ng iyong Azure OpenAI deployment.
Sa pamamagitan ng paggamit ng LLM para sa re-ranking at scoring, makapagbibigay ang travel agent ng mas personalisado at kaugnay na mga rekomendasyon sa paglalakbay sa mga kliyente, na nagpapahusay sa kanilang pangkalahatang karanasan.
Ang Retrieval-Augmented Generation (RAG) ay maaaring maging parehong isang pamamaraan ng prompting at isang tool sa pagbuo ng mga AI agent. Ang pag-unawa sa pagkakaiba ng dalawa ay makatutulong upang mas mahusay mong magamit ang RAG sa iyong mga proyekto.
Ano ito?
Paano ito gumagana:
Halimbawa sa Travel Agent:
Ano ito?
Paano ito gumagana:
Halimbawa sa Travel Agent:
| Aspeto | Pamamaraan ng Prompting | Tool |
|---|---|---|
| Manwal kumpara sa Awtomatik | Manwal na pagbuo ng mga prompt para sa bawat query. | Awtomatikong proseso para sa retrieval at generation. |
| Kontrol | Nagbibigay ng mas maraming kontrol sa proseso ng retrieval. | Pinadadali at ina-awtomatiko ang retrieval at generation. |
| Kalayaan | Pinapayagan ang mga custom na prompt base sa tiyak na pangangailangan. | Mas epektibo para sa malakihang mga implementasyon. |
| Kompleksidad | Nangangailangan ng pagbuo at pagsasaayos ng mga prompt. | Mas madaling i-integrate sa arkitektura ng AI agent. |
Halimbawa ng Pamamaraan ng Prompting:
def search_museums_in_paris():
prompt = "Find top museums in Paris"
search_results = search_web(prompt)
return search_results
museums = search_museums_in_paris()
print("Top Museums in Paris:", museums)
Halimbawa ng Tool:
class Travel_Agent:
def __init__(self):
self.rag_tool = RAGTool()
def get_museums_in_paris(self):
user_input = "I want to visit museums in Paris."
response = self.rag_tool.retrieve_and_generate(user_input)
return response
travel_agent = Travel_Agent()
museums = travel_agent.get_museums_in_paris()
print("Top Museums in Paris:", museums)
Ang pagsusuri ng kaugnayan ay isang mahalagang aspeto ng performance ng AI agent. Tinitiyak nito na ang impormasyong nakukuha at nalilikha ng agent ay angkop, tama, at kapaki-pakinabang sa user. Tingnan natin kung paano magsagawa ng pagsusuri ng kaugnayan sa mga AI agent, kabilang ang mga praktikal na halimbawa at pamamaraan.
Halimbawa:
def relevance_score(item, query):
score = 0
if item['category'] in query['interests']:
score += 1
if item['price'] <= query['budget']:
score += 1
if item['location'] == query['destination']:
score += 1
return score
Halimbawa:
def filter_and_rank(items, query):
ranked_items = sorted(items, key=lambda item: relevance_score(item, query), reverse=True)
return ranked_items[:10] # Ibalik ang nangungunang 10 kaugnay na mga item
Halimbawa:
def process_query(query):
# Gamitin ang NLP upang kunin ang mga pangunahing impormasyon mula sa query ng user
processed_query = nlp(query)
return processed_query
Halimbawa:
def adjust_based_on_feedback(feedback, items):
for item in items:
if item['name'] in feedback['liked']:
item['relevance'] += 1
if item['name'] in feedback['disliked']:
item['relevance'] -= 1
return items
Narito ang praktikal na halimbawa kung paano maaaring suriin ng Travel Agent ang kaugnayan ng mga rekomendasyon sa paglalakbay:
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
ranked_hotels = self.filter_and_rank(hotels, self.user_preferences)
itinerary = create_itinerary(flights, ranked_hotels, attractions)
return itinerary
def filter_and_rank(self, items, query):
ranked_items = sorted(items, key=lambda item: self.relevance_score(item, query), reverse=True)
return ranked_items[:10] # Ibalik ang nangungunang 10 kaugnay na mga item
def relevance_score(self, item, query):
score = 0
if item['category'] in query['interests']:
score += 1
if item['price'] <= query['budget']:
score += 1
if item['location'] == query['destination']:
score += 1
return score
def adjust_based_on_feedback(self, feedback, items):
for item in items:
if item['name'] in feedback['liked']:
item['relevance'] += 1
if item['name'] in feedback['disliked']:
item['relevance'] -= 1
return items
# Halimbawa ng paggamit
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_items = travel_agent.adjust_based_on_feedback(feedback, itinerary['hotels'])
print("Updated Itinerary with Feedback:", updated_items)
Ang paghahanap na may intensiyon ay kinabibilangan ng pag-unawa at interpretasyon sa pangunahing layunin o target sa likod ng query ng user upang makakuha at makabuo ng pinaka-kaugnay at kapaki-pakinabang na impormasyon. Lampas ito sa simpleng pagtugma ng mga keyword at nakatuon sa pagkuha ng tunay na pangangailangan at konteksto ng user.
Tingnan natin ang Travel Agent bilang halimbawa kung paano maisasagawa ang paghahanap na may intensiyon.
Pagkolekta ng Mga Gusto ng User
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
Pag-unawa sa Intensiyon ng User
def identify_intent(query):
if "book" in query or "purchase" in query:
return "transactional"
elif "website" in query or "official" in query:
return "navigational"
else:
return "informational"
Pagkaalam sa Konteksto
def analyze_context(query, user_history):
# Pagsamahin ang kasalukuyang query sa kasaysayan ng user upang maunawaan ang konteksto
context = {
"current_query": query,
"user_history": user_history
}
return context
Maghanap at I-personalize ang mga Resulta
def search_with_intent(query, preferences, user_history):
intent = identify_intent(query)
context = analyze_context(query, user_history)
if intent == "informational":
search_results = search_information(query, preferences)
elif intent == "navigational":
search_results = search_navigation(query)
elif intent == "transactional":
search_results = search_transaction(query, preferences)
personalized_results = personalize_results(search_results, user_history)
return personalized_results
def search_information(query, preferences):
# Halimbawang lohika ng paghahanap para sa impormatibong intensyon
results = search_web(f"best {preferences['interests']} in {preferences['destination']}")
return results
def search_navigation(query):
# Halimbawang lohika ng paghahanap para sa navigasyonal na intensyon
results = search_web(query)
return results
def search_transaction(query, preferences):
# Halimbawang lohika ng paghahanap para sa transaksiyonal na intensyon
results = search_web(f"book {query} to {preferences['destination']}")
return results
def personalize_results(results, user_history):
# Halimbawang lohika ng personalisasyon
personalized = [result for result in results if result not in user_history]
return personalized[:10] # Ibalik ang nangungunang 10 personalisadong resulta
Halimbawa ng Paggamit
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
user_history = ["Louvre Museum website", "Book flight to Paris"]
query = "best museums in Paris"
results = search_with_intent(query, preferences, user_history)
print("Search Results:", results)
Ang mga code generating agents ay gumagamit ng mga AI model para sumulat at magpatupad ng code, nalulutas ang mga komplikadong problema at nag-aautomat ng mga gawain.
Gumagamit ang mga code generating agents ng generative AI models upang sumulat at magpatupad ng code. Ang mga agent na ito ay maaaring maglutas ng mga komplikadong problema, mag-automat ng mga gawain, at magbigay ng mahahalagang pananaw sa pamamagitan ng paggawa at pagpapatakbo ng code sa iba’t ibang mga programming language.
Isipin na kayo ay nagdidisenyo ng isang code generating agent. Ganito ang maaaring gawin nito:
Sa halimbawang ito, gagawa tayo ng isang code generating agent, Travel Agent, upang tulungan ang mga gumagamit sa pagpaplano ng kanilang paglalakbay sa pamamagitan ng paggawa at pagpapatupad ng code. Kaya nitong hawakan ang mga gawain tulad ng paghahanap ng mga opsyon sa paglalakbay, pag-filter ng mga resulta, at pagbuo ng itinerary gamit ang generative AI.
Pagkuha ng mga Kagustuhan ng Gumagamit
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
Pagbuo ng Code para Kunin ang Data
def generate_code_to_fetch_data(preferences):
# Halimbawa: Gumawa ng code upang maghanap ng mga flight base sa mga kagustuhan ng gumagamit
code = f"""
def search_flights():
import requests
response = requests.get('https://api.example.com/flights', params={preferences})
return response.json()
"""
return code
def generate_code_to_fetch_hotels(preferences):
# Halimbawa: Gumawa ng code upang maghanap ng mga hotel
code = f"""
def search_hotels():
import requests
response = requests.get('https://api.example.com/hotels', params={preferences})
return response.json()
"""
return code
Pagpapatupad ng Nabuo na Code
def execute_code(code):
# Patakbuhin ang nabuo na code gamit ang exec
exec(code)
result = locals()
return result
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
flight_code = generate_code_to_fetch_data(preferences)
hotel_code = generate_code_to_fetch_hotels(preferences)
flights = execute_code(flight_code)
hotels = execute_code(hotel_code)
print("Flight Options:", flights)
print("Hotel Options:", hotels)
Pagbuo ng Itinerary
def generate_itinerary(flights, hotels, attractions):
itinerary = {
"flights": flights,
"hotels": hotels,
"attractions": attractions
}
return itinerary
attractions = search_attractions(preferences)
itinerary = generate_itinerary(flights, hotels, attractions)
print("Suggested Itinerary:", itinerary)
Pag-aayos Batay sa Feedback
def adjust_based_on_feedback(feedback, preferences):
# Ayusin ang mga kagustuhan batay sa puna ng gumagamit
if "liked" in feedback:
preferences["favorites"] = feedback["liked"]
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
return preferences
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_preferences = adjust_based_on_feedback(feedback, preferences)
# Muling likhain at patakbuhin ang code gamit ang na-update na mga kagustuhan
updated_flight_code = generate_code_to_fetch_data(updated_preferences)
updated_hotel_code = generate_code_to_fetch_hotels(updated_preferences)
updated_flights = execute_code(updated_flight_code)
updated_hotels = execute_code(updated_hotel_code)
updated_itinerary = generate_itinerary(updated_flights, updated_hotels, attractions)
print("Updated Itinerary:", updated_itinerary)
Ang pagkakaalam sa schema ng table ay makatutulong sa proseso ng paggawa ng query sa pamamagitan ng paggamit ng environmental awareness at reasoning.
Narito ang isang halimbawa kung paano ito magagawa:
Narito ang isang updated na halimbawa ng Python code na nagpapaloob ng mga konseptong ito:
def adjust_based_on_feedback(feedback, preferences, schema):
# Ayusin ang mga kagustuhan base sa feedback ng user
if "liked" in feedback:
preferences["favorites"] = feedback["liked"]
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
# Pangangatwiran base sa iskema upang ayusin ang iba pang kaugnay na mga kagustuhan
for field in schema:
if field in preferences:
preferences[field] = adjust_based_on_environment(feedback, field, schema)
return preferences
def adjust_based_on_environment(feedback, field, schema):
# Pasadyang lohika upang ayusin ang mga kagustuhan base sa iskema at feedback
if field in feedback["liked"]:
return schema[field]["positive_adjustment"]
elif field in feedback["disliked"]:
return schema[field]["negative_adjustment"]
return schema[field]["default"]
def generate_code_to_fetch_data(preferences):
# Bumuo ng code upang kumuha ng datos ng flight base sa na-update na mga kagustuhan
return f"fetch_flights(preferences={preferences})"
def generate_code_to_fetch_hotels(preferences):
# Bumuo ng code upang kumuha ng datos ng hotel base sa na-update na mga kagustuhan
return f"fetch_hotels(preferences={preferences})"
def execute_code(code):
# I-simulate ang pagpapatupad ng code at magbalik ng huwad na datos
return {"data": f"Executed: {code}"}
def generate_itinerary(flights, hotels, attractions):
# Bumuo ng itineraryo base sa mga flight, hotel, at atraksyon
return {"flights": flights, "hotels": hotels, "attractions": attractions}
# Halimbawang iskema
schema = {
"favorites": {"positive_adjustment": "increase", "negative_adjustment": "decrease", "default": "neutral"},
"avoid": {"positive_adjustment": "decrease", "negative_adjustment": "increase", "default": "neutral"}
}
# Halimbawang paggamit
preferences = {"favorites": "sightseeing", "avoid": "crowded places"}
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_preferences = adjust_based_on_feedback(feedback, preferences, schema)
# Muling bumuo at isagawa ang code gamit ang na-update na mga kagustuhan
updated_flight_code = generate_code_to_fetch_data(updated_preferences)
updated_hotel_code = generate_code_to_fetch_hotels(updated_preferences)
updated_flights = execute_code(updated_flight_code)
updated_hotels = execute_code(updated_hotel_code)
updated_itinerary = generate_itinerary(updated_flights, updated_hotels, feedback["liked"])
print("Updated Itinerary:", updated_itinerary)
schema dictionary ay naglalarawan kung paano dapat i-adjust ang mga kagustuhan base sa feedback. May mga field ito tulad ng favorites at avoid, na may mga kaukulang adjustment.adjust_based_on_feedback method): Ina-adjust ng method na ito ang mga kagustuhan base sa feedback ng gumagamit at schema.adjust_based_on_environment method): Inaangkop ng method na ito ang mga adjustment base sa schema at feedback.Sa pamamagitan ng paggawa ng sistema na may environmental awareness at reasoning base sa schema, makakagawa ito ng mas tumpak at kaugnay na mga query, na magreresulta sa mas magagandang rekomendasyon sa paglalakbay at mas personalisadong karanasan ng gumagamit.
Ang SQL (Structured Query Language) ay isang makapangyarihang kasangkapan para sa pakikipag-ugnayan sa mga database. Kapag ginamit bilang bahagi ng Retrieval-Augmented Generation (RAG) approach, maaaring kumuha ang SQL ng mga kaugnay na datos mula sa mga database upang magbigay ng impormasyon at gumawa ng mga tugon o aksyon sa mga AI agent. Tingnan natin kung paano magagamit ang SQL bilang RAG technique sa konteksto ng Travel Agent.
Halimbawa: Isang data analysis agent:
Pagkuha ng mga Kagustuhan ng Gumagamit
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
Pagbuo ng mga SQL Query
def generate_sql_query(table, preferences):
query = f"SELECT * FROM {table} WHERE "
conditions = []
for key, value in preferences.items():
conditions.append(f"{key}='{value}'")
query += " AND ".join(conditions)
return query
Pagpapatupad ng mga SQL Query
import sqlite3
def execute_sql_query(query, database="travel.db"):
connection = sqlite3.connect(database)
cursor = connection.cursor()
cursor.execute(query)
results = cursor.fetchall()
connection.close()
return results
Pagbuo ng mga Rekomendasyon
def generate_recommendations(preferences):
flight_query = generate_sql_query("flights", preferences)
hotel_query = generate_sql_query("hotels", preferences)
attraction_query = generate_sql_query("attractions", preferences)
flights = execute_sql_query(flight_query)
hotels = execute_sql_query(hotel_query)
attractions = execute_sql_query(attraction_query)
itinerary = {
"flights": flights,
"hotels": hotels,
"attractions": attractions
}
return itinerary
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = generate_recommendations(preferences)
print("Suggested Itinerary:", itinerary)
Flight Query
SELECT * FROM flights WHERE destination='Paris' AND dates='2025-04-01 to 2025-04-10' AND budget='moderate';
Hotel Query
SELECT * FROM hotels WHERE destination='Paris' AND budget='moderate';
Attraction Query
SELECT * FROM attractions WHERE destination='Paris' AND interests='museums, cuisine';
Sa paggamit ng SQL bilang bahagi ng Retrieval-Augmented Generation (RAG) technique, maaaring dinamiko na kunin at gamitin ng mga AI agent gaya ng Travel Agent ang kaugnay na data upang magbigay ng tumpak at personalisadong mga rekomendasyon.
Para ipakita ang implementasyon ng metacognition, gagawa tayo ng simpleng agent na naga-reflect sa paraan ng pagdedesisyon habang nilulutas ang isang problema. Sa halimbawa na ito, gagawa tayo ng sistema kung saan sinusubukan ng agent na i-optimize ang pagpili ng hotel, ngunit sinusuri ang sariling pangangatwiran at inaayos ang estratehiya sa oras na makagawa ito ng mga mali o hindi pinakamainam na pagpili.
Sisimit natin ito gamit ang isang basic na halimbawa kung saan pumipili ang agent ng mga hotel base sa kombinasyon ng presyo at kalidad, ngunit “naga-reflect” ito sa mga desisyon at inaayos ang sarili nito nang naaayon.
Narito ang isang halimbawa:
class HotelRecommendationAgent:
def __init__(self):
self.previous_choices = [] # Nagtatago ng mga hotel na napili noon
self.corrected_choices = [] # Nagtatago ng mga naitamang pagpili
self.recommendation_strategies = ['cheapest', 'highest_quality'] # Mga available na estratehiya
def recommend_hotel(self, hotels, strategy):
"""
Recommend a hotel based on the chosen strategy.
The strategy can either be 'cheapest' or 'highest_quality'.
"""
if strategy == 'cheapest':
recommended = min(hotels, key=lambda x: x['price'])
elif strategy == 'highest_quality':
recommended = max(hotels, key=lambda x: x['quality'])
else:
recommended = None
self.previous_choices.append((strategy, recommended))
return recommended
def reflect_on_choice(self):
"""
Reflect on the last choice made and decide if the agent should adjust its strategy.
The agent considers if the previous choice led to a poor outcome.
"""
if not self.previous_choices:
return "No choices made yet."
last_choice_strategy, last_choice = self.previous_choices[-1]
# Ipagpalagay nating mayroon tayong feedback mula sa user na nagsasabi kung ang huling pagpili ay maganda o hindi
user_feedback = self.get_user_feedback(last_choice)
if user_feedback == "bad":
# I-adjust ang estratehiya kung ang nakaraang pagpili ay hindi kasiya-siya
new_strategy = 'highest_quality' if last_choice_strategy == 'cheapest' else 'cheapest'
self.corrected_choices.append((new_strategy, last_choice))
return f"Reflecting on choice. Adjusting strategy to {new_strategy}."
else:
return "The choice was good. No need to adjust."
def get_user_feedback(self, hotel):
"""
Simulate user feedback based on hotel attributes.
For simplicity, assume if the hotel is too cheap, the feedback is "bad".
If the hotel has quality less than 7, feedback is "bad".
"""
if hotel['price'] < 100 or hotel['quality'] < 7:
return "bad"
return "good"
# I-simulate ang isang listahan ng mga hotel (presyo at kalidad)
hotels = [
{'name': 'Budget Inn', 'price': 80, 'quality': 6},
{'name': 'Comfort Suites', 'price': 120, 'quality': 8},
{'name': 'Luxury Stay', 'price': 200, 'quality': 9}
]
# Gumawa ng isang ahente
agent = HotelRecommendationAgent()
# Hakbang 1: Inirerekomenda ng ahente ang isang hotel gamit ang estratehiyang "pinakamura"
recommended_hotel = agent.recommend_hotel(hotels, 'cheapest')
print(f"Recommended hotel (cheapest): {recommended_hotel['name']}")
# Hakbang 2: Sinusuri ng ahente ang pagpili at ina-adjust ang estratehiya kung kinakailangan
reflection_result = agent.reflect_on_choice()
print(reflection_result)
# Hakbang 3: Muling nagrerekomenda ang ahente, sa pagkakataong ito gamit ang na-adjust na estratehiya
adjusted_recommendation = agent.recommend_hotel(hotels, 'highest_quality')
print(f"Adjusted hotel recommendation (highest_quality): {adjusted_recommendation['name']}")
Ang mahalaga dito ay ang kakayahan ng agent na:
Ito ay isang simpleng anyo ng metacognition kung saan ang sistema ay kayang i-adjust ang proseso ng pangangatwiran nito base sa panloob na feedback.
Ang metacognition ay isang makapangyarihang kasangkapan na maaaring lubos na mapabuti ang kakayahan ng mga AI agent. Sa pagsasama ng mga metacognitive na proseso, maaari kang magdisenyo ng mga agent na mas matalino, adaptable, at epektibo. Gamitin ang karagdagang mga resources upang higit pang tuklasin ang kahanga-hangang mundo ng metacognition sa mga AI agent.
Sumali sa Microsoft Foundry Discord para makipagkita sa ibang mga nag-aaral, dumalo sa office hours, at sagutin ang iyong mga tanong tungkol sa AI Agents.
Pagtatanggi: Ang dokumentong ito ay isinalin gamit ang serbisyo ng AI translation na Co-op Translator. Bagama’t nagsusumikap kami para sa katumpakan, pakatandaan na ang awtomatikong pagsasalin ay maaaring maglaman ng mga pagkakamali o hindi pagkakatugma. Ang orihinal na dokumento sa orihinal nitong wika ang dapat ituring na pangunahing sanggunian. Para sa mahahalagang impormasyon, inirerekomenda ang propesyonal na pagsasalin ng tao. Hindi kami mananagot sa anumang maling pagkakaintindi o maling interpretasyon na nagmula sa paggamit ng pagsasaling ito.