Субагенты, оркестрация и Hooks · Лекция 4 ← На главную 📖 Материалы
AI Engineering Course

Субагенты, оркестрация и Hooks

Лекция 4

Фокус: делегирование и автоматизация

Содержание

1. Зачем делегировать

Проблема единого контекста, аналогия с командой

2. Как устроен субагент

Жизненный цикл, наследование, параллельность

3. Субагенты в инструментах

Claude Code, Kilo Code, OpenCode

4. Декомпозиция и оркестрация

Паттерны: fan-out, pipeline, iterative

5. Hooks

Автоматизация через хуки жизненного цикла

6. Подводные камни

Типичные ошибки и как их избежать

7. Итоги и практика

Чеклист, домашнее задание

Раздел 01

Зачем делегировать

Контекстное окно конечно. Делегирование сохраняет фокус и ускоряет работу.

Проблема единого контекста

Контекстное окно агента — ресурс конечный. У современных передовых моделей (Claude Opus/Sonnet 4.6, Haiku 4.5, GLM-4.6, Qwen-Coder-Next) — 200K+ токенов, но эффективность падает задолго до лимита.

  • После ~80-100K токенов модель начинает забывать ранние инструкции
  • Сложная задача (исследование + реализация + тесты) генерирует огромный промежуточный контекст
  • Каждый вызов tool добавляет входные данные и результаты — контекст растёт нелинейно
  • Когда контекст переполнен, агент теряет фокус: путает файлы, повторяет действия

Симптомы переполнения

  • Агент забывает начальные инструкции
  • Повторяет уже выполненные действия
  • Путает имена файлов и переменных
  • Теряет общий план задачи

Решение: разделить работу на несколько агентов с чистым контекстом.

Один агент vs Команда субагентов

Один агент Команда субагентов
Контекст Один на всё У каждого свой, чистый
Параллельность Последовательно Одновременно
Фокус Размывается Сохраняется
Отказоустойчивость Сбой = всё заново Сбой одного не ломает остальных

Один разработчик может написать фичу, тесты и документацию — но последовательно, удерживая всё в голове. Команда из трёх специалистов работает параллельно: каждый сфокусирован на своей части.

Два способа решения

Ручная декомпозиция

Человек сам разбивает задачу на подзадачи и запускает агента на каждую.

  • Простой и предсказуемый подход
  • Требует усилий от пользователя
  • Лучше для критичных задач

Автоматическая делегация

Агент сам решает, когда задача слишком велика, и порождает субагентов.

  • Удобнее для пользователя
  • Требует доверия к агенту
  • Лучше для рутинных задач
Ручная декомпозиция:                Автоматическая делегация:

Человек                             Человек
├── Задача 1 → Агент A              └── "Сделай фичу X"
├── Задача 2 → Агент B                      │
└── Задача 3 → Агент C                      ▼
                                     Родительский агент
Человек собирает результат           ├── Субагент 1 (исследование)
                                     ├── Субагент 2 (реализация)
                                     └── Субагент 3 (тесты)

                                     Родитель собирает результат
Раздел 02

Как устроен субагент

Отдельный процесс с чистым контекстом. Получает задачу — возвращает результат.

Жизненный цикл субагента

1. Задача

Родитель формулирует задание

2. Spawn

Чистый контекст + tools + rules

3. Work

Автономная работа: чтение, вызовы tools, решения

4. Return

Только результат, не весь контекст

5. Продолжение

Родитель работает дальше

Родитель не следит за процессом работы субагента. Он отправляет задачу и ждёт результат. Это асинхронная модель — как задача в трекере, а не парное программирование.

Что наследует субагент

Что Наследуется? Комментарий
Rules Обычно да Субагент работает в том же проекте
Permissions Обычно да Наследует уровень доступа родителя
Skills Зависит от инструмента В Claude Code — частично
Контекст беседы Нет Получает только задачу
Результаты других субагентов Нет Каждый изолирован

Самая частая ошибка — забыть, что субагент не видит контекст чата. Всё важное нужно передать в описании задачи явно.

Параллельность субагентов

Родитель: "Добавить экспорт в CSV"
         │
         ├── Субагент 1: исследовать текущий код экспорта
         ├── Субагент 2: найти и изучить тесты экспорта
         └── Субагент 3: проверить зависимости в package.json
         │
         ▼ (все три завершились)
Родитель: синтезирует результаты, планирует реализацию

Преимущество

