Към съдържанието

Jeisan

Името, което носят работещите ми агенти: агент на сървър, който работи денонощно, автор в git и управител на търговските ботове

Роля
Оператор и архитект; агенти на Codex и Claude изградиха преместването и слоя за управление
Статус
В процес
Код
Частно хранилище
Технологии
Hermes Agent (NousResearch)OpenClawCodexPythonsystemdTelegramCloudflare WorkersGitHub ActionsTailscaleLinux
Плешив мъж с квадратна челюст и черно кожено яке се е облегнал на калника на тъмна кола на мокра нощна улица, с оранжево-черен часовник на китката, и гледа към камерата с лека усмивка. Зад него, извън фокус, мъж в тъмносин костюм и жена в черна рокля гледат телефон. Всички хора в кадъра са генерирани с AI.
Jeisan, както се появи за първи път в реклама на ValoxVSL.

В числа

52

пакета с skills, пренесени при преместването към Hermes Agent

4

планирани задачи, възстановени след преместването

5

стъпки с най-малки възможни права между Jeisan и търговски бот, които завършват със строг парсер на сървъра

15/ 15

проверки за изолация на същия сървър минаха, преди слоят на агентите-работници да заработи отново

1 117

теста минаха и 90 бяха пропуснати, когато промените на Claude бяха слети заедно във временно git worktree, преди да стигнат до main

Проблемът

Агент, който работи, докато спя, има нужда от процес, който не пада, от памет, която надживява разговора, от собствени данни за достъп и от граници, през които не може да се измъкне с убеждаване. Jeisan започна като герой в една от рекламите на ValoxVSL, корав екшън герой. Името първо отиде върху работно пространство на OpenClaw на малък облачен сървър: файл с идентичността, памет, проследяване на потенциални клиенти и скриптове. По-късно абонаментът, с който работеше, вече не позволяваше такава употреба, а аз го исках на абонамента си за Codex, без да се загуби нищо.

Подходът

Името, ръководството за работа и паметта остават, а платформата отдолу може да се смени. Възложих на Codex преместването към Hermes Agent на NousResearch, който е open source, и му казах да работи самостоятелно. Работата свърши един водещ агент с помощните си агенти, а същият водещ агент продължи и изгради слоя за управление, през който Jeisan управлява търговските ботове. Агенти на Claude изградиха части от този слой, а Codex ги прегледа като работа, предадена от друг автор, вместо да се доверява на докладите им, че са готови.

Близък план в кола през дъждовна нощ. Плешивият мъж е в профил до десния край на кадъра и гледа надолу по улицата. Едната му ръка стиска волана, с часовник с отворен механизъм в черно и оранжево на китката, а светлините на града светят като размазани петна зад мокрия прозорец. Генерирано с AI.
Същият герой, няколко секунди по-късно в рекламата.

