Історія розмов
Довга розмова рано чи пізно впирається в тверду стіну — контекстне вікно моделі. Усе на цій сторінці існує через цю стіну, а найцікавіше — це те, що викидається, що зберігається і що вдається повернути.
Чотири способи повернути контекст
Розділ із назвою «Чотири способи повернути контекст»Це не стільки альтернативи, скільки драбина, від найдешевчого.
| Механізм | Вартість | Зберігає | Втрачає |
|---|---|---|---|
| Елізія | Нічого | Кожне слово наративу | Старіші буденні результати інструментів |
| Скидання зображень | Нічого | Текст навколо них | Старі знімки екрана |
| Знімки | Нічого | Кожне слово, як пікселі | Читабельність для моделі без зору |
| Підсумок | Один виклик моделі | Наратив | Деталі, які він не вибрав |
Елізія та скидання зображень спрацьовують першими, бо вони безкоштовні й нічого не втрачають у тому сенсі, що важливий: вони відкидають обсяг, який ніхто не збирався перечитувати.
Чому підсумовування — останній засіб
Розділ із назвою «Чому підсумовування — останній засіб»Підсумок — єдиний із чотирьох, що витрачає виклик моделі, і єдиний, що вирішує за вас, що було важливим. І те, й те — справжні витрати. Виклик цікавіший, бо має значення, коли він відбувається.
Компакція зазвичай запускається заздалегідь, до стіни, за порогом. Але вона також запускається реактивно, після того як сам провайдер відхиляє запит як завеликий — евристична оцінка недолічила те, що провайдер насправді виміряв. У такій ситуації компактор, що підсумовує, мусить зробити запит, щоб стиснути контекст, а запит, який він робить, — це саме той, що щойно переповнився.
Компакція знімками відображає відкинуту історію на щільні сторінки піксельних глифів і повертає їх як зображення.
В основі — особливість тарифікації: модель зі зором стягує плату за зображення за фіксованою ставкою або пропорційно до площі, і це не має нічого спільного з кількістю символів у ньому. Дванадцять тисяч символів відкинутої розмови коштують стільки ж текстових токенів, скільки важать дванадцять тисяч символів. Ті самі символи, відтворені на одній сторінці, коштують одне зображення.
Цінність цього підходу — не в дотепності, а в тому, що він потребує жодного виклику моделі, жодного ключа й жодної мережі. Це єдина стратегія, завжди доступна під час відновлення після переповнення.
Форма відтворення — дослівний початок, середина у вигляді зображення, дослівний кінець. Початок — це завдання й обмеження, на які далі посилається все; кінець — там, де зараз робота. Середина — те, що перечитують найрідше і що коштує найдорожче.
Знімки щоразу відтворюються заново з збереженого вихідного тексту, а не з пікселів попереднього проходу. Кожне перезнімання зображення погіршує глифи на одне покоління за компакцію, доки їх не стане неможливо прочитати.
З чого насправді відновлюється запуск
Розділ із назвою «З чого насправді відновлюється запуск»Історично кожен запуск harness починався з порожньої історії та відбудовував тяглість із блоку <context> у промпті — підсумку розмови, а не самої розмови. З цього випливали три речі:
- Відновлення було переказом. Модель ніколи не бачила власних попередніх міркувань чи справжніх байтів, які повернули її інструменти, — лише їхній опис.
- Перемотування назад гинуло разом із процесом.
checkpoint— це індекс у живому списку повідомлень, тож перезапуск втрачав кожну мітку, яку встановила модель. - Повтор не міг відрізнити «нічого повторювати» від «нічого не завантажено». Після перезапуску невдалий хід у будь-якому разі зникає з живого стану.
Усі три виправляє збереження транскрипту. Він записується на кожній межі ходу й ніколи посеред ходу: історія, знята між викликом інструмента та його результатом, — така, якої не прийме жоден провайдер, тож збій у цю мить відновлює хід до, а не половинчастий хід, який неможливо відтворити.
Відновлений запуск обрізається до найновіших повідомлень, з обрізанням на межі, яка не є осиротілим результатом інструмента — результат, чий виклик обрізано, є запитом, який провайдери відхиляють одразу, а транскрипт, який неможливо надіслати, гірший за короткий.
Дерево сесій
Розділ із назвою «Дерево сесій»Кожне повідомлення фіксує те, з якого воно продовжується, і кожна розмова називає свою поточну вершину гілки. Це одне рішення і є всією функцією.
Відгалуження нічого не записує. Воно пересуває вказівник. Шлях, який ви залишили, усе ще там, тож повернення — це ще одне переміщення вказівника, а не відновлення — і редагування промпту, щоб запустити його знову, перестає коштувати вам відповіді, з якою ви порівнювали.
Без нього кожна форма повернення назад мусить ховати або видаляти повідомлення, а ховання — це брехня, яку наступний читач не розгледить.
Гілка проти форку
Розділ із назвою «Гілка проти форку»| Гілка | Форк | |
|---|---|---|
| Що відбувається | Вказівник пересувається | Шлях копіюється |
| Куди веде | Та сама розмова | Нова розмова |
| Вартість | Нічого | Одна копія гілки |
Форк копіює з новими ідентифікаторами, а не ділить рядки. Дві розмови, що ділили б рядки, показували б одна одній пізніші повідомлення, а це саме те, чого форк робити не повинен.
Перемотування назад їде тим самим вказівником
Розділ із назвою «Перемотування назад їде тим самим вказівником»Пара checkpoint / rewind під час запуску позначає чисту межу ходу й повертається до неї після дослідження, зберігаючи дайджест. Оскільки контрольні точки зберігаються разом із транскриптом, мітка, яку модель встановила до перезапуску, усе ще веде туди, де її встановили. Контрольна точка, чия ціль не пережила обрізання, відкидається, а не затискається до найближчої — перемотування «до мітки» з приземленням деінде — це саме той збій, який мітка покликана відвернути.
Пов’язане
Розділ із назвою «Пов’язане»- Відгалузити розмову — навігатор деревом, форкування та експорт
- Контекст інструментів і кеш промптів — друга половина того, що заповнює контекстне вікно
- Slash-команди —
/compact,/shake,/context,/tree