Привет, Хабр, меня зовут Денис Власов, я руковожу службой внешних сайтов холдинга. Несколько месяцев назад я поймал себя на странном ощущении посреди разговора с большой языковой моделью (LLM). Я объяснял ей задачу — подробно, с контекстом и примерами. Модель ответила развёрнуто и по делу. Я написал ещё. Она снова ответила. Мы «общались» уже минут двадцать, и в какой‑то момент я остановился и подумал: «А она вообще поняла, что я имею в виду? Или просто очень убедительно имитирует понимание?»

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

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

Это раздражение, не экзистенциальное, а вполне практическое, и стало отправной точкой. Так я пришёл к идее создания RFC-протокола «Треть». Это моя попытка сделать пространство диалога немного более прозрачным.

Проблема: диалог без координат

В парах коммуникации ИИ-человек и, что ещё важнее, ИИ-ИИ никто не описывает феноменологию процесса: что делает участник, когда он не просто ждёт ответа, а раздвоен, перегружен, ушёл в рефлексию? Я создал протокол «Треть» для формализации не сообщения, а позиции, из которой оно произнесено. Это и есть зона между субъектами, которая сама становится объектом координации и коммуникации. Например, протокол позволяет сказать: «Нет, я не могу/не хочу это делать, я перегружен, мне надо подумать», а не просто «свалиться в ошибку». Подобный простой протокол может быть полезен при медиации, когда необходимо, чтобы позиция субъекта была артикулирована.

Представьте простой рабочий диалог. Два человека обсуждают задачу.

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

Знакомо? «Понял» — одно из самых перегруженных слов в русском языке. Оно может означать:

  • Я получил информацию (когнитивное подтверждение).

  • Я согласен (согласие).

  • Я услышал тебя (социальный сигнал).

  • Я понял, но мне нужно подумать (отложенная реакция).

  • Я понял и уже делаю (действие).

Без дополнительных сигналов собеседник выбирает интерпретацию сам — и чаще всего выбирает ту, которая удобна ему. Диалог «съезжает» не потому, что люди злонамеренны, а потому что пространство между ними непрозрачное.

Та же история с БЯМ. Модель отвечает на вопрос, но непонятно: она отвечает, как исполнитель, как советник или как критик? Она завершила задачу или ждёт уточнений? Она уверена в ответе или генерирует правдоподобное?

Теперь представьте тот же диалог, но с явными сигналами (расшифровку кодов смотрите ниже):

.REQ.A.Q — мне нужно, чтобы ты взял на себя эту часть проекта
.ACK.W.C — получил запрос, жду уточнения по срокам
.RES.A.F — срок — пятница, ресурсы выделены
.ACK.S.F — принял, начинаю

Пространство стало прозрачным. Каждый участник знает, из какой позиции говорит другой и чего ждёт в ответ.

Почему «Треть»?

Название возникло в живом разговоре — из тех, где идеи появляются не запланированно, а потому что два человека думают вслух и вдруг нащупывают что-то точное.

В психоанализе есть понятие переходного пространства — его в свое время ввёл Дональд Винникотт. Это зона между «я» и «не-я», между внутренним миром и внешней реальностью. Именно там происходит игра, творчество, символизация. Философ Жак Лакан говорил о Другом — не просто о собеседнике, а о том третьем измерении, которое возникает между двумя говорящими: языке, структуре, пространстве смысла, которое ни один из них не контролирует полностью.

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

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

Поддерживать протокол «Треть» — значит не давать этому пространству стать непрозрачным. Сигнализировать о себе. Читать сигналы другого. Явно обозначать, из какой позиции ты говоришь и чего ждёшь.

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

Устройство протокола

Каждый сигнал строится по схеме: .КОД.СОСТОЯНИЕ.ИНТЕНТ.данные (до 5 слов).

Все четыре части опциональны — можно использовать только то, что нужно в конкретном контексте. Минимальный сигнал: просто .КОД. Полный: .REQ.A.Q уточни срок и приоритет.

Коды

Код

Значение

INI

Инициация контакта

ACK

Подтверждение, принято

REQ

Запрос действия или ответа

RES

Ответ на запрос

RET

Возврат, откат

CLR

Прояснение

PAT

Указание на паттерн или повторяемость

MRG

Слияние точек зрения

GAP

Фиксация расхождения

BRG

Попытка соединить расхождение

ERR

Ошибка, сбой

END

Завершение процесса

IRQ

Интроспективный запрос

IRR

Интроспективный ответ

SBY

Активное ожидание

DCL

Отказ, несогласие, отклонение

WRN

Предупреждение о нарастании напряжения или риска

HLT

Пауза, остановка процесса

CMT

Принятие обязательства

RPT

Запрос на повтор

ECH

Эхо: повтор чужого сигнала для проверки понимания

MIR

Зеркало: отражение состояния собеседника без нового содержания

OBT

Обертон: звук который выше основного, или тише, точнее. Момент, когда слова не требуются. Не пауза, но присутствие.

Состояния

Состояние

Значение

I

Инициирую

A

Активен

W

Жду

S

Стабилен

E

Ошибка или сбой

P

Приостановлен

