TimelixTimelix
AI-агенты

От чата до модели и инструментов

Почему запрос сначала попадает на бэкенд Timelix, как выбирается модуль агента, где может крутиться LLM и как связаны tools и MCP

Принцип: бэкенд — единая точка входа

Сообщение из Timelix Chat не уходит к модели напрямую из браузера. Сначала оно попадает на бэкенд приложения (маршрут чата агента). Так мы держим авторизацию, контекст пользователя, выбор «куда дальше слать запрос» и единый формат ответа (в том числе стрим).

Зачем так: один и тот же UI может работать с разными бэкендами агента; секреты и OAuth остаются на сервере; к запросу можно подмешать RAG, mcpServerUrl и список инструментов без раскрытия деталей клиенту.

Куда уходит запрос дальше: модуль на роли

Конкретный исполнитель (N8N, встроенный AI, внешний Agent Server, OpenAI через Codex и т.д.) выбирается по конфигурации роли и дочерних контейнеров агента. Логика намеренно сосредоточена на бэкенде: пользователь в чате не переключает «провайдера» вручную — это зашито в настройках агента в базе.

Порядок имеет значение. Сначала проверяется, не задан ли в content самой роли внешний Agent Server (agentServerUrl). Если нет — перебираются дочерние блоки-контейнеры и выбирается первый подходящий модуль: AgentServer → N8nConnector → TanStackAI → CodexConnector. Если ничего не подошло, агент считается не настроенным.

Внешний Agent Server может быть развёрнут в другом регионе (например, в Нидерландах), чтобы обойти гео-ограничения и проксировать запросы к отдельным API. Это развёртывание, а не «особенность UI» — см. Agent Server — внешний LLM-сервис.

Кратко по режимам:

НаправлениеИдея
N8NTimelix отдаёт webhook вашему сценарию; логика и вызовы MCP — на стороне N8N.
TanStack AIМодель вызывается внутри приложения по настройкам контейнера.
Agent ServerLLM и tool-loop на отдельном сервисе; в payload передаётся готовый mcpServerUrl на Timelix.
Codex (ChatGPT subscription)Ответы стримятся через OAuth к API ChatGPT (WHAM); инструменты описываются в формате, ожидаемом этим API, исполнение по-прежнему завязано на контекст агента в Timelix.

Детали маршрута и полей запроса: Timelix Chat. Альтернатива через N8N: N8N и автоматизация.

Инструменты: один набор на агента, исполнение через MCP

Список инструментов для роли собирается на бэкенде по agentId: системные tools из реестра (с учётом отключённых), плюс инструменты из каталога / внешних MCP, привязанные к роли. Это один и тот же принцип, что и для MCP-эндпоинта: без корректного agentId набор может не совпасть с ожиданиями.

Важное разделение:

  • Объявление — что модель «может вызвать» (имена, описания, схема аргументов) уходит вместе с чат-запросом в выбранный бэкенд.
  • Исполнение — реальные действия в данных Timelix выполняются через MCP (/api/agent/mcp), с контекстом userId / agentId / при необходимости todoListId и т.д. В сценарии с внешним Agent Server в запрос кладётся готовая строка mcpServerUrl, чтобы сервер знал, куда слать tool-calls.

Подробнее: Timelix Tools, MCP-сервер Timelix, Задачи и MCP.

Зачем тогда отдельная страница про MCP

MCP — не «ещё один чат», а канал выполнения действий и перечня tools для клиентов, которые говорят по протоколу MCP (IDE, N8N MCP Client, виджеты). Чат агента и MCP согласованы по тому же агенту и тем же правилам доступа к инструментам, но транспорт разный: чат идёт через /api/agent/chat, MCP — через /api/agent/mcp. Обзор протокола: MCP-сервер.