Агентский поиск делает вывод. Это не гарантирует.

Ваш ИИ находит вещи. Он также что-то пропускает, перезаписывает и часто не может сказать, откуда пришел ответ. Почему так происходит и как это исправить.

Агентский поиск делает вывод. Это не гарантирует.

Борис Черный (создатель Claude Code в Anthropic) написал в Твиттере, что Claude Code перешел от RAG плюс локальной векторной БД к агентному поиску. По его словам, это работает лучше и проще, с меньшим количеством проблем, связанных с безопасностью и конфиденциальностью. Другие инструменты идут другим путем. Например, Cursor использует облачные внедрения для индексации кодовой базы и поиска по семантическому сходству.

Таким образом, у нас есть как минимум две парадигмы поиска: поиск на основе встраивания (предварительная индексация, сходство векторов) и агентный поиск (использование инструментов по требованию). Они не одинаковы. У каждого есть разные компромиссы. Обе стратегии являются поисковыми. Слой истины — это нечто другое. Он сохраняет канонические объекты, сохраняет происхождение и поддерживает детерминированные запросы. Речь идет о состоянии, а не о поиске. В этом посте уровень истины сравнивается с обеими моделями поиска. Это также связано с ограничениями, с которыми я столкнулся, полагаясь только на поиск.

Где я достиг пределов

Я использую Cursor в качестве центрального интерфейса для всех своих цифровых рабочих процессов, а не только для кодирования. Сортировка электронной почты, управление задачами, финансовые запросы, планирование контента, транзакции, контакты. Все они работают через одного и того же агента с доступом к одному и тому же репозиторию. Агентный поиск по файлам часто работает хорошо. Агент находит контекст, выявляет связи и добивается цели.

Но я достиг предела. Агент делает вывод; это не гарантирует. Вот как это выглядит:

  • Большие наборы данных, неполный отзыв. При поиске по требованию что-то упускается или обрезается по тысячам транзакций или сотням контактов. Получение повторяется каждый раз. Нет структурированного хранилища, к которому можно было бы запросить полные результаты.
  • Невосстановимые перезаписи. Агент перезаписывает контакт или задачу, и предыдущее состояние исчезает. Никакого отката. Пишет на месте. Не существует управления версиями или отслеживания только для добавления, которые можно было бы отслеживать и откатывать.
  • Нет доступа к нескольким инструментам. Я не могу использовать одни и те же записи из Claude.ai или ChatGPT. Получение зависит от поставщика.
  • Невоспроизводимые ответы. Тот же вопрос, другой ответ. Я не могу воспроизвести результат для проверки или отладки. Поиск недетерминирован.
  • Нет возможности отслеживания. Когда агент дает неверный номер или заявку, я не могу отследить ее до исходных файлов или записей. Поиск не имеет происхождения.
  • Нестабильная каноническая идентичность. Агент может рассматривать «Acme Corp» и «ACME CORP» как одно и то же в одном сеансе и как разные в следующем. При извлечении каждый раз выполняется повторный вывод. Не существует постоянных канонических идентификаторов или правил слияния.

Две парадигмы поиска, одна парадигма состояния

Поиск на основе внедрения и агентный поиск передают информацию агенту. Они не одинаковы. Поиск на основе встраивания (например, курсор) предварительно индексирует корпус и дает ответы посредством сходства векторов. Индекс может размещаться в облаке и обновляться. Агентный поиск (например, Claude Code) пропускает постоянный индекс и использует инструменты для поиска и чтения по требованию. Разные реализации, разные компромиссы: конфиденциальность, устаревший подход, простота.

Их объединяет поиск. Агент находит вещи во время запроса. Слой истины не является поиском. Это устойчивое структурированное состояние: канонические сущности, происхождение, детерминированные запросы.

Мы сравниваем одну парадигму состояния (уровень истины) с двумя парадигмами поиска (на основе внедрения и агентной). В таблице ниже приведены все три. Если оба столбца поиска имеют общий предел (например, отсутствие происхождения), это сходство между ними относительно слоя истинности. Это не уравнение двух.

ДоменПоиск на основе встраиванияАгентский поискСлой истины
Поиск документовПредварительно индексированное сходство, семантическое совпадениеПоиск по требованию, выводРазрешение объектов, дедупликация, происхождение
Агрегация из нескольких источниковОбъем и актуальность индекса зависят от сборкиЖивой поиск по источникамЕдиный граф, детерминированное слияние
Поиск объектаСходство по вложениям; нет канонического идентификатораВывод за сеансКанонические идентификаторы, слияние на основе правил
Запросы на временную шкалуТолько если проиндексировано; нет встроенной модели времениСборка по требованиюПредварительно вычисленные, управляемые схемой
Провенанс и аудитНетНетНеизменяемый контрольный журнал
КроссплатформенныйПривязано к провайдеру/индексуИнструменты для конкретного поставщикаОдни и те же данные для всех инструментов

