Что такое legal‑kb?
legal‑kb – готовое веб‑приложение, построенное на базе TanStack Start. Пользователь регистрируется, создаёт проект, загружает файлы и взаимодействует с чат‑агентом. Каждый проект автоматически получает управляемый LlamaCloud Index v2, в который файлы парсятся и индексируются в фоне. При каждом запросе агент обращается к живому индексу и формирует ответ на основе актуальных данных.
Retrieval Harness простыми словами
Harness – это постоянный конвейер данных: он подключается к источнику файлов, индексирует их и поддерживает актуальность. На верх этого конвейера накладывается набор «инструментов», к которым имеет доступ агент. Инструменты имитируют привычные операции файловой системы: список файлов, чтение, поиск по ключевым словам, регэксп‑grep и гибридный семантический поиск. Поскольку интерфейс универсален, такой же Harness можно подключить к своим агентам.
Какие инструменты есть у агента?
- retrieve – гибридный семантический поиск (можно задать top_k, порог score, включить пере‑ранжирование, фильтр по имени и версии файла).
- findFiles – поиск файлов по точному имени или подстроке.
- readFile – чтение содержимого конкретного файла (с указанием смещения и длины).
- grepFile – поиск регулярного выражения внутри одного файла.
Системный промпт заставляет агента сначала вызвать findFiles, затем retrieve, а в конце подтвердить точную формулировку с помощью readFile или grepFile и добавить цитаты.
Как работает загрузка и версия документов
При загрузке файл передаётся в директорию проекта LlamaCloud, а запись о нём сохраняется в PostgreSQL через Prisma. Сразу же запускается синхронизация индекса (UI опрашивает статус, пока индекс не будет готов). Версионирование привязано к паре «проект‑имя файла»: пере‑загрузка того же PDF создаёт новые версии (v1, v2, …). При поиске можно указать file_version, чтобы ограничить запрос конкретной версией, что удобно для отслеживания изменений в юридических политиках.
Agentic Retrieval Harness vs. традиционный RAG
- Поток получения данных: RAG – один запрос к векторному индексу; Harness – многошаговый цикл инструментов (find → retrieve → read/grep).
- Типы поиска: RAG обычно только векторный; Harness комбинирует семантику, ключевые слова и регэксп‑grep.
- Контекст: RAG берёт фиксированное количество топ‑к фрагментов; Harness может «доставать» целый документ или нужный фрагмент по требованию.
- Актуальность: RAG работает с статическим индексом; Harness поддерживает постоянный синхронный пайплайн.
- Управление точностью: в RAG большинство параметров скрыто; Harness явно экспонирует top_k, score_threshold, rerank_top_n и т.д.
- Цитирование: RAG выдаёт лишь идентификаторы фрагментов; Harness показывает визуальные цитаты с превью страницы и координатами.
- Лучшее применение: RAG – короткие ответы; Harness – задачи, требующие длительного «прокладывания» пути по документам.
Практические сценарии
- Вы спросили: «Какой срок уведомления требуется для расторжения MSA?» – агент сначала перечислит файлы, затем выполнит
retrieveпо запросу, после чего проверит точную формулировку черезgrepFileи вернёт ответ с цитатой конкретной страницы. - Дью‑дилидженс в дата‑руме: агент использует
findFilesпо именам, читает каждый документ черезreadFileи автоматически проверяет наличие требуемых клаузул, экономя часы ручного пролистывания PDF. - Контроль изменений в политике: благодаря версии файлов можно задать запрос «какие правки внесены в пункт конфиденциальности в версии 2?» –
retrieveполучит только фрагменты из нужной версии.
Как запустить собственный Harness
Исходный код проекта доступен на GitHub. Основные шаги:
- Склонировать репозиторий и установить зависимости.
- Создать проект в LlamaCloud, получить API‑ключ.
- Настроить переменные окружения (
LLAMA_CLOUD_API_KEY,PROJECT_ID,INDEX_ID). - Запустить приложение (например,
npm run dev) и открыть веб‑интерфейс. - При желании заменить готовый агент своим кодом, используя
ToolLoopAgentиз Vercel AI SDK 6 и набор функций изcreateLlamaParseTools.
Заключение
Retrieval Harness в сочетании с LlamaIndex Index v2 открывает новые возможности для работы с большими, постоянно меняющимися документами. Вместо «одноразового» поиска агент получает набор файловых инструментов, что делает процесс более гибким, точным и удобным для конечного пользователя. Если вы часто сталкиваетесь с юридическими, финансовыми или другими объёмными текстовыми базами, внедрение такого подхода позволит автоматизировать рутинные запросы, улучшить качество цитирования и сократить время на поиск нужных положений.





















