🏠 Главная › user guide › research duckduckgo search
{/ Эта страница автоматически создается на основе файла SKILL.md навыка с помощью сайта site/scripts/generate-skill-docs.py. Редактируйте исходный код SKILL.md, а не эту страницу. /}
Поиск Duckduckgo
Бесплатный поиск в Интернете через DuckDuckGo — текст, новости, изображения, видео. Ключ API не требуется. Предпочитайте CLI ddgs при установке; используйте библиотеку Python DDGS только после проверки доступности ddgs в текущей среде выполнения.
Метаданные навыков
Источник
Необязательно — установите с помощью hermesskills installofficial/research/duckduckgo-search
Ниже приведено полное определение навыка, которое Гермес загружает при активации этого навыка. Это то, что агент видит в качестве инструкций, когда навык активен.
Поиск DuckDuckGo
Бесплатный поиск в Интернете с помощью DuckDuckGo. Ключ API не требуется.
Предпочтительно, когда web_search недоступен или не подходит (например, если FIRECRAWL_API_KEY не установлен). Также может использоваться как отдельный путь поиска, когда результаты DuckDuckGo особенно желательны.
Порядок обнаружения
Прежде чем выбирать подход, проверьте, что действительно доступно:
Дерево решений:
1. Если установлен интерфейс командной строки ddgs, используйте terminal + ddgs.
2. Если CLI ddgs отсутствует, не думайте, что execute_code может импортировать ddgs.
3. Если пользователю нужен именно DuckDuckGo, сначала установите ddgs в соответствующей среде.
4. В противном случае вернитесь к встроенным инструментам веб-браузера.
Важное примечание во время выполнения:
- Терминал и execute_code – это отдельные среды выполнения.
- Успешная установка оболочки не гарантирует, что execute_code сможет импортировать ddgs.
- Никогда не предполагайте, что сторонние пакеты Python предустановлены внутри execute_code.
Установка
Устанавливайте ddgs только в том случае, если поиск DuckDuckGo особенно необходим и среда выполнения еще не предоставляет его.
Если рабочий процесс зависит от импорта Python, убедитесь, что та же среда выполнения может импортировать ddgs, прежде чем использовать from ddgs import DDGS.
Способ 1: поиск через интерфейс командной строки (предпочтительно)
Используйте команду ddgs через терминал, если он существует. Это предпочтительный путь, поскольку он позволяет избежать предположения, что в песочнице execute_code установлен пакет Python ddgs.
# Text search
ddgstext-q"python async programming"-m5# News search
ddgsnews-q"artificial intelligence"-m5# Image search
ddgsimages-q"landscape photography"-m10# Video search
ddgsvideos-q"python tutorial"-m5# With region filter
ddgstext-q"best restaurants"-m5-rus-en
# Recent results only (d=day, w=week, m=month, y=year)
ddgstext-q"latest AI news"-m5-tw
# JSON output for parsing
ddgstext-q"fastapi tutorial"-m5-ojson
Флаги CLI
Флаг
Описание
Пример
-q
Запрос — обязательно
-q "условия поиска"
-м
Максимальные результаты
-м 5
-р
Регион
-r нас-en
-т
Ограничение по времени
-t w (неделя)
-с
Безопасный поиск
-выключено
-о
Выходной формат
-o json
Способ 2: API Python (только после проверки)
Используйте класс DDGS в execute_code или другой среде выполнения Python только после проверки того, что там установлен ddgs. Не думайте, что execute_code по умолчанию включает сторонние пакеты.
Безопасная формулировка:
- «При необходимости используйте execute_code с ddgs после установки или проверки пакета»
Избегайте говорить:
- "execute_code включает ddgs"
- «Поиск DuckDuckGo работает по умолчанию в execute_code»
Важно:max_results всегда должен передаваться как аргумент ключевого слова — позиционное использование вызывает ошибку во всех методах.
Текстовый поиск
Лучше всего подходит для: общих исследований, компаний, документации.
DuckDuckGo возвращает заголовки, URL-адреса и фрагменты, а не полное содержимое страницы. Чтобы получить полное содержимое страницы, сначала выполните поиск, а затем извлеките наиболее релевантный URL-адрес с помощью web_extract, инструментов браузера или Curl.
Пример интерфейса командной строки:
ddgstext-q"fastapi deployment guide"-m3-ojson
Пример Python, только после проверки установки ddgs в этой среде выполнения:
Затем извлеките лучший URL-адрес с помощью «web_extract» или другого инструмента поиска контента.
Ограничения
Ограничение скорости: DuckDuckGo может регулировать скорость после множества быстрых запросов. При необходимости добавьте небольшую задержку между поисками.
Без извлечения содержимого: ddgs возвращает фрагменты, а не полное содержимое страницы. Используйте web_extract, инструменты браузера или Curl для полной статьи/страницы.
Качество результатов: в целом хорошее, но менее настраиваемое, чем поиск Firecrawl.
Доступность: DuckDuckGo может блокировать запросы с некоторых облачных IP-адресов. Если результаты поиска пусты, попробуйте другие ключевые слова или подождите несколько секунд.
Изменчивость полей: поля возврата могут различаться в зависимости от результатов или версий ddgs. Используйте .get() для необязательных полей, чтобы избежать KeyError.
Раздельные среды выполнения: успешная установка ddgs в терминале не означает автоматически, что execute_code может его импортировать.
Устранение неполадок
Проблема
Вероятная причина
Что делать
ddgs: команда не найдена
CLI не установлен в среде оболочки
Установите ddgs или используйте вместо этого встроенные инструменты веб-браузера
ModuleNotFoundError: нет модуля с именем 'ddgs'
В среде выполнения Python не установлен пакет
Не используйте там Python DDGS, пока не будет подготовлена среда выполнения
Поиск ничего не возвращает
Временное ограничение скорости или неправильный запрос
Подождите несколько секунд, повторите попытку или измените запрос
CLI работает, но импорт execute_code невозможен
Терминал и execute_code — разные среды выполнения
Продолжайте использовать CLI или отдельно подготовьте среду выполнения Python
Подводные камни
max_results используется только по ключевым словам: ddgs.text("query", 5) вызывает ошибку. Используйте ddgs.text("query", max_results=5).
Не предполагайте, что CLI существует: проверьте команду -v ddgs перед ее использованием.
Не предполагайте, что execute_code может импортировать ddgs: from ddgs import DDGS может завершиться ошибкой с ModuleNotFoundError, если эта среда выполнения не была подготовлена отдельно.
Имя пакета: это пакет ddgs (ранее duckduckgo-search). Установите с помощью pip install ddgs.
Не путайте -q и -m (CLI): -q предназначен для запроса, -m — для максимального количества результатов.
Пустые результаты: если ddgs ничего не возвращает, возможно, скорость ограничена. Подождите несколько секунд и повторите попытку.
Проверено с помощью
Проверенные примеры на соответствие семантике ddgs==9.11.2. Руководство по навыкам теперь рассматривает доступность CLI и доступность импорта Python как отдельные проблемы, поэтому документированный рабочий процесс соответствует фактическому поведению во время выполнения.