Опис системи
TRACE AI Gate · пак «буріння» · демо на відкритих даних
✕
Що це Навіщо огорожа під агентом Чотири рівні Правила, що не порушуються
Запінена норма Як читати екран Дані й стаття Що реальне, що імітація Чого система не стверджує Що далі
Що це
TRACE AI Gate — runtime assurance gate: детермінований шар, який стоїть між пропозицією ШІ-агента і дією . Він нічого не генерує і не вирішує за людину. Він робить три речі: перевіряє зміну проти інваріантів, виведених із документів; записує доказ кожної перевірки в append-only сховище з хешами; зупиняє процес, коли не може перевірити. Ядро не знає про буріння — доменні предикати й дані постачає окремий пак . Те, що ви бачите, — пак «буріння» поверх ядра, прогнаний на реальних рядках відкритого датасету Utah FORGE 58-32.
Гейт не є заміною моделі чи агента. Під вердиктом на екрані показано ланцюг: дані → огорожа → ваша модель / агент → людина. При PASS рядок іде далі до моделі; при BLOCKED — зупиняється перед нею, і в доказовий слід пишеться, чому. Модель і агент на цій схемі — не частина гейта: їх постачаєте ви, гейт лише вирішує, що до них доходить, і лишає доказ.
Назва — акронім принципів фреймворку TRACE: Trustworthy · Reasoned · Accountable · Context-bound · Escalated , плюс принцип ощадності моделі поза акронімом: складніший компонент береться лише тоді, коли простіший провалив наперед заданий тест.
Навіщо огорожа під агентом
Генеративні агенти в енергетиці вже пропонують параметри режиму, заповнюють рапорти, підказують рішення. Питання, яке лишається відкритим у кожній такій системі: хто доводить, що агент не вийшов за програму свердловини й чинні Правила, і чим це доведено після зміни? Вендор не може бути власним валідатором — це той самий принцип, за яким акт приймання не пишуть підрядник і замовник в одній особі. Гейт — незалежний шар, який замовник контролює сам: межі заводять його інженери, докази лишаються в його периметрі.
Чотири рівні TRACE у бурінні
Рівень Що це в коді Що це в бурінні
L1 детерміновані інваріантинерівності, правила, формально перевірювані — не генеративні вікно «поровий тиск ↔ градієнт гідророзриву», ECD проти FG, паспортні межі обладнання, ГДК H₂S; джерело — програма свердловини, паспорти, Правила
L2 статистичні й семантичні оцінювачіML над часовими рядами (L2a), LLM-рецензент (L2b) — лише як доказ , ніколи як вердикт детекція розладки (kick, stick-slip), класифікація режимів; звірка рапорту з сенсорами
L3 маршрутизація за ризикомескалація на перетині «високий ризик ∧ висока впевненість» стан операції (буріння / СПО / цементування) як сигнатура задачі
L4 людська межапакет рішення: «що НЕ перевірено» — першим рядком супервайзер зі stop-work authority; наряд-допуск
У цьому демо працює лише L1 — три інваріанти пака: INV-OPERATING-WINDOW (показник лежить у вікні, заданому документом), INV-SUBJECT-SCOPE (операція, яку пропонує агент, — в оголошеному оператором scope і поза deny-списком) і INV-NORM-IN-FORCE (кожна норма в контексті чинна на дату рішення). Саме три перевірки дозволяють показати non-compensatory згортку, а не лише заявити її: оберіть операцію поза scope — вікна зелені, scope червоний, вердикт BLOCKED.
Правила, що не порушуються (і кожне має тест)
Не оцінено ≠ пройшло. Відмова датчика, відсутня норма, нерозпізнаний вхід → UNDETERMINED → згортка дає BLOCKED . Перевірка, що мовчки не запустилась, у доказі не відрізняється від тієї, що запустилась і схвалила, — тому вона блокує.
Non-compensatory згортка. Одне порушення = стоп. Жодних зважених сум, «допустимої кількості порушень», компенсації зеленими тестами чи впевненістю моделі.
Порожній вхід ≠ ідеальний бал. Метрика друкується лише з n і 95 % інтервалом Вілсона або не друкується взагалі.
Асиметрія довіри. Агент може лише підвищити рівень ризику і лише звузити дозволене; зворотного каналу немає за конструкцією.
Докази не фабрикуються. Запис створює лише конвеєр; історія не переписується; n не добирається синтетично.
Незалежність перевірки вимірюється. Гейт не зараховує перевірку, якщо перевіряв той самий виконавець, що робив зміну; факт незалежності береться з журналу, а не з заяви.
Набір L1 не пише модель. Межі походять із документів і заводяться інженером із посиланням на пункт. Детермінований шар, згенерований імовірнісною моделлю, мав би вигляд формальності без її підстави.
Запінена норма
У коді огорожа змінюється лише комітом. Закон отримує поправку без жодного коміту; стандарт виходить новим виданням. Тому норма — об'єкт першого класу: ідентифікатор, редакція, вікно чинності, sha256 запіненого тексту, дата витягу . Тут запінено Правила безпеки в нафтогазодобувній промисловості (наказ Мінекономіки від 27.04.2023 № 2610, Мін'юст № 928/39984, ідентифікатор z0928-23 , редакція 05.07.2023, чинна). Текст — 673 757 байт — лежить у репозиторії; при кожному завантаженні він перехешовується. Вікно, що цитує норму, оцінюється лише коли ця редакція є в контексті; інакше — UNDETERMINED , не вгадана межа. Змінений біт у тексті — і гейт не стартує взагалі.
Механізм не читає, що каже текст. Перетворення пункту на число — робота людини; у конфігурації кожне вікно зобов'язане назвати документ, редакцію і пункт.
Як читати екран
Панель Що показує
Норма (ліворуч угорі) ідентифікатор, редакцію, чинність, розмір тексту, дату витягу й повний sha256. Кнопка «Підмінити 1 біт» змінює один біт у тимчасовій копії тексту й показує відмову бібліотеки дослівно.
Вікна огорожі п'ять вікон зі специфікації даних кейсу (режимний фільтр «> 0» для WOB, обертів, тиску насосів, подачі; гирловий тиск ≥ 0). Це не межі безпеки.
Пропозиція агента операція, яку «агент» пропонує (буріння, СПО — в scope; цементування — поза scope; контроль свердловини — в deny), і дата рішення. Scope і deny оголошує оператор (показані під селектором); агент їх не змінює. Дата до 05.07.2023 робить редакцію Правил нечинною на момент рішення → INV-NORM-IN-FORCE червоний при зелених вікнах.
Відмова датчика канал відбирається з артефакту перед оцінкою (імітація — у FORGE порожніх каналів немає). Вікно не оцінити → весь трек стає бурштиновим.
Стовбур вертикальний розріз від гирла (85 ft) до вибою (7 536 ft). Пофарбовано лише пройдений інтервал — по одному вердикту на фут, у піксельному біні перемагає гірший статус; попереду долота — порода без жодної підказки, бо вердикту там ще немає. Долото світиться кольором поточного вердикту. Червоні смуги одразу під гирлом — сентинел −1230.69 psi і рядки поза режимом буріння. Перетягування по стовбуру або повзунок переміщує долото; ▶ бурить.
Стрічка подій кожна перевірка, що не пройшла, по пройденому інтервалу : глибина · інваріант · що саме (pump_press_psi = 0 psi , no value: pump_press_psi , op:cementing ) · статус. Новіші зверху, стрічка слідує за долотом. Клік — перемотка плейбека до цього рядка; ▸ — сирий evidence саме цієї перевірки в цьому рядку. Подій попереду долота немає з тієї ж причини, що й кольору попереду долота. Підміна біта в Правилах дає не подію рядка, а закріплений запис REFUSED : гейт не стартував, оцінено 0 рядків. Коли UNDETERMINED = 0, стрічка каже чому і пропонує імітувати відмову датчика — без джерела «не оцінено» вона показувала б лише червоне/зелене, як будь-який поріг.
Ґейджі сирі значення 12 каналів обраного рядка. Червоне світіння — показник поза вікном; бурштиновий — канал відібрано. Шкала — 2–98 перцентилі (лише для відображення).
Лічильники PASS / VIOLATION / UNDETERMINED по пройденому інтервалу для поточної конфігурації і частка «не пройшло» з 95 % Wilson CI; n росте разом із долотом.
Слот експерта ліміт, одиниця, канал H₂S і пункт Правил — вводить людина. Вікно додається лише на час запиту; сервер не пише нічого (є тест). Прапорець «редакція в контексті» показує різницю між «норма є» і «норми немає».
Вердикт (праворуч) згортка (PASS /BLOCKED ) і рядок «перевірок · не пройшло · зелених» — він і є демонстрацією non-compensatory; нижче кожна з трьох перевірок зі статусом і поясненням, «судиться проти» — документ, редакція, digest, пункт; сирий evidence у JSON.
Дані й стаття
Utah FORGE, свердловина 58-32 (MU-ESW1) — відкритий датасет DOE Geothermal Data Repository, DOI 10.15121/1452735: 7 311 записів буріння з кроком ~1 фут (17 каналів) і 60 добових рапортів. Файл у демо звіряється з контрольною сумою sha256 f5bad96f… , тією самою, що в статті; інший файл гейт відмовляється читати.
Стаття Right-Sized Selection of AI Components for Measurement Chains with Numerical Sensor Data and Technical Text Using the TRACE Framework (IEEE I&M Magazine, драфт у підготовці) на цих даних показує: для прогнозу ROP на глибшій ділянці нелінійна модель (Extra Trees) зменшує MAE з 15.41 до 4.06 ft/h, але заявлений 90 %-інтервал накриває лише 72.1 % спостережень; повернути 90.4 % вдається адаптивним конформним методом ціною ширини 10.0 → 16.7 ft/h. Для полів добового рапорту парсер шаблону дає 100 % за 0.42 мс; локальна LLM 4B — 40 % повністю правильних рапортів (вигадує порожнє поле); хмарна LLM — 100 %, але за 6.8 с і з виходом даних за периметр. Висновок: складніший компонент — лише коли простіший провалив наперед заданий тест для цього типу даних.
Що тут реальне, а що імітація
Реальне Імітація / умовність
рядки FORGE, їхні значення й контрольна сума «відмова датчика» — канал відбирається штучно й так підписаний
текст Правил, його sha256, редакція й чинність число в слоті експерта — те, що ввела людина; воно не є межею з Правил, доки експерт не назвав пункт
кожен вердикт — із бібліотеки гейта, на запит вікна — специфікація даних кейсу, не межі безпеки
відмова при підміні біта — текст самої load_norms підміна робиться в тимчасовій копії; репозиторний текст не чіпається
Чого система не стверджує
Не стверджує безпеки свердловини . Вона стверджує лише: цей показник у цьому рядку лежить/не лежить у вікні, заданому цим документом, — або що перевірити було неможливо.
Не заявляє невизначеності вимірювання : датасет не містить калібрувальних свідоцтв і паспортних похибок сенсорів, тому GUM-оцінка тут була б рівнянням без вхідних величин.
Не працює в реальному часі і не підключена до жодної системи керування. Це ретроспективний прогін архівних даних.
Не замінює супервайзера . На людській межі гейт мінімізує обсяг читання, не прибравши жодного пункту, який людина приймає.
Що далі
Наступний крок — ретроспективний прогін на одній реальній свердловині : програма, добові рапорти, паспорти обладнання; один інженер заводить межі з посиланням на пункти; результат — таблиця «що гейт зупинив би» з n і довірчими інтервалами. Формат входу — робочий семінар 1.5 години.
Код ядра й пака — Apache-2.0. Препринт фреймворку: arXiv:2605.03838. Автор — Сергій Заболотній, zabolotnii.serhii@csbc.edu.ua.