"SGR vs Tools: когда использовать Schema-Guided Reasoning, а когда Function Calling в LLM-системах Сегодня хочу поднять тему, которую у меня часто спрашивают: когда использовать Tool Calling, а когда Schema-Guided Reasoning (SGR) в LLM решениях под капотом? Респект Ринату Абдуллину за отличную систематизацию подхода SGR! Что забавно, я сам использовал похожие паттерны 4-5 месяцев назад загляните в гит, но именно Ринат дал этому четкое название и структуру! SGR vs Tools по моему мнению SGR заставляем LLM мыслить по четким шагам через Structured Output: Анализ → Поиск → Обработка → Вывод в одном запросе Tools даем LLM набор функций для взаимодействия с внешним миром Кстати все больше вижу сдвиг именно в паттерн агент=tool_call MCP+SO(где надо) и теперь SGR: Поиск, API, вычисления, полноценное агентское поведение Пример SGR из моей практики: ```{ ""reasoning"": { ""query_analysis"": { ""user_query"": ""Найди информацию о проекте X"", ""query_interpretation"": ""Пользователь ищет документы по проекту"" }, ""information_search"": { ""search_strategy"": ""Ищу по ключевым словам в базе"", ""relevant_documents"": [...] } }, ""response"": ""Полный ответ на основе найденной информации"" }``` Когда использовать SGR: Анализ и структуризация данных Разбор документов, классификация, отчеты Сложные рассуждения Пошаговый анализ с обоснованием Обработка имеющихся данных Все нужное уже в контексте, нужна предсказуемость но не детерминированность (запомним) Когда использовать Tools: Настоящее агентское поведение LLM сам решает последовательность, адаптируется к результатам, может прерываться Не зря появилась куча оберток типа LangGraph, AutoGen, CrewAI все строятся именно на свойствах Tools когда модель сама принимает решение их вызвать А MCP от Anthropic на мой взгляд это попытка стандартизировать агентские инструментарий __Взаимодействие с внешними системами Интернет, email, календарь, API__ Критически важно для production Evals и мониторинг! SGR: Все рассуждения видны и логированы Легко тестировать каждый шаг A/B тестирование предсказуемо Tools: LLM сам решает какой инструмент вызвать — черный ящик Сложно понять WHY выбрана функция Непредсказуемая цепочка вызовов Дебаг в production = боль Из реального опыта: При настройке NSFW-фильтров с Tools ушло бы недели на понимание решений модели с SO было бы сложно дебажить. С SGR за день увидел проблемы в reasoning и пофиксил качество! Ключевое различие — агентность vs структурированность SGR = мощное рассуждение без истинной агентности Один запрос → один ответ Для агентского поведения придется костылить Tools = настоящее агентское поведение из коробки LLM сам управляет workflow, нативные прерывания в большинстве фреймворков и API Поэтому все современные агентские фреймворки базируются именно на Tools Гибридный подход? Искал медь а нашел золото! SGR для принятия решений какой инструмент использовать Tools для выполнения действий получение данных и ощущение агентности SGR для финальной обработки структуризация результата Вывод финально SGR когда нужно контролируемое рассуждение и мониторинг Tools когда нужно настоящее агентское поведение SGR работает даже на локальных 7B моделях и даже на qwen3 4B Update: Ринат подкинул очень интересную демку, смешение в сторону SGR в агентах Как запускать вместе и то и другое __ Можно и вместе. См демку с многоходовым ____бизнес-ассистентом____ Ребята из ____Сбера____ допилили это до запуска на Qwen 3 4B __ В production качество мониторинга = выживание продукта А как вы решаете эту дилемму? Поделитесь опытом! P.S. Спасибо Ринату за системный подход к SGR это свежий глоток точности и постоянства в нашем мире LLM! P.S.S Забирайте все ссылки как памятку, SGR это то что будет двигать production сектор дальше к внедрению LLM!"