Несколько субагентов работают одновременно — каждый со своим чистым контекстом. Время = самый долгий субагент, а не сумма всех.

Правило

Параллельные субагенты не должны редактировать одни и те же файлы. Иначе возникнут конфликты. Разделяйте работу по модулям или используйте git worktree.

Ключевое ограничение

Субагент возвращает родителю только результат — текстовое сообщение с итогами работы.

Родитель НЕ получает:

  • Полный контекст субагента
  • Какие файлы читал, какие промежуточные решения принимал
  • Логи вызовов tools
  • Промежуточные рассуждения

Что это значит на практике

Качество формулировки результата критично.

Если субагент написал "Готово, файлы обновлены" — родитель не узнает, что именно сделано.

Хорошая практика — в описании задачи явно указывать формат ожидаемого результата.

Субагент — это чёрный ящик. Вход: задача. Выход: результат. Всё остальное теряется.

Раздел 03

Субагенты в инструментах

Как Claude Code, Kilo Code и OpenCode реализуют делегацию на практике.

Claude Code — Agent tool

Родительский агент вызывает Agent tool с параметрами: prompt, subagent_type, isolation, background.

Тип (subagent_type) Доступные инструменты Когда использовать
Explore Grep, Glob, Read Исследование кодовой базы
Plan Read, Grep, Glob, LSP Планирование без изменений
General-purpose Все инструменты Полноценная реализация
code-review Чтение + комментирование Ревью кода
Пользовательский Из .claude/agents/<name>.md Специализированные задачи

Agent tool — полноценный инструмент, доступный модели наравне с Read, Edit, Bash. Субагент получает чистый контекст и возвращает только результат.

Claude Code — .claude/agents/<name>.md

Пользовательские субагенты живут в .claude/agents/<name>.md — отдельный файл на каждого. Не путать с AGENTS.md (проектная память, не реестр агентов).

# .claude/agents/code-reviewer.md
---
name: code-reviewer
description: Security, performance, API contracts
tools: [Read, Grep, Glob]
model: claude-sonnet-4-6
---

Ты — senior code reviewer. Фокусируйся на:
- security vulnerabilities
- performance anti-patterns
- API contract violations

Никогда не редактируй файлы.

Ключевые поля YAML frontmatter: name, description, tools, model.

Claude Code — параллелизм и изоляция

Параллельный запуск

Несколько Agent tool одновременно в одном сообщении.

  • Один — frontend, другой — backend
  • Изолированные контексты

Worktree-изоляция

isolation: "worktree" — отдельная git worktree для каждого субагента.

  • Субагент пишет в своей копии
  • Результат — через git merge

Фоновый режим

background: true — субагент в фоне, родитель не ждёт.

  • Прогон тестов
  • Рефакторинг и генерация

Worktree + параллелизм + фон — главные преимущества субагентности Claude Code.

Kilo Code — встроенные агенты

Встроенные агенты

code

Полный доступ

plan

Проектирование

ask

Вопросы-ответы

debug

Диагностика

Нативная субагентность — делегация без отдельного Orchestrator.

Субагентная делегация

Пользователь: "Добавить авторизацию"
         │
       code
    ├── → subagent (plan): спроектировать
    │   ← архитектурный план
    ├── → subagent (code): реализовать
    │   ← код готов
    ├── → subagent (code): тесты
    │   ← тесты написаны
    └── → subagent (debug): проверить
        ← всё работает

    code → итог пользователю

Делегация последовательная — Kilo Code ждёт завершения текущего субагента.

Kilo Code — .kilocodemodes

Файл .kilocodemodes в корне проекта (YAML предпочтителен). Альтернатива: .kilo/agents/<slug>.md.

customModes:
  - slug: doc-writer
    name: Documentation Writer
    roleDefinition: |
      You are a technical writer...
    groups: [read, edit, grep, glob]
    customInstructions: Always include usage examples.

  - slug: security-audit
    groups: [read, grep, glob]
    ...

Поле groups

Tool-группы: read, edit, bash, grep, glob, list, task, webfetch, websearch и др.

Markdown-формат

.kilo/agents/doc-writer.md — YAML frontmatter + тело-промпт, аналогично Claude Code.

OpenCode — agents

Агенты определяются декларативно в opencode.json или как markdown-файлы в .opencode/agents/.

{
  "agents": {
    "reviewer": {
      "model": "anthropic:claude-sonnet-4-6",
      "prompt": ".opencode/agents/reviewer.md",
      "permission": ["read", "glob", "grep"]
    },
    "implementer": {
      "model": "anthropic:claude-sonnet-4-6",
      "prompt": ".opencode/agents/implementer.md",
      "permission": ["read", "glob", "grep", "edit", "bash"]
    }
  }
}

