Суммаризация, память, навыки, middleware для управления контекстным окном.
У каждой модели фиксированный размер контекстного окна. По мере выполнения агента окно заполняется — нужно управлять этим процессом.
Когда агент работает, контекстное окно заполняется историей диалога, результатами инструментов и промежуточными шагами. При достижении лимита агент теряет контекст и начинает работать некорректно.
Сжатие истории перед достижением лимита — промежуточные сообщения заменяются кратким содержанием:
from deepagents.middleware import SummarizationMiddleware
middleware = SummarizationMiddleware(
model="openai:gpt-4o-mini",
backend=backend,
)Загрузка постоянных инструкций при запуске агента — содержимое файла AGENTS.md добавляется в контекст:
from deepagents.middleware import MemoryMiddleware
middleware = MemoryMiddleware(
backend=backend,
sources=["./AGENTS.md"],
)Загрузка доменных знаний по требованию — специализированный контекст загружается только когда нужен:
from deepagents.middleware import SkillsMiddleware
middleware = SkillsMiddleware(
backend=backend,
sources=["./skills/"],
)Все три стратегии можно комбинировать через middleware:
from langchain.agents import create_agent
from deepagents.backends import StateBackend
from deepagents.middleware import (
FilesystemMiddleware,
SummarizationMiddleware,
MemoryMiddleware,
)
backend = StateBackend()
model = "openai:gpt-4o-mini"
agent = create_agent(
model=model,
tools=[],
middleware=[
FilesystemMiddleware(backend=backend),
SummarizationMiddleware(model=model, backend=backend),
MemoryMiddleware(backend=backend, sources=["./AGENTS.md"]),
],
)Не храните весь диалог в контексте — суммаризируйте историю. Выносите постоянные знания в файлы и загружайте по требованию. Используйте навыки для специализированного контекста. Мониторьте размер контекстного окна.
Далее: Человек в цикле