(Кликнете върху изображението по-горе, за да гледате видеото на този урок)
Добре дошли в урока за метакогниция при AI агенти! Тази глава е предназначена за начинаещи, които се интересуват как AI агентите могат да мислят за собствените си мисловни процеси. В края на урока ще разберете ключови концепции и ще имате практически примери за прилагане на метакогниция в дизайна на AI агенти.
След завършване на този урок ще можете да:
- Разберете последиците от цикли на разсъждение в дефинициите на агенти.
- Използвате техники за планиране и оценка, за да подпомогнете самокоригиращи се агенти.
- Създавате собствени агенти, способни да манипулират код за изпълнение на задачи.
Метакогницията се отнася до по-високите когнитивни процеси, които включват мислене за собственото мислене. За AI агентите това означава способността да оценяват и коригират действията си въз основа на самосъзнание и минал опит. Метакогницията, или „мислене за мисленето“, е важна концепция при разработването на агентни AI системи. Тя включва AI системи, които са наясно със собствените си вътрешни процеси и могат да наблюдават, регулират и адаптират поведението си съответно. Подобно на това, което правим, когато „четем стаята“ или разглеждаме проблем. Това самосъзнание помага на AI системите да вземат по-добри решения, да откриват грешки и да подобряват представянето си с времето – отново връзка с теста на Тюринг и дебата дали AI ще поеме контрола.
В контекста на агентните AI системи, метакогницията може да помогне за решаването на няколко предизвикателства, като например:
- Прозрачност: Осигуряване на възможност AI системите да обясняват своите разсъждения и решения.
- Разсъждение: Подобряване на способността на AI системите да синтезират информация и да вземат обосновани решения.
- Адаптация: Позволяване на AI системите да се приспособяват към нови среди и променящи се условия.
- Възприятие: Подобряване на точността на AI системите при разпознаване и интерпретиране на данни от околната среда.
Метакогницията, или „мислене за мисленето“, е по-висок когнитивен процес, който включва самосъзнание и саморегулация на собствените когнитивни процеси. В сферата на AI, метакогницията дава възможност на агентите да оценяват и адаптират своите стратегии и действия, водещо до подобрено решаване на проблеми и вземане на решения. Като разберете метакогницията, можете да проектирате AI агенти, които не само са по-интелигентни, но и по-адаптивни и ефективни. В истинската метакогниция AI би разсъждавал явно за собственото си разсъждение.
Пример: „Приоритизирах по-евтини полети, защото... може да изпускам директни полети, затова ще проверя отново.“ Следене на начина или причината, поради която е избрал определен маршрут.
- Забелязване, че е направил грешки, защото е разчитал прекалено много на предпочитанията на потребителя от предишния път, затова променя стратегията си за вземане на решения, а не само крайното препоръчване.
- Диагностициране на модели като: „Всеки път, когато потребителят споменава ‘прекалено претъпкано’, не трябва само да премахвам определени атракции, но и да осъзная, че методът ми за избор на ‘топ атракции’ е погрешен, ако винаги ги класирам по популярност.“
Метакогницията играе ключова роля в дизайна на AI агенти по няколко причини:
- Саморефлексия: Агентите могат да оценяват собственото си представяне и да идентифицират области за подобрение.
- Адаптивност: Агентите могат да променят стратегиите си въз основа на минал опит и променящи се условия.
- Корекция на грешки: Агентите могат автономно да откриват и коригират грешки, водещо до по-точни резултати.
- Управление на ресурси: Агентите могат да оптимизират използването на ресурси, като време и изчислителна мощ, чрез планиране и оценка на действията си.
Преди да навлезем в метакогнитивните процеси, е важно да разберем основните компоненти на AI агент. Един AI агент обикновено се състои от:
- Персона: Личността и характеристиките на агента, които определят как той взаимодейства с потребителите.
- Инструменти: Възможностите и функциите, които агентът може да изпълнява.
- Умения: Знанията и експертизата, които агентът притежава.
Тези компоненти работят заедно, за да създадат „единица за експертиза“, която може да изпълнява конкретни задачи.
Пример: Помислете за туристически агент, който не само планира вашата почивка, но и коригира маршрута си въз основа на данни в реално време и предишен опит на клиентите.
Представете си, че проектирате туристически агент, задвижван от AI. Този агент, „Travel Agent“, помага на потребителите да планират ваканциите си. За да включите метакогниция, Travel Agent трябва да оценява и коригира действията си въз основа на самосъзнание и минал опит. Ето как метакогницията може да играе роля:
Текущата задача е да помогне на потребител да планира пътуване до Париж.
- Събиране на предпочитанията на потребителя: Попитайте потребителя за дати на пътуване, бюджет, интереси (напр. музеи, кухня, пазаруване) и специфични изисквания.
- Извличане на информация: Търсене на полети, настаняване, атракции и ресторанти, които съответстват на предпочитанията на потребителя.
- Генериране на препоръки: Предоставяне на персонализиран маршрут с детайли за полети, хотелски резервации и предложени дейности.
- Корекция въз основа на обратна връзка: Попитайте потребителя за мнение относно препоръките и направете необходимите корекции.
- Достъп до бази данни за полети и хотелски резервации.
- Информация за парижки атракции и ресторанти.
- Данни за обратна връзка от предишни взаимодействия с потребители.
Travel Agent използва метакогниция, за да оцени представянето си и да се учи от минал опит. Например:
- Анализ на обратната връзка от потребителите: Travel Agent преглежда мненията, за да определи кои препоръки са били добре приети и кои не, и съответно коригира бъдещите си предложения.
- Адаптивност: Ако потребителят е споменал, че не харесва претъпкани места, Travel Agent ще избягва да препоръчва популярни туристически обекти в пикови часове.
- Корекция на грешки: Ако Travel Agent е направил грешка при предишна резервация, например е предложил хотел, който е бил изцяло резервиран, той се учи да проверява наличността по-стриктно преди да прави препоръки.
Ето опростен пример на код за 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):
# Search for flights, hotels, and attractions based on preferences
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)
# Analyze feedback and adjust future recommendations
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
# Example usage
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)- Саморефлексия: Агентите могат да анализират представянето си и да откриват области за подобрение.
- Адаптивност: Агентите могат да променят стратегии въз основа на обратна връзка и променящи се условия.
- Корекция на грешки: Агентите могат автономно да откриват и коригират грешки.
- Управление на ресурси: Агентите могат да оптимизират използването на ресурси като време и изчислителна мощ.
Чрез включване на метакогниция, Travel Agent може да предоставя по-персонализирани и точни препоръки за пътуване, подобрявайки цялостното потребителско изживяване.
Планирането е ключов компонент от поведението на AI агентите. То включва очертаване на стъпките, необходими за постигане на цел, като се вземат предвид текущото състояние, ресурсите и възможните препятствия.
- Текуща задача: Ясно дефиниране на задачата.
- Стъпки за изпълнение на задачата: Разбиване на задачата на управляеми стъпки.
- Необходими ресурси: Идентифициране на нужните ресурси.
- Опит: Използване на минал опит за информиране на планирането.
Пример: Ето стъпките, които 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)
# Example usage within a booing request
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)Първо нека разберем разликата между RAG Tool и Pre-emptive Context Load
RAG комбинира система за извличане с генеративен модел. Когато се направи заявка, системата за извличане намира релевантни документи или данни от външен източник, а тази информация се използва за обогатяване на входа към генеративния модел. Това помага на модела да генерира по-точни и контекстуално релевантни отговори.
В RAG система агентът извлича релевантна информация от база знания и я използва за генериране на подходящи отговори или действия.
Коригиращият RAG подход се фокусира върху използването на RAG техники за коригиране на грешки и подобряване на точността на AI агентите. Това включва:
- Техника за подканване: Използване на специфични подканващи фрази, за да насочат агента към извличане на релевантна информация.
- Инструмент: Прилагане на алгоритми и механизми, които позволяват на агента да оценява релевантността на извлечената информация и да генерира точни отговори.
- Оценка: Непрекъснато оценяване на представянето на агента и правене на корекции за подобряване на точността и ефективността.
Помислете за търсещ агент, който извлича информация от уеб, за да отговаря на потребителски запитвания. Коригиращият RAG подход може да включва:
- Техника за подканване: Формулиране на търсещи заявки въз основа на входа на потребителя.
- Инструмент: Използване на алгоритми за обработка на естествен език и машинно обучение за класиране и филтриране на резултатите.
- Оценка: Анализ на обратната връзка от потребителите за идентифициране и коригиране на неточности в извлечената информация.
Коригиращият RAG (Retrieval-Augmented Generation) подобрява способността на AI да извлича и генерира информация, като коригира неточности. Нека видим как Travel Agent може да използва този подход, за да предоставя по-точни и релевантни препоръки за пътуване.
Това включва:
- Техника за подканване: Използване на специфични подканващи фрази, за да насочи агента към извличане на релевантна информация.
- Инструмент: Прилагане на алгоритми и механизми, които позволяват на агента да оценява релевантността на извлечената информация и да генерира
Предварителното зареждане на контекст включва зареждане на релевантна информация или фон в модела преди обработката на заявка. Това означава, че моделът има достъп до тази информация от самото начало, което му помага да генерира по-информирани отговори, без да се налага да търси допълнителни данни по време на процеса.
Ето един опростен пример как може да изглежда предварителното зареждане на контекст за приложение на туристически агент на Python:
class TravelAgent:
def __init__(self):
# Pre-load popular destinations and their information
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):
# Fetch destination information from pre-loaded context
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}."
# Example usage
travel_agent = TravelAgent()
print(travel_agent.get_destination_info("Paris"))
print(travel_agent.get_destination_info("Tokyo"))-
Инициализация (
__init__метод): КласътTravelAgentпредварително зарежда речник с информация за популярни дестинации като Париж, Токио, Ню Йорк и Сидни. Този речник включва детайли като държава, валута, език и основни забележителности за всяка дестинация. -
Извличане на информация (
get_destination_infoметод): Когато потребителят зададе въпрос за конкретна дестинация, методътget_destination_infoизвлича съответната информация от предварително заредения речник с контекст.
Чрез предварително зареждане на контекста, приложението на туристическия агент може бързо да отговаря на запитванията на потребителите, без да се налага да търси тази информация в реално време от външен източник. Това прави приложението по-ефективно и отзивчиво.
Стартирането на план с цел означава започване с ясна цел или желан резултат. Като дефинира тази цел предварително, моделът може да я използва като водещ принцип през целия итеративен процес. Това помага всяка итерация да се приближава към постигането на желания резултат, правейки процеса по-ефективен и фокусиран.
Ето пример как може да стартирате план за пътуване с цел преди итерации за туристически агент на Python:
Туристически агент иска да планира персонализирана ваканция за клиент. Целта е да се създаде пътуване, което максимизира удовлетворението на клиента, базирано на неговите предпочитания и бюджет.
- Дефиниране на предпочитанията и бюджета на клиента.
- Стартиране на първоначалния план въз основа на тези предпочитания.
- Итеративно усъвършенстване на плана, оптимизирайки за удовлетворението на клиента.
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']
# Example usage
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)-
Инициализация (
__init__метод): КласътTravelAgentсе инициализира със списък от потенциални дестинации, всяка с атрибути като име, цена и тип дейност. -
Стартиране на плана (
bootstrap_planметод): Този метод създава първоначален план за пътуване въз основа на предпочитанията и бюджета на клиента. Той преминава през списъка с дестинации и ги добавя към плана, ако съвпадат с предпочитанията и са в рамките на бюджета. -
Съвпадение на предпочитанията (
match_preferencesметод): Този метод проверява дали дадена дестинация отговаря на предпочитанията на клиента. -
Итерация на плана (
iterate_planметод): Този метод усъвършенства първоначалния план, като се опитва да замени всяка дестинация с по-подходяща, като взема предвид предпочитанията и бюджетните ограничения на клиента. -
Изчисляване на разходите (
calculate_costметод): Този метод изчислява общата цена на текущия план, включително потенциална нова дестинация.
- Първоначален план: Туристическият агент създава първоначален план въз основа на предпочитанията на клиента за разглеждане на забележителности и бюджет от 2000 долара.
- Усъвършенстван план: Туристическият агент итеративно усъвършенства плана, оптимизирайки го спрямо предпочитанията и бюджета на клиента.
Чрез стартиране на плана с ясна цел (например максимизиране на удовлетворението на клиента) и итеративно усъвършенстване, туристическият агент може да създаде персонализиран и оптимизиран маршрут за пътуване. Този подход гарантира, че планът съответства на предпочитанията и бюджета на клиента от самото начало и се подобрява с всяка итерация.
Големите езикови модели (LLM) могат да се използват за пренареждане и оценяване чрез оценка на релевантността и качеството на извлечените документи или генерирани отговори. Ето как работи това:
Извличане: Първоначалната стъпка извлича набор от кандидат-документи или отговори въз основа на заявката.
Пренареждане: LLM оценява тези кандидати и ги пренарежда според тяхната релевантност и качество. Тази стъпка гарантира, че най-релевантната и качествена информация се показва първо.
Оценяване: LLM присвоява оценки на всеки кандидат, отразявайки тяхната релевантност и качество. Това помага за избора на най-добрия отговор или документ за потребителя.
Чрез използване на LLM за пренареждане и оценяване, системата може да предостави по-точна и контекстуално релевантна информация, подобрявайки цялостното потребителско изживяване.
Ето пример как туристически агент може да използва Голям езиков модел (LLM) за пренареждане и оценяване на дестинации според предпочитанията на потребителя на Python:
Туристически агент иска да препоръча най-добрите дестинации на клиент според неговите предпочитания. LLM ще помогне за пренареждане и оценяване на дестинациите, за да се гарантира, че най-релевантните опции са представени.
- Събиране на предпочитанията на потребителя.
- Извличане на списък с потенциални дестинации.
- Използване на LLM за пренареждане и оценяване на дестинациите според предпочитанията.
Ето как може да актуализирате предишния пример, за да използвате Azure OpenAI Services:
- Трябва да имате абонамент за Azure.
- Създайте ресурс Azure OpenAI и вземете своя API ключ.
import requests
import json
class TravelAgent:
def __init__(self, destinations):
self.destinations = destinations
def get_recommendations(self, preferences, api_key, endpoint):
# Generate a prompt for the Azure OpenAI
prompt = self.generate_prompt(preferences)
# Define headers and payload for the request
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
}
payload = {
"prompt": prompt,
"max_tokens": 150,
"temperature": 0.7
}
# Call the Azure OpenAI API to get the re-ranked and scored destinations
response = requests.post(endpoint, headers=headers, json=payload)
response_data = response.json()
# Extract and return the recommendations
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
# Example usage
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)-
Инициализация: Класът
TravelAgentсе инициализира със списък от потенциални дестинации, всяка с атрибути като име и описание. -
Получаване на препоръки (
get_recommendationsметод): Този метод генерира заявка за Azure OpenAI услугата въз основа на предпочитанията на потребителя и прави HTTP POST заявка към Azure OpenAI API, за да получи пренаредени и оценени дестинации. -
Генериране на заявка (
generate_promptметод): Този метод създава заявка за Azure OpenAI, включваща предпочитанията на потребителя и списъка с дестинации. Заявката насочва модела да пренареди и оцени дестинациите според предоставените предпочитания. -
API заявка: Използва се библиотеката
requestsза HTTP POST заявка към Azure OpenAI API. Отговорът съдържа пренаредените и оценени дестинации. -
Пример за използване: Туристическият агент събира предпочитанията на потребителя (например интерес към разглеждане на забележителности и разнообразна култура) и използва Azure OpenAI услугата, за да получи пренаредени и оценени препоръки за дестинации.
Не забравяйте да замените your_azure_openai_api_key с вашия реален API ключ за Azure OpenAI и https://your-endpoint.com/... с реалния URL на вашия Azure OpenAI endpoint.
Чрез използване на LLM за пренареждане и оценяване, туристическият агент може да предостави по-персонализирани и релевантни препоръки за пътуване на клиентите, подобрявайки тяхното цялостно изживяване.
Retrieval-Augmented Generation (RAG) може да бъде както техника за подаване на заявки, така и инструмент при разработката на AI агенти. Разбирането на разликата между двете може да ви помогне да използвате RAG по-ефективно в проектите си.
Какво представлява?
- Като техника за подаване на заявки, RAG включва формулиране на конкретни въпроси или заявки, които насочват извличането на релевантна информация от голям корпус или база данни. Тази информация след това се използва за генериране на отговори или действия.
Как работи:
- Формулиране на заявки: Създаване на добре структурирани заявки или въпроси, базирани на задачата или входа на потребителя.
- Извличане на информация: Използване на заявките за търсене на релевантни данни от предварително съществуваща база знания или набор от данни.
- Генериране на отговор: Комбиниране на извлечената информация с генеративни AI модели за създаване на пълен и последователен отговор.
Пример в туристически агент:
- Вход от потребителя: "Искам да посетя музеи в Париж."
- Заявка: "Намери най-добрите музеи в Париж."
- Извлечена информация: Детайли за Лувъра, Музея Орсе и др.
- Генериран отговор: "Ето някои от най-добрите музеи в Париж: Лувър, Музей Орсе и Център Помпиду."
Какво представлява?
- Като инструмент, RAG е интегрирана система, която автоматизира процеса на извличане и генериране, улеснявайки разработчиците при имплементиране на сложни AI функционалности без ръчно създаване на заявки за всяка заявка.
Как работи:
- Интеграция: Вграждане на RAG в архитектурата на AI агента, позволяващо автоматично управление на задачите по извличане и генериране.
- Автоматизация: Инструментът управлява целия процес – от получаване на входа от потребителя до генериране на крайния отговор, без нужда от ръчни заявки за всяка стъпка.
- Ефективност: Подобрява производителността на агента чрез оптимизиране на процеса на извличане и генериране, позволявайки по-бързи и точни отговори.
Пример в туристически агент:
- Вход от потребителя: "Искам да посетя музеи в Париж."
- RAG инструмент: Автоматично извлича информация за музеите и генерира отговор.
- Генериран отговор: "Ето някои от най-добрите музеи в Париж: Лувър, Музей Орсе и Център Помпиду."
| Аспект | Техника за подаване на заявки | Инструмент |
|---|---|---|
| Ръчно срещу автоматично | Ръчно формулиране на заявки за всяка заявка | Автоматизиран процес за извличане и генериране |
| Контрол | Повече контрол върху процеса на извличане | Оптимизира и автоматизира извличането и генерирането |
| Гъвкавост | Позволява персонализирани заявки според нуждите | По-ефективен за мащабни реализации |
| Сложност | Изисква създаване и настройка на заявки | По-лесен за интеграция в архитектурата на AI агент |
Пример за техника за подаване на заявки:
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)Пример за инструмент:
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)Оценката на релевантността е ключов аспект от представянето на AI агенти. Тя гарантира, че информацията, извлечена и генерирана от агента, е подходяща, точна и полезна за потребителя. Нека разгледаме как да оценяваме релевантността в AI агенти, включително практически примери и техники.
-
Осъзнаване на контекста:
- Агентът трябва да разбира контекста на заявката на потребителя, за да извлича и генерира релевантна информация.
- Пример: Ако потребителят пита за "най-добрите ресторанти в Париж", агентът трябва да вземе предвид предпочитанията на потребителя, като тип кухня и бюджет.
-
Точност:
- Информацията, предоставена от агента, трябва да е фактологично вярна и актуална.
- Пример: Препоръчване на ресторанти, които в момента са отворени и имат добри отзиви, вместо остарели или затворени опции.
-
Намерение на потребителя:
- Агентът трябва да разбира намерението зад заявката, за да предостави най-релевантната информация.
- Пример: Ако потребителят търси "бюджетни хотели", агентът трябва да приоритизира достъпни опции.
-
Обратна връзка:
- Непрекъснатото събиране и анализиране на обратна връзка от потребителите помага на агента да усъвършенства процеса на оценка на релевантността.
- Пример: Включване на оценки и коментари от потребители за предишни препоръки, за да се подобрят бъдещите отговори.
-
Оценяване на релевантността:
-
Присвояване на оценка за релевантност на всеки извлечен елемент според това колко добре съвпада с заявката и предпочитанията на потребителя.
-
Пример:
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
-
-
Филтриране и класиране:
-
Филтриране на нерелевантни елементи и класиране на останалите според оценките за релевантност.
-
Пример:
def filter_and_rank(items, query): ranked_items = sorted(items, key=lambda item: relevance_score(item, query), reverse=True) return ranked_items[:10] # Return top 10 relevant items
-
-
Обработка на естествен език (NLP):
-
Използване на NLP техники за разбиране на заявката на потребителя и извличане на релевантна информация.
-
Пример:
def process_query(query): # Use NLP to extract key information from the user's query processed_query = nlp(query) return processed_query
-
-
Интеграция на обратна връзка от потребители:
-
Събиране на обратна връзка за предоставените препоръки и използването ѝ за коригиране на бъдещите оценки на релевантността.
-
Пример:
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
-
Ето един практичен пример как 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()
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] # Return top 10 relevant items
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
# Example usage
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)Търсенето с намерение включва разбиране и интерпретиране на основната цел или мотив зад заявката на потребителя, за да се извлече и генерира най-релевантната и полезна информация. Този подход надхвърля просто съвпадение на ключови думи и се фокусира върху разбирането на действителните нужди и контекст на потребителя.
- Разбиране на намерението на потребителя:
- Намерението на потребителя може да се класифицира в три основни типа: информационно, навигационно и транзакционно.
- Информационно намерение: Потребителят търси информация по дадена тема (например "К
- Намерението на потребителя може да се класифицира в три основни типа: информационно, навигационно и транзакционно.
Нека вземем Travel Agent като пример, за да видим как може да се реализира търсене с намерение.
-
Събиране на предпочитанията на потребителя
class Travel_Agent: def __init__(self): self.user_preferences = {} def gather_preferences(self, preferences): self.user_preferences = preferences
-
Разбиране на намерението на потребителя
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): # Combine current query with user history to understand context context = { "current_query": query, "user_history": user_history } return context
-
Търсене и персонализиране на резултатите
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): # Example search logic for informational intent results = search_web(f"best {preferences['interests']} in {preferences['destination']}") return results def search_navigation(query): # Example search logic for navigational intent results = search_web(query) return results def search_transaction(query, preferences): # Example search logic for transactional intent results = search_web(f"book {query} to {preferences['destination']}") return results def personalize_results(results, user_history): # Example personalization logic personalized = [result for result in results if result not in user_history] return personalized[:10] # Return top 10 personalized results
-
Пример за използване
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)
Агенти за генериране на код използват AI модели, за да пишат и изпълняват код, решавайки сложни задачи и автоматизирайки процеси.
Агентите за генериране на код използват генеративни AI модели, за да пишат и изпълняват код. Тези агенти могат да решават сложни проблеми, да автоматизират задачи и да предоставят ценни прозрения чрез генериране и изпълнение на код на различни програмни езици.
- Автоматизирано генериране на код: Създаване на кодови фрагменти за конкретни задачи, като анализ на данни, уеб скрейпинг или машинно обучение.
- SQL като RAG: Използване на SQL заявки за извличане и манипулиране на данни от бази данни.
- Решаване на проблеми: Създаване и изпълнение на код за решаване на конкретни проблеми, като оптимизиране на алгоритми или анализ на данни.
Представете си, че проектирате агент за генериране на код. Ето как може да работи:
- Задача: Анализ на набор от данни за идентифициране на тенденции и модели.
- Стъпки:
- Зареждане на набора от данни в инструмент за анализ.
- Генериране на SQL заявки за филтриране и агрегиране на данните.
- Изпълнение на заявките и извличане на резултатите.
- Използване на резултатите за създаване на визуализации и прозрения.
- Необходими ресурси: Достъп до набора от данни, инструменти за анализ и SQL възможности.
- Опит: Използване на предишни резултати от анализи за подобряване на точността и релевантността на бъдещите анализи.
В този пример ще проектираме агент за генериране на код, Travel Agent, който да помага на потребителите при планиране на пътувания чрез генериране и изпълнение на код. Този агент може да се справя със задачи като извличане на опции за пътуване, филтриране на резултати и съставяне на маршрут с помощта на генеративен AI.
- Събиране на предпочитанията на потребителя: Събира входни данни като дестинация, дати на пътуване, бюджет и интереси.
- Генериране на код за извличане на данни: Създава кодови фрагменти за извличане на информация за полети, хотели и атракции.
- Изпълнение на генерирания код: Стартира генерирания код за получаване на актуална информация.
- Генериране на маршрут: Събира получените данни в персонализиран план за пътуване.
- Настройване според обратна връзка: Получава обратна връзка от потребителя и при необходимост генерира нов код за подобряване на резултатите.
-
Събиране на предпочитанията на потребителя
class Travel_Agent: def __init__(self): self.user_preferences = {} def gather_preferences(self, preferences): self.user_preferences = preferences
-
Генериране на код за извличане на данни
def generate_code_to_fetch_data(preferences): # Example: Generate code to search for flights based on user preferences 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): # Example: Generate code to search for hotels code = f""" def search_hotels(): import requests response = requests.get('https://api.example.com/hotels', params={preferences}) return response.json() """ return code
-
Изпълнение на генерирания код
def execute_code(code): # Execute the generated code using 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)
-
Генериране на маршрут
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)
-
Настройване според обратна връзка
def adjust_based_on_feedback(feedback, preferences): # Adjust preferences based on user feedback 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) # Regenerate and execute code with updated preferences 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)
Въз основа на схемата на таблицата може да се подобри процесът на генериране на заявки чрез използване на осъзнаване на околната среда и разсъждения.
Ето пример как това може да се направи:
- Разбиране на схемата: Системата ще разбира схемата на таблицата и ще използва тази информация, за да обоснове генерирането на заявките.
- Настройване според обратна връзка: Системата ще коригира предпочитанията на потребителя въз основа на обратна връзка и ще преценява кои полета в схемата трябва да се актуализират.
- Генериране и изпълнение на заявки: Системата ще генерира и изпълнява заявки за извличане на актуализирани данни за полети и хотели според новите предпочитания.
Ето актуализиран пример на Python код, който включва тези концепции:
def adjust_based_on_feedback(feedback, preferences, schema):
# Adjust preferences based on user feedback
if "liked" in feedback:
preferences["favorites"] = feedback["liked"]
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
# Reasoning based on schema to adjust other related preferences
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):
# Custom logic to adjust preferences based on schema and 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):
# Generate code to fetch flight data based on updated preferences
return f"fetch_flights(preferences={preferences})"
def generate_code_to_fetch_hotels(preferences):
# Generate code to fetch hotel data based on updated preferences
return f"fetch_hotels(preferences={preferences})"
def execute_code(code):
# Simulate execution of code and return mock data
return {"data": f"Executed: {code}"}
def generate_itinerary(flights, hotels, attractions):
# Generate itinerary based on flights, hotels, and attractions
return {"flights": flights, "hotels": hotels, "attractions": attractions}
# Example schema
schema = {
"favorites": {"positive_adjustment": "increase", "negative_adjustment": "decrease", "default": "neutral"},
"avoid": {"positive_adjustment": "decrease", "negative_adjustment": "increase", "default": "neutral"}
}
# Example usage
preferences = {"favorites": "sightseeing", "avoid": "crowded places"}
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_preferences = adjust_based_on_feedback(feedback, preferences, schema)
# Regenerate and execute code with updated preferences
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определя как да се коригират предпочитанията според обратната връзка. Включва полета катоfavoritesиavoidс съответните корекции. - Настройване на предпочитанията (
adjust_based_on_feedbackметод): Този метод коригира предпочитанията според обратната връзка и схемата. - Настройки базирани на околната среда (
adjust_based_on_environmentметод): Този метод персонализира корекциите според схемата и обратната връзка. - Генериране и изпълнение на заявки: Системата генерира код за извличане на актуализирани данни за полети и хотели според коригираните предпочитания и симулира изпълнението на тези заявки.
- Генериране на маршрут: Системата създава актуализиран маршрут въз основа на новите данни за полети, хотели и атракции.
Чрез правене на системата осъзната за околната среда и използване на разсъждения върху схемата, тя може да генерира по-точни и релевантни заявки, което води до по-добри препоръки за пътуване и по-персонализирано потребителско изживяване.
SQL (Structured Query Language) е мощен инструмент за работа с бази данни. Когато се използва като част от Retrieval-Augmented Generation (RAG) подход, SQL може да извлича релевантни данни от бази данни, за да информира и генерира отговори или действия в AI агенти. Нека разгледаме как SQL може да се използва като RAG техника в контекста на Travel Agent.
-
Взаимодействие с база данни:
- SQL се използва за заявки към бази данни, извличане на релевантна информация и манипулиране на данни.
- Пример: Извличане на детайли за полети, информация за хотели и атракции от база данни за пътувания.
-
Интеграция с RAG:
- SQL заявките се генерират въз основа на входа и предпочитанията на потребителя.
- Извлечените данни се използват за създаване на персонализирани препоръки или действия.
-
Динамично генериране на заявки:
- AI агентът генерира динамични SQL заявки според контекста и нуждите на потребителя.
- Пример: Персонализиране на SQL заявки за филтриране на резултати според бюджет, дати и интереси.
- Автоматизирано генериране на код: Създаване на кодови фрагменти за конкретни задачи.
- SQL като RAG: Използване на SQL заявки за манипулиране на данни.
- Решаване на проблеми: Създаване и изпълнение на код за решаване на проблеми.
Пример: Агент за анализ на данни:
- Задача: Анализ на набор от данни за откриване на тенденции.
- Стъпки:
- Зареждане на набора от данни.
- Генериране на SQL заявки за филтриране на данни.
- Изпълнение на заявки и извличане на резултати.
- Създаване на визуализации и прозрения.
- Ресурси: Достъп до набор от данни, SQL възможности.
- Опит: Използване на предишни резултати за подобряване на бъдещи анализи.
-
Събиране на предпочитанията на потребителя
class Travel_Agent: def __init__(self): self.user_preferences = {} def gather_preferences(self, preferences): self.user_preferences = preferences
-
Генериране на SQL заявки
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
-
Изпълнение на SQL заявки
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
-
Генериране на препоръки
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)
-
Заявка за полети
SELECT * FROM flights WHERE destination='Paris' AND dates='2025-04-01 to 2025-04-10' AND budget='moderate';
-
Заявка за хотели
SELECT * FROM hotels WHERE destination='Paris' AND budget='moderate';
-
Заявка за атракции
SELECT * FROM attractions WHERE destination='Paris' AND interests='museums, cuisine';
Чрез използване на SQL като част от Retrieval-Augmented Generation (RAG) техника, AI агенти като Travel Agent могат динамично да извличат и използват релевантни данни, за да предоставят точни и персонализирани препоръки.
За да демонстрираме реализация на метакогниция, нека създадем прост агент, който разсъждава върху процеса на вземане на решения, докато решава проблем. В този пример ще изградим система, в която агентът се опитва да оптимизира избора на хотел, но след това оценява собственото си разсъждение и коригира стратегията си, когато направи грешки или подоптимални избори.
Ще симулираме това с базов пример, при който агентът избира хотели на база комбинация от цена и качество, но „разсъждава“ върху решенията си и се коригира съответно.
- Първоначално решение: Агентът избира най-евтиния хотел, без да отчита качеството.
- Разсъждение и оценка: След първоначалния избор агентът проверява дали хотелът е „лош“ избор чрез обратна връзка от потребителя. Ако установи, че качеството е било твърде ниско, той разсъждава върху своето решение.
- Коригиране на стратегията: Агентът коригира стратегията си въз основа на разсъжденията и преминава от „най-евтин“ към „най-високо качество“, подобрявайки процеса на вземане на решения в бъдещи итерации.
Ето пример:
class HotelRecommendationAgent:
def __init__(self):
self.previous_choices = [] # Stores the hotels chosen previously
self.corrected_choices = [] # Stores the corrected choices
self.recommendation_strategies = ['cheapest', 'highest_quality'] # Available strategies
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]
# Let's assume we have some user feedback that tells us whether the last choice was good or not
user_feedback = self.get_user_feedback(last_choice)
if user_feedback == "bad":
# Adjust strategy if the previous choice was unsatisfactory
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"
# Simulate a list of hotels (price and quality)
hotels = [
{'name': 'Budget Inn', 'price': 80, 'quality': 6},
{'name': 'Comfort Suites', 'price': 120, 'quality': 8},
{'name': 'Luxury Stay', 'price': 200, 'quality': 9}
]
# Create an agent
agent = HotelRecommendationAgent()
# Step 1: The agent recommends a hotel using the "cheapest" strategy
recommended_hotel = agent.recommend_hotel(hotels, 'cheapest')
print(f"Recommended hotel (cheapest): {recommended_hotel['name']}")
# Step 2: The agent reflects on the choice and adjusts strategy if necessary
reflection_result = agent.reflect_on_choice()
print(reflection_result)
# Step 3: The agent recommends again, this time using the adjusted strategy
adjusted_recommendation = agent.recommend_hotel(hotels, 'highest_quality')
print(f"Adjusted hotel recommendation (highest_quality): {adjusted_recommendation['name']}")Ключово тук е способността на агента да:
- Оценява предишните си избори и процеса на вземане на решения.
- Коригира стратегията си въз основа на това разсъждение, т.е. метакогниция в действие.
Това е проста форма на метакогниция, при която системата може да коригира процеса си на разсъждение въз основа на вътрешна обратна връзка.
Метакогницията е мощен инструмент, който може значително да подобри възможностите на AI агентите. Чрез включване на метакогнитивни процеси можете да проектирате агенти, които са по-интелигентни, адаптивни и ефективни. Използвайте допълнителните ресурси, за да изследвате по-задълбочено вълнуващия свят на метакогницията в AI агентите.
Отказ от отговорност:
Този документ е преведен с помощта на AI преводаческа услуга Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод.