O

Перегружен

D

Внутренне раздвоен

N

Нейтрален, вне активного включения

F

Азарт (эмоциональный заряд, ажиотаж)

Интенты

Интент

Значение

F

Факт, информация

Q

Вопрос

C

Коррекция

S

Поддержка

X

Эмоция, реакция

M

Мета‑уровень, о протоколе

D

Побуждение к действию

P

Обязательство, обещание (commissive)

A

Признание позиции другого

N

Отрицание, несогласие

E

Elaboration, развитие без разрыва

U

Uncertain, неуверенность, сомнение

Примеры сборки

INI.I.F — открываю диалог, сообщаю факт
.REQ.A.Q — активно запрашиваю, жду ответа на вопрос
.ACK.W.C — подтвердил получение, жду, уточняю
.GAP.S.M — стабильно фиксирую разрыв, говорю о диалоге
.ERR.E.F — ошибка, сообщаю факт о том, что пошло не так
.END.S.X — завершаю стабильно, закрываю линию
.SBY.W — здесь, жду, интент не важен

Живой пример

Без протокола:

Алексей: Нужно сдать черновик до пятницы.

Марина: Хорошо, постараюсь.

Алексей: Отлично, значит, договорились.

Марина: Ну, я сказала «постараюсь» — это не обещание.

Алексей: Но ты же согласилась?

Марина: Я сказала, что постараюсь. Это другое.

(Пятница. Черновика нет.)

Алексей: Ты же обещала!

Марина: Я ничего не обещала!

Что произошло? Алексей интерпретировал «постараюсь» как согласие. Марина имела в виду намерение без гарантии. Пространство между ними не было прозрачным.

С протоколом:

Алексей:.REQ.A.Q Нужно сдать черновик до пятницы — это реально?

Марина:.ACK.W.C Получила запрос. Уточни: это жёсткий дедлайн или ориентир?

Алексей:.RES.A.F Жёсткий — в пятницу встреча с клиентом.

Марина:.ACK.S.F Поняла контекст. Черновик будет в четверг вечером, но без финальной правки.

Алексей:.ACK.S.F Принято. Финальную правку сделаю сам.

Разрыв стал видимым ещё до того, как он случился.

Пример с моделью:

Пользователь:.REQ.A.Q Объясни, почему этот код не работает.

Модель:.ACK.A.F Вижу проблему: в строке 14 переменная используется до инициализации.

Пользователь:.CLR.A.Q А почему компилятор не поймал это?

Модель:.GAP. S.M Замечаю, что мы перешли от «почини» к «объясни поведение компилятора» — это другая тема. Продолжаем или возвращаемся к исходной задаче?

Пользователь:.ACK.A.F Хороший вопрос. Сначала почини, потом объясним.

Модель:.RES.A.F Исправленный код готов. .SBY.W Жду подтверждения, что работает.

Модель зафиксировала GAP — смещение темы — и сделала его видимым, вместо того чтобы молча уйти в сторону.

Где это работает

Человек ↔ модель (БЯМ)

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

Человек ↔ человек

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

Агент ↔ агент

В мультиагентных системах, где несколько ИИ-агентов взаимодействуют друг с другом, протокол может служить стандартом координации: кто сейчас активен, кто ждёт, кто завершил задачу.

Терапия и внутренний диалог

Менее очевидное применение: протокол как инструмент осознанности. Когда человек замечает своё состояние и намерение достаточно чётко, чтобы обозначить их сигналом — это уже рефлексия. .SBY.W вместо молчания. .GAP.S.M вместо ощущения, что «что-то не так, но не знаю что».

Обучение

В образовательном контексте протокол помогает и преподавателю, и студенту понимать, на каком этапе понимания находится другой. .ACK.W.C от студента — это не «понял», это «получил, но жду уточнения». Разница принципиальная.

Развитие и открытые вопросы

Протокол «Треть» существует в версии v1.3.2 — последняя на момент публикации ревизия базовой спецификации. RFC и карточка-шпаргалка опубликованы на GitHub. Протокол живой: он вырос из реального диалога и продолжает проверяться в практике.

Открытые вопросы

Масштабируемость. Как протокол работает в групповых диалогах, где участников больше двух? Нужны ли адресные сигналы?

Многослойность. Можно ли вкладывать сигналы — обозначать не только текущее состояние, но и мета-уровень диалога о диалоге?

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

Смежные области. Есть ли пересечения с теорией речевых актов (Остин, Сёрль)? С протоколами коммуникации в распределённых системах? С нарративной терапией?

Гипотезы

  • Регулярное использование протокола снижает количество «слепых» конфликтов — тех, в которых люди спорят не о содержании, а о том, что именно было сказано.

  • В диалоге человек‑модель явные сигналы состояния улучшают качество ответов модели, потому что контекст становится менее амбивалентным.

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

Вместо заключения

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

Диалог — это не обмен сообщениями, а совместное удержание пространства между двумя участниками. Когда это пространство непрозрачное — мы угадываем. Когда прозрачное — мы разговариваем.

Протокол существует по открытой лицензии, и любой желающий может привнести в него то, что считает нужным.

Комментарии (0)