Простой «агент»: программа, выбирающая инструмент
Агент — это программа, которая разбивает задачу на шаги и при необходимости пользуется инструментами (калькулятор, поиск, файл). Типичный цикл: модель видит задачу и определяет, какой инструмент и с какими аргументами вызвать (часто в виде JSON); программа запускает инструмент и возвращает результат модели; модель строит ответ на основе этого результата.
В этом уроке самой модели нет: вместо неё даётся готовый словарь-«вызов», а мы пишем часть программы: по имени инструмента в вызове запускаем нужную функцию. Это упрощённый пример; в настоящих агентах есть и обработка ошибок, несколько шагов, разрешения и так далее.
def kvadrat(son):
return son * son
VOSITALAR = {"kvadrat": kvadrat}
def agent(chaqiriq):
nom = chaqiriq["vosita"]
if nom in VOSITALAR:
return VOSITALAR[nom](chaqiriq["son"])
return "vosita topilmadi"
print(agent({"vosita": "kvadrat", "son": 7}))
print(agent({"vosita": "qidiruv", "son": 7}))Результат49
vosita topilmadiПравило безопасности: давайте агенту только необходимые инструменты и проверяйте результат. Неизвестный или неверный вызов не должен ронять программу: ситуация «vosita topilmadi» выше — пример такой обработки.
Запомните
- Агент = модель + инструменты + программа, запускающая инструменты.
- Имя инструмента и аргументы передаются словарём (JSON).
- Неизвестный вызов обрабатывайте без сбоя.
Упражнение
Кто выполняет точный арифметический расчёт в агентной системе?
Ответ и пояснение
- Инструмент (функция) в программе: модель вызывает его и получает результат обратно. (верный ответ)так расчёт выполняется проверяемым кодом и точно.
- Только модель, генерируя текст.в этом случае в длинных расчётах выше риск ошибки.
- Пользователь вручную.смысл агента как раз в автоматизации такой работы.
Упражнения с кодом
- Напишите функцию
kalkulyator(a, b, amal): еслиamalравно+,-,*или/, она возвращает соответствующий результат.
Подсказка: Для каждой операции напишите условие вродеif amal == "+":и сделайтеreturn. - Напишите функцию
agent(chaqiriq): если значениеvositaравноkalkulyator, она вызывает калькулятор сa,b,amalи возвращает результат; для другого инструмента возвращает текстvosita topilmadi.
Подсказка: Проверьтеchaqiriq["vosita"]; калькулятору передайтеchaqiriq["a"],chaqiriq["b"]иchaqiriq["amal"].
Выполните упражнение в приложении.
Практическое задание
Добавьте в функцию kalkulyator случай деления на ноль: вместо ошибки пусть возвращается понятный текст.
- Написал условие для деления на ноль
- Проверил с операцией
/
Словарь
Интерактивный режим: поиск, прогресс и упражнения на Python.
