Inference API изначально обещал простую вещь: отправил ввод — получил вывод. Сохранил и то и другое — вот твоя сессия. Её можно изучить, заархивировать, переслать или скормить другой модели. Сейчас эта абстракция рушится. Провайдеры всё чаще возвращают не просто текст, а гибрид ответа и запечатанного состояния, которое намертво привязано к их инфраструктуре. Это зашифрованные reasoning-токены, скрытые веб-поиски, сжатый контекст, доступный только исходному серверу, и зашифрованные инструкции подагентам. В итоге транскрипт на твоей машине — лишь частичный слепок сессии, чьё операционное состояние живёт на чужих серверах.
Проверить реальное владение можно простым сценарием: экспортировал транскрипт, отозвал доступы у старого провайдера и отдал всё новой модели. Если для продолжения нужно, чтобы старый провайдер расшифровал blob, восстановил ID или вспомнил результаты поиска — сессия тебе уже не принадлежит. Отсюда пять критериев: инспекция (видно ли, что модель видела на самом деле), экспорт (самодостаточен ли архив), replay (может ли другая реализация восстановить контекст), аудит (понятно ли, почему система приняла решение) и удаление (можно ли стереть все серверные копии).
OpenAI в Responses API по умолчанию хранит ответы минимум 30 дней, объекты внутри Conversation живут ещё дольше. Gemini Interactions API держит взаимодействия 55 дней на платном тарифе. Локальное приложение, записывающее только user-сообщения, фактически хранит у себя внешний ключ к чужой базе. Режим store: false кое-где есть, но не стал нормой.
Скрытые цепочки рассуждений — отдельная головная боль. Anthropic возвращает зашифрованное полное мышление в поле signature, а «читаемый» текст — это суммаризация от другой модели. Сырые reasoning-токены наружу не выдают, сменить модель с сохранением смысла таких блоков не выйдет. С веб-поиском та же история: OpenAI, Google и Anthropic отдают URL и цитаты, но не снапшоты страниц, которые модель видела при ответе. URL сам по себе нестабилен и не воспроизводит контекст.
Серверное сжатие контекста OpenAI упаковывает историю в непрозрачный encrypted_content, непонятный человеку. У Anthropic compaction отдаёт читаемый content, но опциональное sealed-состояние тоже запирает пользователя в экосистеме. В Multi-agent от OpenAI всё ещё жёстче: сообщения между агентами идут как encrypted_content, авто-компактирование включено принудительно, а инструкции подагентам разработчик не может ни увидеть, ни поправить. Клиент Codex тоже зашифровывает inter-agent сообщения — узнать, что именно попросили агента, становится невозможно.
Ссылка на то, что «большинство не переключает модели посреди сессии», не работает. Свобода уйти дисциплинирует провайдера и заставляет конкурировать качеством, а не замком. Длинные агентные сессии с днями решений и доказательств, аудит или отключение модели делают переносимость практической необходимостью.
Разработчики инструментов предлагают простые правила: локальный лог — канонический источник, серверное хранение — явное и опциональное, любой opaque-блок обязан иметь читаемый аналог для handoff, hosted-инструменты должны логировать входы и снапшоты полностью, коммуникации агентов — аудироваться, а сжатие контекста — оставлять инспектируемый след. Отдельно достаётся двойным стандартам вокруг дистилляции: закрытые лабы враждебны к внешней дистилляции, но сами учатся на публичных данных и применяют её внутри. Здоровое отношение к дистилляции — это путь к маленьким, быстрым моделям и настоящему контролю пользователя над своими данными.