Сессии и агенты
PRX предоставляет восемь инструментов для мультиагентной оркестрации, позволяющих родительскому агенту порождать дочерних агентов, делегировать задачи специализированным агентам и управлять параллельными сессиями. Это основа архитектуры параллельной декомпозиции задач PRX, где сложные задачи разбиваются на подзадачи, обрабатываемые независимыми экземплярами агентов.
Инструменты сессий (sessions_spawn, sessions_send, sessions_list, sessions_history, session_status, subagents) управляют жизненным циклом сессий подагентов. Инструменты делегирования агентов (delegate, agents_list) обеспечивают маршрутизацию задач к именованным агентам с собственными провайдером, моделью и конфигурацией инструментов.
Инструменты сессий зарегистрированы в реестре all_tools() и всегда доступны. Инструменты delegate и agents_list регистрируются условно, только при наличии определений агентов в конфигурации.
Конфигурация
Конкурентность подагентов
[agent.subagents]
max_concurrent = 4 # Максимум одновременных подагентов
max_depth = 3 # Максимальная глубина вложенности (подагенты, порождающие подагентов)
max_total_spawns = 20 # Общий бюджет порождений на корневую сессию
child_timeout_secs = 300 # Таймаут для выполнения отдельного дочернего агентаОпределения делегируемых агентов
Именованные агенты определяются в секциях [agents.*]:
[agents.researcher]
provider = "anthropic"
model = "claude-sonnet-4-20250514"
system_prompt = "You are a research assistant. Find accurate, up-to-date information."
agentic = true
max_iterations = 10
allowed_tools = ["web_search_tool", "web_fetch", "file_read", "memory_store"]
[agents.coder]
provider = "openai"
model = "gpt-4o"
system_prompt = "You are a code generation specialist. Write clean, well-tested code."
agentic = true
max_iterations = 15
allowed_tools = ["shell", "file_read", "file_write", "git_operations"]
[agents.reviewer]
provider = "anthropic"
model = "claude-sonnet-4-20250514"
system_prompt = "You are a code reviewer. Focus on correctness, security, and style."
agentic = true
max_iterations = 5
allowed_tools = ["file_read", "shell"]Справочник инструментов
sessions_spawn
Порождает асинхронного подагента, работающего в фоне. Возвращает немедленно с ID запуска. Родитель автоматически уведомляется при завершении дочернего агента.
{
"name": "sessions_spawn",
"arguments": {
"task": "Research the latest Rust async runtime benchmarks and summarize the findings.",
"action": "spawn"
}
}| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
task | string | Да | -- | Описание задачи / системный промпт для подагента |
action | string | Нет | "spawn" | Действие: "spawn", "history" (просмотр журнала) или "steer" (перенаправление) |
allowed_tools | array | Нет | Инструменты родителя | Подмножество инструментов, доступных подагенту |
sessions_send
Отправляет сообщение в работающую сессию подагента, обеспечивая интерактивную коммуникацию между родителем и дочерним агентом.
{
"name": "sessions_send",
"arguments": {
"session_id": "run_abc123",
"message": "Focus on performance comparisons, not API differences."
}
}| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
session_id | string | Да | -- | ID запуска целевого подагента |
message | string | Да | -- | Сообщение для отправки подагенту |
sessions_list
Список всех активных сессий подагентов с их статусом, описанием задачи и прошедшим временем.
{
"name": "sessions_list",
"arguments": {}
}Параметры не требуются. Возвращает список активных сессий.
sessions_history
Просмотр журнала разговора запуска подагента, включая все вызовы инструментов и ответы LLM.
{
"name": "sessions_history",
"arguments": {
"session_id": "run_abc123"
}
}| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
session_id | string | Да | -- | ID запуска для получения истории |
session_status
Проверка статуса конкретной сессии (выполняется, завершена, ошибка, таймаут).
{
"name": "session_status",
"arguments": {
"session_id": "run_abc123"
}
}| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
session_id | string | Да | -- | ID запуска для проверки |
subagents
Управление пулом подагентов -- список, остановка или инспекция работающих подагентов.
{
"name": "subagents",
"arguments": {
"action": "list"
}
}| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
action | string | Да | -- | Действие: "list", "stop", "inspect" |
session_id | string | Условно | -- | Обязателен для действий "stop" и "inspect" |
agents_list
Список всех настроенных делегируемых агентов с их моделями, возможностями и разрешёнными инструментами. Регистрируется только при наличии секций [agents.*].
{
"name": "agents_list",
"arguments": {}
}Параметры не требуются. Возвращает определения агентов из конфигурации.
delegate
Делегирует задачу именованному агенту с собственным провайдером, моделью и набором инструментов. Делегированный агент выполняет изолированный агентный цикл и возвращает результат.
{
"name": "delegate",
"arguments": {
"agent": "researcher",
"task": "Find the top 5 Rust web frameworks by GitHub stars in 2026."
}
}| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
agent | string | Да | -- | Имя настроенного агента (из [agents.*]) |
task | string | Да | -- | Описание задачи для делегированного агента |
Паттерны использования
Параллельное исследование
Порождение нескольких подагентов для одновременного исследования разных тем:
Родитель: Мне нужно сравнение 3 движков баз данных для нашего проекта.
[sessions_spawn] task="Research PostgreSQL strengths, weaknesses, and use cases"
[sessions_spawn] task="Research SQLite strengths, weaknesses, and use cases"
[sessions_spawn] task="Research DuckDB strengths, weaknesses, and use cases"
[ожидание завершения всех трёх]
[синтез результатов в сравнительную таблицу]Делегированный код-ревью
Использование специализированных делегируемых агентов для конкретных задач:
Родитель: Проверьте этот pull request на проблемы безопасности.
[delegate] agent="reviewer", task="Review the diff in /tmp/pr-42.patch for security vulnerabilities"
[агент-ревьюер работает с инструментами file_read и shell]
[возвращает подробный обзор безопасности]Иерархическая декомпозиция задач
Подагенты могут порождать собственных подагентов (до max_depth):
Родительский агент
├── Агент-исследователь
│ ├── Подагент веб-поиска
│ └── Подагент анализа документов
├── Агент генерации кода
└── Агент тестированияБезопасность
Ограничения глубины и конкурентности
PRX применяет жёсткие ограничения на порождение подагентов для предотвращения исчерпания ресурсов:
- max_concurrent: Ограничивает одновременно работающих подагентов (по умолчанию: 4)
- max_depth: Ограничивает глубину вложенности (по умолчанию: 3). При максимальной глубине инструмент
sessions_spawnудаляется из доступных инструментов дочернего агента. - max_total_spawns: Ограничивает общее количество порождений на корневую сессию (по умолчанию: 20)
- child_timeout_secs: Принудительно завершает подагентов, превысивших таймаут (по умолчанию: 300 секунд)
Ограничения инструментов
Подагенты наследуют политику песочницы родителя, но могут иметь ограниченный набор инструментов:
{
"name": "sessions_spawn",
"arguments": {
"task": "Search the web for information",
"allowed_tools": ["web_search_tool", "web_fetch"]
}
}Делегированные агенты имеют инструменты, явно определённые в конфигурации. Они не могут обращаться к инструментам за пределами своего списка allowed_tools.
Изоляция учётных данных
Делегированные агенты могут использовать других провайдеров и API-ключи, отличные от родителя:
[agents.researcher]
provider = "anthropic"
model = "claude-sonnet-4-20250514"
# Использует API-ключ, настроенный для провайдераЭто позволяет маршрутизировать задачи к различным LLM-провайдерам в зависимости от требований задачи, с изоляцией учётных данных каждого провайдера.
Политика безопасности
Инструменты сессий и агентов управляются движком политик:
[security.tool_policy.groups]
sessions = "allow"
[security.tool_policy.tools]
delegate = "supervised" # Требовать одобрение для делегированияСвязанные разделы
- Подагенты -- архитектура подагентов и модель порождения
- Среда выполнения агента -- архитектура выполнения агента
- Цикл агента -- основной цикл выполнения
- Воркер сессий -- изоляция процессов для сессий
- Справочник конфигурации -- настройки агента и подагентов
- Обзор инструментов -- все инструменты и система реестра