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.
Проверь себя
Вы хотите, чтобы инструмент NotebookEdit не занимал место в контексте. Какое правило в permissions.deny это сделает?
"NotebookEdit"
"NotebookEdit(*.ipynb)"
"Edit(*.ipynb)"
Вы добавили "disableClaudeAiConnectors": true в ~/.claude/settings.json, но не уверены, что изменение сработало. Что вы сделаете?
/context
с прошлым замером
/compact
, чтобы настройки применились
.claude/settings.json
в проекте
/context
показывают, что реально попало в окно. Агент не обязан знать собственную конфигурацию, а
/compact
сжимает разговор и к настройкам не относится.
В deny вы написали NoteBookEdit вместо NotebookEdit. Что произойдёт?
Источники
- Anthropic, All settings
- Anthropic, Configure permissions
- Anthropic, Connect Claude Code to tools via MCP
- Anthropic, How Claude remembers your project
- По мотивам AI Coding Crash Course, AI Hero
Текст подготовлен с помощью LLM и может содержать неточности.