(I-click ang larawan sa itaas upang panoorin ang video ng araling ito)
Metakognisyon sa mga AI Agent
Maligayang pagdating sa aralin tungkol sa metakognisyon sa mga AI agent! Ang kabanatang ito ay idinisenyo para sa mga nagsisimula na mausisa kung paano naiisip ng mga AI agent ang tungkol sa kanilang sariling proseso ng pag-iisip. Sa pagtatapos ng araling ito, mauunawaan mo ang mga pangunahing konsepto at magkakaroon ng mga praktikal na halimbawa upang magamit ang metakognisyon sa disenyo ng AI agent.
Pagkatapos makumpleto ang araling ito, magagawa mong:
Ang metakognisyon ay tumutukoy sa mga mas mataas na antas ng kognitibong proseso 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 batay sa kamalayan sa sarili at mga nakaraang karanasan. Ang metakognisyon, o “pag-iisip tungkol sa pag-iisip,” ay isang mahalagang konsepto sa pagbuo ng mga agentic AI system. Kasama rito ang pagkakaroon ng AI system ng kamalayan sa kanilang sariling mga panloob na proseso at kakayahang subaybayan, kontrolin, at ayusin ang kanilang kilos nang naaayon. Kagaya ng ginagawa natin kapag inuukol natin ang atensyon sa kapaligiran o tumitingin sa isang problema. Ang kamalayang ito sa sarili ay maaaring makatulong sa mga AI system na gumawa ng mas mabuting mga desisyon, tuklasin ang mga pagkakamali, at pagbutihin ang kanilang pagganap sa paglipas ng panahon—na muli ay nakalapat sa Turing test at ang debate kung pupperwisyo ba ang AI.
Sa konteksto ng mga agentic AI system, makakatulong ang metakognisyon upang matugunan ang ilang mga hamon, tulad ng:
Ang metakognisyon, o “pag-iisip tungkol sa pag-iisip,” ay isang mas mataas na antas ng kognitibong proseso na kinasasangkutan ang kamalayan sa sarili at regulasyon ng sariling mga kognitibong proseso. Sa larangan ng AI, pinapalakas ng metakognisyon ang mga agent upang suriin at ayusin ang kanilang mga estratehiya at aksyon, na nagreresulta sa mas mahusay na kakayahan sa paglutas ng problema at paggawa ng desisyon. Sa pag-unawa sa metakognisyon, makakalikha ka ng mga AI agent na hindi lamang mas matalino kundi mas nababago at episyente. Sa tunay na metakognisyon, makikita mo ang AI na hayagang nagre-rason tungkol sa sarili nitong rason.
Halimbawa: “Pinili ko ang mas murang flights dahil… maaaring may namimiss akong direct flights, kaya’t susuriin ko muli.” Pagsubaybay kung paano o bakit pinili ang isang tinukoy na ruta.
Mahalagang bahagi ang metakognisyon sa disenyo ng mga AI agent dahil sa mga sumusunod na dahilan:

Bago sumabak sa mga metakognitibong proseso, mahalagang maunawaan ang mga pangunahing sangkap ng AI agent. Karaniwan, ang AI agent ay binubuo ng:
Ang mga sangkap na ito ay nagtutulungan upang makabuo ng isang “expertise unit” na kayang magsagawa ng partikular na gawain.
Halimbawa: Isipin ang isang travel agent, serbisyong agent na hindi lamang nagplaplano ng iyong bakasyon kundi ina-adjust din ang landas nito base sa real-time na datos at mga nakaraang karanasan ng customer.
Isipin na nagdidisenyo ka ng isang travel agent service na pinatatakbo ng AI. Ang agent na ito, “Travel Agent,” ay tumutulong sa mga user sa pagpaplano ng kanilang mga bakasyon. Upang isama ang metakognisyon, kailangan ng Travel Agent na suriin at ayusin ang kanilang mga aksyon batay sa kamalayan sa sarili at mga nakaraang karanasan. Ganito maaaring gampanan ng metakognisyon ang papel nito:
Ang kasalukuyang gawain ay tulungan ang isang user na magplano ng biyahe papuntang Paris.
Ginagamit ng Travel Agent ang metakognisyon upang suriin ang kanyang pagganap at matuto sa mga nakaraang karanasan. Halimbawa:
Narito ang isang pinaikling halimbawa ng code para sa Travel Agent na may kasamang metakognisyon:
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 puna at ayusin ang mga rekomendasyon sa hinaharap
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 metakognisyon, makakapagbigay ang Travel Agent ng mas personalisado at tumpak na mga rekomendasyon sa paglalakbay, na nagpapabuti sa kabuuang karanasan ng user.
Ang pagpaplano ay isang mahalagang bahagi ng pag-uugali ng AI agent. Kasama rito ang paglalahad ng mga hakbang na kailangan upang makamit ang isang layunin, isinasaalang-alang ang kasalukuyang kalagayan, mga mapagkukunan, at posibleng mga hadlang.
Halimbawa: Narito ang mga hakbang na kailangang gawin ng Travel Agent upang matagumpay na matulungan ang user sa pagpaplano ng kanilang biyahe:
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)
# Halimbawa ng paggamit sa loob ng isang kahilingan sa booing
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)
Una, magsimula tayo sa pag-unawa ng pagkakaiba ng RAG Tool at Pre-emptive Context Load

