TunnelHunt

Отладка AI-агентов и LLM Function Calling на localhost через Tunnelhunt

4 мин чтения

Узнайте, как локально разрабатывать и тестировать AI-агентов, вызовы функций (Function/Tool Calling) и асинхронные вебхуки от LLM без деплоя на прод и с постоянными HTTPS-субдоменами.

Отладка AI-агентов и LLM Function Calling локально через Tunnelhunt

Индустрия разработки ПО проходит через масштабную трансформацию: на смену простым чат-ботам приходят автономные AI-агенты (на базе передовых LLM, мультимодальных reasoning-моделей и AGI-каркасов от OpenAI, Anthropic, Google, DeepSeek и открытых локальных моделей). Современные агенты больше не просто генерируют текст — они вызывают внешний код с помощью Function Calling (Tool Calling), обрабатывают сторонние API и взаимодействуют с внутренними сервисами через вебхуки.

Однако при локальной разработке агентов разработчики неизбежно сталкиваются с «сетевой стеной»: облачные нейросети и внешние AI-платформы не умеют обращаться к http://localhost:3000.

В этой статье мы разберем, как построить удобный DX (Developer Experience) для отладки AI-инструментов на вашей локальной машине с помощью Tunnelhunt.


Главные сложности при отладке AI-агентов локально

Когда вы разрабатываете агента с вызовом внешних функций (Custom HTTP Tools) или работаете с асинхронными AI-сервисами (например, генерация видео в Replicate, озвучка в ElevenLabs или обработка через Vercel AI SDK), возникают 3 ключевые проблемы:

  1. Строгое требование HTTPS: Облачные платформы и спецификации OpenAPI/Custom GPT Actions отказываются отправлять HTTP-запросы на незащищенные http:// адреса или IP-адреса без валидного SSL-сертификата.
  2. Динамические вебхуки и сброс URL: При использовании большинства бесплатных туннелей адрес меняется при каждом перезапуске. В итоге вам приходится постоянно обновлять env-файлы, переконфигурировать схемы вызова в кабинете OpenAI/Anthropic или заново создавать вебхуки.
  3. Сложность отладки аномальных JSON-payloads: LLM иногда могут прислать некорректный JSON или нетривиальный аргумент в вызове функции. Если запрос упал на бэкенде, хочется иметь возможность мгновенно переотправить (Replay) этот же запрос с локальным дебаггером.

Решение: Проброс локального инструмента за 1 секунду

С помощью Tunnelhunt вам не нужно устанавливать дополнительные утилиты или сложные агенты. Все работает через встроенный в вашу ОС SSH-клиент.

Представим, что у вас локально запущен сервис на Python (FastAPI) или Node.js, выполняющий функцию для агента (например, бронирование слота в базе данных или поиск по локальной базе знаний):

# Локальный сервер запущен на порту 8080
ssh -p 2222 -R 80:localhost:8080 tunnelhunt.ru

В ответ в терминале вы моментально получите публичный SSL-адрес:

  ▲ Tunnelhunt Online
  --------------------------------------------------
  Your tunnel has been successfully established:
  https://clever-rabbit.tunnelhunt.ru -> http://localhost:8080
  --------------------------------------------------

Теперь адрес https://clever-rabbit.tunnelhunt.ru/api/v1/tools/search полностью доступен для вызова из облачных моделей!


Практический пример: Подключение локальной функции к Vercel AI SDK / OpenAI

Ниже приведен пример локального эндпоинта на TypeScript (Next.js / Express), который выполняет функцию для AI-агента:

// server.ts (работает локально на http://localhost:8080)
import express from "express";

const app = express();
app.use(express.json());

// Инструмент, который вызывает AI-агент
app.post("/api/tools/execute-sql", async (req, res) => {
  const { query, parameters } = req.body;
  
  console.log("🤖 Запрос на выполнение от AI-агента:", query);
  
  // Выполняем запрос к локальной базе данных
  try {
    const result = await db.query(query, parameters);
    return res.json({ success: true, data: result });
  } catch (error) {
    return res.status(400).json({ success: false, error: error.message });
  }
});

app.listen(8080, () => console.log("Local Tool API running on :8080"));

Чтобы передать этот инструмент в схему вызова OpenAI / LangChain / CrewAI, вы просто указываете публичный URL вашего туннеля:

