tgoop.com/neuraldeep/1579
Last Update:
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!
BY Neural Kovalskii
Share with your friend now:
tgoop.com/neuraldeep/1579