Перейти к содержимому
arckep.ru — все нейросети в одном месте без VPN Перейти
>AISTUDY_
Поддержать
AUTHORСвежий выпуск №030 → Контекст, сессия, compact
Авторская колонка · Контекст, сессия, compactСЕРИЯ 030
Авторская колонка · выпуск №030

Контекст,
сессия, compact

Контекст гниёт от отвергнутого. Compact сжимает грязь. Новая сессия читает файл, не покойника.

Сессия не устаёт. Она отравляется тем, что уже отвергли. Чат можно убить. Решение живёт в файле.
  • Контекст
  • Compact
  • Файл
  • Новая сессия
Раздел

Чат можно убить

Сессия не устаёт. Она отравляется тем, что уже отвергли, и продолжает это таскать.

Сейчас в рабочих тредах один и тот же стон: час разговора, десяток реплик — и агент забывает решение, спорит с тем, что только что приняли, чинит симптом в третий раз. Люди делают интуитивное: объясняют ещё раз. Становится хуже. Народная заплатка — короткая сводка и новое окно. Это уже лучше, чем дописывать в ту же кашу. Но сводка снова живёт в чате. Следующее окно читает роман, не решение.

У меня чат можно убить. Решение, запрет и отвергнутый ход лежат в файле. Новое окно открывает файл. Переписку не обязан помнить никто.

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

Раздел

Как выглядит гниение

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

За 44 минуты в папке черновиков появились четыре файла. Время с диска, не из головы: первый в 17:35, второй в 17:41, третий в 17:59, четвёртый в 18:19. Три первых открываются почти одной фразой.

v1  17:35   У меня есть вопрос, который мне регулярно задают
v2  17:41   Меня регулярно спрашивают
v3  17:59   Меня часто спрашивают
v4  18:19   Есть один production-сервис. Его историю видно покоммитно

Эту фразу я не произносил. Ни в том разговоре, ни раньше. Агент её выдумал, потому что так удобно открывать статью, и три черновика подряд тащили её как факт. Вместе с ней тащили первое лицо и сюжет «как я работал», хотя нужна была анатомия слоя в третьем лице. Четвёртый файл сменил ось. Опубликовали его.

Четыре равных столбика за 44 минуты: три красных V1–V3 и жёлтый V4 со стрелкой на смену оси
44 минуты, три одинаковых отказа, четвёртый ушёл в сторону. Не рост качества.
Схема 01ОСЬ НЕ РАСТЁТ — ОНА ЗАСТРЯЛА

Не бенчмарк модели. Четыре файла одного захода. Высота столбика — не «насколько текст хорош», а попал ли он в запрошенную ось.

Почему это гниение, а не «просто плохой первый абзац». Новая реплика в том же окне не вычёркивает старую. Она садится сверху. В контексте по-прежнему лежит уверенное «меня спрашивают» и регистр мемуара. Агент честно продолжает тот разговор, который уже начат. Чем дольше я в том окне уточняю «нет, не так», тем плотнее вокруг правильной оси лежит отвергнутая.

Итог того дня записан в правило колонки: если ось или регистр неясны — один вопрос до черновика. Три переписи в одном заходе дороже этого вопроса. Правило появилось не из теории. Из четырёх файлов за 44 минуты.

Отвергнутое не исчезает

Пока ход живёт только в чате, его «нет» — ещё одна реплика рядом с «да». Файл, где написано «этого больше не писать», вынимает ход из окна.

Раздел

Почему «ещё объяснить» хуже

Задача в гниющей сессии кажется простой: поправить курс. Человек видит ошибку и добавляет уточнение. Так разговаривают с человеком. С контекстом окна это работает наоборот.

Окно агента — не доска, с которой стирают. Это лента. Каждое «нет, не мемуар» остаётся рядом с мемуаром. Каждое «не выдумывай, что меня спрашивают» остаётся рядом с уже написанным зачином, где меня спрашивают. Модель не видит иерархию «последнее важнее». Она видит плоский массив текста. Три неудачных зачина подряд для неё — не три ошибки, а самый частый пример прямо в окне. И она продолжает этот шаблон.

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

Поэтому интуиция врёт. Чем подробнее я объясняю в том же окне, тем больше токенов уходит на спор с собственным хвостом. Качество падает не потому что модель «закончилась». Закончилось чистое место.

