Зачем LLM инструменты

Понимаем, почему одной генерации текста мало и что именно дают инструменты.

Инструмент (tool) — внешняя функция, которую LLM может попросить выполнить: расчёт, поиск, запрос к API, выполнение кода. Результат возвращается модели как новое наблюдение.

Чего LLM не умеет сама

LLM предсказывает следующий токен по статистике текста. Из этого вытекают её слабости:

  • Счёт — модель «угадывает» арифметику, а не вычисляет. На больших числах часто ошибается.
  • Свежие факты — она знает только то, что было на обучении; сегодняшняя погода или курс ей недоступны.
  • Точные данные — содержимое вашей базы, документа, таблицы она не видит.
  • Действия — отправить письмо, создать файл, дёрнуть API она физически не может.

Инструменты закрывают ровно эти дыры: то, что модель делает плохо или не может вовсе, она делегирует внешней функции.

Счёт: где модель спотыкается

Покажем разницу между «прикинуть» и «посчитать точно». Калькулятор-инструмент даёт верный результат, на который можно положиться.

# Инструмент-калькулятор — то, что мы дадим агенту вместо «угадывания»
def calculator(expression):
    return eval(expression)

# LLM могла бы «прикинуть» такое в уме и ошибиться:
print("47 * 89 =", calculator("47 * 89"))
print("корень из 2 (10 знаков):", round(2 ** 0.5, 10))
print("сумма 1..100 =", calculator("sum(range(1, 101))"))

Вывод:

47 * 89 = 4183
корень из 2 (10 знаков): 1.4142135624
сумма 1..100 = 5050

Калькулятор всегда точен. Идея агента в том, чтобы модель сама догадалась вызвать такой инструмент, а не считать в уме.

Категории инструментов

КатегорияПримерЗачем
Вычислениякалькулятор, Python-интерпретаторточный счёт
Получение данныхвеб-поиск, чтение базысвежие и точные факты
Действияотправка письма, запись в БДменять внешний мир
Интеграциивызов любого APIсвязь с другими системами

«Code interpreter» как универсальный инструмент

Особый случай — инструмент «выполни код». Вместо десятка узких функций агенту дают возможность написать и запустить Python. Тогда счёт, разбор данных, построение графика — всё это становится одним инструментом. Это мощно, но и опаснее всего: выполнять чужой код нужно в песочнице (раздел 6).

Итог

  • LLM плохо считает, не знает свежих фактов, не видит ваших данных и не может действовать — инструменты закрывают эти дыры.
  • Инструмент — это функция, которую модель просит выполнить; результат возвращается ей как наблюдение.
  • «Выполнить код» — универсальный, но самый опасный инструмент: его запускают в песочнице.
Проверьте себя
1. Почему LLM ненадёжна в арифметике без калькулятора?
AОна не понимает цифры
BОна предсказывает токены по статистике текста, а не вычисляет точно
CУ неё отключён режим математики
DЧисла не помещаются в контекст
2. Что инструмент возвращает в цикл агента после выполнения?
AНовую модель
BРезультат, который становится для агента очередным наблюдением
CГотовый финальный ответ пользователю
DНичего, инструменты не возвращают данные
3. Почему инструмент «выполнить произвольный код» считается самым опасным?
AОн медленный
BЧужой код может навредить, поэтому его нужно запускать в изолированной песочнице
CОн требует отдельной LLM
DОн не возвращает результат
Поддержать проект