
Привет, Хабр, меня зовут Денис Власов, я руковожу службой внешних сайтов холдинга. Несколько месяцев назад я поймал себя на странном ощущении посреди разговора с большой языковой моделью (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. Протокол живой: он вырос из реального диалога и продолжает проверяться в практике.
Открытые вопросы
Масштабируемость. Как протокол работает в групповых диалогах, где участников больше двух? Нужны ли адресные сигналы?
Многослойность. Можно ли вкладывать сигналы — обозначать не только текущее состояние, но и мета-уровень диалога о диалоге?
Порог входа. Протокол минималистичен намеренно, но даже минимальный формализм требует привычки. Как снизить трение при первом использовании?
Смежные области. Есть ли пересечения с теорией речевых актов (Остин, Сёрль)? С протоколами коммуникации в распределённых системах? С нарративной терапией?
Гипотезы
Регулярное использование протокола снижает количество «слепых» конфликтов — тех, в которых люди спорят не о содержании, а о том, что именно было сказано.
В диалоге человек‑модель явные сигналы состояния улучшают качество ответов модели, потому что контекст становится менее амбивалентным.
Протокол можно выучить: после нескольких недель использования сигналы начинают считываться интуитивно, без когнитивной нагрузки.
Вместо заключения
Протокол «Треть» — не попытка формализовать живой разговор. Это попытка сделать видимым то, что в нём уже есть, но остаётся невысказанным: позицию, намерение, ожидание.
Диалог — это не обмен сообщениями, а совместное удержание пространства между двумя участниками. Когда это пространство непрозрачное — мы угадываем. Когда прозрачное — мы разговариваем.
Протокол существует по открытой лицензии, и любой желающий может привнести в него то, что считает нужным.