Как работи

  1. Едно име, няколко роли

    Шлюзът на Hermes на сървъра отговаря в Telegram и изпълнява планираните задачи. Акаунтът в Discord на моя гласов мост е Jeisan Steisan. Същото име е и автор в git: то написа от край до край инструмент за съкращаване на връзки на Cloudflare Workers, заедно с CI работния процес, лиценза и политиката за сигурност. Освен това е управителят на търговските ботове. Всяка роля работи със собствени данни за достъп.

  2. Личност за тона, hooks за правилата

    Първоначалният файл с личността на агента, писан по времето на OpenClaw, започва с „Истинските правила. Не предложения.“ Той поставя за цел да е полезен, преди някой да е попитал, разделя работата с думите „Георги се занимава с дипломацията. Аз се занимавам със следенето и подготовката.“ и изразява философията в един ред: „Изграждай активи, а не работа.“ Личността носи характера. Правилата с реална тежест са hooks, а не промпти: в моята настройка защитните hooks PreToolUse отказват разрушителна команда, преди да се изпълни, при повреда системата по подразбиране отказва достъп (fail closed), а защита за тайни веднъж спря изпращането на промени от агент към хранилището на търговската система, защото шестнадесетични константи от 64 знака приличаха на ключове. Агентът не го заобиколи със сила, а почисти и заведе задача.

  3. Преместване без загуби

    Преместването следваше собствения процес на Hermes за пренос от OpenClaw, с предварителен преглед и точка за възстановяване. То срещна необичаен случай в оригиналния проект: работно пространство извън домашната директория на OpenClaw накара стъпката за архивиране да спре с грешка, и се мина през нея с обратимо заобикаляне чрез промяна на пътя. След това одит за съответствие сравни 52 пакета с skills, списъците с разрешени канали и четирите планирани задачи със старото работно пространство. Пренесените данни за достъп, които вече бяха невалидни, бяха премахнати, вместо да се пренасят, а остарялата памет беше изградена наново от подбрани файлове, защото суровият експорт на чатовете съдържаше данни на трети лица и данни за достъп. Резултатът от 99 KB беше сканиран и излезе чист, преди да влезе.

  4. Данните за достъп са отделени от изпълнението

    Токенът за обновяване на десктоп Codex не беше копиран: еднократното разрешение би накарало Hermes и десктоп приложението да се борят за него, затова агентът получи собствено OAuth разрешение. Агентите-работници получават данни за достъп само за четене на достъпа, а токенът за обновяване остава в едно централно хранилище. На сървъра достъпът на Jeisan до хранилищата е разделен на две части (systemd units): изпълнител без привилегии и мрежова част с данни за достъп, която говори само с един фиксиран адрес. Агентът работи със зафиксираната стабилна версия v0.19.0, а в моето копие на Hermes няма нито един локален commit.

  5. Управител с ограничен мандат

    Jeisan стига до ботовете през верига от стъпки с най-малки възможни права: обвивка (wrapper), точно определено sudo правило без аргументи, ключ със собственик root и фиксиран ключ на сървъра, SSH акаунт с принудителна команда и строг парсер на сървъра. Той може да наблюдава и да съветва. Единствената промяна в продукция се извършва от systemd таймер с root права, в който няма модел, а за пускане на живо ще трябва мандат с изтичащ срок, който не може да се използва повторно, хешове на конфигурацията, заверени от root, и пресни подписани данни от борсата. Политиката и мандатът са изключени по подразбиране. Независими задачи за наблюдение държат траен HALT, който има превес над управителя.

  6. Пускане и прегледи, които не вярват на зеленото

    Прегледи от агенти-противници откриха грешки, при които при повреда защитата пропуска (fail-open), скрити зад зелени единични тестове: подправен резултат от съветник, код на кандидат, който подправя маркера за завършени тестове, и прозорец за прекратяване на процеса, който оставяше възстановяването на инсталатора заседнало. Всяка беше поправена преди пускането. Инсталациите са транзакционни, с връщане назад, работещото копие на кода се премества едва след като съществуват доказателства от Linux CI, вързани към точния SHA, и трябва да минат всичките 15 проверки за изолация на същия сървър. Нощен граф от агенти (изследовател, инженер и независим проверяващ) работи по кода и не може да слива, да пуска в продукция или да пипа поръчки. Когато агент на Claude предаде пет промени за преглед, засягащи управлението, Codex ги слея във временно git worktree и пусна общия набор от тестове: 1 117 минаха и 90 бяха пропуснати, преди някоя от тях да стигне до main.

Плешивият мъж в черното кожено яке навежда глава с лека усмивка, за да погледне ръчния си часовник, до тъмна кола на мократа нощна улица. Мъж и жена стоят размазани на заден план под топлата светлина на ресторант. Генерирано с AI.

Какво избрах и какво отпадна

Избрах

Отделно OAuth разрешение за агента

Пред

Копиране на токена за обновяване от десктоп приложението към сървъра

Еднократното разрешение би накарало Hermes и десктоп клиента да се борят за него.

Избрах

Зафиксираната стабилна версия на Hermes Agent

Пред

Следване на основния клон на оригиналния проект

Локалното копие се оказа моментна снимка, чиято локална поправка вече беше в оригиналния проект. Зафиксираната версия е известно състояние, срещу което може да се прави одитът.

Избрах

Подписан мандат с изтичащ срок, изпълняван от таймер без модел в него и доставен изключен

Пред

Потвърждение на всяка сделка или агент с неограничена власт над ботовете

Не исках да потвърждавам всяка сделка, а Codex, докато го изграждаше, не се съгласи да даде на езиков модел неограничена власт над пари. Мандатът определя предварително допустимите граници, таймер го изпълнява и един файл може да го прекрати.

Резултатът

Шлюзът на Hermes стартира със свързан Telegram и работи и досега. Слоят за управление е в main и се доставя невзведен: Jeisan наблюдава и съветва, а взвеждането на бот остава решение на човек, което той въвежда ръчно. Hermes Agent е код на NousResearch, а моята част е преместването, подредбата на данните за достъп, слоят за управление и правилата около тях. Недовършено: разпределител, който би делил капитала между ботовете, съществува само като ядро, работещо в сянка, без реални входни данни и без път към правомощия.

Какво следва

Ще свържа разпределителя в сянка с реални входни данни и ще оценявам предложенията му достатъчно дълго, за да мога да ги преценя, преди да се напише какъвто и да е път към правомощия.