Делегация через Task tool

Агенты определяются в конфигурации, но делегация — динамическая через Task tool. Встроенный general-субагент выполняет несколько задач параллельно. Worktree-изоляция — через плагин opencode-worktree.

Markdown-формат

Альтернатива: отдельные файлы .opencode/agents/reviewer.md. Заголовок — имя, содержимое — системный промпт. Удобно для длинных инструкций.

Сводная таблица: субагенты

Критерий Claude Code Kilo Code OpenCode
Модель Делегация через Agent tool Агенты с нативными субагентами Task tool + агенты в конфигурации
Конфигурация .claude/agents/<name>.md .kilocodemodes / .kilo/agents/ opencode.json / .opencode/agents/
Параллельность Да (несколько Agent-вызовов) Последовательная Да (Task tool, general)
Изоляция Worktree (git-копия) Отдельный контекст (общая FS) Отдельный контекст (общая FS); worktree через плагин
Пользовательские типы .claude/agents/<name>.md .kilocodemodes / .kilo/agents/ Агенты в opencode.json
Фоновый запуск background: true Нет Нет

Самая продвинутая модель — у Claude Code: worktree-изоляция, параллелизм и фоновый режим из коробки. OpenCode — Task tool с параллельными субагентами; worktree через плагин. Kilo Code — нативная субагентность с последовательной делегацией.

Ограничение доступа: tools и MCP

Принцип: каждому субагенту — только те tools и MCP-серверы, которые нужны для его задачи.

Claude Code

Поле tools в YAML frontmatter:

tools:
  - Read
  - Grep
  - mcp__sentry__get_issue

Kilo Code

Поле groups в .kilocodemodes:

groups:
  - read
  - grep
  - glob

OpenCode

Поле permission в opencode.json:

"permission": [
  "read", "grep", "webfetch"
]

Зачем ограничивать

Меньше поверхность атаки для prompt injection. Предсказуемое поведение. Экономия контекста (описания tools занимают место).

Чек-лист

Ревьюеры → только чтение. Bash → только тестерам. Web → только исследователям. MCP → по задаче.

Выбор модели для субагента

Субагент — хорошая точка экономии: изолированный контекст, узкая задача, понятный критерий успеха.

МодельСильные стороны
Opus 4.6Архитектура, сложный рефакторинг
Sonnet 4.6Баланс скорости и точности
Haiku 4.5Быстрый поиск, лёгкие правки
GLM-4.6Open-source, хороший кодинг
Qwen-CoderДлинный контекст, код

Плюсы лёгких моделей

В 3-5× быстрее. На порядок дешевле. Больше параллельных субагентов при ограничении частоты запросов.

Минусы

Слабее многошаговое рассуждение. Чувствительнее к промпту. Хуже на нишевых технологиях.

Правило: Sonnet/Haiku по умолчанию → Opus только где нужно мощное рассуждение.

Раздел 04

Декомпозиция задач

Когда разбивать руками, когда доверять агенту и четыре паттерна оркестрации.

Когда разбивать руками vs доверять агенту

Разбивать руками

Зависимости между частями

Миграция БД → код → тесты — порядок критичен.

Риск конфликтов

Два субагента редактируют один файл — безопаснее разделить.

Критичные задачи

Ядро, миграция данных, API — предсказуемость важнее.

Доверять агенту

Задача чётко описана

Понятная изолированная задача с ясным результатом.

Агент «знает» проект

Настроены .claude/agents/, rules и контекст проекта.

Подзадачи независимы

Доки, тесты, линтер — задачи не пересекаются.

Паттерн 1: Fan-out / fan-in

Родитель порождает несколько субагентов одновременно, каждый работает над своей частью, затем родитель собирает и синтезирует результаты.

         Родитель
        /   |   \
       /    |    \
      v     v     v
   Sub-1  Sub-2  Sub-3   ← параллельно
      \     |    /
       \    |   /
        v   v  v
    Родитель собирает
        результаты

Пример

Обновить 5 микросервисов одновременно — каждый субагент получает свой сервис, вносит изменения, возвращает результат.

Поддержка

  • Claude Code — нативные параллельные вызовы Agent tool с worktree-изоляцией
  • OpenCode — параллельные Task-вызовы (worktree через плагин)
  • Kilo Code — только последовательная делегация