На багах у меня стоит жёсткий нож. В правилах агента написано прямо: сначала причина, потом фикс; три неудачные попытки подряд — это уже не «ещё один патч», а архитектурная проблема, остановиться и спросить. Не из вежливости. Из того же механизма: четвёртая попытка в том же окне почти наверняка чинит симптом внутри неверной рамки.

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

Итог простой и неприятный. Продолжать гниющий чат — работа. Она выглядит как контроль. На деле это кормление окна тем, что окно уже решило игнорировать.

Раздел

Что не работает

Дописывать в то же окно. Это первое, что делает рука. Закрывать чат кажется страшным: есть иллюзия, что если захлопнуть окно, весь разговор сгорит и придётся начинать с нуля. На деле всё наоборот: пока вы дописываете, вы платите за каждое уточнение и одновременно укрепляете отвергнутый каркас.

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

Сжать то же окно. В интерфейсах есть команда, которая ужимает историю, чтобы влезло ещё. Смысл тот же, что у сводки, только без нового окна: грязь становится короче и остаётся законной. Отвергнутый регистр не вынут — он уплотнён. Я не строю на этом рабочий контур. Не потому что кнопка плохая. Потому что кнопка лечит объём, а болеет ось.

Такса указывает на пустое окно NEW, слева сжатый грязный свиток COMPACT, внизу жёлтая папка
Слева сжать грязь. Справа пустое окно и папка. Я указываю направо.
Схема 02ТРИ ПУТИ · ЧТО РАСТЁТ В ОКНЕ

Было

Агент уехал не туда. Я пишу ещё два абзаца, «как надо». Он извиняется и пишет третью версию в том же регистре. В окне теперь пять слоёв спора.

Стало

Агент уехал не туда. Я пишу в файл: что решено, что отвергнуто, чего больше не предлагать. Закрываю окно. Новое читает файл и не видит трёх проигравших зачинов.

Итог этого слоя: лечить чат чатом нельзя. Можно только вынуть из него то, что должно пережить его смерть.

Раздел

Куда девать решение, когда окно умрёт

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

Поэтому у живой задачи рядом с перепиской лежит короткий внешний слой. Не «документация проекта» и не обязательно сложный репозиторий: для веб-чата это может быть обычная заметка или .txt на рабочем столе. Память этого разговора, которую можно открыть без этого разговора.

На том июльском выпуске слой выглядел так — это реальные имена файлов, не схема «как правильно»:

018/
  draft-v1.md    отвергнутый зачин, «меня спрашивают»
  draft-v2.md    тот же зачин другими словами
  draft-v3.md    снова он
  draft-v4.md    ось сменилась, это пошло в публикацию

Старые версии не удаляю. Они дешевле любой сводки: по ним видно, что уже пробовали и почему нельзя «ещё раз тот же зачин, но глаже».

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

# Constraints (live)

- [2026-08-12] конкретные цифры не пишем
- [2026-08-12] контроль в переписке, не автопилот
- [2026-08-12] регистр: личный опыт, первое лицо
- [2026-08-12] один стержень

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

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

На больших фичах тот же шов выглядит полками плана — замысел, запреты, этапы. Как эти полки устроены, я разбирал отдельно. Здесь важно другое. Команда продолжения работы после очистки чата у меня написана явно: сначала очистили окно, потом подхватили план с диска, не из памяти диалога. Смену замысла в середине не затираем: новый кусок дописывается, старый остаётся. Следующая сессия видит, что думали вчера и что добавили сегодня. Если править «как сейчас кажется» поверх старого абзаца, история оси пропадает — и вы снова спорите с хвостом.

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

Файл старше чата

Чат отвечает на «что сейчас обсуждаем». Файл отвечает на «что уже решили, даже если это окно закрыть». Если второе живёт в первом, у вас нет второго.

Итог: внешний слой маленький. Черновик с номером версии. Список запретов с датой. Журнал хода — когда, что, откатили или нет. Пометка «не предлагать снова». Этого хватает, чтобы новое окно было продолжением, а не амнезией с энтузиазмом.

Раздел

Когда я режу

Не по часам. Не по числу сообщений. Длинный заход с живым файлом может быть здоровым. Короткий с выдуманным мотивом — уже гниль.

