Двойственная Семантика Faying
К этому моменту слово «Faying» появлялось много раз: как имя контракта в Главе 2, отличая iFay от Agent в Главе 3, неся требование ценности Human View в Главе 11. Но к чему именно отсылает Faying, было намеренно отложено до сих пор. Причина в том, что его нельзя описать с одной стороны.
Faying несёт две семантики одновременно.
Семантика состояния — состояние связи Fay, находящегося под опекой Human Prime, называемое Faying State. Семантика действия — действие «передачи управления», которым Fay входит в Faying State из состояния rogue, называемое Faying Action.
Эти две семантики неотделимы: без Faying Action Faying State никогда не будет установлен; без Faying State Faying Action — лишь пустая операция. Это принцип Двойственной Семантики Faying.
Любая попытка упростить Faying до одной стороны — принимая его лишь как «состояние связи» или лишь как «переключающее действие» — тихо стирает атрибуцию ответственности на уровне протокола.
Faying State: состояние связи под опекой
Faying State — состояние связи Fay, находящегося под опекой конкретного Human Prime. Fay, входящий в это состояние, имеет три необходимых свойства.
Атрибуция действия уникальна — все внешние действия Fay в этом состоянии атрибутируются этому Human Prime. Будь то действие, решённое Fay автономно, явно скомандованное Human Prime или вызванное внешней средой, ответственный конец не прыгает.
Непрерывная видимость — в течение этого состояния Human Prime удерживает Human View над активностью Fay и может в любой момент подтвердить, продолжает ли действовать опека.
Путь вмешательства всегда открыт — в течение этого состояния команды отзыва, паузы, замедления или уничтожения от Human Prime над Fay имеют наивысший приоритет. Fay не может перекрывать эти команды никаким «деловым основанием».
Faying State — не статичный результат; это непрерывно онлайновое обязательство. Его необходимо переподтверждать в каждый микроскопический момент, а не удерживать вечно после установления. Как только что-либо из трёх выше перестаёт держаться, Faying State должен войти в процесс выхода, определённый в Главе 13.
Важное обратное заключение: в состоянии вне Faying State (то есть в Rogue Fay) у каждого внешнего действия Fay нет того, кто примет ответственность. Поэтому единственный приемлемый проектный выбор, который Faying Protocol может сделать на уровне протокола, таков: запретить Fay действовать во время Rogue Fay, а не «дать действовать и атрибутировать постфактум». Этот принцип будет строго приземлён в Главе 13.
Faying Action: передача управления
Faying Action — конкретное, наблюдаемое, подлежащее аудиту действие «передачи управления».
Самая подходящая аналогия — эта повседневная сцена:
Jack передаёт руль автомобиля AI-водителю. В этот момент Jack не просто нажимает кнопку «автопилот» — он явно воспринимаемым извне образом передаёт управление. До этого руль принадлежал Jack; после этого руль принадлежит этому AI-водителю; одновременно все последствия, возникающие из руля, по-прежнему ложатся на Jack, держателя водительского удостоверения.
Faying Action — эквивалент «передачи руля» в цифровом мире. Он переводит Fay ясным, удостоверяемым свидетелями и прослеживаемым образом из состояния rogue «существует, но не может действовать» в Faying State «действует от имени Human Prime».
Это приводит к нескольким непреодолимым свойствам Faying Action.
Должен быть явно инициирован Human Prime — Faying Action не позволяет Fay самостоятельно решить начать. Fay не может автономно войти в Faying State лишь потому, что «в прошлый раз он начал так», «я предполагаю, что Human Prime сейчас захотел бы, чтобы я начал», или «меня прежде уполномочивали на сходные действия». Каждый вход должен быть явно инициирован Human Prime.
Должен быть удостоверяемым свидетелями — Faying Action должен оставлять след, наблюдаемый извне (включая аудиторов, регуляторов, сам Fay, других Fay и Human Prime). Faying Action, который не был засвидетельствован, эквивалентен тому, что не имел места.
Должен иметь ограниченную область — Faying Action не должен быть вечным «полномочным делегированием». Blueprint решительно поддерживает Faying Action, несущий явную область (например, временное окно, область задачи, область терминала), автоматически утрачивающий силу при достижении границы. Неограниченный Faying — анти-паттерн, которого следует избегать.
Должен быть симметрично отзываемым — у каждого Faying Action должен быть соответствующий, симметричный путь отзыва. Установление Faying State и выход из Faying State должны быть двумя одинаково достижимыми путями, а не асимметричной конструкцией «легко открыть, трудно закрыть».
Обе стороны вместе и есть Faying
Сводя стороны состояния и действия вместе, полное значение Faying можно выразить в этом абзаце:
Faying — это явно инициированное Human Prime, удостоверяемое свидетелями и симметрично отзываемое действие «передачи управления» (Faying Action), переводящее Fay в непрерывно онлайновое состояние связи под опекой (Faying State); внутри этого состояния Fay может действовать от имени Human Prime, и последствия все несёт этот Human Prime; вне этого состояния Fay не разрешено действовать.
Тот же абзац даёт три обязательства по измерению времени. Прошлое: Faying State всегда входится через некоторое конкретное Faying Action; нет Fay, который «просто естественным образом находится в Faying». Настоящее: валидность Faying State непрерывно калибруется в каждый момент через Human View, а не удерживается вечно после установления. Будущее: Faying State в итоге выйдет через симметричный отзыв или автоматическую утрату силы, возвращая Fay в состояние rogue, определённое в Главе 13.
Жёсткие ограничения на проектирование протокола
Эта глава, как ценностная глава, не указывает поля или сообщения, но накладывает несколько непреодолимых жёстких ограничений на конкретный дизайн Faying Protocol:
- уровень протокола должен предоставлять первоклассное выражение обеим сторонам — Состоянию и Действию; нельзя выражать только одну сторону;
- уровень протокола запрещает любой легитимный путь, «по которому Fay инициирует Faying Action на самом себе»;
- уровень протокола должен предоставлять для каждого Faying Action удостоверяемый свидетелями след и симметрично отзываемый путь;
- уровень протокола запрещает «неограниченный Faying» как форму по умолчанию; он должен принудительно требовать, чтобы Faying Action нёс ограниченную область на уровне протокола;
- уровень протокола должен гарантировать: при срабатывании любого условия, при котором Faying State более не держится, Fay автоматически переходит в состояние rogue, а не в «деградированный Faying».
Как отношение опеки устанавливается, поддерживается и завершается, теперь полностью определено на ценностном уровне. Следующая глава переворачивает перспективу: когда Faying State не держится, что Fay может, а что не может делать? Это самая строгая глава в этом blueprint, та, в которой не допускается уступок.
