Контекст для AI-агентов: как сократить расходы на токены на 60–90% и не потерять контроль над данными

Я — Denis Shokhirev, Enterprise AI architect из Фрайбурга, Германия. В DennisCraft AI Studio я интегрирую AI-агентов для B2B-клиентов DACH на стеке Claude, Supabase, n8n, Doppler и self-hosted Postgres. Когда твой клиент — не стартап, а банк или логистическая компания, каждая строка токенов и каждый байт данных важны. На одном из последних проектов стоимость токенов в RAG-агенте превышала зарплату middle-разработчика за месяц — потому что никто не думал о правильной архитектуре контекста.

Почему расходы на токены выходят из-под контроля

Большинство разработчиков AI-агентов начинают с простого подхода: весь релевантный контент (инструкции, базы знаний, документы) отправляется в prompt или system message. При scale это приводит к экспоненциальному росту затрат: за сутки production-агент может отправить LLM миллионы токенов, не замечая, что половина запросов — повторения. Мой рекорд — 480 000 рублей на токены за месяц для одного промышленного бота.

Где чаще всего теряют деньги

  • Статичные инструкции для каждого запроса
  • Текстовые документы в system prompt
  • Результаты поиска по базе знаний без фильтрации
  • Дублирующиеся сообщения между agent steps (например, в n8n workflow)

Архитектурные паттерны для сокращения расходов на токены

Вот конкретные подходы, которые я использую в production-агентах для DACH-клиентов, чтобы снизить расходы на 60–90% без потери качества и контроля над данными.

1. Инкрементальное построение контекста

Не отправляйте всю историю user-agent. Собирайте только минимально необходимый контекст для текущего шага. Пример — в n8n через кастомные nodes для извлечения ключевых фрагментов:


def build_context(messages, required_keys):
    context = []
    for msg in reversed(messages):
        if msg['type'] in required_keys:
            context.append(msg['content'])
        if len(context) >= 4:  # ограничиваем глубину истории
            break
    return "\n".join(reversed(context))

2. Использование Embedding Search вместо полного текста

Вместо отправки целых документов интегрируйте поиск по embedding-индексу (Supabase pgvector, self-hosted Postgres + pgvector). Возвращайте только релевантные абзацы, а не 10 страниц PDF.


from supabase import create_client
supabase = create_client(url, key)
def search_knowledge(query, top_k=3):
    # Embedding запроса
    embedding = get_embedding(query)
    # Поиск по pgvector
    rows = supabase.table("knowledge").select("*").limit(top_k).eq("embedding", embedding).execute()
    return [row['text'] for row in rows['data']]

3. Кэширование промежуточных результатов

Вместо повторного запроса к LLM сохраняйте результаты часто встречающихся prompt-комбинаций в отдельной таблице Postgres или Supabase.


def get_or_generate_answer(prompt_hash):
    answer = db.query("SELECT response FROM cache WHERE hash = %s", (prompt_hash,))
    if answer:
        return answer[0]
    else:
        response = call_llm_api(...)
        db.execute("INSERT INTO cache (hash, response) VALUES (%s, %s)", (prompt_hash, response))
        return response

Контроль над данными: где облачные решения подводят

Для промышленных, финтех- и логистических клиентов DACH региона контроль над данными — не хотелка, а требование регулятора. Я не использую облачные векторные базы (Pinecone, Weaviate), если есть шанс, что данные попадут за пределы EU или будут храниться вне инфраструктуры клиента. Self-hosted Postgres с pgvector — единственный вариант, который проходит аудит.

РешениеКонтроль над даннымиСтоимостьProduction-опыт
PineconeМинимальныйВысокаяДемо
Weaviate CloudМинимальныйСредняяДемо
Self-hosted Postgres + pgvectorПолныйНизкаяProduction

Безопасность: статический анализ и контроль доступов

Любая оптимизация бессмысленна, если agent утечет данные. Все production-агенты я прогоняю через semgrep и bandit для обнаружения SQL-инъекций и небезопасных вызовов API (см. semgrep.dev, 2024). Доступ к embedding-индексу — только через сервисные аккаунты с ограниченными ролями Supabase или прямым контролем через Postgres GRANT.

FAQ

Стоит ли переходить на self-hosted Postgres ради контроля над данными?

Если у вас DACH-клиенты или финтех, другого выбора нет. Любые облачные embedding-хранилища не проходят аудит и могут привести к штрафам.

Можно ли сжать расходы на токены без потери качества?

Да, при грамотной архитектуре (инкрементальный контекст, embedding search, кэширование). В среднем мои агенты снижают расходы на 65–80% после перехода на эти паттерны.

Какой стек embedding search реально работает в проде?

Supabase с pgvector и self-hosted Postgres — единственный вариант, который стабильно работает под нагрузкой и проходит аудит.

Как мониторить утечки данных через AI-агентов?

Внедряйте статический анализ (semgrep, bandit), логируйте все запросы к embedding-индексу, настраивайте alert-правила по аномалиям доступа.

Что делать, если LLM все равно «спрашивает» лишний контекст?

Жестко ограничивать глубину истории и размер embedding-ответов. Настраивать правила на уровне workflow (например, в n8n), чтобы не передавать лишние блоки.

В каком месте вашей AI-архитектуры расходы на токены оказались неожиданно высокими? Сколько стоила вам эта ошибка? Я провожу бесплатный 30-минутный аудит стека для DACH-команд, которые строят AI в регулируемых рынках. Напишите мне в LinkedIn или на @ger_dennis_ai.

Read more

Computer-Use-Agenten scheitern an Pixeln: wie Sie auf stabile UI-Referenzen über Accessibility Trees umstellen und fehleranfällige Desktop-Automatisierung nicht mehr ständig reparieren

von Denis Shokhirev, Enterprise AI Architect aus Freiburg im Breisgau Ich bin Denis Shokhirev, Agentic AI Systems Architect in Freiburg im Breisgau, Germany, und bei DennisCraft AI Studio setze ich produktive KI-Systeme für DACH-B2B-Kunden auf Basis von Claude, Supabase, n8n, Doppler und selbst betriebenem Postgres um. Die teuersten Fehler in

By Denis Shokhirev

Компьютерные агенты ломаются на пикселях: как перейти на stable UI refs через accessibility tree и перестать чинить flaky desktop automation

Я Denis Shokhirev, Agentic AI Systems Architect из Freiburg im Breisgau, Germany, и в DennisCraft AI Studio я собираю production AI-системы для DACH B2B на Claude, Supabase, n8n, Doppler и self-hosted Postgres. Самая дорогая поломка в desktop automation, которую я вижу у клиентов, почти никогда не связана с моделью: агент

By Denis Shokhirev