Лучший паттерн по скорости — все субагенты работают параллельно. Но требует полной независимости подзадач.

Паттерн 2: Pipeline (конвейер)

Цепочка субагентов, где каждый следующий получает результат предыдущего. Порядок строго определён.

Задача → Sub-1 → результат → Sub-2 → результат → Sub-3 → итог

Пример:
┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│  Генерация   │───►│  Написать    │───►│  Запустить   │
│  кода        │    │  тесты       │    │  и исправить │
└──────────────┘    └──────────────┘    └──────────────┘

Когда использовать

Каждый шаг зависит от предыдущего: код → тесты к этому коду → прогон тестов и исправление ошибок.

Поддержка

Все инструменты — паттерн не требует параллелизма, достаточно последовательной делегации.

Самый простой паттерн. Подходит для задач с чёткой последовательностью шагов, где каждый этап нуждается в результате предыдущего.

Паттерны 3-4: Specialist и Supervisor

Specialist (специалист)

      Родитель
     /   |   \
    v    v    v
Ревьюер Тестер Докум.
(только  (только  (только
чтение)  тесты)   docs)

Суть

Субагенты с узкой специализацией и ограниченными инструментами. Ревьюер не может редактировать, тестер не трогает документацию.

Реализация

.claude/agents/ (Claude Code), .kilocodemodes (Kilo Code), конфиг агентов (OpenCode).

Supervisor (супервизор)

Родитель: поручает задачу
       │
   Субагент: выполняет
       │
Родитель: проверяет
   ┌────┴────┐
   v         v
  OK     Не OK → повтор
         с правками

Суть

Цикл: делегировать → проверить → принять или вернуть на исправление с уточнённым промптом.

Реализация

Claude Code — повторный Agent tool. Kilo Code — родительский агент перенаправляет субагента.

Сводная таблица паттернов

Паттерн Как работает Пример Поддержка
Fan-out / fan-in Параллельные субагенты, родитель собирает Обновление 5 микросервисов Claude Code (параллельно), OpenCode (параллельно), Kilo Code (последовательно)
Pipeline Цепочка: результат одного → вход другого Код → тесты → прогон Все инструменты
Specialist Узкие специалисты по доменам Ревьюер + тестер + документатор Все инструменты
Supervisor Делегация → проверка → принятие/возврат Ревью кода субагента Claude Code, Kilo Code

На практике паттерны комбинируются: Pipeline из трёх шагов, где на первом — Fan-out для исследования, а на последнем — Supervisor для финальной проверки.

Раздел 05

Hooks

Автоматизация жизненного цикла агента. Промпты — предложения. Hooks — гарантии.

Напоминание и продвинутые сценарии

«Промпты — предложения. Hooks — гарантии.» (лекция 1, секция 3.6)

Hook — реакция на событие жизненного цикла агента, выполняемая хостом, а не моделью. Модель не решает, запускать ли hook, — он срабатывает автоматически.

1. Автоформат и линтинг

prettier / ESLint после Edit — чистый код, ошибки через stderr

2. Автокоммит

Hook на Stop: git add -A && git commit

3. Уведомления

Slack webhook / push при ошибке

4. Тесты и контекст

PostToolUse → тесты; SessionStart → git status + issues

5. Блокировка

PreToolUse: rm -rf, push --force → exit 2 = deny

Claude Code hooks

Конфигурация в .claude/settings.json (проектные) или ~/.claude/settings.json (глобальные).

{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Edit|Write",
      "hooks": [{
        "type": "command",
        "command": "npx prettier --write \"$FILEPATH\""
      }]
    }]
  }
}

20+ событий

PreToolUse, PostToolUse, Stop, SessionStart и др.

4 типа

command, prompt, agent, http

Matcher

Regex по имени tool. Пустой = для всех.

Exit codes

0=OK, 1=не-блок., 2=блок+stderr

Claude Code — типы обработчиков

command (shell)

Shell-команда хоста. Данные хука — JSON на stdin. Хост-переменные: $CLAUDE_PROJECT_DIR.

{ "type": "command", "command": "npx prettier --write \"$FILEPATH\"" }

prompt (инъекция)

Однопроходная оценка моделью, результат в контекст.

{ "type": "prompt", "prompt": "Check API naming conventions" }

agent (субагент)

Субагент с инструментами. Уникально для Claude Code.

{ "type": "agent", "prompt": "Review changes for security" }

http (webhook)

POST-запрос на URL для внешних интеграций.

