Context Engineering - это дисциплина управления тем, что и когда попадает в память языковой модели во время выполнения задачи. В современных системах, таких как LangChain Deep Agents, основной проблемой стала не нехватка данных, а их избыток. Если поисковый инструмент возвращает 10 полных статей по 20 000 символов каждая, агент мгновенно исчерпывает лимит в 128k или даже 200k токенов. Контекст забивается шумом, и модель теряет нить рассуждения.
#Как работает паттерн Retrieve, Offload, Delegate
В версии Deep Agents v0.9 от 23 октября 2026 года этот процесс стал стандартным для всех тяжелых инструментов. Вместо того чтобы скармливать агенту все содержимое найденных страниц, система проходит три этапа:
- Retrieve (Поиск): Инструмент (например, срезAI) находит релевантные ссылки и извлекает чистый текст.
- Offload (Выгрузка): Полные тексты сохраняются во временную файловую систему или векторную базу, а не возвращаются в prompt.
- Delegate (Делегирование): Агент получает список путей к файлам и 2-3 предложения превью. Если ему нужен конкретный факт, он вызывает субагента или инструмент чтения для конкретного файла.
Агент с ограниченным окном контекста похож на студента на экзамене с открытой книгой: ответов слишком много, и главная задача - не прочитать всё, а быстро найти нужную страницу.
Используйте срезAI для поиска - мы отдаем чистый Markdown, готовый для мгновенной выгрузки в контекст или файлы.
Попробовать поиск#Архитектура решения на базе срезAI
Для реализации ROD в связке со срезAI мы рекомендуем использовать инструмент read_url с сохранением результата. Это позволяет избежать повторных вызовов API и экономить бюджет. Один запрос к поиску стоит 0,10 ₽, а полученный Markdown идеально ложится в схему разгрузки контекста. Когда я впервые собирал такую схему, самым сложным было заставить агента не пытаться угадать содержимое файла по названию, а действительно открывать его для чтения.
import os
from srezai import SrezAIClient client = SrezAIClient(api_key=os.environ["SREZAI_API_KEY"]) def tool_search_and_offload(query): # Retrieve results = client.web_search(query, num=10) offloaded_paths = [] for i, res in enumerate(results): # Offload: сохраняем во внутренний кеш path = f"context/doc_{i}.md" with open(path, "w") as f: f.write(res['text']) offloaded_paths.append({"path": path, "preview": res['text'][:200]}) # Delegate: возвращаем агенту только карту данных return offloaded_paths#Что не сработает
Паттерн ROD не сработает, если ваша модель плохо следует инструкциям. Если агент забывает, что у него есть доступ к файлам, он начнет галлюцинировать на основе коротких превью. Для стабильной работы подходят модели уровня Claude 3.5 Sonnet или GPT-4o. Более слабые версии часто игнорируют делегирование и пытаются выдумать ответ сразу.
Можно ли использовать ROD без локальной файловой системы?
Данные можно сохранять в Redis или векторную БД, передавая агенту только ID документов. Смысл паттерна в том, чтобы убрать тяжелый текст из основного промпта, а где именно он лежит физически - не так важно.
Сколько стоит такая архитектура?
Запрос к срезAI стоит 0,10 ₽.
Работает ли это с динамическим контентом?
Headless-браузер обрабатывает динамический контент на стороне срезAI, и агент получает финальный текст, даже если сайт был перегружен скриптами.
В чем отличие от обычного RAG?
В ROD агент сам решает, какой документ дочитать, видя структуру данных. В классическом RAG система жестко выдает фрагменты по семантической близости, часто вырывая их из общего смысла страницы.
Свой веб-доступ для агента: поиск, чтение страниц и извлечение данных по одному ключу.


