Заглянем под капот. Что именно харнесс собирает в системный промпт, почему один и тот же запрос не даёт один и тот же ответ, и как окончательно развести три примитива из Главы 01.
В Главе 00 мы говорили, что харнесс собирает (б) — то, что видит модель. Вот как именно. CLI использует модульную архитектуру: базовый промпт всего ~269 токенов, а сверху условно подгружаются десятки фрагментов: инструкции инструментов, гайдлайны кода, правила безопасности, окружение, CLAUDE.md. Всего 110+ строк, от 18 до 2610 токенов каждая.
SDK по умолчанию даёт минимальный промпт: только инструменты, что ты явно передал. Чтобы получить поведение CLI, нужен пресет claude_code — но даже он не подтянет CLAUDE.md без явного settingSources.
| Аспект | CLI | SDK (дефолт) | SDK (пресет) |
|---|---|---|---|
| Системный промпт | модульный (~269+) | минимум | как CLI |
| Инструменты | 18+ встроенных | только переданные | 18+ |
| CLAUDE.md авто | да | нет | нет (нужен конфиг) |
| Гайдлайны кода | да | нет | да |
Важный и неудобный факт: идентичный вывод не гарантирован, даже при совпадающих промптах и temperature=0. В Messages API нет параметра seed. Поверх этого — недетерминизм инфраструктуры.
| Фактор | Контролируешь? |
|---|---|
| Разные системные промпты (CLI vs SDK) | да, конфигом |
| Float-арифметика на параллельном железе | нет |
| MoE-роутинг (какие эксперты активны) | нет |
| Батчинг и планирование в облаке | нет |
| Снапшоты модели | нет |
Не закладывайся на бит-в-бит повторяемость. Строй системы устойчивыми к вариациям: структурированные выводы с JSON-схемой, валидация, кэш результатов, при необходимости консенсус из нескольких генераций. Это прямое продолжение петли проверки из Глав 00 и 12.
Сведём Главы 01 и 06 в одну таблицу различий и одно правило разрешения конфликтов.
| Агент | Команда | Скилл | |
|---|---|---|---|
| Свой контекст | да, изолирован | нет | нет (если не fork) |
| В меню / | нет | да | да (если не скрыт) |
| Авто-вызов моделью | да (description) | нет, только вручную | да (description) |
| Память | да (memory) | — | — |
| Предзагрузка скиллов | да (skills) | — | — |
Когда под один интент подходят несколько, Claude берёт самый лёгкий: 1) Скилл (inline, без накладных) → 2) Агент (свой контекст, если задача сложнее) → 3) Команда (никогда сама, только по явному /). На вопрос «который час» сработает скилл, а не агент: зачем отдельное окно ради однострочника.