Selvedge и изпълнение с доказателства
Пясъчната кутия не е свидетел
Изпълнението на непроверен код е една от онези идеи, които звучат добре на среща, защото никой още не е написал доклада за инцидента. Остави агента да извика инструмент. Остави приставката да трансформира файл. Остави партньорския модул да обработи данните. Сложи го в пясъчна кутия. Прекрасно. Кодът не може да избяга. Всички кимат. После одиторът пита какво всъщност е направил кодът вътре в пясъчната кутия и изведнъж стаята открива, че ограничаването не е същото като доказателството.
Пясъчната кутия отговаря на един въпрос: остана ли натоварването в границата? Това е необходимо. Но не е достатъчно. По-трудният въпрос е какво се е случило по време на изпълнението. Кой артефакт е изпълнен? Коя политика е приложена? Кои възможности са били поискани? Кои системни извиквания са били разрешени или отказани? Колко гориво, памет и време е изразходвано? Какво е излязло? Може ли изпълнението да се повтори, без да се вярва на оригиналната машина? Ако тези отговори живеят в регистрационни файлове и увереност, системата има костюм, а не одитна следа.
Selvedge съществува за тази празнина. Страницата я нарича слой за транскрипт на изпълнението за непроверен код: AION доказва разсъжденията, Ledger записва системните събития, а Selvedge улавя изпълнението. Реализацията следва тази форма. Работното пространство е проект на Rust 2024 с пакети за основните дигести и ограничения на ресурсите, механизми за изпълнение, бекенди Wasmtime и Kera, детерминизъм, хостове WASI и Kera, политика, проверка AION, CLI, MCP, регистър, изпълнител, демон, одит и повърхности на гост SDK. Публичното обещание е умишлено просто: Selvedge изпълнява непроверен код при детерминирано изпълнение, прилагане на политика и дисциплина за проверка.
Полезното разграничение е малко и сурово. Пясъчната кутия казва, че кодът не е напуснал. Selvedge е проектиран да каже какво е направил кодът.
Транскриптът не е регистрационен файл
Регистрационните файлове са полезни за хора, които вече отстраняват грешки. Те са по-малко полезни, когато въпросът е дали дадено изпълнение може по-късно да бъде проверено от някой, който не е вярвал на оригиналния хост. Един ред в регистрационния файл може да липсва, да бъде пренареден, филтриран, съкратен, преформатиран или обяснен. Транскриптът трябва да бъде част от договора за изпълнение.
Ядрото на Selvedge определя дигести SHA3-256, типове грешки, валидиране на пътища, токени за удостоверяване и споделени ограничения на ресурсите. README описва транскрипти с хешове на байткод, настройки, стандартен изход, стандартна грешка, изход, памет и глобални променливи, плюс потребление на гориво и брой системни извиквания. Страницата описва как всяко системно извикване се хешира във верига SHA3-256 и резултатът се обвива в доказателствен плик в стил AION с подпечатване Ed25519. Това е разликата между система, която казва „довери ми се“, и система, която казва „ето пакета“.
Има здравословна доза параноя в този дизайн. Дигестът на артефакта назовава кода. Дигестът на настройките назовава детерминирания профил. Транскриптът назовава какво е преминало границата на хоста. Подписаният плик прави подправянето видимо. Офлайн проверката означава, че оригиналната среда за изпълнение не е единственият свидетел. Това е частта, която много истории за пясъчни кутии пропускат, защото е по-малко забавно от показването на приставка, работеща в демонстрация. Демонстрациите рядко питат кой е редактирал одитния регистър. Одиторите питат.
Отказът по подразбиране също се нуждае от разписки
Defaultdeny е добра позиция и ужасен лозунг, ако спре до слайда. Политиката на Selvedge дава зъби на лозунга. Пакетът за политики дефинира WASM възможности като часовник, случайност, файлова система, мрежа, среда, stdio, процес и персонализирани. Той носи ограничения за ресурси за памет, размер на файл, брой инструкции и време. Той валидира инварианти, отхвърля дублирани възможности, предоставя структурирани грешки и картографира неуспехите в общия речник за грешки на Dweve. След това runner прилага ограниченията за ресурси към конфигурацията за изпълнение, преди workload да стартира.
Това означава, че политиката не е въпросник, попълван след изпълнението. Тя е вход към изпълнението. Ако workload поиска достъп до време, случайност, файлова система, мрежа, среда или процес, това искане трябва да премине през политиката. Ако изразходва твърде много fuel, памет или време от часовника, изпълнението завършва като контролиран неуспех. Ако политиката е непоследователна, тя трябва да се провали, преди артефактът да започне да прави нещо интересно. Много скучно. Много полезно. Скучното е как запазваме уикендите.
Важният момент е, че решенията за политиката не са отделени от доказателствата. Пясъчната среда може да позволи или откаже широка категория и пак да остави одитната следа тънка. Selvedge е изграден около идеята, че всяко решение за gate и всяко отчитане на ресурс принадлежи на историята на изпълнението. Това е, което го прави полезен за agent инструменти, изпълнение на plugin от трети страни, Kera inference, регулирани workload-и и партньорски код. Работата може да не е доверена. Доказателствата не трябва да са.
Детерминизмът е мястото, където хостът спира да импровизира
Replay е лесно да се обещае и трудно да се спази. Хостът има часовник. Хостът има случайност. Поведението на NaN при плаваща запетая може да е неудобно. SIMD може да се различава между архитектурите. Файловите системи, променливите на средата и състоянието на процеса са отлични начини да се промъкне недетерминизъм на места, където никой не го очаква. Ако искате replay, трябва да премахнете или контролирате тези източници, преди да станат извинения.
Selvedge прави детерминираното изпълнение по подразбиране. README описва виртуален часовник, фиксиран към епохата 2024-01-01, seeded ChaCha20 случайност, измерване на fuel, генериране на транскрипт и канонизация на NaN. Той също казва, че SIMD откриването е най-бързо, но само за същата архитектура, докато деактивирането на SIMD е напълно преносимият път за различни платформи. Последната част е важна, защото детерминизмът не е молитва. Той е решение за конфигурация и архитектура, а понякога честният компромис е скорост срещу преносимост.
Runner по подразбиране използва Wasmtime backend с включено детерминирано изпълнение. Kera е другият backend, насочен към Graph IR и binary neural network workload-и. Това разделение е разумно. WASM е общият път за недоверени компоненти. Kera е пътят за AI графи. И двата се нуждаят от една и съща дисциплина около тях: политика преди изпълнение, детерминирани настройки, транскрипт след изпълнение и доказателство около резултата.
Защо agent-ите правят това по-малко незадължително
Агентните системи отново правят изпълнението на непроверен код модерно, което е изречение, от което всеки специалист по сигурността трябва да се стресне. Моделът иска извикване на инструмент. Приставка изпълнява трансформация. Генериран помощен скрипт докосва данни. Партньорски инструмент идва чрез MCP. Моделът не е написал инструмента, инструментът може да не е прегледан със същата грижа като продуктовия код, а потребителят все пак очаква системата да обясни какво се е случило. Успех с това, ако единственият отговор е директория с логове и усещания.
Selvedge има MCP сървърна повърхност за агентни инструменти, CLI за изграждане, проверка, изпълнение и повторение на работни потоци, демон за дълготрайно изпълнение, обединяване на изпълнители и загряване на кеш, клиентски и сървърни crate библиотеки за регистъра, както и гост SDK. Въпросът не е, че всяка повърхност е еднаква. Въпросът е, че формата на доказателствата трябва да е сравнима. Независимо дали дадена задача влиза като WASM компонент, Kera граф, агентен инструмент или служебна задача, изпълнението трябва да завърши с нещо, което може да се провери.
Производителността е компромис, не магия
Страницата на Selvedge включва бенчмарк числа от BENCHMARKS.md в хранилището: студеният старт е основната победа, горещият път е по-нюансиран, Kera JIT има добра история за загряти графи, а обикновеният Wasmtime все още държи някои горещи пътища с многократни извиквания. Това е правилният начин да се говори за това. Работата по изпълнението е пълна с компромиси. Ако компонентният модел произвежда стенограма и плик с доказателства, той има различни разходи от минималния път. Ако студеният старт е вашият проблем, този път на доказателства може да помогне. Ако задачата е стегнато многократно извикване без нужда от допълнителни разходи за стенограма, отговорът може да е различен. Много неудобно, реалност. Тя отказва да бъде брошура.
Статийната версия на историята за производителността е следователно проста: изберете изпълнението според задачата. Не използвайте плика с доказателства като магическа отвара за скорост. Използвайте го, когато цената на липсата на възпроизводими доказателства е по-висока от допълнителните разходи. За агентни инструменти, регулирана обработка на данни, приставки от трети страни и изпълнение, при което по-късно човек ще попита какво се е случило, тази цена често е реална.
Какво да прегледате, преди да го използвате
Първо, решете дали имате нужда от ограничаване, доказателства или и двете. Ако задачата е доверена и вътрешна, Selvedge може да е повече механизъм, отколкото е нужно. Ако задачата е недоверена, доставена от партньор, задействана от модел или подлежи на одит, стенограмата започва да си заслужава мястото.
Второ, прегледайте политиката. Кои възможности са разрешени? Кои са отказани? Какви са ограниченията за гориво, памет и време? Изисква ли се детерминиран режим или е само позволен? Достатъчно тесни ли са достъпът до файловата система и мрежата? Версионирана ли е политиката с артефакта? Ако политиката живее в уики, а изпълнението някъде другаде, дизайнът вече се отклонява.
Трето, тествайте повторението като продуктово поведение. Не чакайте одит, за да откриете дали пликът се проверява офлайн. Изпълнете същия артефакт, същата политика и същите входни данни два пъти. Сравнете стенограмите. Опитайте отказани възможности. Счупете контролната сума. Променете seed-а. Изключете SIMD, ако идентичността между платформи има значение. Досадните тестове са смисълът.
Урокът
Selvedge не е по-красива пясъчна кутия. Той е слой за доказателства на изпълнението. Той изпълнява WASM и Kera артефакти, започва от отказ по подразбиране, ограничава ресурсите, контролира детерминираните входни данни, хешира изпълнението в стенограми и обвива резултатите в плик с доказателства, който може да се провери по-късно. Това е различно обещание от кодът си остана в ъгъла.
Тъй като AI системите извикват повече инструменти, изпълняват повече генерирани помощници и приемат повече компоненти на трети страни, това разграничение престава да бъде академично. Въпросът няма да бъде само дали натоварването е избягало. Въпросът ще бъде какво е направило то, по каква политика, с какви входни данни, какви резултати е произвело и дали някой друг може да възпроизведе това твърдение.
Пясъчникът е стена. Selvedge се опитва да бъде и свидетелят.