Примеры агента iDevice
Небольшие примеры, которые можно запустить, чтобы вызывать iDevice из агента. iDevice (https://idevice.com) — независимый справочник для покупателей телефонов и носимых устройств. Он не продаёт товары, о которых рассказывает.
iDevice предоставляет два бесплатных интерфейса только для чтения для программных агентов:
| URL | |
|---|---|
| MCP-сервер (передача данных по HTTP с потоковой передачей) | https://idevice.com/api/mcp |
| A2A-агент | https://idevice.com/api/a2a |
| Карточка A2A-агента | https://idevice.com/.well-known/agent-card.json |
Учётная запись, API-ключ и вход в систему не требуются. Ни один из интерфейсов не позволяет покупать, бронировать, публиковать или изменять данные.
Ограничения на частоту запросов: 30 запросов в минуту и 500 в день с одного IP-адреса. Запросы сверх лимита отклоняются (HTTP 429 или ошибка JSON-RPC). В таком случае подождите и повторите попытку позже — не запускайте запросы в цикле. Платного тарифа нет. В списках может быть не более 20 элементов.
Полная документация: https://idevice.com/mcp и https://idevice.com/mcp/docs. Чтобы получить актуальный список инструментов и названия аргументов, выполните tools/list. В этом репозитории этот список не дублируется.
Возможности инструментов
| Задача | Инструменты |
|---|---|
| Решить, стоит ли покупать | should_i_buy, get_guide_summary, find_products, get_best_for, compare_products, get_reviews |
| Владение и правила | get_ownership_facts, get_in_the_box |
| Найти товар или компанию | list_products, get_product, get_company_profile |
| Совместимость, характеристики и цены | get_compatibility, get_product_facts, get_detailed_facts, get_variants_and_offers, get_price_history |
| Новости, отчёты и история | get_product_news, get_reports, search_reports, get_report_card, get_release_history, get_release_calendar, get_guide_extras |
Большинство инструментов принимают аргумент product_slug. Получить его можно с помощью list_products.
Примеры вопросов
-
Я пользуюсь iPhone. Стоит ли мне покупать Samsung Galaxy Watch 8?
-
Какие умные кольца лучше всего подходят для отслеживания сна?
-
Какие прогнозы из материалов, опубликованных до выхода Apple Watch Series 12, подтвердились?
Примеры
| Папка | Фреймворк | Примечания |
|---|---|---|
examples/curl-and-python | нет | Прямые вызовы JSON-RPC с помощью curl и стандартной библиотеки Python, а также одно сообщение A2A |
examples/google-adk | Google ADK | McpToolset с передачей данных по HTTP с потоковой передачей, а также A2A-клиент |
examples/langgraph | LangChain и LangGraph | langchain.mcp.MCPAdapter вместе с create_agent |
examples/vercel-ai-sdk | Vercel AI SDK | createMCPClient с транспортом HTTP (TypeScript) |
examples/openai-agents-sdk | OpenAI Agents SDK | MCPServerStreamableHttp |
Каждый пример получает ключ вашей модели из переменной среды, используемой соответствующим фреймворком. Ключ iDevice не нужен. В каждом примере предусмотрен режим --check: он выводит список инструментов и выполняет один вызов инструмента без использования модели. В README каждой папки указано, какие команды запускались на работающем сервере, а какие составлены только по документации фреймворка.
Чтобы направить пример на другой URL MCP, задайте переменную IDEVICE_MCP_URL.
Как ссылаться на iDevice
Если в ответе используются данные iDevice:
-
Укажите iDevice и добавьте ссылку на
url, возвращённый инструментом. Она ведёт на страницу с подтверждающими данными. В некоторых ответах также естьsource_urlилиsources[].url, ведущие на страницу производителя; добавьте и эту ссылку. -
Сохраняйте указание на степень подтверждённости рядом с фактом:
Confirmed,Reported,Our readилиNo source on file. В ответах о совместимости используйте формулировкиWorks,Works with a limit,Needs extra hardware,Does not workилиNot confirmed. -
Not confirmedозначает, что данные неизвестны. Это не означает несовместимость. -
Если в результате указано
sponsored: true, сообщите, что руководство спонсируется, и назовитеsponsor.
Асинхронные ответы A2A
A2A-агент обрабатывает вопросы о товарах как задачи. Вызов message/send сразу возвращает задачу, но ответ на вопрос о товаре может занять несколько минут — дольше, чем обычный вызов API. Вызывайте tasks/get, передавая идентификатор задачи, пока её состояние не перестанет быть submitted или working. Установите длительный тайм-аут. Ответ на вопрос о товаре также содержит одну компактную часть данных в формате JSON не более чем о пяти товарах.
Конфиденциальность
В этих примерах вопрос передаётся вашему поставщику модели, а вызовы инструментов — iDevice. Никакие данные здесь не сохраняются. О том, как iDevice обрабатывает данные, читайте на странице https://idevice.com/privacy.
Лицензия
MIT. Copyright iDevice Media LLC.