# AI-ассистент и агент

← [Раздел](README.md) · [Главная](../README.md)

## Цель

Чётко различить **режимы** работы с AI в Cursor: когда достаточно ассистента (совет), а когда нужен агент (действия в проекте).

## Предварительно

- Cursor установлен и открыт на учебном репозитории
- Прочитан [оглавление раздела 01](README.md)

## Время

**45–90 минут** (чтение + три короткие практики)

---

## Ассистент: «умный собеседник»

**AI-ассистент** отвечает текстом. Он может анализировать прикреплённые файлы (`@file`), но **не обязан** сам открывать дерево проекта, запускать тесты или коммитить.

В Cursor это в первую очередь **Chat** (`Cmd+L` / `Ctrl+L`):

| Подходит для | Примеры |
|--------------|---------|
| Объяснения | «Что делает эта функция?» |
| Сравнения | «REST vs GraphQL для нашего кейса» |
| Черновики | «Набросай структуру API без правок в файлах» |
| Обучение | «Объясни паттерн Repository на примере Go» |

**Плюсы:** быстро, дёшево по токенам, мало риска случайных правок.  
**Минусы:** вы сами копируете код, сами запускаете команды.

---

## Агент: «исполнитель с инструментами»

**AI-агент** получает **инструменты (tools)**: чтение/запись файлов, поиск по коду, терминал, иногда браузер и MCP-сервисы. Он строит **план из шагов** и выполняет их, пока задача не решена или вы не остановите.

В Cursor это **Agent mode / Composer** (`Cmd+I` / `Ctrl+I`):

| Подходит для | Примеры |
|--------------|---------|
| Рефакторинг | «Переименуй пакет и обнови импорты» |
| Фичи | «Добавь endpoint + тест + документацию» |
| Отладка | «Найди, почему падает тест X, и исправь» |
| Массовые правки | «Замени deprecated API во всех файлах» |

**Плюсы:** экономит рутину, видит весь контекст сессии.  
**Минусы:** может затронуть лишние файлы; нужен ревью и тесты.

---

## Tab completion — третий режим

**Tab** (inline completion) — модель предлагает **продолжение** кода по мере набора. Это не чат и не агент: микроподсказки строки или блока.

Используйте Tab для рутинного кода; не полагайтесь на него для архитектурных решений.

---

## Сравнительная таблица

| Критерий | Chat (ассистент) | Agent | Tab |
|----------|------------------|-------|-----|
| Меняет файлы | Только если вы вставите | Да, с подтверждением | Да, по Tab |
| Терминал | Нет | Да | Нет |
| Многошаговые задачи | Слабо | Да | Нет |
| Стоимость токенов | Ниже | Выше | Низкая |
| Риск «сломать» репо | Минимальный | Средний | Локальный |

---

## Цикл работы агента (упрощённо)

```mermaid
sequenceDiagram
  participant U as Вы
  participant A as Агент
  participant T as Инструменты
  U->>A: Промпт + @контекст
  A->>A: План шагов
  A->>T: read_file / grep / run
  T-->>A: Результаты
  A->>T: search_replace / write
  A-->>U: Diff + отчёт
  U->>A: Уточнение или Accept
```

Вы остаётесь **владельцем решения**: принимаете или откатываете изменения.

---

## Разрешения и доверие

Cursor спрашивает разрешение на:

- запуск команд в терминале;
- правки вне «песочницы»;
- доступ к сети (зависит от настроек).

**Правило новичка:** на первых неделях включайте режим, где каждая команда и правка **требуют подтверждения**. Авто-accept — только на доверенных pet-проектах.

---

## Практика 1: один вопрос — два режима

Задайте **один и тот же** вопрос в Chat и в Agent:

> «Где в проекте обрабатывается ошибка 404?»

- В **Chat** вы получите объяснение и, возможно, фрагменты кода.
- В **Agent** он, скорее всего, выполнит `grep`/`search` и укажет точные файлы.

Запишите: какой режим был быстрее **для вас** с учётом последующих действий?

---

## Практика 2: осознанный выбор

Для каждой задачи спросите себя:

1. Нужно ли **менять** репозиторий? → Нет → Chat; Да → Agent.
2. Сколько **файлов** затронуто? → Один → Chat + ручная вставка может хватить; Много → Agent.
3. Есть ли **неопределённость**? → Да → сначала Chat/Plan, потом Agent.

---

## Связь с ECC

ECC добавляет агенту **постоянные** инструкции (rules) и **сценарии** (skills). Например, skill `tdd-workflow` говорит агенту: сначала тест, потом код. Без skill агент может сразу писать реализацию — это не «баг модели», а отсутствие договорённости.

Субагенты ECC (`code-reviewer`, `planner`) — тема [раздела 06](../06-agents/README.md).

---

## Когда НЕ использовать агента

- Продакшен-инцидент без понимания blast radius — сначала диагностика вручную.
- Репозиторий с секретами в открытом виде — сначала [безопасность](../02-effektivnoe-ispolzovanie/bezopasnost-i-privatnost.md).
- Задача «придумай стратегию на год» — Chat + ваше решение, не автоправки кода.

---

## Самопроверка

1. Назовите два инструмента, которыми пользуется агент, но не чат.
2. Почему Tab не заменяет Agent для рефакторинга по 20 файлам?
3. В каком режиме вы бы начали задачу «объясни OWASP Top 10 для нашего API»?
4. Кто несёт ответственность за merge в main — вы или модель?

## Дальше

→ [Ментальные модели](mentalnye-modeli.md) · [02 — Эффективное использование](../02-effektivnoe-ispolzovanie/README.md)