# python_agent.py
import openai

client = openai.OpenAI()

tools = [{
    "type": "function",
    "function": {
        "name": "execute_sql",
        "description": "Выполняет запрос к дев-базе данных",
        "parameters": {
            "type": "object",
            "properties": {
                "query": {"type": "string"}
            },
            "required": ["query"]
        },
        # Публичный HTTPS-URL от Tunnelhunt
        "url": "https://clever-rabbit.tunnelhunt.ru/api/tools/execute-sql"
    }
}]

Почему Tunnelhunt идеален для работы с AI-агентами?

1. Постоянные субдомены (Pro / Business)

Зарезервируйте постоянный субдомен (например, my-agent-dev.tunnelhunt.ru) в дашборде Tunnelhunt. После этого вы запускаете туннель командой:

ssh -p 2222 -R my-agent-dev:80:localhost:8080 tunnelhunt.ru

Вам больше никогда не придется обновлять ссылки в настройках OpenAI Assistants API, Custom GPTs или конфигурации LangChain — адрес останется неизменным всегда.

2. Инспектирование и повтор (Replay) вызовов функций

В дашборде Tunnelhunt вы можете в реальном времени видеть все входящие HTTP-запросы от нейросетей:

  • Просматривать точные JSON-аргументы, отправленные языковой моделью.
  • Отслеживать заголовки авторизации и время ответа локального сервера.
  • Повторять вызов (Replay) в один клик: если ваш локальный сервер упал из-за ошибки в коде, зафиксируйте баг в IDE, нажмите кнопку Replay в дашборде — и Tunnelhunt заново отправит тот же самый запрос от LLM без необходимости снова тратить токены в API.

3. Нативная интеграция с MCP (@tunnelhunt/mcp)

Если вы используете IDE Cursor, Windsurf или Claude Desktop, установите официальный MCP-сервер Tunnelhunt. Ваш ИИ-ассистент сможет самостоятельно создавать туннели, когда ему нужно протестировать написанный вебхук, и автоматически считывать логи ответов.


Резюме

Разработка AI-агентов требует максимальной скорости итераций. Использование Tunnelhunt избавляет вас от необходимости постоянного деплоя на тестовые стенды, предоставляет публичный HTTPS с постоянным субдоменом и даёт полный контроль над трафиком агентов.

Попробуйте пробросить ваш первый AI-инструмент прямо сейчас:

ssh -p 2222 -R 80:localhost:8080 tunnelhunt.ru

Готовы запустить свой первый туннель?

Начните использовать TunnelHunt бесплатно уже сегодня и откройте доступ к локальному серверу всего одной командой.

Зарегистрироваться бесплатно →

Последние публикации

Локальное тестирование вебхуков CloudPayments через TunnelHunt

Локальное тестирование вебхуков CloudPayments через TunnelHunt

22 июня 2026 г.

Пошаговый гайд по отладке уведомлений о платежах CloudPayments на localhost. Как настроить адреса уведомлений, пробросить туннель и верифицировать подпись HMAC-SHA256 в Python.

Читать далее →
Настройка и отладка вебхуков Robokassa на локальном сервере

Настройка и отладка вебхуков Robokassa на локальном сервере

22 июня 2026 г.

Пошаговая инструкция по приему и верификации платежных уведомлений Robokassa на локальном компьютере с помощью TunnelHunt. Пример MD5-подписи на Python.

Читать далее →
Локальное тестирование вебхуков Т-Банка (Т-Бизнес / Эквайринг) на localhost

Локальное тестирование вебхуков Т-Банка (Т-Бизнес / Эквайринг) на localhost

22 июня 2026 г.

Пошаговый гайд по отладке платежных уведомлений эквайринга Т-Банка локально. Настройка адреса уведомлений, проброс через TunnelHunt и пример проверки подписи Token на Python.

Читать далее →
Локальное тестирование вебхуков ЮKassa (YooKassa) через TunnelHunt

Локальное тестирование вебхуков ЮKassa (YooKassa) через TunnelHunt

22 июня 2026 г.

Пошаговый гайд по настройке уведомлений ЮKassa (YooKassa) на локальном сервере. Как пробросить порт, прописать URL в личном кабинете и проверить цифровую подпись.

Читать далее →