
Создайте агента искусственного интеллекта, который выпускает ваших конкурентов
2 июля 2025 г.Строительство собственного недоумения: архитектура, стоящая за глубоким исследованием на основе искусственного интеллекта
⚠ Призыв к пробуждению для разработчиков
Многие программисты потеряют работу в ИИ в ближайшие годы, но не те, кто научится его строить. Ваша миссия не просто научиться использовать CHATGPT или Claude - это станет создателем таких систем, чтобы создать следующую недоумение, а не просто использовать ее.
Открытый исходный код:https://github.com/aifa-agi/aifa-deep-researcer-starter/
1Что вы освоите, прочитав эту статью
Эта статья предоставляет полный архитектурный план для построения собственного агента по искусственному ИИ, аналогичному «глубокому исследованию». Вы узнаете:
Техническая архитектура: Как разработать рекурсивную поисковую систему с использованием next.js 15, openai и exa.ai, которые на самом деле работают в производстве
Ментальные модели: Почему глубокий поиск - это структура дерева, а не линейный процесс - и как это меняет все в исследовании искусственного интеллекта
Практические решения: Как интегрировать внешний веб -поиск с внутренними векторными базами знаний, чтобы создать по -настоящему уникальный контент, который ваши конкуренты не могут повторить
Оптимизация производительности: Как управлять ресурсами сервера и пользовательским опытом во время продолжительных операций с искусственным интеллектом, не нарушая банк
Код готового производства: Concrete Typescript с использованием современного технического стека, который вы можете развернуть сегодня
К концу этой статьи у вас будет четкое представление о том, как построить самостоятельный SaaS для глубоких исследований, которые могут быть интегрированы в любой продукт, что дает вам конкурентное преимущество, которое действительно трудно воспроизвести.
1.1. Технологический стек, который поддерживает интеллект
Для внедрения нашего агента по искусственному ИИ глубокому исследованию мы используем современный технологический стек, оптимизированный для готовых к производству приложений с интенсивным использованием ИИ. Это не просто техническая демонстрация-она построена для реального масштаба и надежности.
1.1.1. Фронт и каркас
Реакция 19- Последняя версия с улучшенной производительности и новыми возможностями параллельного рендеринга, которые плавно обрабатывают сложные взаимодействия ИИ
Next.js 15-Полнофункциональная структура React с маршрутизатором приложений, включая поддержку параллельных и перехвативных маршрутов (идеально подходит для сложных рабочих процессов ИИ)
TypeScript 5- Строгое напечаток для надежности кода и превосходного опыта разработчиков при создании комплексных систем ИИ
1.1.2. ИИ и интеграции
OpenAI SDK (v4.96.2)-Официальный SDK для интеграции с GPT-4 и другими моделями OpenAI с полной потоковой поддержкой
AI SDK (v4.1.45)- Универсальная библиотека для работы с различными поставщиками искусственного интеллекта, обеспечивая гибкость для переключения моделей
Exa.js (v1.4.10)-Специализированная поисковая система, ориентированная на AI, для получения семантического поиска, которая на самом деле понимает контекст
1.1.3. Пользовательский интерфейс и стиль
Tailwind CSS 4-Первопровод CSS-структура для быстрого развития, не жертвуя качеством дизайна
Radix UI- Безголовые компоненты для создания доступных интерфейсов, которые работают на всех устройствах
Люцид реагирует- Современная библиотека значков с последовательным языком дизайна
shadcn/ui-Компонентная система, построенная на Radix UI и Tailwind CSS для интерфейсов профессионального класса
1.1.4. Формы и проверка
Реагировать форму крючка-Высокопроизводительная библиотека для обработки форм, которая не замедляет ваши интерфейсы ИИ
Зод-Схема валидации в типовойписах со статическим набором, которая вызывает ошибки, прежде чем они достигнут производства
Крюка резолюры- Бесплатная интеграция между Zod и React Crow Form
1.1.5. Обработка контента
Реагировать на уценку-рендеринг контента Marckdown с поддержкой компонентов для богатых отчетов, сгенерированных AI
дата-фнс- Современная библиотека для обработки дат в сроках исследования ИИ
Почему этот стек имеет значение
Этот технологический стек предоставляетВысокая производительностьВТип безопасности, имасштабируемостьнеобходимо для создания сложных приложений искусственного интеллекта на уровне производства. Каждый выбор здесь является преднамеренным - от параллельных маршрутов Next.js 15.
Результат?Система, которая может обрабатывать вычислительную сложность рекурсивных исследований ИИ, сохраняя при этом стандарты пользовательского опыта, которые требуют современные приложения.
Готовы увидеть, как эти части соединяются друг с другом, чтобы создать что -то действительно мощное? Давайте погрузимся в архитектуру, которая заставляет все это работать.
Революция ИИ не приходит - это здесь. И это создает резкий разрыв в сообществе разработчиков. С одной стороны, те, кто видит ИИ как еще один инструмент для повышения производительности, используя CHATGPT для написания функций и кода отладки. С другой стороны, разработчики, которые понимают фундаментальную правду:Реальная возможность не использует ИИ - это строит егоПолем
В то время как большинство разработчиков учатся предлагать более эффективным образом предлагать CHATGPT, небольшая группа освоивает архитектуру, стоящую за такими системами, как недоумение, Клод и пользовательские агенты ИИ. Это не только оставаться актуальным; Речь идет о позиционировании себя на правой стороне самого значительного технологического сдвига со времен Интернета.
Суровая реальность: Компаниям не нужны разработчики, которые могут использовать инструменты искусственного интеллекта - им нужны разработчики, которые могут создавать системы ИИ. Разница между этими двумя навыками определит, кто процветает, а кто устаревает в следующем экономическом цикле.
Эта статья предоставляет полный архитектурный план для построения собственного глубокого исследовательского агента с AI, аналогичным функции «глубоких исследований». Вы узнаете не только техническую реализацию, но и умственные модели и принципы проектирования, которые отделяют интеграцию любителей искусственного интеллекта от готовых к производству систем, которые могут стать конкурентными преимуществами.
Что вы освоите к концу:
- Рекурсивный поисковый архитектура: Как разрабатывать системы, которые думают на деревьях, а не линии
- AI-Pirst Data Pipelines: Интеграция внешнего поиска в Интернете с внутренними базами знаний
- Агент оркестровая: Создание систем ИИ, которые могут оценить, итерацию и улучшать свои собственные результаты
- Соображения производства: Управление ресурсами сервера, тайм-аутами и пользовательским опытом для долгосрочных операций искусственного интеллекта
Цель не дает вам кода для копирования вставки. Для передачи архитектурного мышления позволит вам разработать системы ИИ для любого домена, любого варианта использования и любого масштаба. В конце концов, у вас будет умственная структура для создания агентов искусственного интеллекта, которые не просто отвечают на вопросы - они проводят исследования, такие как экспертные аналитики.
Готовы перейти от AI Consumer к AI Architect? Давайте погрузимся в то, почему традиционным LLMS нужна «собака -гида», чтобы эффективно ориентироваться в Интернете.
2. Введение: жизнь после Chatgpt изменила все
Мы переживаем один из самых преобразующих периодов в истории технологий. CHATGPT и другие крупные языковые модели (LLMS) в корне революционизировали, как мы взаимодействуем с информацией. Но если вы строили серьезные приложения с этими инструментами, вы, вероятно, достигли той же стены, которую я сделал:Модели знают только мир до даты их обучения, и они галлюцинируют с тревожной уверенностьюПолем
2.1. Проблема: веб-поиск группы в современном LLMS
Команды, стоящие за Chatgpt, Claude и другими моделями, пытались решить это со встроенным веб-поиском. Это звучит великолепно в теории, но копайте глубже, и вы найдете некоторые серьезные архитектурные недостатки, которые делают его непригодным для производственных приложений:
Поиск на уровне поверхности: Система делает один или два поисковых запроса, получает первые несколько результатов и называет это днем. Это не исследование - это прославленный Google с интерфейсом чата.
Ноль последующего прохождения: Там нет рекурсивного углубления в темы. Если первый поиск не дает комплексных результатов, система не задает последующих вопросов и не изучает альтернативные углы.
Качество мусора: Традиционные поисковые системы возвращают HTML -страницы, загроможденные рекламой, навигационными элементами и нерелевантным содержанием. LLM должен «выкопать» полезную информацию из этого цифрового мусора.
Контекст изоляции: Система не может подключить найденную информацию с вашими внутренними данными, документами компании или базами знаний, специфичных для домена.
2.2. Золотой стандарт: глубокая исследовательская революция недоумения
Смущение была первой компанией, которая показала нам, как на самом деле должна работать интеграция Search-LLM. Их подход принципиально отличается от этих решений для пластыря:
AI-оптимизированные поисковые системы: Вместо общих вызовов Google API они используют специализированные системы поиска, которые возвращают чистый, структурированный контент, предназначенный для потребления искусственного интеллекта.
Итеративный процесс расследования: Система не останавливается при начальных результатах. Он анализирует результаты, формулирует новые вопросы и продолжает поиск до тех пор, пока он не создает полную картину.
Глубокий исследовательский режим: Это автономный агент ИИ, который может работать в течение нескольких минут, рекурсивно сверлить в темы и собирать информацию из десятков источников.
Это именно та система, которую мы собираемся создать вместе.
2.3. Почему это важно для каждого разработчика
В эпоху AI-First каждый продукт мчится, чтобы стать «умнее». Но просто подключение API CHATGPT - это просто столовые ставки сейчас. Настоящее конкурентное преимущество происходит, когда ваш ИИ может:
- Исследование текущей информации из Интернета в режиме реального времени
- Объедините публичные данные с вашими проприетарными базами знаний
- Генерировать уникальные идеи невозможно получить от стандартных LLMS
- Адаптироваться к вашей конкретной бизнес -области и отраслевых нюансах
2.4. Чем ты уйдешь
Моя цель не в том, чтобы дать вам код для копирования вставки (хотя вы получите много этого). Я хочу перенести умственные модели и архитектурные принципы, которые позволили бы вам:
- Понять философиюЗа исследованиями глубокого ИИ
- Проектируйте архитектуруДля вашего конкретного варианта использования
- Реализовать системуИспользование современного стека (Next.js 15, Openai, Exa.ai)
- Интегрировать решениев любой существующий продукт
- Масштабировать и оптимизироватьСистема для ваших нужд
К концу этой статьи у вас будет полный архитектурный план и готовые к производству примеры кода для создания собственного «недоумения»-агента искусственного интеллекта, который может стать секретным оружием вашего продукта.
Важный: Мы изучим не только техническую реализацию, но и бизнес -логику. Почему рекурсивный поиск более эффективен, чем линейный? Как правильно объединить внешние и внутренние источники? Какие узоры UX работают для продолжительных операций по ИИ? Эти вопросы так же важны, как и код.
2.5. Для нетерпеливо: пропустите код
Для тех, кто уже получит концепции и хочет погрузиться прямо в реализацию, вот решение с открытым исходным кодом, которое мы будем строить:https://github.com/aifa-agi/aifa-deep-researcer-starter
Я лично не могу вынести статьи, которые дают вам много слов и маленького субстанции. Не стесняйтесь клонировать репо и запустить его в режиме разработки прямо сейчас.
Профессиональный совет: Вы достигнете ограничений времени ожидания (403 ошибок) на свободном уровне хостинга Vercel, но на Localhost вы можете полностью экспериментировать и изучить журналы до контента вашего сердца.
Готовы построить будущее исследований с AI? Давайте начнем с понимания, почему LLMS нужна «собака -гида», чтобы эффективно ориентироваться в Интернете.
3. Зачем LLM нужна «собака -гида»: критическая роль внешних поисковых систем
Вот сложная правда, которую многие разработчики узнают дорого:Модели с большими языками не могут независимо получить доступ к текущей информации из ИнтернетаПолем Это не ошибка - это фундаментальное архитектурное ограничение, которое требует сложного решения: интеграция со специализированными системами поиска, разработанных для потребления искусственного интеллекта.
3.1. Почему традиционные поисковые системы - AI -яд
Google, Bing и другие традиционные поисковые системы были созданы для людей, просматривающих Интернет, а не для данных обработки машин. Когда вы нажимаете их API, вы возвращаете HTML -страницы, наполненные:
- Рекламные блоки и навигационный беспорядокчто путает извлечение контента
- Нерелевантное содержание(Комментарии, боковые панели, нижние колонтитулы, баннеры печенья)
- Неструктурированные данныеЭто требует сложного анализа и часто терпит неудачу
javascript// The traditional approach - a nightmare for AI
const htmlResponse = await fetch('https://api.bing.com/search?q=query');
const messyHtml = await htmlResponse.text();
// You get HTML soup with ads, scripts, and digital garbage
// Good luck extracting meaningful insights from this mess
Я видел, как команды проводили недели, создавая HTML -анализаторы, только чтобы они ловили каждый раз, когда крупный сайт обновляет их макет.Это не масштабируемо, и это определенно не надежно.
3.2. Сопоставление ключевых слов против семантического понимания: мир разницы
Традиционные системы поиска ищут точные совпадения слов, полностью игнорируя контекст и значение. Запрос, такой как «next.js оптимизация для электронной коммерции», может пропустить отличную статью о «повышении производительности приложений React в интернет-магазинах», даже если они семантически идентичные темы.
Это все равно, что иметь исследователь, который может найти книги, только сопоставляя точные слова в названии, игнорируя все о фактическом содержании.Для агентов искусственного интеллекта, проводящих глубокие исследования, этот подход принципиально сломан.
3.3. Поисковые системы AI:
Специализированные системы, такие как Exa.ai, Metapor и Tavily, решают основные проблемы, которые делают традиционный поиск непригодным для искусственного интеллекта:
Понимание семантического запроса
Они используют векторные представления для поиска по значению, а не только ключевым словам. Ваш ИИ может найти соответствующий контент, даже если точные термины не совпадают.
Чистые, структурированные данные
Они возвращают предварительно обработанный контент без мусора HTML. Больше нет кошмаров разбора или сломанных экстракторов.
Контекстуальное осознание
Они понимают предыдущие запросы и общий контекст исследований, что позволяет по -настоящему итеративному исследованию.
javascript// The AI-native approach - clean and powerful
const cleanResults = await exa.search({
query: "Detailed analysis of Next.js performance optimization for high-traffic e-commerce platforms",
type: "neural",
contents: { text: true, summary: true }
});
// You get clean, relevant content ready for AI processing
// No parsing, no cleanup, no headaches
3.4. Почему это важно для производственных систем
Качество ваших входных данных напрямую определяет качество ваших окончательных результатов исследования. Поисковые системы AI, которые предоставляют:
Надежность данных: Структурированный контент без необходимости хрупкого анализа HTML
Масштабируемость: Стабильные API, предназначенные для автоматизированного, большего объема использования
Экономическая эффективность: Снижение вычислительных накладных расходов для обработки данных
Точность: Лучшая актуальность источника приводит к лучшему окончательному пониманию
javascript// Hybrid search: external + internal sources
const [webResults, vectorResults] = await Promise.all([
exa.search(query),
vectorStore.similaritySearch(query)
]);
const combinedContext = [...webResults, ...vectorResults];
// Now your AI has both current web data AND your proprietary knowledge
3.5. Суть: архитектура имеет значение
Поисковые системы AI, не просто технические детали-Они архитектурный фондЭто делает возможными качественные исследовательские агенты ИИ. Без правильной «Перевои собаки» даже самый сложный LLM будет бороться за то, чтобы создать глубокий, точный анализ текущей информации.
Подумайте об этом так: вы не отправите блестящего исследователя в библиотеку, где все книги написаны в коде, а половина страниц - рекламные объявления. Тем не менее, это именно то, что происходит, когда вы подключаете LLM к традиционным поисковым API.
Решение?Дайте вашему ИИ подходящие инструменты для работы. В следующем разделе мы погрузимся в конкретные шаблоны архитектуры, которые делают возможным рекурсивное, глубокое исследование.
Готовы увидеть, как кусочки сочетаются друг с другом? Давайте рассмотрим дизайн системы, который обеспечивает по -настоящему интеллектуальные агенты исследований искусственного интеллекта.
4. Подумайте как дерево: архитектура рекурсивного поиска
Человеческий мозг естественным образом структурирует сложную информацию как иерархические сети. Когда исследователь исследует новую тему, они не перемещаются по прямой линии-они разрабатывают сеть знаний, похожая на дерево, где каждое новое открытие генерирует дополнительные вопросы и направления исследований. Это именно та ментальная модель, которую мы должны реализовать в нашей архитектуре агента по глубокому поиску.
4.1. Фундаментальная разница в подходах
Традиционные системы поиска и встроенный веб-поиск в LLMS. Этот подход имеет критические ограничения для глубоких исследований.
Проблемы с линейным подходом:
- Результаты на уровне поверхности: Система останавливается на первых фактах, которые он находит
- Нет контекста непрерывности: Каждый поисковый запрос изолирован из предыдущих
- Пропавшие связи: Система не может видеть отношения между различными аспектами темы
- Случайное качество: Результаты полностью зависят от удачи первоначального запроса
Подход на основе дерева решает эти проблемы, моделируя естественный процесс исследования человека. Каждый обнаруженный источник может генерировать новые вопросы, которые становятся отдельными филиалами исследований.
4.2. Анатомия поискового дерева
Давайте рассмотрим структуру глубокого поиска с конкретным примером:
textNext.js vs WordPress for AI Projects/
├── Performance/
│ ├── Source 1
│ ├── Source 2
│ └── Impact of AI Libraries on Next.js Performance/
│ └── Source 7
├── Development Costs/
│ ├── Source 3
│ └── Source 4
└── SEO and Indexing/
├── Source 5
└── Source 6
Ветви первого уровняявляются основными аспектами темы, которую LLM генерирует на основе анализа исходного запроса. В нашем примере это производительность, затраты и SEO. Эти подтемы не образуются случайным образом - LLM анализирует семантическое пространство запроса и определяет ключевые направления исследования.
Дерево листьяявляются конкретными источниками (статьи, документы, исследования), обнаруженные для каждого подзадачи. Каждый лист содержит фактическую информацию, которая будет включена в окончательный отчет.
Рекурсивные ветвиэто самая мощная особенность этой архитектуры. Когда система анализа обнаружил источники, она может обнаружить новые аспекты темы, которые требуют дополнительного исследования. Эти аспекты становятся новыми подзадаченными, генерируя свои собственные филиалы.
4.3. Практические преимущества архитектуры деревьев
Исследовательская полнота: Дерево обеспечивает систематическое покрытие темы. Вместо случайной коллекции фактов система строит логически связанную карту знаний, где каждый элемент имеет свое место в общей структуре.
Адаптивная глубина: Система автоматически определяет, какие направления требуют более глубокого расследования. Если один филиал дает много соответствующих источников, система может пойти глубже. Если направление оказывается неинформативным, поиск заканчивается рано.
Контекстуальная связь: Каждый новый поисковый запрос создается с учетом уже найденной информации. Это допускает более точные и конкретные вопросы, чем изолированные поиски.
Оценка качества: На каждом уровне дерева система может оценить актуальность и качество найденных источников, фильтрации шума и концентрироваться на наиболее ценной информации.
4.4. Управление параметрами дерева
Глубина поискаОпределяет, сколько уровней рекурсии может выполнять система. Глубина 1 означает только основные подразделы без дальнейшего бурения. Глубина 3-4 допускает действительно подробное расследование.
Поиск шириныуправляет количеством подразделений на каждом уровне. Слишком большая ширина может привести к поверхностному исследованию многих направлений. Оптимальная ширина обычно составляет 3-5 основных направлений на уровень.
Ветвящий факторэто среднее количество дочерних узлов для каждого узла дерева. В контексте поиска информации это соответствует количеству новых подраздел, сгенерированных на основе каждого найденного источника.
4.5. Оптимизация и профилактика проблем
Профилактика цикла: Система должна отслеживать уже исследуемые указания, чтобы избежать бесконечных петлей рекурсии.
Динамическая приоритета: Более перспективные филиалы должны быть исследованы с большей глубиной, в то время как менее информативные направления могут быть прекращены ранее.
Параллельное расследование: Различные ветви деревьев можно исследовать параллельно, значительно ускоряя процесс, когда доступны достаточные вычислительные ресурсы.
Память и кэширование: Результаты поиска должны быть кэшированы, чтобы избежать повторных запросов на внешние API, когда темы перекрываются.
Время выполнения и тайм -ауты сервера: Это еще одна проблема, которая часто проявляется при реализации глубоких исследований, особенно если глубина превышает два уровня. Вы могли бы сказать, что повышение уровня экспоненциально увеличивает сложность исследования. Например, исследования с четырьмя уровнями глубины могут занять до 12 часов.
4.6 Суть: от хаоса до системы
Архитектура дерева преобразует хаотический процесс поиска информации в систематическое исследование, где каждый элемент имеет свое место в общей структуре знаний. Это позволяет агенту искусственного интеллекта работать как опытный исследователь - не только собирать факты, но и создавать всеобъемлющее понимание исследуемой темы.
Результат?Система ИИ, которая думает как человеческий исследователь, но работает в масштабе и скорости машины. В следующем разделе мы погрузимся в техническую реализацию, которая делает это архитектурное видение реальностью.
Готовы увидеть, как мы переводим эту концептуальную структуру в производственный код? Давайте рассмотрим технический стек, который способствует рекурсивному интеллекту.
5. Цикл «Поисково-оценить»: реализация истинной рекурсии
Рекурсивный интернет -анализ не просто технический характер - это фундаментальная необходимость для создания действительно интеллектуальных агентов ИИ. На первой странице любых результатов поиска показывается только верхушка информационного айсберга. Настоящие идеи лежат глубже в связанных статьях, цитируемых источниках и специализированных исследованиях, которые большинство систем никогда не достигают.
5.1. Архитектура данных для глубокого исследования
В реализации производства система работает с структурированными типами данных, которые накапливают знания на каждом уровне рекурсии:
typescripttype Learning = {
learning: string;
followUpQuestions: string[];
};
type SearchResult = {
title: string;
url: string;
content: string;
publishedDate: string;
};
type Research = {
query: string | undefined;
queries: string[];
searchResults: SearchResult[];
knowledgeBaseResults: string[]; // Vector database responses
learnings: Learning[];
completedQueries: string[];
};
Эта структура данных накапливает знания на каждом уровне рекурсии, создавая единый контекст для всего исследования-именно то, что отделяет профессиональные исследования от случайного сбора фактов.
5.2. Этап 1: «Поиск» - Интеллектуальное поколение запросов
Система не полагается ни на один поисковый запрос. Вместо этого он генерирует несколько целевых запросов, используя интеллект LLM:
typescriptconst generateSearchQueries = async (query: string, breadth: number) => {
const {
object: { queries },
} = await generateObject({
model: mainModel,
prompt: `Generate ${breadth} search queries for the following query: ${query}`,
schema: z.object({
queries: z.array(z.string()).min(1).max(10),
}),
});
return queries;
};
Ключевое понимание:breadth
Параметр контролирует ширину исследования - количество различных тематических аспектов, которые будут исследованы параллельно. Здесь происходит магия: вместо линейного поиска вы получаете экспоненциальное покрытие.
5.3. Этап 2: «Оценка»-фильтрация результатов, управляемая ИИ
Не все найденные источники одинаково ценны. Система использует агент ИИ с инструментами для интеллектуальной оценки каждого результата:
typescriptconst searchAndProcess = async (/* parameters */) => {
const pendingSearchResults: SearchResult[] = [];
const finalSearchResults: SearchResult[] = [];
await generateText({
model: mainModel,
prompt: `Search the web for information about ${query}, For each item, where possible, collect detailed examples of use cases (news stories) with a detailed description.`,
system: "You are a researcher. For each query, search the web and then evaluate if the results are relevant",
maxSteps: 10,
tools: {
searchWeb: tool({
description: "Search the web for information about a given query",
parameters: z.object({ query: z.string().min(1) }),
async execute({ query }) {
const results = await searchWeb(query, breadth, /* other params */);
pendingSearchResults.push(...results);
return results;
},
}),
evaluate: tool({
description: "Evaluate the search results",
parameters: z.object({}),
async execute() {
const pendingResult = pendingSearchResults.pop();
if (!pendingResult) return "No search results available for evaluation.";
const { object: evaluation } = await generateObject({
model: mainModel,
prompt: `Evaluate whether the search results are relevant and will help answer the following query: ${query}. If the page already exists in the existing results, mark it as irrelevant.`,
output: "enum",
enum: ["relevant", "irrelevant"],
});
if (evaluation === "relevant") {
finalSearchResults.push(pendingResult);
}
return evaluation === "irrelevant"
? "Search results are irrelevant. Please search again with a more specific query."
: "Search results are relevant. End research for this query.";
},
}),
},
});
return finalSearchResults;
};
Революционный подход: Система использует агент ИИ с инструментами, которые могут многократно искать и оценивать результаты, пока она не найдет достаточную соответствующую информацию. Это все равно, что иметь исследователь, который не сдается после первого поиска в Google.
5.4. Векторная база знаний интеграция
Реальная сила возникает из -за синергии между внешним и внутренним поиском. Для каждого запроса система одновременно ищет Интернет и свою собственную базу знаний в вектор:
typescriptasync function getKnowledgeItem(query: string, vectorStoreId: string) {
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
const response = await client.responses.create({
model: "gpt-4o-mini",
tools: [
{
type: "file_search",
vector_store_ids: [vectorStoreId],
max_num_results: 5,
},
],
input: [
{
role: "developer",
content: `Search the vector store for information. Output format language: ${process.env.NEXT_PUBLIC_APP_HTTP_LANG || "en"}`,
},
{
role: "user",
content: query,
},
],
});
return response.output_text;
}
5.5. Практическая реализация
В основном цикле исследования система запросит оба источника параллельно:
typescriptfor (const query of queries) {
const searchResults = await searchAndProcess(/* web search */);
accumulatedResearch.searchResults.push(...searchResults);
if (vectorStoreId && vectorStoreId !== "") {
const kbResult = await getKnowledgeItem(query, vectorStoreId);
accumulatedResearch.knowledgeBaseResults.push(kbResult);
}
}
5.6 Этап 3: «Deepen»-генерируя последующие вопросы
Самая мощная особенность: способность системы генерировать новые направления исследования, основанные на уже найденной информации:
typescriptconst generateLearnings = async (query: string, searchResult: SearchResult) => {
const { object } = await generateObject({
model: mainModel,
prompt: `The user is researching "${query}". The following search result were deemed relevant.
Generate a learning and a follow-up question from the following search result:
<search_result>
${JSON.stringify(searchResult)}
</search_result>`,
schema: z.object({
learning: z.string(),
followUpQuestions: z.array(z.string()),
}),
});
return object;
};
5.7 Рекурсивное углубление
Каждый найденный источник анализируется для извлечения новых вопросов, которые становятся основой для следующего уровня поиска:
typescriptfor (const searchResult of searchResults) {
const learnings = await generateLearnings(query, searchResult);
accumulatedResearch.learnings.push(learnings);
accumulatedResearch.completedQueries.push(query);
const newQuery = `Overall research goal: ${prompt}
Previous search queries: ${accumulatedResearch.completedQueries.join(", ")}
Follow-up questions: ${learnings.followUpQuestions.join(", ")}`;
await deepResearch(
/* search parameters */,
newQuery,
depth - 1,
Math.ceil(breadth / 2), // Reduce width at each level
vectorOfThought,
accumulatedResearch,
vectorStoreId
);
}
5.8 Управление глубиной и сложностью
Реализация производства показывает, как управлять ростом экспоненциальной сложности:
typescriptconst deepResearch = async (
/* multiple filtering parameters */,
prompt: string,
depth: number = 2,
breadth: number = 5,
vectorOfThought: string[] = [],
accumulatedResearch: Research = {
query: undefined,
queries: [],
searchResults: [],
knowledgeBaseResults: [],
learnings: [],
completedQueries: [],
},
vectorStoreId: string
): Promise<Research> => {
if (depth === 0) {
return accumulatedResearch; // Base case for recursion
}
// Adaptive query formation based on "thought vector"
let updatedPrompt = "";
if (vectorOfThought.length === 0) {
updatedPrompt = prompt;
} else {
const vectorOfThoughItem = vectorOfThought[vectorOfThought.length - depth];
updatedPrompt = `${prompt}, focus on these important branches of thought: ${vectorOfThoughItem}`;
}
// ... rest of implementation
};
5.9 Ключевые оптимизации
Уменьшение ширины: Math.ceil(breadth / 2)
На каждом уровне предотвращает экспоненциальный рост
Мыслительный вектор: vectorOfThought
Позволяет направлять исследования в конкретные области
Накопление контекста: Все результаты сохраняются в единой структуре данных
5.10. Гибридное преимущество на практике
Создание уникального контента: Комбинирование публичных данных с внутренними знаниями позволяет создавать отчеты, которые никто другой не может повторить. Ваши конкуренты могут получить доступ к тем же общественным источникам, но не к вашим внутренним случаям, статистике и опыту.
Контекст обогащение: Внешние данные обеспечивают валюту и широту, внутренние данные обеспечивают глубину и специфичность. Система может найти общие отраслевые тенденции в Интернете, а затем дополнить их собственными данными о том, как эти тенденции влияют на ваш бизнес.
Поддержание валюты: Даже если веб -информация устарела или неточна, ваша внутренняя база знаний может предоставить более свежие и проверенные данные.
6. от хаоса до заказов: генерирование отчетов на уровне экспертов
После завершения всех уровней рекурсивного поиска система накапливает огромные объемы разрозненной информации: результаты веб-поиска, данные векторной базы данных, сгенерированные знания и последующие вопросы. Последний этап преобразует этот хаос в структурированный отчет на уровне экспертов, который конкурирует с человеческим анализом.
6.1. Накопление контекста: создание полной картины
Все собранные данные объединены в одинResearch
Структура, которая служит полным контекстом для окончательного синтеза:
typescripttype Research = {
query: string | undefined; // Original query
queries: string[]; // All generated search queries
searchResults: SearchResult[]; // Web search results
knowledgeBaseResults: string[]; // Vector database responses
learnings: Learning[]; // Extracted insights
completedQueries: string[]; // History of completed queries
};
Это не просто хранение данных- Это всеобъемлющий график знаний, который отражает все исследование. Каждое понимание, каждый источник, каждое соединение сохраняется для окончательного синтеза.
6.2. Мастерская подсказка: где интеллект соответствует синтезу
Качество окончательного отчета напрямую зависит от изощренности приглашения генерации. Система использует самую мощную модель Openai для синтеза:
typescriptconst generateReport = async (
research: Research,
vectorOfThought: string[],
systemPrompt: string
) => {
const { text } = await generateText({
model: openai("o3-mini"), // Most powerful model for synthesis
system: systemPrompt,
prompt:
"Use the following structured research data to generate a detailed expert report:\n\n" +
JSON.stringify(research, null, 2),
});
return text;
};
Ключевое понимание: Мы не просто просим ИИ подвести итоги - мы предоставляем ему полный набор данных исследования и просим его думать как эксперт по домену. Разница в качеством выпуска является драматичной.
6.3. Структурированный выход: за пределами простых резюме
Система не просто создает текстовую сводку - она генерирует структурированные документы с заголовками, таблицами, списками Pro/Con и профессиональным форматированием, как показано в результате сохранения:
typescriptconsole.log("Research completed!");
console.log("Generating report...");
const report = await generateReport(research, vectorOfThought, systemPrompt);
console.log("Report generated! Saving to report.md");
fs.writeFileSync("report.md", report); // Save as Markdown
Зачем уценки?Это идеальный формат для сгенерированного AI контентом-достаточно структурированный для профессиональной презентации, достаточно гибкий для различных форматов производства и читается в любом современном рабочем процессе разработки.
6.4. Контроль качества с помощью подсказок системы
АsystemPrompt
позволяет настраивать стиль и структуру отчетов для конкретных потребностей:
- Академический стильДля исследовательских работ и научного анализа
- Формат бизнесаДля корпоративных отчетов и резюме руководителей
- Техническая документацияДля контента, ориентированного на разработчиков
- Инвестиционный анализДля финансовых и стратегических отчетов
// Example: Business-focused system prompt const businessSystemPrompt = `You are a senior business analyst creating an executive report. Structure your analysis with:
Executive Summary
Key Findings
Market Implications
Recommendations
Risk Assessment
Use data-driven insights and provide specific examples from the research.`;
6.5. Эффект интеллекта множителя
Вот что делает этот подход революционным: Система не просто собирает информацию - она синтезирует понимание, возникающие из соединений между различными источниками. Человеческий исследователь может потратить 8-12 часов, проводя этот уровень исследования. Наша система делает это за 10-60 минут, часто раскрывая связи, которые упускают люди.
6.6. Соображения производства
Управление памятью: С глубокими исследованиями (глубина 3-4) накопленный контекст может стать массивным. Система должна эффективно справляться с большими структурами JSON.
Оптимизация токена: Окончательная подсказка синтеза может легко превышать пределы токенов. Производственные реализации нуждаются в стратегиях интеллектуального усечения, которые сохраняют наиболее ценную информацию.
Гарантия качества: Не все сгенерированные отчеты равны. Рассмотрим реализацию механизмов оценки для оценки полноты и согласованности отчета.
6.7. Реальное воздействие
Сжатие времени: Часы исследования людей → Протокол анализа ИИ
Усиление глубины: ИИ может обрабатывать и подключать больше источников, чем возможно человеческое
Последовательность: Каждый отчет следует одной и той же строгой методологии
Масштабируемость: Генерировать десятки отчетов одновременно
7. Заключение: построение будущего исследования ИИ
Создание глубокого исследования ИИ - это не просто техническая задача - это архитектурное решение, которое может стать конкурентным преимуществом для любого продукта. Мы рассмотрели полный цикл от концепции до реализации, показывая, как преобразовать хаотический процесс поиска информации в систематическое исследование на уровне экспертов.
7.1. Ключевые архитектурные принципы
Думать на деревьях, а не линии: Глубокий поиск посвящена изучению структурированных деревьев информационных сетей, где каждое открытие генерирует новые вопросы и направления исследований.
Используйте AI-коренные инструменты: Специализированные поисковые системы, такие как Exa.ai, не являются дополнительными - они необходимы для качественных исследований. Они возвращают чистые данные вместо мусора HTML, который обеспечивает традиционные поисковые API.
Применить рекурсию для глубины: Первая страница результатов - только верхушка айсберга. Настоящие идеи лежат в рекурсивном углублении через цикл «Поисковой диверсии».
Объединить внешние и внутренние источники: Синергия между публичными данными в Интернете и частными организационными знаниями создает уникальный контент, который невозможно получить каким -либо другим способом.
Используйте LLM для анализа и синтеза: Агенты ИИ с инструментами могут не только искать информацию, но и оценивать ее актуальность, генерировать новые вопросы и создавать структурированные отчеты.
7.2 Готовые результаты
Реализация, основанная на следующем.js 15, Openai и Exa.ai, демонстрирует, что такая система может быть построена и развернута для производства. Код изhttps://github.com/aifa-agi/aifa-deep-researcer-starterдемонстрирует все ключевые компоненты:
- Рекурсивная архитектура с управлением глубиной и шириной
- Интеграция веб -поиска с векторными базами знаний
- Агенты ИИ с инструментами для оценки результатов
- Генерация экспертных отчетов с возможностями сохранения файлов
7.3. Проблемы и ограничения
Тайм -ауты сервера: Исследования с глубиной более 2 уровней могут занять часы, требуя специальных решений для производственных сред.
Экспоненциальная сложность роста: Каждый уровень глубины увеличивает количество геометрических запросов, требуя тщательного управления ресурсами.
Качество источника: Даже поисковые системы ИИ могут возвращать неточную информацию, требуя дополнительной проверки и проверки фактов.
7.4. Ваши следующие шаги
Теперь у вас есть полный архитектурный план и примеры реального кода. Ты можешь:
Начните с минимальной реализации: Используйте базовую версию из этой статьи для прототипирования
Изучите готовое решение: Клонhttps://github.com/aifa-agi/aifa-deep-researcer-starterи экспериментировать локально
Адаптироваться к вашим потребностям: Интегрируйте эти принципы в существующие продукты и рабочие процессы
8. Задача домашнего задания: решение долгосрочной проблемы UX
Мы рассмотрели техническую архитектуру глубоких исследований агентов ИИ, но остается критически важная проблема UX: что вы делаете, когда система работает в течение нескольких минут, пока пользователь смотрит на пустой экран? Как показывает реальная реализация от AIFA-Researcer-Starter, исследования с глубиной, превышающей 2 уровня, могут занять часы, в то время как пользователи видят только статический экран загрузки.
8.1. Проблема: сервер молчания убивает доверие
В отличие от типичных веб -приложений, где операции занимают секунды, агенты AI Deep Research могут молчать в течение нескольких минут. Пользователи не получают отзывов от сервера до самого конца процесса. Это создает несколько психологических проблем:
- Ожидание тревоги: Пользователи не знают, работает ли система или заморожена
- Потеря контроля: Нет возможности понять, сколько еще ждать
- Снижение доверия: Кажется, что приложение сломано или "съел" запрос
- Высокий уровень отскока: Пользователи закрывают вкладку, не ожидая результатов
Смущение, Клод и другие современные продукты ИИ решают это с помощью интерактивных анимаций, индикаторов прогресса и динамических подсказок. Но как вы реализуете что -то подобное, когда ваш сервер не отправляет промежуточные данные?
8.2. Разработчик вызов
Представьте, что это техническое ограничение: ваш маршрут API Next.js выполняет долгую работу (глубокие исследования) и не может отправлять промежуточные данные до завершения. Frontend получает только ответ в самом конце. Классические решения, такие как серверные события или веб-питания, могут быть недоступны из-за ограничений хостинга или ограничений архитектуры.
Как вы создаете привлекательный UX в этих условиях, которые сохранят пользователей и уменьшат тревогу ожидания?
8.3. Обсуждение вопросов
UX шаблоны и визуализация:
- Какие шаблоны UX вы бы применили для визуализации глубоких процессов поиска, когда сервер "молчит"?
- Как вы можете имитировать «живой» прогресс даже без реальных обновлений статуса сервера?
- Должны ли вы использовать фальшивые бары прогресса, или это нарушает доверие пользователя?
- Какие анимации и микроинтракции помогают создать ощущение «живой» системы?
Пользовательская связь:
- Как вы объясните пользователям, почему ожидание может быть долго? Какие тексты/иллюстрации использовать?
- Должны ли вы показать предполагаемое время ожидания, если они могут сильно различаться (от 2 до 60 минут)?
- Как вы визуализируете этапы процесса («генерирование поисковых запросов ...», «Анализ источников ...», «Формирование экспертного отчета ...»)?
- Какие метафоры помогают пользователям понять ценность ожидания?
Техническая реализация:
- Какие оптимистичные подходы пользовательского интерфейса могут быть применены без обратной связи с сервером?
- Как вы реализуете «разговорный» интерфейс, который поддерживает пользователей во время ожидания?
- Можете ли вы использовать местные вычисления (веб -работники, WASM) для моделирования прогресса?
- Как вы организуете изящную деградацию, если пользователи закрывают вкладку во время исследований?
8.4. Учиться у лучших
Решения исследования, реализованные в исследовании Deepxent Deep, Bing Copilot, Google Search Generative Experience. Что вы можете взять на экранах загрузки игр, которые в течение нескольких минут удерживают внимание? Как Netflix, YouTube и другие платформы решают проблемы с нагрузкой на длинную загрузку?
Помнить: В эпоху мгновенных ответов CHATGPT качество ожидания может стать конкурентным преимуществом. Пользователи готовы подождать, если они поймут ценность процесса и чувствуют, что система работает для них.
9. Об авторе и проекте AIFA
Автор,Роман Болшинов, в его недавней публикационной серии подробно описывает инструменты и архитектурные решения, которые он реализует в своем амбициозном проекте с открытым исходным кодомАйфа(АГенты ИИ в развивающейся и самореплицирующейся архитектуре).
В своей текущей реализации AIFA уже представляет собой впечатляющий шаблон стартового штриха для создания приложений AI-первых с уникальным пользовательским интерфейсом, где искусственный интеллект становится основным методом взаимодействия, в то время как традиционный веб-интерфейс служит вспомогательной визуализацией.
Однако это только начало. Долгосрочной целью проекта является эволюция в полноценную систему AGI, где агенты искусственного интеллекта будут обладать возможностями:
- Автономная эволюцияи улучшение их алгоритмов
- Саморепликацияи создание новых специализированных агентов
- Конкуренция и сотрудничествов распределенных средах
- Автономная операцияВ веб -пространствах и сети блокчейнов
Глубокий поиск в этой статье является лишь одним из основных навыков будущих агентов AGI, которые смогут не только исследовать информацию, но и принимать решения, создавать продукты и взаимодействовать с реальным миром.
Если вы заинтересованы в наблюдении за разработкой проекта и экспериментировали с передовыми технологиями ИИ, не стесняйтесь распаковатьРепозиторий AIFAи погрузиться в изучение архитектуры будущего. Каждый коммит приближает нас к созданию по -настоящему автономного искусственного интеллекта.
Готовы построить будущее?Код открыт, архитектура доказана, а возможности безграничны. Ваш следующий прорыв в исследованиях с AI-это всего лишь клон.
Оригинал