Оба подхода к поиску оптимизированы для удобства и гибкости. Уровень истины оптимизируется для обеспечения согласованности и проверяемости.

Что обеспечивает слой истины

Слой структурированной памяти построен на основе различных примитивов:

  1. Постоянная каноническая идентичность. Стабильные идентификаторы объектов во всех сеансах и инструментах.
  2. Детерминированная логика слияния. Комбинация наблюдений на основе правил, а не вывод LLM для каждого сеанса.
  3. Происхождение и аудит. Прослеживаемое происхождение от источника до ответа.
  4. Идемпотентность. Одни и те же входные данные дают одинаковые выходные результаты.
  5. Кроссплатформенная правда. Та же память в ChatGPT, Claude и Cursor.
  6. Четкая модель конфиденциальности. Контроль пользователей, отсутствие необходимости обучения поставщиков, четкие границы данных.

Это не дополнительные улучшения по сравнению с агентным поиском. У них другой дизайн. Извлечение и оркестрация с максимальными усилиями по сравнению с проверяемым, воспроизводимым состоянием. Выбор зависит от того, что вам нужно.

Какой поиск может быть аппроксимирован (агентный или на основе внедрения)

Три примера показывают извлечение (агентное или на основе внедрения), приближающее возможности описанных выше. В каждом примере агент получает что-то, что выглядит подходящим в данный момент. В каждом из них проявляются одни и те же ограничения: никакой постоянной канонической идентичности, никакого происхождения, никакой гарантии того, что «один и тот же запрос» даст «один и тот же результат» в разных сеансах или при перестроении индекса. В приведенных ниже примерах используются агентские термины (инструменты, поиск по требованию). Извлечение на основе встраивания может приближаться к такому же поведению посредством семантического поиска по индексу и достигает тех же пределов.

Пример 1. Разрешение объектов на уровне сеанса. У агента есть инструменты для поиска в файлах, электронной почте и облаке. В нем есть инструкции рассматривать упоминания одного и того же объекта как одно. Вы спрашиваете: «Какова моя общая сумма расходов на Acme Corp?» Агент ищет банковские экспортные документы, квитанции, счета-фактуры. Он находит «Acme Corp», «ACME CORP», «Acme Corporation», делает вывод об одном и том же предприятии, суммирует суммы. Это похоже на разрешение объекта для этого запроса и сеанса. Что пошло не так: спросите завтра еще раз, и номер может отличаться. Агент может пропустить файл (обрезанный поиск, неправильный путь) и недосчитаться. Или же компания может рассматривать «Acme Corp» и «Acme Industries» как одно и то же, и их число будет завышено. Нет возможности проверить. Никакого контрольного журнала, никаких стабильных идентификаторов. Различные сессии могут не соглашаться.

Пример 2: Сборка временной шкалы по требованию. Агент имеет широкий доступ к файлам и датам. Вы спрашиваете: «Каковы были мои основные расходы в третьем квартале 2024 года?» Агент ищет, анализирует даты, составляет хронологический список, фильтрует по «основному». Вы получаете ответ в виде временной шкалы без специальной системы временной шкалы. Что не так: каждый раз подразумевается «майор». Одна сессия исключает предмет стоимостью 500 евро. Следующий включает в себя это. Документы с нестандартными форматами дат теряются или переворачиваются. Агент может обрезать («вот первые 10»), когда их было 15. Каждый раз один и тот же запрос, разные результаты.

Пример 3. Уровень гибридной памяти. Поставщик предоставляет агентный поиск и облегченную память. Агент извлекает структурированные фрагменты, сохраняет их и извлекает позже. Он обрабатывает квитанцию, сохраняет {поставщик: "Acme Corp", сумма: 150, дата: "2024-07-15"}. Более поздний сеанс извлекает это и объединяет с результатами живого поиска. Это похоже на структурированную память. Что пошло не так: более позднее извлечение перезаписывает фрагмент. Никаких версий и откатов. Тот же поставщик появляется как «Acme Corp» в сохраненной памяти и «ACME CORP» при новом поиске. Дубликаты накапливаются. Поставщик меняет функцию или схему, и ваши сохраненные фрагменты исчезают. Невозможно отследить неверный номер до его источника.

В каждом примере поведение приблизительно соответствует тому, что обеспечивает слой истины. Ограничения присущи поиску. Независимо от того, использует ли агент встроенный поиск или агентный поиск, вы все равно получаете область сеанса и слияние на основе вывода. Вы по-прежнему не получаете ни происхождения, ни межплатформенной гарантии. Уровень истины решает эти проблемы, сохраняя состояние вместо его повторного получения.

