🐛 Частые ошибки

← К оглавлению урока

⚡ Топ-3 ошибки

  • Забытые ключи: GOOGLE_API_KEY / TAVILY_API_KEY
  • Один и тот же / отсутствующий thread_id → память «течёт» или теряется
  • Слабое description у инструмента → агент его не вызывает

1. Не установлены ключи API

Агенту нужны два ключа. Google-библиотека читает GOOGLE_API_KEY (а не GEMINI_API_KEY), поиск Tavily — TAVILY_API_KEY.

os.environ["GOOGLE_API_KEY"] = os.getenv("GEMINI_API_KEY")
os.environ["TAVILY_API_KEY"] = os.getenv("TAVILY_API_KEY")
Симптом: ошибки авторизации / «ключ не найден» при вызове модели или поиска.

2. Память: не тот thread_id

Память привязана к thread_id. Если не передать config или менять thread_id на каждый запрос — агент «забывает» предыдущие сообщения. А общий thread_id на всех пользователей смешает их диалоги.

3. Слабое описание инструмента

LLM решает вызвать инструмент по его description. Расплывчатое описание → инструмент игнорируется или вызывается невпопад. Пишите чётко, что инструмент делает и когда его применять.

4. Слишком много / опасные инструменты

Чем больше инструментов, тем труднее агенту выбрать правильный. А инструменты с «опасными» действиями (удаление файлов, платежи, запись в БД) требуют осторожности и подтверждений — агент может вызвать их не вовремя.

5. Бесконечный цикл рассуждений

Иногда агент «зацикливается»: рассуждает и вызывает инструменты по кругу. Ограничивайте число шагов (лимит итераций/рекурсии в настройках агента) и тестируйте на сложных запросах.

6. Слепое доверие агенту

Агент может ошибиться в выборе инструмента или «додумать» ответ. Для ответственных задач — логируйте шаги (stream), проверяйте результаты и предусматривайте ограничения. Помните про этику и безопасность.

7. Устаревший initialize_agent

Код из старых статей на initialize_agent выдаёт предупреждения об устаревании. Используйте create_react_agent (LangGraph). См. Старый vs Новый.

⚠️ Тексты ошибок и параметры лимитов зависят от версий LangChain/LangGraph.