{ "type": "http", "url": "https://hooks.example.com/notify" }

Exit codes: 0 = OK → продолжить · 1 = не-блокирующая ошибка, в debug-лог · 2 = блокировка, stderr → модели

OpenCode плагины

Hooks реализованы через JS/TS-плагины — полноценный код с доступом к SDK, а не JSON-конфиги.

export const AutoFormatPlugin = async ({ $, project, client, directory, worktree }) => {
  return {
    "tool.execute.after": async (input, output) => {
      if (input.tool === "write" || input.tool === "edit") {
        const filePath = input.args?.filePath || ""
        if (filePath.match(/\.(ts|tsx|js|jsx)$/))
          await $`npx prettier --write ${filePath}`
      }
    }
  }
}

Основные события

tool.execute.before/after, session.created, session.idle, session.error, file.edited, permission.ask, shell.env

Полный доступ к SDK

$ (shell), client (API), project (метаданные). Можно импортировать npm-пакеты.

Подключение

Локально: .opencode/plugins/. Через npm: "plugin": ["package-name"] в opencode.json.

Гибче Claude Code (логика, async, API), но нужен TypeScript вместо JSON.

oh-my-opencode — готовый набор

Open-source плагин-пак для OpenCode. Установка одной командой:

bunx oh-my-opencode install

Агенты

deep (глубокий анализ), quick (быстрые задачи), visual-engineering (фронтенд), ultrabrain (мощная модель).

MCP-серверы

websearch (Exa AI), context7 (документация), grep_app (публичный код).

27+ hooks

context-window-monitor, session-recovery, session-notification, comment-checker и другие.

ultrawork

Ключевое слово ulw в промпте — параллельные агенты, фоновые задачи, непрерывное выполнение.

Репозиторий: github.com/opensoft/oh-my-opencode

Kilo Code — эмуляция hooks

Нативных hooks нет. Эмуляция: MCP-tool + правила в .kilocodemodes.

Шаг 1: MCP-tool

async function execute({ scope }) {
  const { stdout } = await execAsync(
    `npm run lint -- ${scope || "."}`
  )
  return `ok: ${stdout}`
}

MCP-инструмент lint_check с shell-командой.

Шаг 2: Правило

## customInstructions (code)
Перед ЛЮБЫМ изменением ОБЯЗАН
вызвать `lint_check`.
- `ok:` → можно изменять
- `fail:` → ЗАПРЕЩЕНО

Правило в customInstructions или .kilo/agents/code.md.

Шаг 3: .kilocodemodes

customModes:
  - slug: safe-code
    name: Safe Code
    groups: [read, edit, bash]
    customInstructions:
      Always call lint_check

Агент объединяет tool и правило.

Ограничение: это не гарантия — модель может пропустить проверку. Для критичных сценариев недостаточно.

Сводная таблица: hooks

Критерий Claude Code OpenCode Kilo Code
Механизм Нативные hooks (settings.json) Плагины (JS/TS) Эмуляция (rules + MCP tools)
Гарантия срабатывания Да Да Нет (зависит от модели)
Язык обработчика Shell / prompt / agent / http JS / TypeScript Shell (через MCP tool)
Количество событий 20+ 7+ Нет нативных
Сложность настройки Низкая (JSON) Средняя (TypeScript) Высокая (workaround)

Claude Code — самая зрелая реализация: JSON-конфиг, 20+ событий, четыре типа обработчиков, включая уникальные типы agent и http. OpenCode — больше гибкости через код. Kilo Code — только эмуляция.

Стратегия выбора hooks

Нужна гарантия

Блокировка опасных операций, обязательное форматирование, автокоммиты — только хост-уровень.

→ Claude Code hooks или OpenCode plugins

Хост выполняет hook безусловно — модель не может его пропустить.

Нужна гибкость

Условная логика, API-вызовы, проверка coverage, метрики в Grafana, сложные проверки.

→ OpenCode plugins

Полноценный TypeScript с доступом к npm, SDK и shell.

Kilo Code

Эмуляция работает для «мягких» сценариев: напоминание о линтере, рекомендация запустить тесты.

→ Комбинируйте с CI/CD

Эмулированный hook ловит ~90% случаев, CI/CD pipeline гарантирует остальные 10%.

Правило: для критичных сценариев (безопасность, деплой) — только нативные hooks. Для «мягких» рекомендаций — эмуляция допустима, но страхуйте CI/CD.

Раздел 6

Подводные камни

