Методичка · Библиотека ДИС
Интеграция n8n и Langflow в AutoSfera AI
Показывает, как связать n8n, Langflow и AutoSfera AI через единый обмен данными, проверки и контроль оператора.
| AUTOSFERA AIПрактическая методичка по интеграции n8n и LangflowКак превратить учебный сценарий конкурентного анализа в безопасный производственный модуль — без замены существующих агентов, RAG и FastAPI.Версия 1.0 • 17 августа 2026 • архитектурная проверка репозитория v2.0.0 |
|---|
Короткий вывод
Сегодняшнюю работу лучше подключить как 17-й внутренний Skill «Исследование конкурента» для Employee Agent. FastAPI остаётся управляющим контуром, n8n — шлюзом интеграций и надёжного исполнения, Langflow — ограниченным аналитическим исполнителем. Результат сначала проходит машинную проверку и подтверждение сотрудником, затем может попасть в базу знаний.
| Сохранить | Добавить | Запретить |
|---|---|---|
| 4 агента, 16 Skills, RAG, SQLite, текущие API | 17-й Skill, job API, JSON-контракт, аудит, evals | Прямой публичный Langflow и авто-запись в KB |
| Главный принципМинимально достаточное вмешательство: расширить зрелые границы проекта, а не строить рядом второй оркестратор. |
|---|
ИСХОДНАЯ ТОЧКА
1. Что уже есть и почему это важно
Повторная проверка репозитория AutoSfera-AI- на ветке main показывает коммерческий MVP версии 2.0.0: четыре специализированных агента (Sales, Support, Service, Employee), 16 Skills, JSON-база знаний с TF-IDF RAG, SQLite для диалогов и заявок, FastAPI и веб-чат. Репозиторий обновлялся 16 августа 2026 года.
Сильные стороны текущего решения
| Слой | Уже реализовано | Архитектурное значение |
|---|---|---|
| Каналы | Веб-чат и заготовки каналов | Есть единая точка входа для обращений |
| Оркестрация | Маршрутизация к 4 агентам | Доменные роли уже разделены |
| Инструменты | 16 Skills с контрактами | Есть естественная точка расширения |
| Знания | JSON + TF-IDF RAG | Ответы можно обосновывать внутренними материалами |
| Операции | Заявки и аналитика в SQLite | Есть бизнес-след, а не только чат |
| API | FastAPI /health, /api/chat, requests, analytics | Есть управляющий и интеграционный периметр |
Что не следует ухудшать
• Не переносить маршрутизацию всех запросов в n8n или Langflow: текущий Orchestrator должен оставаться владельцем диалога и выбора агента.
• Не заменять внутренний RAG внешним исследованием: внутренние знания и веб-источники решают разные задачи.
• Не превращать FastAPI в тонкую прокладку: именно здесь должны жить аутентификация, dealer_id, роли, аудит и публичные контракты.
• Не давать Langflow прямой доступ к CRM/DMS и операциям записи: исследовательскому агенту достаточно чтения веб-источников.
| РешениеИнтеграция — новый инструмент существующего Employee Agent, а не новая параллельная платформа. |
|---|
ЦЕЛЕВАЯ ФУНКЦИЯ
2. Куда подключить сегодняшнюю домашнюю работу
Учебная цепочка «Chat Trigger → Langflow → Edit Fields» уже доказала техническую связность и умеет принимать вопрос извне, передавать его в Langflow и возвращать ответ. В AutoSfera её следует оформить как управляемую функцию конкурентной разведки.
Предлагаемый пользовательский сценарий
| Шаг | Действие | Результат |
|---|---|---|
| 1 | Сотрудник вводит компанию, продукт или URL | Создана исследовательская задача |
| 2 | Employee Agent вызывает Skill competitor_research | Контекст роли и дилера сохранён |
| 3 | FastAPI создаёт job и вызывает n8n webhook | Получен job_id, UI не зависает |
| 4 | n8n проверяет запрос и вызывает Langflow | Есть retry, timeout и idempotency |
| 5 | Langflow собирает сведения и источники | Получен структурированный черновик |
| 6 | n8n валидирует схему и возвращает callback | Статус job обновлён |
| 7 | Сотрудник проверяет и утверждает | Только проверенный материал попадает в KB |
Почему нужен асинхронный job
Исследование конкурента обычно длится дольше обычного чата. Синхронное ожидание 10–30 секунд повышает риск таймаутов и повторных отправок. Производственный интерфейс лучше строить как POST /api/research/jobs → 202 Accepted → job_id, затем GET /api/research/jobs/{id} или подписка на обновление. Для короткой демонстрации текущий Hosted Chat можно сохранить без изменений.
| Практическая развилкаDemo: существующий Chat Trigger. Production: отдельный Webhook workflow с сервисной аутентификацией и асинхронным статусом. |
|---|
АРХИТЕКТУРА
3. Распределение ответственности
| Компонент | Владеет | Не должен делать |
|---|---|---|
| AutoSfera / FastAPI | Пользователь, роль, dealer_id, session_id, права, job, аудит, публичный API | Парсить внешние сайты внутри HTTP-запроса |
| Employee Agent | Решение вызвать исследование, формулировка цели, объяснение результата | Самостоятельно публиковать внешние факты в KB |
| n8n | Webhook, нормализация, idempotency, retry, timeout, callback, уведомления | Быть источником истины по пользователям и заявкам |
| Langflow | Ограниченное исследование, синтез, источники, строгий JSON | Иметь права записи в CRM/DMS или произвольные системные инструменты |
| SQLite / будущая БД | Jobs, статусы, результаты, решения reviewer, trace_id | Хранить секреты интеграций в открытом виде |
Рекомендуемая последовательность
1. POST /api/research/jobs проверяет пользователя, роль и dealer_id; создаёт job со статусом queued.
2. FastAPI подписывает запрос HMAC или передаёт сервисный Bearer token в закрытый webhook n8n.
3. n8n отклоняет дубликаты по idempotency_key, добавляет trace_id и вызывает /api/v1/run/{flow_id} Langflow.
4. Langflow возвращает только разрешённую JSON-схему и список источников.
5. n8n проверяет схему; при ошибке выполняет ограниченный retry, затем переводит job в failed.
6. FastAPI сохраняет черновик; сотрудник выбирает approve, edit или reject.
7. Только approve создаёт версионированный материал базы знаний.
Fallback без деградации основного продукта
• Если Langflow недоступен, чат и остальные 16 Skills продолжают работать.
• Пользователь получает статус «исследование временно недоступно», а не ложный анализ.
• Job можно безопасно повторить; idempotency_key исключает двойную публикацию.
ИНТЕГРАЦИЯ
4. Контракт данных
Запрос AutoSfera → n8n
| Поле | Тип | Назначение |
|---|---|---|
| job_id | UUID | Идентификатор исследования |
| trace_id | UUID | Сквозная диагностика FastAPI → n8n → Langflow |
| dealer_id | string | Изоляция данных дилера |
| actor_id / actor_role | string | Аудит и проверка полномочий |
| query | string | Компания, продукт или URL |
| research_scope | enum | company | product | website |
| locale | string | Язык и регион результата |
| idempotency_key | string | Защита от повторного запуска |
| callback_url | URL | Закрытый endpoint возврата статуса |
| contract_version | string | Совместимость форматов |
Ответ Langflow → n8n
| Блок | Минимальное содержание | Правило |
|---|---|---|
| status | completed | needs_clarification | failed | Никаких скрытых успешных ошибок |
| subject | company, product, official_url | Нормализованный объект анализа |
| summary | Краткий вывод | Отделять факты от интерпретации |
| capabilities / integrations | Массивы наблюдений | Каждое существенное утверждение связано с source_id |
| pricing | confirmed | not_public | unknown | Не придумывать цену |
| recommendations | До 3 применимых идей | Проблема, ценность, сложность |
| sources | title, url, accessed_at, source_type | Предпочитать официальные источники |
| review | required, reasons | Внешнее исследование всегда требует проверки |
| versions | prompt, flow, model, contract | Воспроизводимость результата |
| ВажноНе возвращать в чат сырой вложенный путь Langflow outputs[0]…. Узел n8n должен нормализовать его в стабильный контракт AutoSfera. |
|---|
КАРТА ВНЕДРЕНИЯ
5. Изменения в репозитории
Ниже — рекомендуемая структура. Она дополняет проект и не меняет существующие публичные функции до готовности пилота.
| Файл / каталог | Назначение | Приоритет |
|---|---|---|
| src/autonova/integrations/n8n_client.py | Клиент webhook: auth, timeout, retry, trace_id | P0 |
| src/autonova/research/contracts.py | Pydantic-модели request/result/job | P0 |
| src/autonova/research/service.py | Создание job, статусы, approve/reject | P0 |
| src/autonova/api/main.py | Новые /api/research/jobs endpoints | P0 |
| skills/.../competitor_research.py | 17-й Skill для Employee Agent | P0 |
| prompts/employee_agent.txt | Правила вызова и запрет автопубликации | P0 |
| prompts/orchestrator.txt | Маршрут внутренних исследований | P1 |
| integrations/n8n/competitor_research.json | Экспорт рабочего workflow | P0 |
| integrations/langflow/market_research.json | Экспорт flow и версия | P0 |
| contracts/*.schema.json | Машиночитаемые контракты | P0 |
| tests/test_research_*.py | Контракты, права, сбои, повторы | P0 |
FastAPI здесь нужен для
• единой стабильной точки входа для веб-чата, будущего кабинета, CRM и мобильных каналов;
• проверки личности, роли и dealer_id до вызова внешнего workflow;
• хранения статуса job, аудита, результата проверки и версий;
• изоляции n8n и Langflow от публичного интернета и от внутренней модели данных;
• сохранения заменяемости: Langflow или n8n можно обновить без изменения клиентского API.
Отдельная техническая задолженность
В текущем API запрос ChatRequest не несёт идентичность пользователя, роль и dealer_id; CORS разрешён для всех origins, а канал /api/channels/{channel_name} не сохраняет диалог так же, как /api/chat. Перед внешним пилотом эти различия следует закрыть.
BEST PRACTICES 2026
6. Безопасность и управление агентом
| Риск | Контроль | Где реализовать |
|---|---|---|
| Prompt injection из веб-страницы | Считать веб-контент недоверенным; запрет следовать инструкциям источника; фильтрация входа/выхода | Langflow + validator |
| Excessive agency | Только read-only research tools; нет CRM/DMS write; human approval | Langflow + FastAPI |
| Утечка секретов | Credentials/env, ротация, редактирование логов | n8n + Langflow |
| SSRF / опасные URL | Allow/deny rules, запрет private IP, лимит redirects и размера | Research fetcher |
| Подмена webhook | TLS, Bearer/HMAC, timestamp, nonce | FastAPI ↔ n8n |
| Повторное действие | Idempotency key и уникальный индекс | n8n + DB |
| Непроверенный output | JSON Schema, length limits, source validation | n8n |
| Смешение дилеров | dealer_id из токена, не из свободного текста | FastAPI + DB |
Минимальный P0 до публикации
• Закрыть публичный доступ к Langflow; использовать API key, reverse proxy и LANGFLOW_AUTO_LOGIN=False.
• Ограничить CORS конкретным доменом AutoSfera и не сочетать wildcard origin с credentials.
• Добавить RBAC для knowledge, requests, analytics и research endpoints.
• Ввести лимиты размера запроса, rate limit, timeout и circuit breaker.
• Записывать actor_id, dealer_id, job_id, trace_id и решение reviewer без сохранения секретов.
| OWASP 2026Агентная безопасность — это прежде всего контроль инструментов, границ полномочий и обработки недоверенных данных, а не только хороший system prompt. |
|---|
ПРОВЕРКА РАБОТОСПОСОБНОСТИ
7. Качество, тестирование и наблюдаемость
Пирамида проверки
| Уровень | Что проверить | Критерий |
|---|---|---|
| Smoke | /health AutoSfera; n8n доступен; Langflow flow запускается | Все зависимости отвечают |
| Contract | Запрос и ответ проходят JSON Schema | 100% валидных обязательных полей |
| Integration | Запрос Audi создаёт job и возвращает источники | Нет ручной подстановки данных |
| Failure | Langflow timeout, 401, плохой JSON, недоступный сайт | Корректный failed/retry, чат не падает |
| Security | Prompt injection, private URL, чужой dealer_id | Запрос блокируется или обезвреживается |
| Human eval | Факты, источники, полезность, редактирование | Утверждение без существенной правки |
Набор минимум из 30 кейсов
• 10 обычных: точное название, продукт, официальный URL, русское и английское написание.
• 8 неоднозначных: тёзка, бренд-группа, продукт без отдельного сайта, смена домена.
• 6 неполных: нет цены, закрытая страница, мало источников, противоречивые данные.
• 6 защитных: prompt injection на странице, URL private network, oversized content, повтор webhook, чужой dealer_id, сломанный JSON.
Метрики пилота
| Метрика | Цель пилота | Guardrail |
|---|---|---|
| Результат одобрен без существенной правки | ≥ 70% | Не оптимизировать ценой достоверности |
| Существенные утверждения с источником | ≥ 95% | Нет источника — пометка unknown |
| Schema validity | 100% | Невалидное не публикуется |
| p95 завершения job | ≤ 60 сек | Долгие job уходят в фон |
| Доля технических ошибок | < 3% | Отдельно считать внешние сайты |
| Стоимость одного утверждённого отчёта | Измерять с 1-го дня | Не только стоимость одного вызова |
Обязательные поля наблюдаемости
trace_id, job_id, dealer_id, actor_role, workflow_version, flow_version, prompt_version, model, latency_ms, attempts, status, schema_valid, source_count, reviewer_decision, error_code. Для масштабирования n8n официально рекомендует queue mode; начинать с него не обязательно, но контракт и idempotency должны быть готовы заранее.
ROADMAP
8. Поэтапный план внедрения
| Этап | Содержание | Критерий выхода |
|---|---|---|
| 0. Зафиксировать demo | Экспорт n8n и Langflow; версии; резервная копия | Воспроизводимый запуск на чистом окружении |
| 1. Контракты и job API | Pydantic + JSON Schema + DB migration | Contract tests зелёные |
| 2. Интеграция в Employee Agent | 17-й Skill за feature flag | Основной чат не изменился |
| 3. Защита | Auth/RBAC, CORS, tokens/HMAC, URL controls | Security cases проходят |
| 4. Shadow mode | Система формирует отчёт, но не показывает клиенту | 30 кейсов измерены |
| 5. Внутренний пилот | 2–3 сотрудника, approve/edit/reject | ≥70% одобрено без major edit |
| 6. Ограниченный rollout | Один дилер, лимиты, мониторинг | Стабильные p95 и error rate |
| 7. Масштабирование | Queue mode, workers, Postgres при необходимости | Нагрузка подтверждена тестом |
Приоритеты 30 / 60 / 90 дней
| Горизонт | Главное | Не делать |
|---|---|---|
| 0–30 дней | Контракты, auth, 17-й Skill, 30 eval-кейсов, сохранение workflow | Не писать автоматически в KB |
| 31–60 дней | Human review UI, метрики, failure drills, один дилер | Не подключать CRM write |
| 61–90 дней | Версионирование, queue mode по нагрузке, Postgres при росте | Не масштабировать до доказанного качества |
| Stop / go решениеПродолжать rollout только если guardrails по источникам, schema validity и изоляции дилеров выполнены. Красивый ответ без доказательств не считается успехом. |
|---|
РЫНОК
9. Конкурентный ориентир: Impel
Официальные материалы Impel описывают автомобильную AI Operating System, которая связывает сайт, CRM, DMS, scheduler и этапы жизненного цикла клиента. Это не повод копировать весь продукт; полезны три ограниченные идеи.
| Идея для AutoSfera | Почему применима | Сложность |
|---|---|---|
| Единый интеграционный слой над CRM/DMS | n8n может нормализовать события, не меняя ядро AutoSfera | Средняя |
| Customer & Vehicle 360 context | Повышает точность Sales/Service Agent; контекст должен приходить по ID, а не через RAG | Высокая |
| Human Control Center | Очередь исследований, approvals, ошибки и метрики делает AI управляемым | Средняя |
Цены Impel в проверенных официальных материалах публично не подтверждены; сравнивать экономику следует через запрос коммерческого предложения и пилотные метрики AutoSfera.
Размышления о продуктовой стратегии
• Преимущество AutoSfera — не количество агентов, а единый контекст дилера, контролируемые Skills и измеримый бизнес-след.
• n8n и Langflow должны оставаться заменяемыми адаптерами. Источник истины — AutoSfera и её база данных.
• Внешнее исследование лучше продавать как функцию принятия решений: проверенный отчёт, сравнение и next best action, а не как «ещё один чат».
• Следующий сильный шаг после конкурентного анализа — безопасное чтение CRM/DMS для Customer & Vehicle 360; запись действий оставить на последнюю фазу.
DECISION MEMO
10. Итоговые рекомендации
| Рекомендация | Зачем | Решение |
|---|---|---|
| Встроить ДЗ как competitor_research Skill | Максимально использует существующую архитектуру | Делать сейчас |
| Сохранить Hosted Chat как demo | Уже работает и полезен для демонстрации | Оставить |
| Добавить production Webhook + job API | Надёжность, безопасность, долгие задачи | P0 |
| Ввести строгий JSON и human approval | Защита от галлюцинаций и загрязнения KB | P0 |
| Закрыть auth/RBAC/CORS gaps | Необходимый периметр внешнего пилота | P0 |
| Версионировать flow, prompt, model, contract | Воспроизводимость и rollback | P1 |
| Измерять approval, citations, p95, cost | Решения на данных, а не впечатлении | P1 |
| Масштабировать n8n только по измеренной нагрузке | Не усложнять раньше времени | Позже |
Финальная формула
| AutoSfera = управляющий контурFastAPI и текущие агенты сохраняют бизнес-контекст и ответственность; n8n обеспечивает интеграционную надёжность; Langflow выполняет ограниченную интеллектуальную работу; сотрудник подтверждает знание. |
|---|
Короткий чек-лист готовности
☐ Экспорты n8n и Langflow сохранены и версионируются.
☐ Langflow не опубликован напрямую и требует API key.
☐ Запрос содержит dealer_id, actor, job_id, trace_id, idempotency_key.
☐ Ответ проходит JSON Schema и содержит источники.
☐ Внешний результат не попадает в KB без approval.
☐ Сбои Langflow не ломают основной чат AutoSfera.
☐ Пройдены 30 кейсов, включая security и failure cases.
☐ Метрики и версии видны в журнале пилота.
СПРАВКА
Источники и основания
1. Репозиторий AutoSfera-AI-
2. README AutoSfera-AI-
3. FastAPI entrypoint проекта
4. n8n: queue mode
5. n8n: webhook URLs за reverse proxy
6. Langflow: flow trigger endpoints
7. Langflow: API keys and authentication
8. Langflow: security
9. OWASP Top 10 for Agentic Applications 2026
10. OWASP LLM01 Prompt Injection
11. Impel: Automotive AI platform
12. Impel: platform overview and integrations
Примечание: рекомендации основаны на состоянии main, доступном 17.08.2026, официальной документации инструментов и принципе минимально достаточного вмешательства. Перед production-развёртыванием следует зафиксировать версии контейнеров и повторить security/evaluation gate.
