В этом руководстве вы узнаете:
- Что такое LlamaIndex.
- Почему агенты ИИ, созданные с помощью LlamaIndex, должны уметь выполнять веб-поиск.
- Как создать ИИ-агента LlamaIndex с возможностями веб-поиска.
Давайте погрузимся!
Что такое LlamaIndex?
LlamaIndex – это Python-фреймворк с открытым исходным кодом для создания приложений на основе LLM. Он служит связующим звеном между неструктурированными данными и LLM. В частности, он позволяет легко организовывать рабочие процессы LLM для различных источников данных.
С помощью LlamaIndex вы можете создавать готовые к производству рабочие процессы и агентов искусственного интеллекта. Они могут искать и извлекать необходимую информацию, синтезировать выводы, генерировать подробные отчеты, выполнять автоматические действия и многое другое.
На данный момент это одна из самых быстрорастущих библиотек в экосистеме ИИ, имеющая более 42 тысяч звезд на GitHub.
Зачем интегрировать данные веб-поиска в агента искусственного интеллекта LlamaIndex
По сравнению с другими системами ИИ-агентов, LlamaIndex была создана для решения одной из самых больших проблем, связанных с LLM. Это отсутствие у них актуальных знаний о реальном мире.
Чтобы решить эту проблему, LlamaIndex обеспечивает интеграцию с несколькими коннекторами данных, которые позволяют получать контент из разных источников. Теперь вы можете задаться вопросом: какой источник данных наиболее ценен для агента ИИ?
Чтобы ответить на этот вопрос, необходимо рассмотреть, какие источники данных используются для обучения LLM. Успешные LLM получили большую часть обучающих данных из Интернета – самого большого и разнообразного источника публичных данных.
Если вы хотите, чтобы ваш ИИ-агент LlamaIndex вышел за рамки статичных данных для обучения, ключевой способностью, которая ему необходима, является способность искать информацию в Интернете и учиться на том, что он находит. Таким образом, ваш агент должен уметь извлекать структурированную информацию из результирующих страниц поиска (так называемых “SERP“). Затем осмысленно обрабатывать их и учиться на них.
Проблема заключается в том, что скраппинг SERP стал намного сложнее из-за недавних мер Google по борьбе с простыми скриптами скраппинга. Вот почему вам нужен инструмент, который интегрируется с LlamaIndex и упрощает этот процесс. Именно здесь на помощь приходит интеграция с Bright Data от LlamaIndex!
Bright Data выполняет сложную работу по скраппингу SERP. С помощью своего инструмента search_engine
она позволяет вашему агенту LlamaIndex выполнять поисковые запросы и получать структурированные результаты в формате Markdown или JSON.
Это то, что нужно вашему агенту ИИ, чтобы быть готовым отвечать на вопросы как сейчас, так и в будущем. Узнайте, как работает эта интеграция, в следующей главе!
Постройте агент LlamaIndex, который может искать информацию в Интернете с помощью инструментов Bright Data
В этом пошаговом руководстве вы увидите, как с помощью LlamaIndex создать ИИ-агента на Python, способного искать информацию в Интернете.
Интеграция с Bright Data позволит вашему агенту получить доступ к свежим, контекстным, богатым данным веб-поиска. Для получения более подробной информации обратитесь к нашей официальной документации.
Выполните следующие шаги, чтобы создать свой агент ИИ SERP на основе Bright Data с помощью LlamaIndex!
Пререквизиты
Чтобы следовать этому руководству, вам понадобится следующее:
- На вашем компьютере установленPython 3.9 или выше (мы рекомендуем использовать последнюю версию).
- Ключ API Bright Data для интеграции с API SERP Bright Data.
- API-ключ от поддерживаемого LLM. (В этом руководстве мы будем использовать Gemini, который поддерживает интеграцию через API бесплатно. В то же время вы можете использовать любой LLM-провайдер, поддерживаемый LlamaIndex).
Не волнуйтесь, если у вас еще нет ключа API Gemini или Bright Data. Мы покажем вам, как создать их в следующих шагах.
Шаг #1: Инициализация проекта Python
Начните с запуска терминала и создания новой папки для вашего проекта ИИ-агента LlamaIndex:
mkdir llamaindex-bright-data-serp-agent
llamaindex-bright-data-serp-agent/
будет содержать весь код для вашего ИИ-агента с возможностями веб-поиска на основе Bright Data.
Затем перейдите в каталог проекта и создайте в нем виртуальную среду Python:
cd llamaindex-bright-data-serp-agent
python -m venv venv
Теперь откройте папку с проектом в вашей любимой среде разработки Python. Мы рекомендуем Visual Studio Code с расширением Python или PyCharm Community Edition.
Создайте новый файл с именем agent.py
в корневой директории вашего проекта. Структура вашего проекта должна выглядеть следующим образом:
llamaindex-bright-data-serp-agent/
├── venv/
└── agent.py
В терминале активируйте виртуальную среду. В Linux или macOS выполните команду:
source venv/bin/activate
Аналогично, в Windows выполните команду:
venv/Scripts/activate
В следующих шагах вам будет предложено установить все необходимые пакеты. Однако если вы хотите установить все сразу, выполните команду:
pip install python-dotenv llama-index-tools-brightdata llama-index-llms-google-genai llama-index
Примечание: Мы устанавливаем llama-index-llms-google-genai
, потому что в этом руководстве Gemini используется в качестве LLM-провайдера LlamaIndex. Если вы планируете использовать другой провайдер, обязательно установите соответствующую интеграцию LLM.
Отличная работа! Ваша среда разработки на Python готова к созданию ИИ-агента с интеграцией SERP от Bright Data с помощью LlamaIndex.
Шаг № 2: Интеграция чтения переменных окружения
Ваш агент LlamaIndex будет подключаться к внешним сервисам, таким как Gemini и Bright Data, через API. В целях безопасности вы никогда не должны жестко кодировать API-ключи непосредственно в коде Python. Вместо этого используйте переменные окружения, чтобы сохранить их конфиденциальность.
Установите библиотеку python-dotenv, чтобы упростить управление переменными окружения. В активированной виртуальной среде запустите:
pip install python-dotenv
Затем откройте файл agent.py
и добавьте следующие строки в верхней части для загрузки envs из файла .env
:
from dotenv import load_dotenv
load_dotenv()
load_dotenv()
ищет файл .env
в корневом каталоге вашего проекта и загружает его значения в окружение.
Теперь создайте файл .env
рядом с файлом agent.py
. Структура файлов вашего нового проекта должна выглядеть следующим образом:
llamaindex-bright-data-serp-agent/
├── venv/
├── .env # <-------------
└── agent.py
Потрясающе! Вы только что создали безопасный способ управления конфиденциальными учетными данными API для сторонних сервисов.
Продолжите начальную настройку, заполнив файл .env
необходимыми переменными окружения!
Шаг № 3: Настройте Bright Data
Чтобы подключиться к API Bright Data SERP в LlamaIndex с помощью официального пакета интеграции, вам сначала нужно:
- Включите решение Web Unlocker на панели управления Bright Data.
- Получите свой API-токен Bright Data.
Выполните следующие шаги, чтобы завершить настройку!
Если у вас еще нет учетной записи Bright Data, [создайте ее](). Если у вас уже есть учетная запись, войдите в нее. На приборной панели нажмите кнопку “Получить прокси-продукты”:
Вы перейдете на страницу “Прокси и инфраструктура скрапинга”:
Если вы уже видите активную зону API Web Unlocker (как на изображении выше), значит, все готово. Запишите имя зоны (например, unlocker
), так как позже вы будете использовать его в коде.
Если у вас еще нет зоны Web Unlocker, прокрутите страницу вниз до раздела “Web Unlocker API” и нажмите кнопку “Создать зону”:
Почему стоит использовать Web Unlocker API, а не специальный SERP API?
Интеграция LlamaIndex в SERP от Bright Data работает через API Web Unlocker. Точнее, при правильной настройке Web Unlocker функционирует так же, как и специальные SERP API. Короче говоря, настроив зону API Web Unlocker с интеграцией LlamaIndex Bright Data, вы автоматически получаете доступ и к API SERP.
Дайте новой зоне имя, например unlocker, включите все дополнительные функции для повышения производительности и нажмите “Добавить”:
После создания вы будете перенаправлены на страницу конфигурации зоны:
Убедитесь, что тумблер активации установлен в состояние “Активно”. Это подтверждает, что ваша зона готова к использованию.
Далее следуйте официальному руководству Bright Data, чтобы сгенерировать свой ключ API. Как только вы получите ключ, надежно сохраните его в файле .env следующим образом:
BRIGHT_DATA_API_KEY="<YOUR_BRIGHT_DATA_API_KEY>"
Замените на реальное значение ключа API.
Потрясающе! Настройте инструмент Bright Data SERP в своем агентском скрипте LlamaIndex.
Шаг № 4: Зайдите в инструмент SERP Bright Data LlamaIndex
В файле agent.py
начните с загрузки ключа Bright Data API из среды:
BRIGHT_DATA_API_KEY = os.getenv("BRIGHT_DATA_API_KEY")
Обязательно импортируйте os
из стандартной библиотеки Python:
import os
В активированной виртуальной среде установите пакет инструментов LlamaIndex Bright Data:
pip install llama-index-tools-brightdata
Затем импортируйте класс BrightDataToolSpec
в свой файл agent.py:
from llama_index.tools.brightdata import BrightDataToolSpec
Создайте экземпляр BrightDataToolSpec
, указав свой ключ API и имя зоны Web Unlocker:
brightdata_tool_spec = BrightDataToolSpec(
api_key=BRIGHT_DATA_API_KEY,
zone="unlocker", # Replace with the name of your Web Unlocker zone
verbose=True,
)
Замените значение zone на имя зоны Web Unlocker API, которую вы настроили ранее (в данном случае это unlocker).
Обратите внимание, что установка verbose=True
полезна при разработке. Таким образом, библиотека будет выводить полезные журналы, когда ваш агент LlamaIndex будет делать запросы через Bright Data.
BrightDataToolSpec
предоставляет несколько инструментов, но здесь мы сосредоточимся на инструменте search_engine
. С его помощью можно запросить Google, Bing, Yandex и другие, возвращая результаты в формате Markdown или JSON.
Чтобы извлечь именно этот инструмент, напишите:
brightdata_serp_tools = brightdata_tool_spec.to_tool_list(["search_engine"])
Массив, переданный в to_tool_list()
, действует как фильтр, включая только инструмент с именем search_engine
.
Примечание: По умолчанию LlamaIndex выбирает наиболее подходящий инструмент для данного запроса пользователя. Таким образом, фильтрация инструментов не является обязательной. Поскольку это руководство посвящено интеграции возможностей SERP от Bright Data, для наглядности имеет смысл ограничиться инструментом search_engine
.
Потрясающе! Bright Data теперь интегрирована и готова предоставить вашему агенту LlamaIndex возможности веб-поиска.
Шаг #5: Подключите модель LLM
В инструкциях этого шага в качестве поставщика LLM для этой интеграции используется Gemini. Хорошей причиной для выбора Gemini является то, что он предлагает бесплатный API-доступ к некоторым из своих моделей.
Чтобы начать работу с Gemini в LlamaIndex, установите необходимый пакет интеграции:
pip install llama-index-llms-google-genai
Затем импортируйте класс GoogleGenAI в файл agent.py:
from llama_index.llms.google_genai import GoogleGenAI
Теперь инициализируйте Gemini LLM следующим образом:
llm = GoogleGenAI(
model="models/gemini-2.5-flash",
)
В этом примере мы используем модель gemini-2.5-flash
. Вы можете выбрать любую другую поддерживаемую модель Gemini.
За кулисами класс GoogleGenAI автоматически ищет переменную окружения с именем GEMINI_API_KEY
. Он использует ключ API, считанный из этой переменной, для подключения к API Gemini.
Настройте его, открыв файл .env и добавив:
GEMINI_API_KEY="<YOUR_GEMINI_API_KEY>"
Замените на ваш настоящий ключ API Gemini. Если у вас его еще нет, вы можете получить его бесплатно, следуя официальному руководству по получению API Gemini.
Примечание: Если вы хотите использовать другой LLM-провайдер, LlamaIndex поддерживает множество вариантов. Просто обратитесь к официальной документации LlamaIndex за инструкциями по настройке.
Молодцы! Теперь у вас есть все основные элементы для создания ИИ-агента LlamaIndex, который умеет искать информацию в Интернете.
Шаг #6: Определите агента LlamaIndex
Сначала установите основной пакет LlamaIndex:
pip install llama-index
Далее в файле agent.py импортируйте класс FunctionAgent:
from llama_index.core.agent.workflow import FunctionAgent
FunctionAgent
– это специализированный агент LlamaIndex AI, который может взаимодействовать с внешними инструментами, такими как инструмент Bright Data SERP, который вы настроили ранее.
Инициализируйте агента с помощью LLM и инструмента Bright Data SERP следующим образом:
agent = FunctionAgent(
tools=brightdata_serp_tools,
llm=llm,
verbose=True, # Useful while developing
system_prompt="""
You are a helpful assistant that can retrieve SERP results in JSON format.
"""
)
В результате создается агент искусственного интеллекта, который обрабатывает пользовательский ввод через ваш LLM и может вызывать инструменты Bright Data SERP для выполнения веб-поиска в режиме реального времени, когда это необходимо. Обратите внимание на аргумент system_prompt, который определяет роль и поведение агента. Флаг verbose=True
также полезен для проверки внутренней активности.
Замечательно! Интеграция LlamaIndex + Bright Data SERP завершена. Следующий шаг – реализация REPL для интерактивного использования.
Шаг #7: Создайте REPL
REPL, сокращение от “Read-Eval-Print Loop“, – это интерактивный шаблон программирования, в котором вы вводите команды, получаете их оценку и видите результаты.
В этом контексте REPL работает следующим образом:
- Вы описываете задачу, которую должен решить агент искусственного интеллекта.
- ИИ-агент выполняет задание, при необходимости осуществляя поиск в Интернете.
- Вы видите ответ, выведенный в терминале.
Этот цикл продолжается бесконечно, пока вы не наберете "exit"
.
В файле agent.py
добавьте эту асинхронную функцию для обработки логики REPL:
async def main():
print("Gemini-based agent with web searching capabilities powered by Bright Data. Type 'exit' to quit.\n")
while True:
# Read the user request for the AI agent from the CLI
request = input("Request -> ")
# Terminate the execution if the user type "exit"
if request.strip().lower() == "exit":
print("\nAgent terminated")
break
try:
# Execute the request
response = await agent.run(request)
print(f"\nResponse ->:\n{response}\n")
except Exception as e:
print(f"\nError: {str(e)}\n")
Эта функция REPL:
- Принимает пользовательский ввод из командной строки с помощью функции
input()
. - Обрабатывает входные данные с помощью агента LlamaIndex, работающего на базе Gemini и Bright Data, через
agent.run()
. - Отображает ответ на консоли.
Поскольку agent.run()
является асинхронным, логика REPL должна находиться внутри асинхронной
функции. Запустите ее следующим образом в нижней части вашего файла:
if __name__ == "__main__":
asyncio.run(main())
Не забудьте импортировать asyncio
:
import asyncio
Вот и все! ИИ-агент LlamaIndex с инструментами для скраппинга SERP готов.
Шаг #8: Соберите все вместе и запустите агент искусственного интеллекта
Вот что должен содержать ваш файл agent.py:
from dotenv import load_dotenv
import os
from llama_index.tools.brightdata import BrightDataToolSpec
from llama_index.llms.google_genai import GoogleGenAI
from llama_index.core.agent.workflow import FunctionAgent
import asyncio
# Load environment variables from the .env file
load_dotenv()
# Read the Bright Data API key from the envs
BRIGHT_DATA_API_KEY = os.getenv("BRIGHT_DATA_API_KEY")
# Set up the Bright Data Tools
brightdata_tool_spec = BrightDataToolSpec(
api_key=BRIGHT_DATA_API_KEY,
zone="unlocker", # Replace with the name of your Web Unlocker zone
verbose=True, # Useful while developing
)
# Get only the "search_engine" (SERP scraping) tool
brightdata_serp_tools = brightdata_tool_spec.to_tool_list(["search_engine"])
# Configure the connection to Gemini
llm = GoogleGenAI(
model="models/gemini-2.5-flash",
)
# Create the LlamaIndex agent powered by Gemini and connected to Bright Data tools
agent = FunctionAgent(
tools=brightdata_serp_tools,
llm=llm,
verbose=True, # Useful while developing
system_prompt="""
You are a helpful assistant that can retrieve SERP results in JSON format.
"""
)
# Async REPL loop
async def main():
print("Gemini-based agent with web searching capabilities powered by Bright Data. Type 'exit' to quit.\n")
while True:
# Read the user request for the AI agent from the CLI
request = input("Request -> ")
# Terminate the execution if the user type "exit"
if request.strip().lower() == "exit":
print("\nAgent terminated")
break
try:
# Execute the request
response = await agent.run(request)
print(f"\nResponse ->:\n{response}\n")
except Exception as e:
print(f"\nError: {str(e)}\n")
if __name__ == "__main__":
asyncio.run(main())
Запустите агент LlamaIndex SERP с помощью:
python agent.py
Когда скрипт запустится, в терминале появится вот такое приглашение:
Попробуйте, например, попросить своего агента о чем-то, что требует свежей информации:
Write a short Markdown report on the new AI protocols, including some real-world links for further reading.
Чтобы эффективно выполнять эту задачу, агент ИИ должен искать в Интернете актуальную информацию.
Результат будет таким:
Это было довольно быстро, так что давайте разберемся, что произошло:
- Агент обнаруживает необходимость поиска “новых протоколов искусственного интеллекта” и вызывает Bright Data SERP API через инструмент search_engine, используя такой входной URL:
https://www.google.com/search?q=new%20AI%20protocols&num=10&brd_json=1.
- Инструмент асинхронно получает данные SERP в формате JSON из поискового API Google от Bright Data.
- Агент передает ответ в формате JSON в Gemini LLM.
- Gemini обрабатывает свежие данные и генерирует четкий, точный отчет в формате Markdown с соответствующими ссылками.
В этом случае агент ИИ вернулся:
## New AI Protocols: A Brief Report
The rapid advancement of Artificial Intelligence has led to the emergence of new protocols designed to enhance interoperability, communication, and data handling among AI systems and with external data sources. These protocols aim to standardize how AI agents interact, leading to more scalable and integrated AI deployments.
Here are some of the key new AI protocols:
### 1. Model Context Protocol (MCP)
The Model Context Protocol (MCP) is an open standard that facilitates secure, two-way connections between AI-powered tools and various data sources. It fundamentally changes how AI assistants interact with the digital world by allowing them to access and utilize external information more effectively. This protocol is crucial for enabling AI models to communicate with external data sources and for building more capable and context-aware AI applications.
**Further Reading:**
* **Introducing the Model Context Protocol:** [https://www.anthropic.com/news/model-context-protocol](https://www.anthropic.com/news/model-context-protocol)
* **How A Simple Protocol Is Changing Everything About AI:** [https://www.forbes.com/sites/craigsmith/2025/04/07/how-a-simple-protocol-is-changing-everything-about-ai/](https://www.forbes.com/sites/craigsmith/2025/04/07/how-a-simple-protocol-is-changing-everything-about-ai/)
* **The New Model Context Protocol for AI Agents:** [https://evergreen.insightglobal.com/the-new-model-context-protocol-for-ai-agents/](https://evergreen.insightglobal.com/the-new-model-context-protocol-for-ai-agents/)
* **Model Context Protocol: The New Standard for AI Interoperability:** [https://techstrong.ai/aiops/model-context-protocol-the-new-standard-for-ai-interoperability/](https://techstrong.ai/aiops/model-context-protocol-the-new-standard-for-ai-interoperability/)
* **Hot new protocol glues together AI and apps:** [https://www.axios.com/2025/04/17/model-context-protocol-anthropic-open-source](https://www.axios.com/2025/04/17/model-context-protocol-anthropic-open-source)
### 2. Agent2Agent Protocol (A2A)
The Agent2Agent Protocol (A2A) is a cross-platform specification designed to enable AI agents to communicate with each other, securely exchange information, and coordinate actions. This protocol is vital for fostering collaboration among different AI agents, allowing them to work together on complex tasks and delegate responsibilities across various enterprise systems.
**Further Reading:**
* **Announcing the Agent2Agent Protocol (A2A):** [https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/](https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/)
* **What Every AI Engineer Should Know About A2A, MCP & ACP:** [https://medium.com/@elisowski/what-every-ai-engineer-should-know-about-a2a-mcp-acp-8335a210a742](https://medium.com/@elisowski/what-every-ai-engineer-should-know-about-a2a-mcp-acp-8335a210a742)
* **What a new AI protocol means for journalists:** [https://www.dw.com/en/what-coding-agents-and-a-new-ai-protocol-mean-for-journalists/a-72976193](https://www.dw.com/en/what-coding-agents-and-a-new-ai-protocol-mean-for-journalists/a-72976193)
### 3. Agent Communication Protocol (ACP)
The Agent Communication Protocol (ACP) is an open standard specifically for agent-to-agent communication. Its purpose is to transform the current landscape of siloed AI agents into interoperable agentic systems, promoting easier integration and collaboration between them. ACP provides a standardized messaging framework for structured communication.
**Further Reading:**
* **MCP, ACP, and Agent2Agent set standards for scalable AI:** [https://www.cio.com/article/3991302/ai-protocols-set-standards-for-scalable-results.html](https://www.cio.com/article/3991302/ai-protocols-set-standards-for-scalable-results.html)
* **What is Agent Communication Protocol (ACP)?** [https://www.ibm.com/think/topics/agent-communication-protocol](https://www.ibm.com/think/topics/agent-communication-protocol)
* **MCP vs A2A vs ACP: AI Protocols Explained:** [https://www.bluebash.co/blog/mcp-vs-a2a-vs-acp-agent-communication-protocols/](https://www.bluebash.co/blog/mcp-vs-a2a-vs-acp-agent-communication-protocols/)
These emerging protocols are crucial steps towards a more interconnected and efficient AI ecosystem, enabling more sophisticated and collaborative AI applications across various industries.
Обратите внимание, что ответ агента искусственного интеллекта включает в себя последние протоколы и актуальные ссылки, опубликованные после последнего обучающего обновления Gemini. Это подчеркивает ценность интеграции возможностей живого веб-поиска.
Если говорить более конкретно, то ответ включает контекстные ссылки, которые точно соответствуют тому, что можно найти, задав в Google поиск “new ai protocols”:
Обратите внимание, что ответ включает многие из тех же ссылок, которые вы найдете в реальном SERP “новые протоколы ИИ” (по крайней мере, на момент написания статьи).
И вуаля! Теперь у вас есть ИИ-агент LlamaIndex с возможностями поиска в поисковых системах, работающий на базе Bright Data.
Шаг № 9: Следующие шаги
Текущий ИИ-агент LlamaIndex SERP – это простой пример, использующий только инструмент search_engine от Bright Data.
В более продвинутых сценариях вы, вероятно, не захотите ограничивать своего агента одним инструментом. Вместо этого лучше предоставить агенту доступ ко всем имеющимся инструментам и написать четкую системную подсказку, которая поможет LLM решить, какие из них использовать для каждой цели.
Например, вы можете расширить свою подсказку и пойти дальше:
- Выполните несколько поисковых запросов.
- Выберите N лучших ссылок из результатов SERP.
- Посетите эти страницы и соберите их содержимое в формате Markdown.
- Изучите эту информацию, чтобы получить более насыщенный и подробный результат.
Более подробные рекомендации по интеграции со всеми доступными инструментами вы найдете в нашем руководстве по созданию агентов ИИ с помощью LlamaIndex и Bright Data.
Заключение
В этой статье вы узнали, как использовать LlamaIndex для создания ИИ-агента, способного искать информацию в Интернете с помощью Bright Data. Эта интеграция позволяет вашему агенту выполнять поисковые запросы в основных поисковых системах, включая Google, Bing, Yandex и многие другие.
Помните, что рассмотренный здесь пример – это лишь отправная точка. Если вы планируете разрабатывать более сложные агенты, вам понадобятся надежные инструменты для получения, проверки и преобразования живых веб-данных. Именно такие инструменты предоставляет инфраструктура искусственного интеллекта для агентов Bright Data.
Создайте бесплатную учетную запись Bright Data и начните изучать наши инструменты для работы с данными искусственного интеллекта уже сегодня!