Pinagsasama ng RAG ang isang retrieval system at isang generative model. Kapag may query, kinukuha ng retrieval system ang mga kaugnay na dokumento o datos mula sa panlabas na pinagmulan, at ang nakuhang impormasyon ay ginagamit upang palakasin ang input sa generative model. Nakakatulong ito sa modelong makabuo ng mas tumpak at kontekstwal na mga sagot.
Sa isang RAG system, kinukuha ng agent ang mga kaugnay na impormasyon mula sa knowledge base at ginagamit ito upang makabuo ng angkop na mga sagot o aksyon.
Nakatuon ang approach ng Corrective RAG sa paggamit ng mga teknik ng RAG upang itama ang mga error at pagbutihin ang katumpakan ng mga AI agent. Kabilang dito ang:
Isipin ang isang search agent na kumukuha ng impormasyon mula sa web upang sagutin ang mga query ng user. Ang approach ng Corrective RAG ay maaaring magsama ng:
Pinapalakas ng Corrective RAG (Retrieval-Augmented Generation) ang kakayahan ng AI na kumuha at gumawa ng impormasyon habang itinatama ang anumang mga kamalian. Tingnan natin kung paano magagamit ng Travel Agent ang approach na ito upang makapagbigay ng mas tumpak at kaugnay na mga rekomendasyon sa paglalakbay.
Kasama rito 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 Corrective RAG approach 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 nagsasangkot ng pag-load ng kaugnay na konteksto o background na impormasyon sa model bago pa man iproseso ang isang query. Nangangahulugan ito na may access ang model sa impormasyong ito mula sa simula, na makakatulong upang makabuo ito ng mas may kaalamang mga tugon nang hindi na kailangang kumuha pa ng karagdagang data habang nagpapatuloy ang proseso.
Narito ang isang pinasimpleng halimbawa kung paano maaaring magmukhang isang pre-emptive context load para sa isang travel agent application sa Python:
class TravelAgent:
def __init__(self):
# I-pre-load 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):
# Kumuha ng impormasyon ng destinasyon mula sa na-pre-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"))
Initialization (__init__ method): Ang klase na TravelAgent ay nag-pre-load ng isang diksyunaryo na naglalaman ng impormasyon tungkol sa mga sikat na destinasyon gaya ng Paris, Tokyo, New York, at Sydney. Kasama sa diksyunaryong ito ang mga detalye tulad ng bansa, pera, wika, at mga pangunahing atraksyon para sa bawat destinasyon.
Pagkuha ng Impormasyon (get_destination_info method): Kapag nagtatanong ang user tungkol sa isang partikular na destinasyon, kinukuha ng get_destination_info method ang kaugnay na impormasyon mula sa na-pre-load na kontekstong diksyunaryo.
Sa pamamagitan ng pag-pre-load ng konteksto, ang travel agent application ay mabilis na makakasagot sa mga tanong ng user nang hindi na kailangang kumuha ng impormasyon mula sa panlabas na pinagmulan sa real-time. Ginagawa nitong mas epektibo at mabilis ang aplikasyon.
Ang pag-bootstrap ng plano na may layunin ay nagsisimula sa isang malinaw na objective o target na resulta na isinasaisip. Sa pamamagitan ng pagtukoy ng layunin na ito nang maaga, magagamit ito ng model bilang patnubay sa buong iterative na proseso. Nakakatulong ito upang matiyak na bawat pag-ulit ay lumalapit sa pag-abot ng nais na resulta, kaya mas epektibo at naka-focus ang proseso.
Narito ang isang halimbawa kung paano mo maibootstrap ang isang travel plan na may layunin bago mag-iterate para sa isang travel agent sa Python:
Nais ng isang travel agent na magplano ng isang customized na bakasyon para sa isang kliyente. Ang layunin ay gumawa ng travel itinerary na pinakamataas ang kasiyahan ng kliyente base sa kanilang mga kagustuhan 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)
Initialization (__init__ method): Inilulunsad ang klase na TravelAgent na may listahan ng mga potensyal na destinasyon, bawat isa ay may mga katangian tulad ng pangalan, gastos, at uri ng aktibidad.
Pag-bootstrap ng Plano (bootstrap_plan method): Lumilikha ito ng panimulang travel plan batay sa mga kagustuhan ng kliyente at budget. Iniiikot nito ang listahan ng mga destinasyon at idinadagdag sa plano kung tugma ito sa mga kagustuhan ng kliyente at kasya sa budget.
Pagtutugma ng Mga Kagustuhan (match_preferences method): Sinusuri ng method na ito kung tugma ang destinasyon sa mga kagustuhan ng kliyente.
Pag-iterate ng Plano (iterate_plan method): Pinipino ng method na ito ang panimulang plano sa pamamagitan ng pagsubok na palitan ang bawat destinasyon sa plano ng mas angkop na tugma, isinasaalang-alang ang kagustuhan ng kliyente at mga limitasyon sa budget.
Pagkalkula ng Gastos (calculate_cost method): Kinakalkula ng method na ito ang kabuuang gastos ng kasalukuyang plano, kasama na ang posibleng bagong destinasyon.
Sa pamamagitan ng pag-bootstrap ng plano na may malinaw na layunin (hal., pag-maximize ng kasiyahan ng kliyente) at pag-iterate upang pinuhin ang plano, makakagawa ang travel agent ng customized at mahusay na travel itinerary para sa kliyente. Tinitiyak ng paraang ito na ang travel plan ay naka-align sa mga kagustuhan at budget ng kliyente mula sa simula at pinapabuti sa bawat pag-ulit.
Maaaring gamitin ang Large Language Models (LLMs) para sa re-ranking at scoring sa pamamagitan ng pagsusuri sa kaugnayan at kalidad ng mga nai-retrieve na dokumento o nabuo na mga tugon. Ganito ito gumagana:
Retrieval: Kinukuha ng unang hakbang sa retrieval ang isang hanay ng mga kandidato na dokumento o tugon base sa query.
Re-ranking: Sinusuri ng LLM ang mga kandidato at muli nitong inaayos ayon sa kaugnayan at kalidad. Sinasigurado ng hakbang na ito na ang pinaka-kaugnay at mataas na kalidad na impormasyon ang mauna.
Scoring: Nagbibigay ang LLM ng mga score sa bawat kandidato, na sumasalamin sa kanilang kaugnayan at kalidad. Nakakatulong ito sa pagpili ng pinakamahusay na tugon o dokumento para sa user.
Sa pamamagitan ng paggamit ng LLM para sa re-ranking at scoring, maaaring makapagbigay ang sistema ng mas tumpak at kontekstwal na kaugnay na impormasyon, na nagpapabuti sa kabuuang karanasan ng user.
Narito ang isang halimbawa kung paano maaaring gamitin ng isang travel agent ang Large Language Model (LLM) para sa re-ranking at scoring ng mga travel destination base sa mga kagustuhan ng user sa Python:
Nais ng travel agent na irekomenda ang pinakamahusay na travel destinations sa isang kliyente base sa kanilang mga kagustuhan. Tutulungan ng LLM na muli ayusin at bigyan ng score ang mga destinasyon upang matiyak na ang pinaka-kaugnay na mga opsyon ang ipapakita.
Narito kung paano mo maaaring i-update ang naunang halimbawa para gamitin 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):
# Bumuo ng prompt para sa Azure OpenAI
prompt = self.generate_prompt(preferences)
# Tukuyin ang mga headers at payload para sa kahilingan
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
}
payload = {
"prompt": prompt,
"max_tokens": 150,
"temperature": 0.7
}
# Tawagan ang Azure OpenAI API upang makuha ang muling inayos at naiskoring 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)
Initialization: Ang TravelAgent class ay inilunsad na may listahan ng mga potensyal na travel destinations, bawat isa ay may mga attribute tulad ng pangalan at deskripsyon.
Pagkuha ng mga Rekomendasyon (get_recommendations method): Bumubuo ang method na ito ng prompt para sa Azure OpenAI service batay sa mga kagustuhan ng user at gumagawa ng HTTP POST request sa Azure OpenAI API upang makuha ang mga re-rank at scored na destinasyon.
Pagbuo ng Prompt (generate_prompt method): Ino-construct ng method na ito ang prompt para sa Azure OpenAI, kasama ang mga kagustuhan ng user at ang listahan ng mga destinasyon. Ginagabay ng prompt ang modelo na i-re-rank at bigyan ng score ang mga destinasyon base sa mga ibinigay na kagustuhan.
API Call: Ginagamit ang requests library upang gumawa ng HTTP POST request sa Azure OpenAI API endpoint. Ang tugon ay naglalaman ng mga re-rank at scored na destinasyon.
Halimbawa ng Paggamit: Kinokolekta ng travel agent ang mga kagustuhan ng user (hal., interes sa sightseeing at magkakaibang kultura) at ginagamit ang Azure OpenAI service para makakuha ng re-rank at scored na mga rekomendasyon ng travel destinations.
Siguraduhing palitan ang your_azure_openai_api_key ng aktwal mong Azure OpenAI API key at ang https://your-endpoint.com/... ng aktwal na endpoint URL ng iyong Azure OpenAI deployment.
Sa pamamagitan ng paggamit ng LLM para sa re-ranking at scoring, makakapagbigay ang travel agent ng mas personalized at kaugnay na travel recommendations sa mga kliyente, na nagpapahusay sa kanilang pangkalahatang karanasan.
Ang Retrieval-Augmented Generation (RAG) ay maaaring maging isang prompting technique at isang tool sa pagbuo ng AI agents. Ang pag-unawa sa pagkakaiba ng dalawa ay makakatulong sa iyo na mas epektibong 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 | Prompting Technique | Tool |
|---|---|---|
| Mano-mano vs Awtomatik | Mano-mano na pagbuo ng mga prompt para sa bawat query. | Awtomatikong proseso para sa retrieval at generation. |
| Kontrol | Nagbibigay ng higit na kontrol sa retrieval process. | Pinapasimple at ina-automate ang retrieval at generation. |
| Flexibility | Pinapayagan ang customized na mga prompt base sa espesipikong pangangailangan. | Mas epektibo para sa malawakang implementasyon. |
| Kompleksidad | Nangangailangan ng paggawa at pagtweaking ng mga prompt. | Mas madaling isama sa architecture ng AI agent. |
Halimbawa ng Prompting Technique:
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 nakuha at nabuo ng agent ay angkop, tama, at kapaki-pakinabang sa user. Tingnan natin kung paano suriin ang kaugnayan sa AI agents kabilang ang mga praktikal na halimbawa at teknik.
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 para kunin ang mahahalagang impormasyon mula sa tanong ng gumagamit
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 isang praktikal na halimbawa kung paano maaaring suriin ng Travel Agent ang kaugnayan ng mga travel recommendations:
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 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 intensyon ay nagsasangkot ng pag-unawa at pag-interpret ng tunay na layunin o target sa likod ng query ng user upang makuha at makabuo ng pinaka-kaugnay at kapaki-pakinabang na impormasyon. Ang pamamaraang ito ay hindi lang basta pagtugma ng mga keywords kundi mas nakatuon sa pagkuha ng totoong pangangailangan at konteksto ng user.
Tingnan natin ang Travel Agent bilang halimbawa kung paano mai-implement ang paghahanap na may intensyon.
Pagkolekta ng Mga Kagustuhan ng User
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
Pag-unawa sa Intensyon 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"
def analyze_context(query, user_history):
# Pagsamahin ang kasalukuyang query sa kasaysayan ng gumagamit 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):
# Halimbawa ng lohika ng paghahanap para sa layuning pang-impormasyon
results = search_web(f"best {preferences['interests']} in {preferences['destination']}")
return results
def search_navigation(query):
# Halimbawa ng lohika ng paghahanap para sa layuning pasulatan
results = search_web(query)
return results
def search_transaction(query, preferences):
# Halimbawa ng lohika ng paghahanap para sa layuning transaksyunal
results = search_web(f"book {query} to {preferences['destination']}")
return results
def personalize_results(results, user_history):
# Halimbawa ng lohika para sa personalisasyon
personalized = [result for result in results if result not in user_history]
return personalized[:10] # Ibalik ang nangungunang 10 na 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)
Gumagamit ang mga ahente ng paggawa ng code ng mga AI model upang magsulat at magpatupad ng code, lutasin ang mga komplikadong problema at i-automate ang mga gawain.
Gumagamit ang mga ahente ng paggawa ng code ng mga generative AI model upang magsulat at magpatupad ng code. Maaaring lutasin ng mga ahenteng ito ang mga komplikadong problema, i-automate ang mga gawain, at magbigay ng mahahalagang pananaw sa pamamagitan ng paggawa at pagpapatakbo ng code sa iba’t ibang programming lengguwahe.
Isipin mong nagdidisenyo ka ng ahente sa paggawa ng code. Ganito ang maaaring proseso nito:
Sa halimbawang ito, magdidisenyo tayo ng ahente ng paggawa ng code, Travel Agent, upang tulungan ang mga user sa pagpaplano ng kanilang paglalakbay sa pamamagitan ng paggawa at pagpapatupad ng code. Kaya nitong hawakan ang mga gawain tulad ng pagkuha ng mga opsyon sa biyahe, pagsasala ng mga resulta, at paggawa ng itinerary gamit ang generative AI.
Pagkuha ng Mga Kagustuhan ng User
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
Paggawa ng Code upang Kunin ang Data
def generate_code_to_fetch_data(preferences):
# Halimbawa: Bumuo ng code upang maghanap ng mga flight batay 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: Bumuo 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 Ginawang Code
def execute_code(code):
# Isakatuparan 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)
Paggawa 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 Base sa Feedback
def adjust_based_on_feedback(feedback, preferences):
# Ayusin ang mga kagustuhan base 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 na may 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)
Maaaring mapabuti ang proseso ng paggawa ng query gamit ang kaalaman sa schema ng table sa pamamagitan ng paggamit ng pagkakabatid sa kapaligiran at pangangatwiran.
Narito ang isang halimbawa kung paano ito gagawin:
Narito ang isang updated na halimbawa ng Python code na naglalaman 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 schema 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 schema 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 kuhanin ang 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 kuhanin ang datos ng hotel base sa na-update na mga kagustuhan
return f"fetch_hotels(preferences={preferences})"
def execute_code(code):
# I-simulate ang pagtakbo ng code at ibalik ang pekeng datos
return {"data": f"Executed: {code}"}
def generate_itinerary(flights, hotels, attractions):
# Bumuo ng itinerary base sa mga flight, hotel, at atraksyon
return {"flights": flights, "hotels": hotels, "attractions": attractions}
# Halimbawang schema
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 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, feedback["liked"])
print("Updated Itinerary:", updated_itinerary)
schema ay naglalarawan kung paano ia-adjust ang mga kagustuhan base sa feedback. Kasama dito ang mga field 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 user at sa schema.adjust_based_on_environment method): Ini-customize ng method na ito ang mga pag-aayos base sa schema at feedback.Sa pamamagitan ng pagiging environment-aware at pangangatwiran base sa schema, makagagawa ang sistema ng mga mas tumpak at may kaugnayang query na nagreresulta sa mas magagandang rekomendasyon sa paglalakbay at mas personalisadong karanasan ng user.
Ang SQL (Structured Query Language) ay isang makapangyarihang kasangkapan para makipag-ugnayan sa mga database. Kapag ginamit bilang bahagi ng Retrieval-Augmented Generation (RAG) na paraan, kayang kunin ng SQL ang mga may kaugnayang data mula sa mga database para magbigay ng impormasyon at gumawa ng mga sagot o aksyon sa AI agents. Tingnan natin kung paano maaaring gamitin ang SQL bilang RAG technique sa konteksto ng Travel Agent.
Halimbawa: Isang data analysis agent:
Pagkuha ng Mga Kagustuhan ng User
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
Paggawa ng SQL Queries
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 SQL Queries
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
Paggawa 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 pamamagitan ng paggamit ng SQL bilang bahagi ng Retrieval-Augmented Generation (RAG) na pamamaraan, maaaring dynamically kunin at gamitin ng mga AI agent tulad ng Travel Agent ang mga may kaugnayang datos upang magbigay ng tumpak at personalisadong mga rekomendasyon.
Upang maipakita ang implementasyon ng metacognition, gumawa tayo ng isang simpleng ahente na nag-iisip tungkol sa proseso ng paggawa ng desisyon habang nilulutas ang isang problema. Sa halimbawang ito, bubuuin natin ang isang sistema kung saan sinusubukan ng ahente na i-optimize ang pagpili ng hotel, ngunit pagkatapos ay sinusuri ang sariling pangangatwiran at inaayos ang estratehiya kapag nagkamali o pumili ng hindi pinakamahusay.
Ipapakita natin ito gamit ang isang simpleng halimbawa kung saan pumipili ang ahente ng mga hotel base sa kombinasyon ng presyo at kalidad, ngunit “magmu-muni” ito sa mga desisyon at inaayos batay doon.
Narito ang isang halimbawa:
class HotelRecommendationAgent:
def __init__(self):
self.previous_choices = [] # Nagtatago ng mga hotel na pinili noon
self.corrected_choices = [] # Nagtatago ng mga naitama na pagpili
self.recommendation_strategies = ['cheapest', 'highest_quality'] # Mga magagamit 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 natin na mayroon tayong feedback mula sa user na nagsasabi kung maganda o hindi ang huling pagpili
user_feedback = self.get_user_feedback(last_choice)
if user_feedback == "bad":
# Iayos 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"
# Gumawa ng 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 agent
agent = HotelRecommendationAgent()
# Hakbang 1: Inirerekomenda ng agent ang isang hotel gamit ang estratehiyang "pinakamura"
recommended_hotel = agent.recommend_hotel(hotels, 'cheapest')
print(f"Recommended hotel (cheapest): {recommended_hotel['name']}")
# Hakbang 2: Pinagninilayan ng agent ang pagpili at inaayos ang estratehiya kung kinakailangan
reflection_result = agent.reflect_on_choice()
print(reflection_result)
# Hakbang 3: Muling nirerekomenda ng agent, sa pagkakataong ito gamit ang inayos na estratehiya
adjusted_recommendation = agent.recommend_hotel(hotels, 'highest_quality')
print(f"Adjusted hotel recommendation (highest_quality): {adjusted_recommendation['name']}")
Ang susi dito ay ang kakayahan ng ahente na:
Isang simpleng anyo ito ng metacognition kung saan kaya ng sistema na i-adjust ang proseso ng pangangatwiran base sa internal na feedback.
Ang metacognition ay isang makapangyarihang kasangkapan na maaaring lubos na magpahusay sa kakayahan ng mga AI agent. Sa pamamagitan ng pagsasama ng mga metacognitive na proseso, makakalikha ka ng mga ahenteng mas matalino, nababagay, at mas epektibo. Gamitin ang mga dagdag na resources upang higit pang tuklasin ang kamangha-manghang daigdig ng metacognition sa mga AI agent.
Sumali sa Microsoft Foundry Discord upang makipagkita sa ibang mga nag-aaral, dumalo sa office hours, at makuha ang mga sagot sa iyong mga tanong tungkol sa AI Agents.
Paunawa:
Ang dokumentong ito ay isinalin gamit ang serbisyo ng AI translation na Co-op Translator. Bagama’t aming pagsisikapan ang pagiging tumpak, pakatandaan na ang mga awtomatikong salin ay maaaring maglaman ng mga pagkakamali o di-tumpak na impormasyon. Ang orihinal na dokumento sa orihinal nitong wika ang dapat ituring na pangunahing sanggunian. Para sa mga mahahalagang impormasyon, inirerekomenda ang propesyonal na pagsasalin ng tao. Hindi kami mananagot sa anumang hindi pagkakaunawaan o maling interpretasyon na maaaring magmula sa paggamit ng salin na ito.