Abstract: The article discusses key approaches to integrating external data sources into the process of text generation in large language models. The basic principles of operation, features of application and the main variations of RAG, Tool-Use frameworks and agent-based frameworks are described. An analysis and comparison of strengths and weaknesses for each approach is carried out.
Keywords: large language model, large language model, retrieval augmented generation, tool calling, autonomous agent
Введение
После появления в 2018 году ChatGPT [1] большие языковые модели (LLM) перестали быть просто научным инструментом. С каждым годом растет количество пользователей и вариаций и новых версий LLM, а также способов их применения для достижения какого-либо полезного результата [2]. Большую часть времени LLM могли работать только с текстом и имели ограничения связанные механизмами их работы – зависимость от обучающей выборки, а также размера и способа работы со своим контекстным окном.
Традиционным решением описанных выше проблем являлось увеличение размера модели – как количества параметров, так и контекстного окна. Однако такой подход приводит к значительному увеличению требований к количеству обучающих данных, ресурсам на обучение и инференс модели. С помощью изменений в архитектуре можно достичь сопоставимого результата [3], однако они все равно не до конца решают описанные выше проблемы.
В результате начали возникать способы повышения эффективности решения задач LLM, основанные на предоставлении механизмов для взаимодействия с внешними источниками и инструментами, что позволяет решать проблему устаревания данных в модели со временем, снижать размер модели за счет выноса данных вне весов, использовать внешние инструменты для выполнения задач не связанных с генерацией текста. На текущий момент существует три основных метода аугментации генерации LLM, которые будут рассмотрены в этой статье: RAG (Retrieval-Augmented Generation); Tool-Use фреймворки; агентные фреймворки.
Tool-Use фреймворки
RAG (Retrieval-Augmented Generation) является методом, позволяющим включать релевантные данные из внешних источников в результаты генерации LLM. Механизм работы RAG можно разбить на два основных шага – получение данных (Retrieve) и аугментированная генерация (Augmented-Generation). На этапе получения данных проводится поиск наиболее подходящей под запрос информации в базе документов. После чего на этапе аугментированной генерации текст запроса и полученная информация комбинируется для генерации ответа модели [4] Ниже кратко описаны основные вариации развития базового подхода RAG.
Self-RAG – отличается от базового RAG тем, что с помощью ввода специальных токенов (reflection tokens), для генерации которых модель дообучается оценивать необходимость использования источника в тексте и выбирать наилучший дополненный данными результат из сгенерированных [5].
Активный RAG (FLARE) – данный подход генерирует временное следующее предложение в ответе для того, чтобы оценить его на необходимость использования базы знаний для получения актуальной информации [6].
Агентский RAG – данный подход отличается включением активных агентов, способных к динамическому принятию решений, в процесс поиска релевантной информации, что позволяет повысить качество ответа за счет итеративного формирования ответа [7]
Мультимодальный RAG – данный подход расширяет базовый RAG за счет обучения модели использованию баз данных которые содержат не только текстовую информацию, но и изображения, звук и прочие модальности [8].
Графовый RAG – данный подход использует LLM для того, чтобы создать граф знаний, где вершины соответствуют ключевым вхождениям в базе знаний, а ребра соответствуют семантическим отношениями между этими корпусами. Созданный граф разделяется на подгруппы по смысловой близости вершин, смысловое содержание которых обобщается с помощью LLM, и затем используется при формировании ответа [9].
HyDE (Hypithetical Document Embeddings) – данный подход вместо поиска информации по базе данных на основе чистого запроса от пользователя сначала генерирует предполагаемый ответ или документ. После чего векторный эмбеддинг сгенерированного текста используется для поиска на основе метрик схожести векторов. [10].
REALM (Retrieval-Augmented Language Model) – в данном подходе этап получения данных интегрирован напрямую в обучаемую языковую модель с помощью использования масок. Внедрение извлечения данных в архитектуру позволяет повысить эффективность работы модели за счет того, что текст с самого начала генерируется с учетом необходимости использования источников [11].
RETRO (Retrieval-Enchanced Transformer) – данный подход модифицирует стандартную архитектуру трансформера, добавляя к ней базу данных в форме большого количества токенов, которые находятся в замороженном состоянии и добавляются в ответ по мере генерации [12].
RAG находит широкое применение во многих задачах обработки текста, где важно качество и точность получаемых данных. Это подтверждается тем, что RAG системы широко используются в QA системах, связанных с финансами, медициной и технической информацией – областями, требующими повышенной точности при генерации ответов [13].
Из потенциально отрицательных сторон RAG выделяют необходимость в создании внешней зависимости от программного интерфейса приложения (API) или базы данных, что приводит к отдельным проблемам связанных с их корректной настройкой и поддержкой работы помимо развертывания LLM. Также наличие внешней API зависимости задачей которой является поиск данных означает возможность возникновения существенной задержки, что усложняет интеграцию RAG систем в высоконагруженные сервисы.
Tool-Use фреймворки
Tool-Use фреймворк является способом организации архитектуры LLM и её окружения таким образом, что последняя может программно взаимодействовать с предоставляемыми фреймворком функциями, внешними инструментами и API. Основной Tool-Use архитектуры является наличие мыслительной петли, в которой LLM работает как центр принятия решений, определяющий когда и как использовать набор внешних инструментов, доступных в её окружении. В соответствии с принятыми решениями выбранный инструмент используется с заданными параметрами, после чего на основе результата его работы формируется конечный ответ модели на запрос. В результате Tool-Use позволяет использовать LLM не как статический репозиторий с информацией, а динамический интерфейс, способный выполнять заданный набор действий в цифровой среде [14-16] В общем случае в процессе Tool-Use выделяют четыре основных этапа:
- Планирование задач – декомпозиция изначальной задачи на набор подзадач с помощью LLM.
- Выбор инструментов – поиск подходящих инструментов среди доступных с помощью LLM или RAG-системы.
- Использование инструментов – вызов выбранных инструментов с помощью Tool сервера.
- Генерация ответа на запрос – сбор и суммаризация данных полученных в результате выполнения инструментов для формирования ответа на запрос пользователя.
Подход Tool-Use является относительно новым направлением в применении LLM для задач помимо генерации текста. Не смотря на это существует множество вариаций этого подхода для множества инструментов, каждый из которых потенциально уникален для среды и ситуации применения метода [15]. За счет относительно абстратктного подхода к вызову инструментов Tool-Use фреймворки позволяют использовать широкий набор внешних инструментов для получения необходимых актуальных данных и последующих дейстий над ними, если это необходимо. При этом Tool-Use в среднем проще и быстрее чем RAG, поскольку не требуется создания специализированной внешней базы знаний и пайплайна для интеграции информации из него в ответ модели, вместо этого вызывается внешний инструмент. Также за счет использования внешнего инструмента результаты его работы являются относительно детерминированными, так как представляются из себя структурированный результат вызова внешнего API. При этом необходимо учитывать, что Tool-Use ограничен в понимании контекста, так как не использует эмбеддинг ответов в запросе аналогично тому как это делается в RAG [14-16].
Агентские фреймворки
Агентный фреймворк представляет из себя систему, которая использует LLM для того, чтобы на основе поставленной сложной задачи составлять план действий и выполнять набор действий по этому плану для достижения поставленного результата [17-19]. В отличие от стандартного взаимодействия в форме запрос-ответ агент может генерировать и обрабатывать множество запросов и ответов для решения задачи в цикле пока задача не будет решена. Также в рамках этого цикла агент может взаимодействовать с набором внешних инструментов и источников данных [17]. Принцип работы агента следующий:
- Планирование – LLM обрабатывает сложную цель, поставленную пользователем, с целью разделения её на набор простых подзадач.
- Выполнение – агент выполняет каждый поставленный шаг с помощью выбора и использования инструментов.
- Наблюдение – агент получает результат работы от инструмента.
- Повтор – LLM проверяет новое состояние с учетом полученных результатов, и если оно удовлетворяет поставленной задаче — заканчивает выполнение, иначе модифицирует план и начинает цикл с начала.
В общем случае агенты понятие очень широкое, поскольку охватывает все системы, где LLM используется для декомпозиции и планирования задач с последующей передачей их на выполнение внешним агентам в форме других LLM или инструментов [17]. Среди общей массы по похожему функционалу выделяют следующие типы агентов:
- Общие – общий вид агента, не заточенный на выполнение каких-либо конкретных задач.
- Инструментальные – агент, обученный управлению набором инструментов для решения узкоспециализированной задачи.
- Симуляционные – агент, существующий и автономно действующий в некой симулированной среде, обычно используется не напрямую для решения какой-либо задачи, а для извлечения и анализа паттернов поведения формирующихся под воздействием среды.
- Воплощенные (embodied) – агент, управляющий каким-либо телесным воплощением в виртуальной или реальной среде.
- Игровые – агент, заточенный на существование и деятельность в какой-либо игре либо для прохождения, либо с целью предоставления реалистичного опыта для игроков.
- Web – агент, основной задачей которого является автоматизация задач взаимодействия с веб-технологиями.
- Ассистенты – агент, созданный для выполнения роли секретаря для одного или нескольких пользователей.
Помимо разделения агентов по функционалу также существует разделение по реализации поскольку создать систему-агента можно несколькими разными способами. Среди подходов к реализации агентов выделяют следующие группы:
- Action Execution (LangChain Tools, LlamaIndex) – агент использует одну или несколько LLM для выбора и использования одного или нескольких доступных ей инструментов для выполнения запроса пользователя.
- Plan and Execute (BabyAGI, AutoGPI) – агент оперирует в автономном режиме в цикле Размышление-Действие-Наблюдение для планирования и выполнения декомпозированной задачи, заданной пользователем.
- Multi-Agent (CrewAI, AutoGen) – представляет из себя ансамбль агентов, коммуницирующих и делегирующих между собой задачи для достижения поставленной цели.
Использование агентов позволяет автономно решать сложные задачи, в том числе по поиску и обработке информации, без человеческого вмешательства. Также появляется возможность изменения количества, качества и прочих параметров набора инструментов, используемых моделью, для повышения эффективности решаемой задачи [17-19]. При этом стоит учитывать, что использование агентов ведет к нескольким последовательным вызовам LLM вместо одного, что делает скорость ответа меньше, а стоимость использования таких систем больше. Также использование внешних инструментов помимо описанных выше преимуществ влечет за собой определенную непредсказуемость в поведении модели и сложность в поиске причины возникающих проблем [17-19].
Сравнение подходов
Выбор между RAG, Tool-Use и Agent Frameworks в качестве инструмента для аугментации генерации LLM с помощью внешних источников в основном является решением, основанным на требованиях к задаче и ограничениях ресурсов.
RAG в силу своих свойств предоставляет качественные результаты при работе со статической, контролируемой базой знаний. Его использование позволяет уменьшить галлюцинации для четко определенных корпусов. В отличие от них, Tool-Use и агентные фреймворки подключаются к динамическим данным в реальном времени, что это создает зависимость от надежности и задержки внешнего API.
RAG является наименее сложной в реализации и работает как единый, усовершенствованный этап генерации. Tool-Use фреймворк добавляет уровень планирования и выполнения. Агентные фреймворки являются наиболее сложными, требующими сложных циклов рассуждений и планирования, но они обеспечивают максимальную автономию для решения открытых целей.
Tool-Use предназначен для обеспечения точности – вызова калькулятора для математики или базы данных для конкретного запроса. RAG предоставляет более широкие, контекстуальные знания из набора документов. Агенты организуют и то, и другое, используя инструменты для обеспечения точности и извлечения контекста, как у RAG, для достижения широкой цели.
Заключение
В большинстве случаев RAG будет являться оптимальным решением для расширения LLM с помощью информации из внешних источников. Применение Tool-Use фреймворкой имеет смысл, когда точность конкретных данных в режиме реального времени имеет первостепенное значение. Агентные фреймворки предназначены для решения сложных многоступенчатых задач по получению и обработке данных в автономном режиме, требующих одновременной работы нескольких инструментов, однако необходимо учитывать, что они требуют наиболее высоких затрат на разработку и вычисления.
Библиографический список
1. T. Brown, B. Mann, N. Ryder, M. Subbiah, J. Kaplan D, P. Dhariwal, A. Neelakantan, P. Shyam, G. Sastry, A. Askell, S. Agarwal, V. Herbert Ariel, G. Krueger, T. Henighan, R. Child, A. Ramesh, D. Ziegler, J. Wu, C. Winter, C. Hesse, M. Chen, E. Sigler, M. Litwin, S. Gray, B. Chess, J. Clark, C. Berner, S. McCandlish, A. Radford, I. Sutskever, D. Amodei. Language Models are Few-Shot Learners // Advances in Neural Information Processing Systems. – 2020. № 33. – C. 1877-1901.2. M. Nestor, F. Loredana, P. Raymond, G. Yolanda, P. Vanessa, K. Njenga, C. Emily, R. Anka, B. Erik, E. John, L. Katrina, L. Terah, M. James, C. Juan Niebles, S. Yoav, W. Russell, W. Tobi, H. Armin, S. Lapo, B. Julia Lotufo, R. Alexandra, A. Shi, O. Sukrut. The AI Index 2025 Annual Report // AI Index Steering Committee, Institute for Human-Centered AI. – Stanford, CA. – 2025.
3. A. Liu, B. Feng, B, Xue, B, Wang, B. Wu, C. Lu, C. Zhao, C. Deng, C. Zhang, C. Ruan, D. Dai, D. Guo, D. Yang, D. Chen, D. Ji, E. Li, F. Lin, F. Dai, and F. Luo ... Z. Pan. DeepSeek-V3 Technical Report // ArXiv. – 2024. [Электронный ресурс]. URL: https://arxiv.org/abs/2412.19437 (дата обращения 8.11.2025)
4. P. Lewis, E. Perez, A. Piktus, F. Petroni, V. Karpukhin, N. Goyal, H. Küttler, M. Lewis, W.-tau Yih, T. Rocktäschel, S. Riedel, D. Kiela. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks // ArXiv – 2020. [Электронный ресурс]. URL: https://arxiv.org/abs/2005.11401 (дата обращения: 1.11.2025)
5. A. Asai, Z. Wu, Y. Wang, A. Sil, H. Hajishirzi. Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection // ArXiv. – 2023. [Электронный ресурс]. URL: https://arxiv.org/abs/2310.11511 (дата обращения: 3.11.2025)
6. Z. Jiang, F.F. Xu, L. Gao, Z. Sun, Q. Liu, J. Dwivedi-Yu, Y. Yang, J. Callan, G. Neubig. Active Retrieval Augmented Generation // ArXiv. – 2023. [Электронный ресурс]. URL: https://arxiv.org/abs/2305.06983 (дата обращения: 1.11.2025)
7. A. Singh, A. Ehtesham, S. Kumar, T. Talaei Khoei. Agentic Retrieval-Augmented Generation: A Survey on Agentic RAG // ArXiv. – 2025. [Электронный ресурс]. URL: https://arxiv.org/abs/2501.09136 (дата обращения: 5.11.2025)
8. Peng Xia, Kangyu Zhu, Haoran Li, Tianze Wang, Weijia Shi, Sheng Wang, Linjun Zhang, James Zou, Huaxiu Yao. MMed-RAG: Versatile Multimodal RAG System for Medical Vision Language Models // ArXiv. – 2024. [Электронный ресурс]. URL: https://arxiv.org/abs/2410.13085 (дата обращения: 3.11.2025)
9. D. Edge, H., N. Cheng, J. Bradley, A. Chao, A. Mody, S. Truitt, D. Metropolitansky, R. Osazuwa Ness, J. Larson. From Local to Global: A Graph RAG Approach to Query-Focused Summarization // ArXiv. – 2024. [Электронный ресурс]. URL: https://arxiv.org/abs/2404.16130 (дата обращения: 8.11.2025)
10. L. Gao, X. Ma, J. Lin, J. Callan. Precise Zero-Shot Dense Retrieval without Relevance Labels // ArXiv. – 2022. [Электронный ресурс]. URL: https://arxiv.org/abs/2212.10496 (дата обращения: 7.11.2025)
11. K. Guu, K. Lee, Z. Tung, P. Pasupat, M.W. Chang. REALM: Retrieval-Augmented Language Model Pre-Training // ArXiv. – 2020. [Электронный ресурс]. URL: https://arxiv.org/abs/2002.08909 (дата обращения: 6.11.2025)
12. S. Borgeaud, A. Mensch, J. Hoffmann, T. Cai, E. Rutherford, K. Millican, G. van den Driessche, J.B. Lespiau, B. Damoc, A. Clark, D. Casas, A. Guy, J. Menick, R. Ring, T. Hennigan, S. Huang, L. Maggiore, C. Jones, A. Cassirer, A. Brock, M. Paganini, G. Irving, O. Vinyals, S. Osindero, K. Simonyan, J.W. Rae, E. Elsen, L. Sifre. Improving language models by retrieving from trillions of tokens // ArXiv. – 2021. [Электронный ресурс]. URL: https://arxiv.org/abs/2112.04426 (дата обращения: 7.11.2025)
13. M. Arslan, H. Ghanem, S. Munawar, C. Cruz. A Survey on RAG with LLMs // Procedia Computer Science Volume. – 2024. – T. 246. – С. 3781-3790.
14. X. Weikai, H. Chengrui, G. Shen, S. Shuo. LLM-Based Agents for Tool Learning: A Survey // Data Science and Engineering. – 2025. – С. 2364-1541.
15. C. Qu, S. Dai, X. Wei, H. Cai, S. Wang, D. Yin, J. Xu, J.R. Wen. Tool Learning with Large Language Models: A Survey // ArXiv. – 2024. [Электронный ресурс]. URL: https://arxiv.org/abs/2405.17935 (дата обращения: 3.11.2025)
16. Z. Shen. LLM With Tools: A Survey // ArXiv. – 2024. [Электронный ресурс]. URL: https://arxiv.org/abs/2409.18807 (дата обращения: 8.11.2025)
17. L. Wang, C. Ma, X. Feng, Z. Zhang, H. Yang, J. Zhang, Z. Chen, J. Tang, X., Y. Lin, W. Xin Zhao, Z. Wei, J.R. Wen. A Survey on Large Language Model based Autonomous Agents // ArXiv. – 2023. [Электронный ресурс]. URL: https://arxiv.org/abs/2308.11432 (дата обращения: 8.11.2025)
18. J. Luo, W. Zhang, Y. Yuan, Y. Zhao, J. Yang, Y. Gu, B. Wu, B. Chen, Z. Qiao, Q.Long, R. Tu, X. Luo, W. Ju, Z. Xiao, Y. Wang, M. Xiao, C. Liu, J. Yuan, S. Zhang, Y. Jin, F. Zhang, X. Wu, H. Zhao, D. Tao, P.S. Yu, M. Zhang. Large Language Model Agent: A Survey on Methodology, Applications and Challenges // ArXiv. – 2025. [Электронный ресурс]. URL: https://arxiv.org/abs/2503.21460 (дата обращения: 3.11.2025)
19. T. Guo, X. Chen, Y. Wang, R. Chang, S. Pei, N.V. Chawla, O. Wiest, X. Zhang. Large Language Model based Multi-Agents: A Survey of Progress and Challenges // ArXiv. – 2024. [Электронный ресурс]. URL: https://arxiv.org/abs/2402.01680 (дата обращения: 3.11.2025)