# 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) | Зазвичай без кешу або з невеликим кешем |
