Перейти к тексту

Claude Code: работа с coding-агентом4. Контекст под контролем

Убираем лишнее из стартового контекста

Засчитывается, когда отвечены все вопросы квиза

В прошлом Bite вы посмотрели /context и увидели фон, который едет в каждом запросе. Теперь уберём из него то, чем вы не пользуетесь. Всё делается в одном файле — ~/.claude/settings.json.

Зачем это нужно

Каждый инструмент, connector и skill, о котором знает агент, описан в его контексте. Описание занимает место в каждом turn и влияет на поведение: модель видит инструмент и может решить им воспользоваться. Если инструмент вам не нужен, ему нечего делать в окне.

Важна не конкретная цифра, а привычка: знать, что лежит в вашем system prompt, и замечать то, чему там не место. Всё, что мы уберём ниже, — функции, которыми вы в этом курсе пользоваться не будете.

Как это устроено

Цикл один и тот же для каждого изменения: правите ~/.claude/settings.json, перезапускаете Claude Code, выполняете /context и сравниваете с прошлым замером. Меняйте по одному ключу — так вы увидите, что дал каждый.

Ключи, которые выключают целые подсистемы:

Ключ Значение Что убирает
disableClaudeAiConnectors true connectors из claude.ai: Claude Code их не загружает и не подключает
enableWorkflows false dynamic workflows для вас
disableBundledSkills true skills и workflows, встроенные в Claude Code; встроенные команды вроде /init остаются доступны вам, но скрыты от модели
enableArtifact false инструмент Artifact, который публикует результат session как страницу на claude.ai

permissions.deny убирает инструменты по одному. Правило с голым именем инструмента, например NotebookEdit, удаляет инструмент из контекста Claude целиком — модель его просто не видит. Это не только запрет на вызов, но и экономия места в каждом запросе. Правило с шаблоном, например Bash(rm *), работает иначе: инструмент остаётся в контексте, а блокируются только подходящие вызовы. Шаблон в позиции имени тоже удаляет инструменты: "mcp__*" убирает все MCP-инструменты сразу.

Какие инструменты запрещать, решаете вы. Хороший кандидат — тот, которым вы никогда не пользуетесь: работа с Jupyter-ноутбуками в веб-проекте, планировщики, уведомления. Названия смотрите в /context all.

Практика

Создайте ~/.claude/settings.json (в прошлом Bite вы убрали свой в settings-backup.json) с таким содержимым:

{
  "disableClaudeAiConnectors": true,
  "enableWorkflows": false,
  "disableBundledSkills": true,
  "enableArtifact": false,
  "permissions": {
    "deny": ["NotebookEdit"]
  }
}

Перезапустите claude в репозитории Cadence и выполните /context. Сравните итог с цифрой из прошлого Bite: строки MCP tools и Skills должны заметно похудеть. Затем добавляйте в deny по одному инструменту из /context all, который вам точно не нужен, и каждый раз перезапускайте и проверяйте.

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

  • Опечатка в имени инструмента не ломает запуск. Правило deny с именем, которое не совпадает ни с одним инструментом, даёт предупреждение при старте. Не пропускайте его — иначе вы думаете, что инструмент убран, а он на месте.
  • disableBundledSkills выключает и полезное. Например, проверка /doctor prompt-audit работает через встроенный skill и с этим ключом недоступна. Если что-то из встроенного нужно, не выключайте всё разом.
  • Не путайте enableWorkflows и disableWorkflows. Первый выключает workflows для вас, второй — для всех, его ставит организация в managed settings.
  • Настройки складываются. true в disableClaudeAiConnectors в любом файле выключает connectors, и false в проекте его не отменит.

Вывод: всё, чем вы не пользуетесь, должно уйти из контекста — меняйте по одному ключу и каждый раз проверяйте /context.

Проверь себя

Источники

Текст подготовлен с помощью LLM и может содержать неточности.