Instructed Retriever

Instructed Retriever: Детерминированные планы поиска для ИИ-агентов

Published: 2026-06-25 · Trading

Архитектура Instructed Retriever устраняет стохастический семантический дрейф в классических RAG-системах. Вместо отправки сырых текстовых запросов в векторную базу данных, LLM ком

⚡ Быстрый ответ

  • Instructed Retriever architecture (Databricks-style).
  • Eliminates stochastic RAG drift by translating user queries and context constraints into deterministic search plans (metadata filters, partitioned bounds, and structured query generation).
  • Implements query-to-plan translation using LLM compilers, structured index lookups (combining vector distance with strict relational predicates), and quality scoring of retrieved context.

Safety Guards

Rule Max Limit Action On Breach
min_relevance_score 0.75 fallback_to_deterministic_index
max_context_tokens 4096 truncate_to_top_k

Руководство по интеграции

Обновлено: 2026-07-04
*Дисклеймер: Данный технический материал носит исключительно информационный характер и не является финансовой рекомендацией.*

## Как устроен детерминированный поиск в архитектуре Instructed Retriever?

Архитектура Instructed Retriever устраняет стохастический семантический дрейф в классических RAG-системах. Вместо отправки сырых текстовых запросов в векторную базу данных, LLM компилирует намерения пользователя и системные ограничения в строго типизированный план поиска (JSON). Этот план выполняется детерминированно с использованием SQL-фильтрации метаданных и гибридного ранжирования, предотвращая галлюцинации агентов.









































Уровень архитектуры Функциональная роль и логика работы Ключевые ограничения и фильтры
1. Query Compiler (Компилятор) Перевод естественного языка пользовательского запроса в структурированный JSON-план с жесткими фильтрами по метаданным. Проверка схемы валидатором Pydantic
2. Execution Planner (Планировщик) Оптимизация прямого доступа к индексам, сужение пространства поиска с помощью точеских SQL-условий WHERE. Индексы реляционных метаданных Postgres
3. Deterministic Engine (Движок) Выполнение точечных запросов к отфильтрованным базам данных СУБД, исключая лишний текстовый шум. Секционирование данных по проектам
4. Hybrid Fusion (Синтез результатов) Объединение векторного поиска и реляционной фильтрации по формуле Reciprocal Rank Fusion. Гибридные веса ранжирования RRF
5. Relevance Gate (Защитный барьер) Оценка сходства извлеченного контекста и автоматический откат при низком качестве данных. Порог косинусного сходства >= 0.75
6. Token Cap (Лимит контекста) Жесткое ограничение максимального объема токенов контекста во избежание перегрузки LLM. Максимальный размер: 4096 токенов


### 1. Архитектурные уровни

1. **Компилятор запросов (Query Compiler)**: LLM компилирует текстовый запрос в строго типизированную структуру плана поиска (JSON), содержащую реляционные фильтры (по датам, категориям, авторам), границы секционирования (partition bounds) и ключевые фразы для поиска.
2. **Планировщик выполнения (Execution Planner)**: Разбирает скомпилированный план и оптимизирует доступ к индексам. Например, если запрос касается определенного проекта за конкретную дату, планировщик сначала сужает пространство поиска с помощью точных реляционных фильтров (SQL WHERE), а векторный поиск запускает только внутри полученной выборки.
3. **Детерминированный движок (Deterministic Engine)**: Выполняет структурированные SQL-запросы или API-вызовы к СУБД. Исключает случайное попадание мусорных документов из других доменов.
4. **Гибридный синтез (Hybrid Fusion)**: Объединяет результаты точного поиска и векторного сходства по схеме Reciprocal Rank Fusion (RRF) с применением весов.

### 2. План поиска (Search Plan Schema)

Пример скомпилированного плана поиска в формате JSON:
```json
{
"target_indices": ["checkpoints", "edges_map"],
"filters": [
{"field": "project_id", "op": "==", "value": "continuity-os"},
{"field": "timestamp", "op": ">=", "value": "2026-06-01T00:00:00"}
],
"vector_query": "MirrorCore self-consistency score formula weights",
"limit": 5
}
```

### 3. Защитные барьеры (Safety Guards)

- **Фильтр релевантности (Relevance Gate)**: Каждый извлеченный фрагмент оценивается по метрике косинусного сходства или релевантности. Если ни один документ не превышает порог $0.75$, система выдает ошибку или переключается на детерминированный индекс по умолчанию, предотвращая подмешивание шума.
- **Лимит токенов контекста (Token Cap)**: Ограничение размера контекста на уровне $4096$ токенов. При превышении производится жесткое обрезание списка извлеченных документов по RRF-рангу.

### 4. Реализация на Python (псевдокод)

```python
from typing import Dict, Any, List
import numpy as np

class InstructedRetriever:
def __init__(self, db_conn, vector_client):
self.db = db_conn
self.vector = vector_client
self.min_relevance = 0.75
self.max_tokens = 4096

def compile_plan(self, query: str, context_rules: str) -> Dict[str, Any]:
"""Шаг 1: Компиляция запроса в детерминированный план поиска (имитация LLM)"""
# В реальной системе здесь происходит вызов LLM с JSON-схемой выхода
plan = {
"sql_filter": "project_id = 'continuity-os' AND timestamp >= '2026-06-01'",
"vector_search_text": query,
"limit": 5
}
return plan

def execute_retrieval(self, plan: Dict[str, Any]) -> List[Dict[str, Any]]:
"""Шаг 2: Выполнение плана с реляционной фильтрацией"""
# 1. Применяем строгий SQL-фильтр для получения разрешенных ID документов
cursor = self.db.cursor()
cursor.execute(f"SELECT doc_id FROM document_metadata WHERE {plan['sql_filter']}")
allowed_ids = [row[0] for row in cursor.fetchall()]

if not allowed_ids:
return []

# 2. Выполняем векторный поиск с жестким фильтром по allowed_ids
raw_results = self.vector.search(
query=plan["vector_search_text"],
filter_ids=allowed_ids,
limit=plan["limit"]
)

# 3. Фильтруем результаты по порогу релевантности (Relevance Gate)
valid_results = []
for res in raw_results:
if res["score"] >= self.min_relevance:
valid_results.append(res)

return valid_results
```