О себе Портфолио Кейсы Услуги Блог Контакт 🎙 Поговорить с AI
EN DE RU
🎙 Поговорить с AI
October 16, 2026 · 3 min read

Контекстное окно для AI-агентов: как сократить расходы на память и ускорить цепочки задач

Я — Денис Шохирев, архитектор агентных AI-систем из Фрайбурга, Германия. В DennisCraft AI Studio я внедряю автономные multi-agent системы для B2B-клиентов из DACH (логистика, финтех, индустриальная автоматизация). Мой стек: Claude, Supabase, n8n, Doppler, self-hosted Postgres. Недавно у клиента в финтехе один агент “съел” месячный бюджет OpenAI за 3 дня — и вся проблема оказалась в контекстном окне. Контекстное окно: реальный лимит, а не абстракция В продакшене токеновый лимит LLM — не просто

Denis Shokhirev
Denis Shokhirev
Agentic AI Systems Architect
Telegram LinkedIn

Я — Денис Шохирев, архитектор агентных AI-систем из Фрайбурга, Германия. В DennisCraft AI Studio я внедряю автономные multi-agent системы для B2B-клиентов из DACH (логистика, финтех, индустриальная автоматизация). Мой стек: Claude, Supabase, n8n, Doppler, self-hosted Postgres. Недавно у клиента в финтехе один агент “съел” месячный бюджет OpenAI за 3 дня — и вся проблема оказалась в контекстном окне.

Контекстное окно: реальный лимит, а не абстракция

В продакшене токеновый лимит LLM — не просто техническая деталь. На практике именно размер и управление контекстом определяют, сколько денег вы потратите на inference, как быстро будет идти цепочка задач, и как часто агент “забывает” важные детали. Например, Claude 3 Opus (Anthropic, 2024) поддерживает до 200K токенов, но каждый запрос такого объема стоит дорого — и latency растет в разы.

Стратегии оптимизации памяти в цепочках агентов

1. Фильтрация и дедупликация перед отправкой в LLM

Без фильтра агент тянет в prompt всё подряд: логи, старые сообщения, промежуточные вычисления. В одном проекте RAG система с n8n за сутки накопила 12 МБ “истории” — и inference стал стоить в 4 раза дороже. До фильтрации я внедряю функцию, которая удаляет дубликаты и неинформативные куски:


def prepare_context(messages):
    seen, filtered = set(), []
    for msg in messages:
        key = hash(msg['content'])
        if key not in seen and len(msg['content']) > 32:
            filtered.append(msg)
            seen.add(key)
    return filtered[-60:]  # только последние 60 сообщений

В среднем, это сокращает объем контекста на 40-60% — проверено на 3 разных агентах.

2. Tokenizer-aware memory и chunking

Claude и OpenAI SDK позволяют напрямую считать токены через tiktoken (https://github.com/openai/tiktoken). Я всегда считаю токены до отправки, чтобы не превышать лимит — иначе агент “зависает” или возвращает ошибку 413.


import tiktoken

def count_tokens(messages, model="claude-3-opus"):
    enc = tiktoken.encoding_for_model(model)
    return sum(len(enc.encode(m['content'])) for m in messages)

def fit_to_window(messages, window_size):
    total = 0
    result = []
    for msg in reversed(messages):
        tokens = len(tiktoken.encoding_for_model("claude-3-opus").encode(msg['content']))
        if total + tokens > window_size:
            break
        result.insert(0, msg)
        total += tokens
    return result

Это спасло не один продакшн-роллаут: вместо “контекст переполнен” агент просто берет последние 100-500 сообщений, влезающих в лимит.

3. Внешнее хранилище памяти: Supabase/Postgres вместо prompt

Хранить всю историю в prompt — путь к банкротству. Для долговременной памяти я использую Supabase/Postgres: агент пишет ключевые факты и summary в базу, а в prompt попадает только краткое summary и последние 5-10 сообщений. Такая схема снижает расходы на 60-80% при длинных сценариях.


import psycopg2

def get_recent_summaries(agent_id):
    conn = psycopg2.connect("dbname=ai_prod user=agent password=secret")
    cur = conn.cursor()
    cur.execute("SELECT summary FROM memories WHERE agent_id=%s ORDER BY ts DESC LIMIT 3", (agent_id,))
    return [row[0] for row in cur.fetchall()]

RAG-паттерн с retrieval из Postgres стабильно показывает минимальный latency (до 1.2 сек на цепочку) и низкий токеновый расход.

Сравнение подходов — стоимость и скорость

МетодЭкономия токеновLatency (сек)Управляемость
Raw prompt (без фильтра)0%3.0+Низкая
Фильтрация + дедупликация40-60%2.1Средняя
Tokenizer-aware chunking50-70%1.8Высокая
Supabase/Postgres memory60-80%1.2Максимальная

Паттерн “контекстного окна” в цепочках задач

В агентных системах на n8n и Claude цепочки часто ломаются на длинных сценариях: агент забывает цель, повторяет вопросы, или “захлебывается” в собственных логах. Я решаю это за счет явного контроля контекстного окна на каждом этапе цепочки. Пример workflow на n8n:


- name: Fetch recent messages
  type: postgres
  params: {limit: 20}
- name: Summarize
  type: openai
  params: {prompt: "Summarize last 20 messages"}
- name: Build context window
  type: python
  params: {function: prepare_context}
- name: LLM decision
  type: anthropic
  params: {model: "claude-3-opus"}

Контекст никогда не “раздувается” — pipeline стабилен даже после недели работы.

FAQ

Какой оптимальный размер окна?

В большинстве сценариев 4-8K токенов на один prompt достаточно для агента. Всё, что выше — резко увеличивает стоимость и ухудшает latency.

Как хранить долгосрочную память?

Я пишу summary-факты в Supabase/Postgres, а retrieval делаю только по ключевым событиям. В prompt — только краткая выборка.

Как мониторить расходы?

Раз в сутки парсю usage-логи OpenAI/Anthropic и строю отчеты по каждому агенту. Сразу видно, кто “жрет” больше всего.

Что делать, если окно переполнено?

Фильтровать, chunk-ить, убирать “шум” (логи, метаданные). Не пытайтесь влезть всё — лучше summary и ключевые факты.

В каких случаях стоит расширять окно?

Только если агент решает задачи, требующие полного контекста (например, сложные переговоры или длинный документооборот).

На каком этапе у вас чаще всего “проседает” производительность агентных цепочек — на обработке памяти, на latency LLM или при retrieval из базы? Я реально интересуюсь.
Я делаю бесплатный 30-мин аудит стека для DACH-команд, которые строят AI в регулируемых рынках. Пишите в LinkedIn или на @ger_dennis_ai.

Читать дальше
Anthropic заменяет Git: как AI-агенты ломают привычную инфраструктуру разработки
Открытый workspace для AI-агентов: как Paperclip и ENZO позволяют запускать агентов на своих ключах и инфраструктуре
Половина вашего контекстного окна забита мусором: как MCP-дампы, bloated-конфиги и неиспользуемые skills удорожают каждую сессию Claude Code
Как подключить любой AI-модель к 1200+ бизнес-интеграциям за 5 минут (MCP, CLI, API)
Все статьи →
Где это применяется
Услуги — что мы делаем
Поговорить с голосовым агентом
Кейсы
Готовы к следующему шагу?

Превратить процесс в систему, которая работает

Продакшн-качество, а не демо.

Обсудить проект → ← Все статьи