Второй примитив — resource, ресурс. Если tool — это глагол (сделать), то resource — это существительное (прочитать). Ресурс — данные, доступные по адресу: файл, запись в базе, страница документации, выгрузка отчёта.
Адрес, а не действие
У ресурса есть идентификатор-адрес, похожий на URL. Сервер говорит: «вот по этому адресу лежат такие-то данные, их можно прочитать». Например:
file:///proekt/dogovory/2026-01.csv
tracker://task/4821
db://klienty/schema
Запрос ресурса — это чтение. Он не создаёт, не удаляет, не отправляет. Поэтому ресурсы по своей природе безопаснее инструментов: максимум, что они делают, — отдают данные.
Resource против tool
Одни и те же данные можно отдать двумя способами, и разница принципиальна:
- resource «договор №4821» — это сам текст договора, который прикладывается в контекст для чтения;
- tool «найти договоры за январь» — это действие: модель просит сервер выполнить поиск и вернуть результат.
Грубое правило: если нужно взять конкретные данные по известному адресу — это ресурс. Если нужно, чтобы сервер что-то выполнил (поискал, посчитал, изменил) — это инструмент.
Третий примитив — промпты — разберём в следующем уроке.