Типичные ловушки мультиагентных систем — и как их избежать

Ловушки: контекст и дублирование

Потеря контекста

Проблема: субагент не знает, что делают другие. Тестировщик пишет тесты для старого кода, потому что не знает о рефакторинге.

  • Чёткие описания задач с полным контекстом
  • Общие артефакты: .claude/agents/, TODO.md
  • Для зависимых задач — Pipeline вместо Fan-out

Дублирование работы

Проблема: два субагента параллельно редактируют один файл — merge-конфликты, дубли в конфигах.

  • Разделяйте работу по файлам и директориям
  • Worktree-изоляция (Claude Code)
  • Явные границы: «Редактируй только src/api/»

Общий принцип: субагент получает только текстовое описание задачи — детали теряются при пересказе. Чем точнее задание, тем меньше ошибок.

Ловушки: зацикливание и накладные расходы

Зацикливание

Проблема: исправляет один тест — ломается другой. Бесконечный цикл «почти готово», пока не кончится бюджет токенов.

  • Лимит итераций: «3 попытки — потом верни ошибку»
  • Чёткие критерии завершения
  • Паттерн Supervisor — родитель прерывает зацикленного субагента

Избыточная декомпозиция

Проблема: 5-минутная задача разбивается на 4 субагентов. Overhead на координацию превышает стоимость самой работы.

  • Задача умещается в один контекст? Не декомпозируйте
  • Оценивайте до запуска: файлы, параллельность, независимость
  • Субагент оправдан, когда задача реально не помещается

Правило: все четыре ловушки решаются одним подходом — чёткие границы, лимиты и правильный выбор паттерна оркестрации.

Раздел 7

Итоги

Что забрать с собой из этой лекции

6 вещей, которые стоит запомнить

1

Субагент = чистый контекст. Делегирование — не «больше агентов», а фокус и изоляция. Каждый субагент получает только то, что нужно.

2

Паттерны решают. Fan-out для независимых, Pipeline для зависимых, Specialist для экспертизы, Supervisor для контроля.

3

Каждый инструмент — своя модель. Claude Code: Agent tool + worktree + фоновый режим. OpenCode: Task tool с параллельными субагентами; worktree через плагин. Kilo Code: последовательная делегация.

4

Hooks — гарантированная автоматизация. Хост выполняет hook, а не модель. Форматирование, линтинг, блокировка — без исключений.

5

Не всё нужно декомпозировать. Субагент — это накладные расходы. Если задача укладывается в один контекст — делайте в основном агенте.

6

Знайте ловушки. Потеря контекста, дублирование, зацикливание, накладные расходы — решаются чёткими границами и правильным паттерном.

Практическое задание

Задание 1: Настроить субагентов

  • Claude Code: создайте .claude/agents/code-reviewer.md с YAML frontmatter и описанием агента. Дайте задачу, требующую делегации
  • Kilo Code: создайте пользовательского агента в .kilocodemodes. Делегируйте задачу через агента code
  • OpenCode: определите агента в opencode.json с ограниченным набором инструментов. Проверьте блокировку

Задание 2: Настроить Hook

  • Claude Code: hook в .claude/settings.json — форматирование после каждого Edit
  • OpenCode: плагин .opencode/plugins/logger.ts — логирование всех вызовов инструментов
  • Kilo Code: MCP-инструмент pre_edit_check + правило в customInstructions, обязывающее проверку перед редактированием

Полные примеры кода — в конспекте лекции. Выберите один инструмент (Claude Code / Kilo Code / OpenCode) и выполните оба задания.

Лекция 5 · Безопасность агентов

Модель угроз

Что может пойти не так, когда агент имеет доступ к файлам, shell и API

Prompt injection

Как атакующий может перехватить управление агентом через данные

MCP-уязвимости

Rug pull, tool poisoning, shadow tools — специфические атаки на MCP-серверы

Утечки секретов

Агент видит .env, токены в истории — как ограничить утечку данных

Защита

Принцип наименьших привилегий, списки разрешений, изолированная среда, процессы согласования

Реагирование

Что делать, когда инцидент уже произошёл — логи, откат, устранение последствий

Дальше

Лекция 5

Безопасность агентов — модель угроз, prompt injection, защита и реагирование

Остаёмся на связи

Фото автора канала

Telegram канал

QR код на Telegram канал SazonovMaybeTalks t.me/SazonovMaybeTalks

Сканируйте QR или переходите по ссылке, чтобы получить обновления по следующим материалам.