Цикл агента
Цикл агента — это центральный цикл выполнения, управляющий каждой сессией агента PRX. Каждая итерация обрабатывает ответ LLM, диспетчеризирует вызовы инструментов, управляет памятью и решает, продолжать цикл или вернуть финальный ответ.
Жизненный цикл
Сообщение пользователя
│
▼
┌─────────────┐
│Формирование │──── Извлечение памяти
│ контекста │
└──────┬──────┘
▼
┌─────────────┐
│ Инференс LLM│──── Потоковый ответ
└──────┬──────┘
▼
┌─────────────┐
│Разбор вывода│──── Вызовы инструментов / Текст
└──────┬──────┘
▼
Вызовы инструментов?
├── Да ──→ Выполнить инструменты ──→ Повторить цикл
└── Нет ──→ Вернуть ответДиспетчеризация инструментов
Когда ответ LLM содержит вызовы инструментов, цикл:
- Проверяет каждый вызов инструмента на соответствие политике безопасности
- Выполняет одобренные вызовы (потенциально параллельно)
- Собирает результаты и передаёт их обратно в LLM
- Продолжает цикл для следующего шага инференса
Потоковая передача
PRX передаёт ответы LLM по токенам клиенту, одновременно буферизируя для обнаружения вызовов инструментов. Конвейер потоковой передачи поддерживает:
- Передачу токенов в реальном времени в CLI или WebSocket-клиенты
- Управление обратным давлением при медленном клиенте
- Корректную отмену через Ctrl+C или API-сигналы
Извлечение памяти
Перед каждым вызовом LLM цикл извлекает релевантный контекст из системы памяти:
- Недавние ходы разговора (скользящее окно)
- Результаты семантического поиска из хранилища эмбеддингов
- Закреплённые факты и предпочтения пользователя
Компактизация контекста
Когда разговор превышает контекстное окно модели, цикл запускает компактизацию:
- Суммаризация старых ходов в сжатое представление
- Сохранение результатов вызовов инструментов, на которые ещё есть ссылки
- Поддержание системного промпта и закреплённых воспоминаний в неизменном виде
Конфигурация
toml
[agent.loop]
max_iterations = 50
parallel_tool_calls = true
compaction_threshold_tokens = 80000
compaction_strategy = "summarize" # или "truncate"Связанные страницы
- Среда выполнения агента — обзор архитектуры
- Суб-агенты — порождение дочерних агентов
- Система памяти — бэкенды памяти и извлечение