Режу по признакам.

Ось поехала. Просили устройство, пишут мемуар. Просили «как я это делал», пишут обзор чужих бумаг. Это не стиль. Это другой выпуск. Его нельзя допилить абзацем.

Спорит с файлом. В запретах написано «цифры не пишем» — в ответе таблица. В журнале «эту ветку не поднимать» — в плане «давай включим, вдруг сейчас пойдёт». Пока он спорит с файлом, объяснение в чате только добавит второй источник правды.

Третий круг. Тот же симптом, та же рамка, третий патч. На баге это уже архитектурная проблема. На тексте — чужой разговор. Дальше не «ещё раз своими словами».

Выдуманный мотив. «Меня спрашивают», «я давно так думал», «читатели ждут» — если этого не было в моих словах и не было в данных, это выдумка. Выдуманная предпосылка в зачине стоит выдуманного числа: статья опирается на факт, которого нет.

Если ось ещё не ясна, я не прошу «ну напиши, потом поправим». Спрашиваю один раз, с двумя вариантами структуры, до первого абзаца. Это дешевле третьей переписи. Выучено на тех четырёх файлах, не придумано как дисциплина.

Итог: нож срабатывает рано. Поздний нож — это уже спор с хвостом. Ранний — одно пустое окно и файл, в котором написано, чего в новом окне больше нет.

Раздел

Что отдать своему агенту

Рабочие тексты. Можно в постоянные правила, можно в файл рядом с задачей. В копируемых блоках нет длинных тире: так я держу рабочие файлы.

Вынести состояние. Когда разговор ещё живой, но его уже пора убивать. Не «перескажи чат».

Вынеси из этого разговора состояние в файл рядом с задачей. Не пиши роман и не пересказывай переписку по ролям.

В файле четыре блока:

1. Решено: что уже приняли, коротко, без аргументов заново.
2. Отвергнуто: что пробовали и больше не предлагать. По каждой строке одна причина.
3. Неясно: вопросы, без которых нельзя писать дальше. Если вопрос один, так и оставь один.
4. Следующий ход: одно действие в новом окне, не список на неделю.

Не выдумывай мотивы, которых не было в моих словах.
Не переноси в файл отвергнутый регистр «для полноты».
Когда файл записан, остановись. Дальше я открою новое окно и укажу на этот файл.

Начать новое окно. Первая реплика после разреза, не продолжение старого.

Не продолжай прошлый чат по памяти. Сначала прочитай файл состояния этой задачи: [путь к файлу].

Действуй только из файла: решено, отвергнуто, неясно, следующий ход.
Если в файле нет ответа, спроси один раз. Не достраивай мотив.
Прошлые зачины, сводки и извинения из старого окна не источник правды.

Когда остановиться. В постоянные правила, чтобы нож не держался на моём настроении.

Если случилось любое из этого, остановись и спроси, не пиши третью версию в том же окне:

- ось уехала: просили одно, пишешь другое
- ответ спорит с файлом запретов или с журналом ходов
- третий круг того же симптома в той же рамке
- в тексте появился мотив, которого не было в моих словах и нет в данных

Не лечи это ещё одним объяснением в том же чате.
Напиши, какой признак сработал, и жди.

Три текста делают одну работу. Первый вынимает решение из окна. Второй запрещает новому окну читать покойника. Третий не даёт третьей переписи притвориться прогрессом.

Раздел

Что остаётся, когда чат закрыт

Модель сильная. Контекст сессии — нет. Это я уже писал про обвязку, и здесь та же фраза на другом шве. Обвязка держит агента в продукте. Файл состояния держит агента в этом разговоре, который завтра откроет другое окно.

Схема 03ЧАТ УМИРАЕТ · ФАЙЛ ОСТАЁТСЯ

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

Чат расходник. Новая сессия — не поражение и не «начать сначала». Это признание, что окно отработало. Если после закрытия на диске пусто, вы ничего не резали. Вы просто забыли.

СЕРИЯ 030 · 2026-08-16
Чат можно убить. Решение — нет, если оно в файле.
AUTHOR COLUMN · SHEET 030 · REV 01 · RU

// Обсуждение

Можно писать анонимно. Укажите email, чтобы получать уведомления об ответах.