# MainAgent

## Определение

MainAgent — это основная цепочка запросов Claude Code в режиме без agent team. Каждое взаимодействие пользователя с Claude Code порождает серию API-запросов, из которых запросы MainAgent формируют основную цепочку диалога — они содержат полный system prompt, определения инструментов и историю сообщений.

## Способ идентификации

В cc-viewer MainAgent идентифицируется через `req.mainAgent === true`, автоматически помечается `server/interceptor.js` при перехвате запроса.

Условия определения (должны выполняться все):
- Тело запроса содержит поле `system` (system prompt)
- Тело запроса содержит массив `tools` (определения инструментов)
- System prompt содержит характерный текст "Claude Code"

## Отличия от SubAgent

| Характеристика | MainAgent | SubAgent |
|------|-----------|----------|
| system prompt | Полный основной prompt Claude Code | Упрощённый prompt, специализированный для задачи |
| массив tools | Содержит все доступные инструменты | Обычно содержит только несколько инструментов, необходимых для задачи |
| история сообщений | Накапливает полный контекст диалога | Содержит только сообщения, связанные с подзадачей |
| поведение кеша | Prompt caching (5 минут TTL) | Обычно без кеша или с небольшим кешем |