Когда извлечение превосходно (агентное или на основе внедрения)

Исследовательское открытие. «Найдите в моих загрузках или заметках что-нибудь о квартире в Барселоне». Вы не знаете, где оно живет и как оно называется. Агентический поиск по файлам, папкам и форматам выявляет соответствующие фрагменты. Никакой схемы не требуется. Агент делает выводы и собирает.

Быстрое обобщение данных из разных источников. «Что мы решили в последних трех электронных письмах с подрядчиком?» Поиск в папке «Входящие», извлечение цепочки, подведение итогов. Одна сессия, один ответ. Вам не нужно, чтобы это резюме сохранялось или точно соответствовало в следующий раз.

Обход специального кода и документации. «Где мы обрабатываем веб-перехватчики Stripe?» Поиск по кодовой базе, README, внутренней документации. Макет зависит от репозитория. Агентический поиск адаптируется. Никакого единого графика не требуется.

Однодокументная или однопоточная сортировка. «Обобщите этот PDF-файл» или «Какой вопрос в этом письме?» Контекст ограничен. Вывода достаточно. Нет разрешения объекта или состояния между сеансами.

Когда уровень правды превосходен

Полный анализ больших наборов данных. «Перечислите все транзакции с поставщиком X за последние два года». При наличии тысяч строк агентный поиск может пропускать записи, обрезать или искажать агрегаты. Уровень истины запрашивает структурированное хранилище. Вы получаете все совпадающие записи или точное количество.

Совместимость между сеансами. Агент создает последующую задачу в первом сеансе. Завтра вы откроете новую сессию. Задача должна быть там, связанная с правильным контактом и адресом электронной почты. Агентный поиск не имеет постоянного графа. Слой правды делает это.

Аудит и происхождение. «Откуда взялось это число?» Проследите его по исходным записям, датам импорта и правилам деривации. Агентный поиск возвращает предполагаемые ответы. Уровень истины возвращает ответы с указанием происхождения.

Разрешение объектов в масштабе. Сотни контактов, некоторые дубликаты (варианты названий, объединенные компании). Тысячи транзакций ссылаются на одного и того же поставщика в разных вариантах написания. Уровень истины поддерживает канонические идентификаторы и правила слияния. Агентный поиск повторно делает выводы при каждом сеансе и может не согласиться.

Детерминированное воспроизведение. Каждый раз один и тот же запрос, один и тот же результат. Критически важен для отчетности, соответствия требованиям или отладки. Агентный поиск недетерминирован. Слой истинности идемпотентен.

Восстанавливаемость при неправильной записи. Агент перезаписывает контакт, объединяет две задачи в одну или «исправляет» транзакцию на основе неправильного вывода. При агентном поиске и прямой записи файлов предыдущее состояние исчезает. Нет отмены. Уровень истины использует запись только с добавлением или с поддержкой версий. Вы можете отследить, что изменилось, и откатиться назад. Мутации — это явные операции, а не тихая перезапись.

Почему это различие важно

Извлечение (на основе внедрения или агентное) привязано к сеансу. Сам по себе он не дает вам постоянной идентичности, происхождения или межсессионной согласованности. Его ценность — гибкий доступ по требованию. Ценность слоя истины — постоянная, межсеансовая правда. Детерминированное, проверяемое разрешение объектов сложно. Ни встроенное сходство, ни специальный агентный поиск не являются эквивалентными. Агенты, размещаемые у провайдера, сталкиваются со стимулами, которые противоречат управляемой пользователем памяти с приоритетом конфиденциальности. Их память и инструменты, как правило, зависят от конкретного продукта.

Твит Черного отражает реальный сдвиг. RAG плюс векторная база данных были сложными и имели последствия для конфиденциальности. Агентский поиск упростил поиск для Клода Кода. Курсор и другие используют другой путь поиска (встраивание в облако). Обе парадигмы поиска решают вопрос: «Как агент находит вещи?» Ни один из них не решает вопрос: «Как нам получить стабильную идентичность, происхождение и проверку?» Слой правды нацелен на последнее. Уровни поиска и состояния будут сосуществовать. Они решают разные проблемы.

Что я строю

Я создаю Neotoma, уровень структурированной памяти, который использует подход уровня истины: разрешение сущностей, сроки, происхождение, детерминизм, кроссплатформенность через MCP. Я тестирую его в своем собственном агентском стеке, чтобы увидеть, какое значение эти примитивы имеют на практике. Поиск на основе встраивания и агентный поиск — это две стратегии поиска. Ни один из них не дает вам постоянной идентичности или проверяемого состояния. Слой правды делает это. Я строю последнее.

5 минута чтенияЭссе
Делиться