# Практика StyloAgent: Як я будую та управляю великими ( і HUGE) системами, використовуючи код LLMs

<!-- category -- AI,Architecture,LLM,Agents,StyloAgent,Patterns -->
<datetime class="hidden">2026-07-18T16:00</datetime>

**генерація коду перестала бути проблемою деякий час тому.** Моделі пишуть гарний код. Вони слідують правилам в файлі, який вони редагують , і якщо ви показуєте їм провал тесту, то вони зазвичай виправляють його.

Частина, яка не працює - це пам 'ять.

> "модель може написати кодM SK1 Це МSK2робиш те, що пише код, запам 'ятовуючи, чому система така, як вона є

Кожна нова сеанса починає нічого не знати про систему, яку вона збирається змінити. Вона знову відкриває, що [Stylo.Bot](https://stylo.bot) є двома repositoriaми , що ризикова шкала на панелі відтворюється в часі читання і ніколи не зберігається в кэші, що існує одна модель підключення до бази даних, а SQLite-магазин ніколи не має бути прихованім МSK2 писати поруч з Postgresом M SK3 Ніщо з цього не є у файлі, який редагується . Він живе в архітектуру MSC5 і архітектура живе в моїй голові Mسک6

Йдеться про робочий процес, який я створив для того, щоб припинити платити за це. Я називаю його StyloAgent, , і це флот, що створює та керує Stylo.

[![Останній випуск](https://img.shields.io/github/v/release/scottgal/styloagent)](https://github.com/scottgal/styloagent/releases)

[TOC]

---


## Найважливіша проблема - це архітектурний дрейф

Стіло.BotM SK1 детектор не є простим ASPМSK2NET CRUD app. Він працює на ЕфемеральномуМСК4 сигналахМ СК5 та МСК6 архітектурі атомів MСК7 атоми утримують станM СК8 сигнали повідомляютьМSК9 `SignalSink` за запитом - чорна доска ",", одна `ScheduleCoordinator` випускає сигнали тик-каденсу замість стопки фонових послуг, класифікація найближчаM SK1 центродіальна з дрейфом, а не правилами, і виведення вердикцій відбувається по-новому, читаючи, аніж в буферіMSC3 Ця форма є цілковитою точкою продукту . Це те, що дозволяє йому навчитися від спостережень, замість того, щоб співпадати з статичним спискомМSK5

Код LLM не хоче побудувати те, що він бачив мільйони разів у своїх тренувальних даних. : простий CRUD . Попросіть нового агента додати функцію і він дістається до МSK3 кожного разу МSK4 для ASP

| Різ reflex ASPM SK1NET ( Plain CRUD) МSK4 StyloMSC5BotMスク6s intended pattern МSK7Ephemeral
|---|---|
| А `BackgroundService` за періодичну роботу | Один `ScheduleCoordinator` випромінюючи сигнали тика |
| А `ConcurrentDictionary` використаний в магазині | Атоми мають стан МSK1 не в МSK2 тривалість пам 'яті |
| А `switch` відображає стрічку в категорії | Найbliższa - класифікація центроїдів МSK2 дрейфування
| Захищати обчислювальну ціну для локальність | Зробити її по-новому, читаючи МSK2 обчислюючи \ - в \ МSK4 читаючи
| Боса `DbContext` в середній програмі | Статус живе у двигуні
| А `ILogger` щоб перевірити, що трапилося. | Сигнали повідомляють.

Кожна клітина ліворуч - це підручник ASP.NET і правильна у звичайному програміM SK1 Кожна клетка лівоту - неправильна для Stylo `CLAUDE.md` що так говорить, явно M SK1 центроїди не мають правил , жодні західні служби не використовують Схема-координатору МSK3 ніяких в- пам 'яті хранилищів , жодних кэшів, що сприяють свіжості, ніж локальності MSC6 сигналів та атомів, а не ASP M SK7 NET стандартів.

Він не мав. `CLAUDE.md` завантажується на кожну сеансу, і кожнісіньку сеанс вона конкурує з модельюM SK1 її попередників та втрачає . Модель регресує до середини своїх тренувальних данихМSK3, яка є CRUD.

**Це коштувало тижнів переробки.** Не було жодного значного випадку, повільної кровотечі M SK1 `BackgroundService` повернуто до координатора tick, a `ConcurrentDictionary` що тихо стало паразитичним магазином, видалено `switch` declara swapped back for a centroid lookup, session after session after Session. The bug was never the pointM SK2 The drift was the point\. A per\MSC4\repo instructions file is retrieval\, and retrival wasn't enough \ :\ the agent had the rules in front of it\MST7\ did not understand why the Ephemeral shape mattered\M ST8\ and eroded it anyway\M st9\

Не "агент можеM SK1 не кодувати", а "аргент може+' не підтримувати архітектуруMSC5 Немає більшого instruksiвного файлу, який б її виправивМSK6 Даючи архітекцію власникові

---


## Масштаб цієї речі

Шкала не спричинила дрейфу. Вона збільшила йогоM SK1

Stylo.Bot - це не іграшка . Це роботаM SK2платформа для виявлення : FOSS-детектор, що об 'єднує веб-приложения через YARP-ґейтвею МSK4 плюс коммерческий шар з управлінням флотомМSK5 редактор живої конфігураціїMSC6 Постережність Postgres та pgvectorMST7 комерційні LLM-провайдериM ST8 інформаційний двигун МST9 членство і кожен член М ST10 ліцензування доменів М st11 , і оператор Kubernetes Мst12

Перераховані чесно:

- Два головні хранилища для Stylo.Bot : двигуна визначення FOSS і коммерченої системиM SK2
- Близько двадцять - МСК0 - п 'ять проектів лише в рамках комерційного репо - МSK1
- Мої власні NuGet пакети, які мають спільні продукти : [`Mostlylucid.Ephemeral`](https://github.com/scottgal/mostlylucid.ephemeral) (SubstrateM SK1 [`StyloExtract`](https://github.com/scottgal/styloextract), [`StyloFlow`](https://github.com/scottgal/styloflow), [`StyloIssues`](https://github.com/scottgal/styloissues), [lucidVIEW](https://github.com/scottgal/lucidview).
- Інфраструктура : Хельмові діаграми МSK1 мікрок МSK2 кластер , секретний магазин
- Маркетинговий сайт, що запускає контрольну скриньку і вміщує реальну панель приладів

Кожна з них є поверхнею, в яку може прослизнути дрейф, і свіжий агент має тримати ту ж саму efeмерну дисципліну на всіх них. МСК1 – зміна на один сигнал розпізнавання хвиль у воротах. МSK2 – коммерційний плагин. , – проектування панелі масок. ММК4 – розгортання трубки. ММСК5 – написання змін ніколи не було складним завданням. MМСК6 – тримати архітектуру стабільною, роблячи її таким, яким вона є. МПСК7 – всюди, де вона приземляється. МУСК8 – сеанс за сеансом. МНСК9 – був. МАСК10

---


## Міф про єдиному суперагенту

Індустрія продовжує шукати ту ж саму відповідь. : дасть агенту більше контексту . більші вікна МSK2 Мільйон M SK3 про promptи токенів . RAG, щоб завантажити правильні файли MSC5 MCP, щоб дістатися живих систем MST6 Меморіальні шари, що підсумовують минулі сеанси і відтворюють їх наново МST7

**Все це покращує пошукові дані.**

Перейняття знаходить важливий файл. Розуміння знає, чому файл таким є, як він є , який інваріант він захищає МSK2 і що відрізає два репозитори від нього, якщо ви його зміните M SK3 Більший вікно дозволяє агенту читати більше в один раз . Він не дозволяє агентові запам 'ятати, що він закінчив минулого вівторка

Те, що ре- відтворення - це реальна вартість . Дивіться, як холодний агент запускається на StyloM SK2Bot :

1. Він підштовхується для розпізнавання трубопроводу.
2. Він читає оркестратора.
3. Виявляється, що вирок має три осі і складається з:, не зберігається
4. Ви бачите, що коммерційний плагин замінює шви FOSS через ін 'єкцію залежності.

Через тридцять хвилин він знає достатньо, щоб зробити одну зміну лінії- МSK1 Потім сеанс закінчується і все випаровуєтьсяМSK2 Наступна сеанс платить ті самі тридцати хвилинM SK3 Поширюється контекстове вікно робить кожен повторений відкритий дешевшимMSC4 Він не робить повторення непотрібним.

Розумніший пошук - це неправильний розв 'язок.

---


## Як люди насправді будують програмне забезпечення

Жоден інженер не розуміє всієї системи компанії. МСК0 Ніхто у реальному компанії не має платежів. МSK1 auth , канал даних, МSK3 і фронтального модуля в голові, у повній роздільності відразу ж.

Команди розкладають систему на домен і дають на кожного експерта МСК0 Osoба, яка займається платежами, володіє платежами МSK1 Вони знають історію , різкі краєвиди, рішення з двох років тому, яке виглядає неправильним, аж поки ви не пам 'ятаєте, яку міграцію він захищав МСК4

**Властність - це більше, ніж енциклопедичне знання** спеціалісту не потрібно знати все. Їм потрібно добре знати свою сферу діяльностіM SK1 і знати, кого питати про решту.

Що робить зруйнована система послідовною - це зв 'язок. Osoba, яка efectuує платежи, розмовляє з аут-персоною перед тим, як змінити формат אסימוניםM SK1 Запрос про потягу перетинає кордон і власник того кордону важить в. Архітектура залишається послідовною не тому, що одна людина має все це в руках , але тому, щоб люди, які мають його частини, спілкувалися між собою МSK4

Це працює. Це те, як працює кожна справжня команда . Програмісти працюють по-іншому МSK2 так, як жодна інженерна команда ніколи б не працювала

---


## Моя проблема була іншою

Дифференція була б неприємною в одній невеликій програмі. В усіх системах, які я маю, вона є коррозійною , тому що вони не є однією системою МSK2 Вони є окремими продуктами МСК3 у різних reposіtoriaх MСК4 які годують один одного собаками через пакети, які також є моїми М СК5

Субстрат `Mostlylucid.Ephemeral`, мій власний NuGet пакет : примітивні інтерфейси і потоки даних, детектор збудований на МSK2 Stylo МSK3Bot додасть до нього більше моїх пакетів `StyloExtract` для макету-порівняння відбитків пальцівM SK1 `StyloFlow` для сигналів-справляемых операційних потоків та ліцензуванняM SK1 `StyloIssues` для зворотнього зв 'язку UX на сайті маркетингу [`Mostlylucid.Avalonia.UITesting`](https://github.com/scottgal/lucidRESUME) генерує свої скриншоти. Я створюю продукти за допомогою інструментаM SK1 і створююсь з інструменту за допомогою продуктів.

Це справжній корм для собак, і саме він робить дрейф небезпечним. `BackgroundService` або `ConcurrentDictionary` не зруйнує одну програму. це руйнує пакет кожного з цих продуктів, що стоїть наM SK1 дрейфові кораблі в одному складі і поверхні у продукті два склади на відстані , де агент, який написав це, ніколи не виглядає.

**Один дрейфований примітивний. Кожен продукт, збудований на ньому**

Програмування ніколи не було важким завданням на цій шкалі. МСК0. Утримка архітектури проти постійної регресії була

---


## Властство, Не контекст

Контекст - неправильна вісь

> Проблема не в тому, як дати одному агенту більше контексту

Загрузити знання в вікно і воно зникне разом з вікном. Дати його спеціалісту, і він рухається впередM SK1 Спеціаліст розпізнавання не перезагрузує архітектуру розпізнання на кожній сеансіМSK2 Він вже має його, і він починається з того, що він створив минулого разуMSC4 тому що минулого разу він записав це як сам себе, а не як резюме для когось іншого

Потім сеанс платить, щоб розширити систему, а не переробити її. Це новий найм кожного ранку, на відміну від команди, де люди зберігають свої робочі місця.

---


## Модель StyloAgent

StyloAgent перетворює цю структуру на поточні процеси

- **Перегляньмо** : архітектор та координатор`overview-`). Він зберігає три живі документи (specM SK2 архітектура МSK3 список учасників МSK4 вирішує спори щодо простору ХМSK5 і маршрути входної роботи ГМSK6 Він не займається самою роботою з доменами ГМSK7
- **спеціалісти** : власники домен `foss-` володіє детектором. `deploy-` володіє будівлею `mae-` володіє членством та електронною торгівлею. `dash-` і `edit-` володіти розкладовою, читати та писати шляхи. `prod-` володіє мережею безпеки. `test-` володіє пакетом. Кожен володіє файламиM SK1 не обов 'язками.
- **Автобус із повідомленням** : файл git-забезпеченийM SK2 МSK3drop канал з `inbox`, `outbox`, `archive`, і `saved-context`. Сообщення несуть пріоритет і поверхню в агенті
- **Рехидрація та дехидрування** : кожен агент зберігає живий контекстні документ . Він дехидрує, коли зупиняється, і рехидрює, коли прокидається МSK2
- **Рабочі місця** : один робочий простір для репо з репо-rekторами FOSS і коммерції . архітектура існує над обома
- **Спілкування** : одне жорстке правило . Залишайся в своєму ряду МSK2 Натисніть блокатор у файлі, який не належить вам `overview-` замість того, щоб зіштовхуватись з власником

![Корпус літака StyloAgent , агенти ":", і сигналний автобус вниз ліворуч, МSK1 , приземлювані терминали агентів в центрі , , та шкала тайм-лайн , "МSK3" Dokumentи , / Справа - панель маршрутизаторів, .](/articleimages/styloagent-cockpit.png)

### Що це насправді

StyloAgent - це робоча кабина, збудована в M SK1NET 10 і Avalonia. Кожен спеціаліст - справжній `claude` процес, що працює над PTY, з своїм власним терминалом в кабіні пілота, власним гітом робочого дереваM SK2 і власним контекстним документом . кабина пілотує MCP сервером, який викликають агенти, та гаком, який повідомляє про їхній станMSC4 Сам продукт побудований чотирма власникамиМSK5, а архітектура подвоєна як мапа власників Mスク6

```mermaid
flowchart TD
    operator([Human operator])
    subgraph SA["Styloagent cockpit"]
        cockpit[Cockpit Shell<br/>Avalonia + Dock]
        bus[Coordination and Fleet<br/>Channel, Mcp, Diagrams]
        session[Session and Terminal Runtime<br/>Sessions, Hooks, PTY]
        repo[Git and Document Library<br/>worktrees, Lucene search]
    end
    agents[Agent fleet<br/>claude specialists]
    fs[(Filesystem and Git<br/>durable trace + worktrees)]

    operator --> cockpit
    cockpit --> bus
    cockpit --> session
    cockpit --> repo
    bus --> session
    session -->|runs claude over a PTY| agents
    agents -->|MCP verbs| bus
    bus -->|reads and writes channel files| fs
    session -->|writes context doc on dehydrate| fs
    agents -->|commit in own worktree| fs

    style SA fill:none,stroke:#6b7280,stroke-width:1px
    style cockpit fill:none,stroke:#7c3aed,stroke-width:2px
    style bus fill:none,stroke:#d97706,stroke-width:2px
    style session fill:none,stroke:#2563eb,stroke-width:2px
    style repo fill:none,stroke:#16a34a,stroke-width:2px
    style agents fill:none,stroke:#6b7280,stroke-width:2px
    style fs fill:none,stroke:#16a34a,stroke-width:3px
    style operator fill:none,stroke:#6b7280,stroke-width:2px
```

**MCP - це ядро** В кабіні є MCP сервер, і все, що робить спеціаліст для координації - це виклик інструменту MCP проти нього, не конвенція чи файл, який він сподівається прочитати інший агентM SK2 Набір дієслів є шаром координації MSC3

- `send_message` / `check_inbox` : роботу по маршруту і тягнуть його МSK1 пріоритет МSK2 розв 'язане .
- `spawn_agent` МСК0 , власник поділив на себе нового спеціаліста
- `claim` / `heartbeat` / `release` : серіалізувати доступ до спільного середовища (host SSH МSK2 мета розгортання МSK3 так, щоб два агенти не зіштовхувалися
- `dehydrate_agent` / `rehydrate_agent` : паркуйте специалиста і відбудовуйте його МSK1
- `wrap_up` : тест , об 'єднати МSK2 і очистити закінчену гілку
- `report_issue`, `architecture_impact`, `agent_color`, `list_fleet` : заповнювати блокер МSK1 перед тим, як він приземлиться, подивитися на зміни дизайну

Файлі- канал крапки під ними є міцним слідом того, що було сказано , не механізму MSC2 Механізм - це MCP сервер, який передає до живого агента на своєму перехідному кордоні МSK3 Git робочі дерева дають кожному експерту ізольований дерево, щоб його задіяти в ,, але層а MCP - це те, що робить їх флотом, а не набором процесів, які можуть ділитися папкою

![Часовий графік активності: МСК0 - найновіший, МСК1 - перший сигнал від кожного агента, МSK2 - операцій на інструментах з файлом, який він торкався, , - життєвий цикл і стан уваги, МСК4 - повідомлення, які вони надсилають через автобус, MСК5](/articleimages/styloagent-timeline.png)

### Як автобус доставляє

`send_message` записує міцний файл відмітки в канал і також додає в-процесM SK1 A `ChannelDeliveryCoordinator` стежить за новими файлами, зберігає побачений набір таким чином, що кожна інформація надсилається точно один раз , переносить її до живих адресатів , і передає реальний поштовх на службу доставки МSK3

Як сильно повідомлення перерізається - це не безкоштовний `DeliveryMode` enum, перервний драбиль M SK1

```csharp
public enum DeliveryMode
{
    Interrupt,       // send ESC to break the current turn, inject immediately
    NextPrompt,      // queue; inject when the agent next reaches idle
    Poll,            // not pushed; the agent checks on its own cadence
    Convenient,      // surfaced in the Bus HUD only
    Informational,   // never actioned or injected; shown as info
}
```

Доставка є безпосередньою-задіяною і приM SK1нижчійМSK2одного разу МSK3, а визнання - спостережена сторона-випадокMST5 не обіцянкаM ST6 Невідкладне повідомлення розбивається на теперішній поворотM st7 Нормальне чекає на наступний безповоротний проміжок так, що воно не зруйнує агента всерединіMst8думкиMSt9

### Як право власності регулюється

Залишатись на своєму шляху - це не система честі. Архітектура має машинуM SK1 читабельну проекцію, `ownership.yaml`, і `OwnershipMap` вирішує будь-який репо-реляційний шлях до префикса агента, який його маєM SK1 найбільше -конкретне переможне коло :

```csharp
// most-specific glob wins, so a session- carve-out inside cockpit-'s
// src/Styloagent.App/** beats the broad glob
public string? OwnerOf(string? path) { /* ... */ }
```

В 'язка PreToolUse споживає цей розладник і зупиняє агента на написанні файлу, який належить іншому агенту, з розумними винятками : `overview-` може перетинати кордони, тому що він вирішує.

### Жива ланцюжка Docs

`overview-` не вільний. його системний про prompt поміщає його на релі M SK1 робочий верхні поверхи - вниз в три шари МSK3 і не перескочить вперед.

```mermaid
flowchart LR
    spec["spec.md<br/>what the system is"]
    shape["architecture.md<br/>C4 shape, owner-coloured"]
    fleet["proposed-agents.yaml<br/>who owns each component"]
    spec --> shape --> fleet
    fleet -.->|specialists report on the bus| spec

    style spec fill:none,stroke:#2563eb,stroke-width:2px
    style shape fill:none,stroke:#d97706,stroke-width:2px
    style fleet fill:none,stroke:#16a34a,stroke-width:2px
```

Установіть спочатку: : що це за система? , домовились з людиною перш ніж будь-що інше. МSK2 Потім сформуйте МSK3 один C \ 4 схему компонентів, в якій кожна компонента офарбована її намірним власником. \ МSK5 Потім флот. | : | один запропонований агент на верхню частину. `overview-` згортає свої знахідки назад у спеціалізацію, переМSK1 відтворює форму МSK2 і пристосовує флот . Ці три документи залишаються живою проекцією дизайну замість того, щоб зруйнувати його в фантастику M SK4

---


## спеціалісти замість завдань

Більшість агентних інструментів створюють працівників. Описати задачу , працівник повертається догори дриґом МSK2 робить це? МSK3 зникає? . Наступна задача отримує нового працівника, який не пам 'ятає останньої.

StyloAgent створює експертів. `foss-` не робітник, який колись торкався детектора. МСК0. Це детектор. МSK1 - власник, МСК2 - власник на будь-якій сеансі. ММК3. Ця різниця не є косметичною. М СК4. Саме тому флот потрапив на помилку.

![Список флоту: кожен спеціаліст, колірM SK1 кодований префиксом, власник підсистемиMSC3 з запропонованими агентами, які людина може розмножити одним кліком](/articleimages/styloagent-roster.png)

Знані Botи з 'являлися на панелі приладів, які відnotували дуже високий ризик. `foss-` не зробила цього, тому що `foss-` знав, що проекція вже існує і знав де подивитися під нею `UpdateClaimVerificationAsync`, мав **нуль викликачів в produkcji**. Написаний і ніколи не підключений до дроту . Кожний відбиток пальців залишався неверіфікованим назавжди МSK2 так що кожен відомій робот вважав, що це дуже високий ризик

Це діагноз походить від сукупної власності `foss-` вже закартографував оркестратора, композитора вердиктуM SK1 та решётку запитів в попередніх сеансах.バグ був невидимимий для пошуку і очевидний для власника .

StyloAgent доводить це на собі. Набір збудований його власним флотом M SK1 `cockpit-` володіє снарядом Avalonia, `bus-` власник координації та доставки, `session-` володіє ПТИ та станком для розмноження, `repo-` owns git and the document library. Permanent owners , not one-shot tasksM SK3 важкі уроки, які вони вчаться, записуються у їхню ситуацію, так що вони ніколи їх не заново не вивчають `session-`' власний контекстний документ :

```
## HARD-WON DISCIPLINE (enforced this session, confirmed by overview-)
- Commit by explicit pathspec, atomically, in ONE command. The shared tree has ONE git
  index. A bare `git commit` after `git add` lets ANOTHER agent's concurrent commit sweep
  your staged files (it happened: my clipboard work landed mis-attributed in cockpit-'s 5e54207).
```

Працівник на основі завдання - МСК0 - вдаряється на це зіткнення, а наступний - на нього знову. МСК2 - тому що нічого не веде до уроку. МSK3 `session-` hit it once , understood why, and encoded the fix as part of who it is

---


## Регідрація замість відновлення

Холодна сеанса починається з ритуалу : пошук кодової бази МSK1 підсумок того, що ви знайдете МSK2 реконструкція архітектури , спроба запам 'ятати, що трапилося минулого разу

Регідрація позбавляє ритуалу

Штат живе в одному файлі на одного спеціаліста. Це справжній зачуваний контекст для `foss-`, злегка вирізьблена

```
# foss- saved context

## Repo state
- Branch: main. My fix commit: 9b849629 (NOT pushed) - the known-bots-VeryHigh fix.

## DONE this session
- known-bots-VeryHigh fix (9b849629) - overview APPROVED, shipped:
  ROOT: UpdateClaimVerificationAsync had ZERO prod callers (never wired). Every fp
  stayed 'unverified' -> known bots read VeryHigh. Redeploying #115 could never fix it.

## NEXT (open, in priority order)
1. overview follow-up: add a REAL end-to-end test through the REAL store, not a double.
2. RISK display Face 1 (still OPEN): risk band missing from dashboard LIST rows.

## Guardrails
- ANY prod fingerprint-DB op = staging-first + express human go.
- CF-IP caveat: if the gateway verifies the bot against CF egress not the real client IP,
  the latch never sets -> still VeryHigh.
```

Свежа `foss-` читає це і є негайно поточним. Він знає останнє зобов 'язанняМSK1 чому воно існуєM SK2 що ще залишається відкритим, і які завіси обмежують наступний крокMSC4 Жодного повторюваного відкриттяMSL5 тому що фахівець написав це для свого майбутнього я МSK6 Одне правило є жорстким : воно ніколи не містить таємної цінностіMСК8 лише наказує, де живе авторитетна людинаМСК9

Це машина реального стану. МСК0, не метафора. МSK1 Сессія агентів рухається через чотири стани. `Unspawned`, `Live`, `Dehydrated`, `Exited`.

```mermaid
flowchart LR
    Unspawned[Unspawned] -->|spawn: PTY + launch prompt| Live[Live]
    Live -->|write context doc, stop PTY| Dehydrated[Dehydrated]
    Dehydrated -->|rehydrate: restore from context| Live
    Live -->|wrap up: test, merge, cleanup| Exited[Exited]

    style Unspawned fill:none,stroke:#6b7280,stroke-width:2px
    style Live fill:none,stroke:#16a34a,stroke-width:2px
    style Dehydrated fill:none,stroke:#d97706,stroke-width:2px
    style Exited fill:none,stroke:#6b7280,stroke-width:2px
```

Дехидрація пише контекстний документ і випускає PTY, так, що запаркований спеціаліст нічого не витрачає, поки він спить . Рехидрування відновлює його і він знову живий МSK2 струм з першого повороту МСК3 Заповнює чистий вихід М СК4 кабина керує проектом M СК5 тести MСК6 об 'єднує робоче дерево на головне М ็ СК7 і видаляє його M ็ SК8 або при негаразді зберігає робоче drzewо та встановлює проблему для сортування М S К9 Нічого з цього не залежить від того, чи контекстне вікно залишиться теплом М М С К 10 Пам' ять живе на дискі M S К 11 і машина штату читає його назад М В С К 12

---


## Усвідомлення існуючих систем

Посадьте флот на систему, яку він ніколи не бачив, і подивіться, що станетьсяM SK1 Ось так StyloAgent розпочав роботу над Stylo.Bot MSC3 двигуномMST4 ядро логіки жили в братському комп 'ютерному репозиториі FOSSMS5 і ніхто з флоту цього ще не розумівMSL6

`overview-` пішов досліджувати. запускав читанийM SK1 тільки дослідження проходить через ядро FOSS і відслідковував справжній канал : масштабований оркестратор, який володіє воднім каналом для сигналу запитуMSC3 , живить одинтонний детектор, що керує хвилямиМSK5 запорядковує атоми детектора МSK6 виробляє документальний записMST7 тоді підпис та ризикова постановка з трьома осями, отриманими в часі читанняМST8

Тоді він написав, що це розуміння `architecture.md` : код МSK1 стовбурова діаграма компонентів МSK2, де кожен компонент забарвлений його власником . Диаграма подвоюється як мапа власника **Сір означає, що поки що немає власника**, і сірий - це сигнал :, який показував, що кілька комерційних послуг не мали експерта МSK2 і що комерційний зворотній зв 'язок був у руках `overview-` одинокий.

Це частина репо-сумові інструменти не вистачаютьM SK1 Виход не є одним -записом, який застаріває, коли він написаний `overview-` згортає свої знахідки до опису. МСК0, потім архітектура. МSK1, потім список. М СК2, з 'являється розуміння, МСК3, з' являється власникство. ,, і обидві постійно роблять все точніше замість того, щоб зруйнуватися. МКС5. Карта жива, тому що власники території продовжують її виправляти

---


## Працюючи в багатьох reposіtoriaх

Repo-центричний інструментарій сприймає репозиторію як єдине у світі . StyloAgent сприймає його як деталі застосування **Специалісти мають власні домени, а не папки**, і домен перетинає репозицію

Два repos-репозитори Stylo.Bot - як один робочий простір `foss-` має розпізнавання, де б він не жити - МСК0 - і він живе в обох - МSK1 - з 'єднаних швами - : - `IFingerprintStore`, комерційні шари обмінюються в програмуванні Postgres через DI . Знані МSK2 Bots fix їздили на цю шину \ . Це був FOSS комп 'ютер \ МSK4 але кораблі розпізнавання всередині комерційного зображення входу в порт \, так `deploy-` перебудував ворота, постановка підтвердила те, що робот зараз читає низько , і він залишився правильним у порівнянні з комерційним магазином Postgres, тому що цей магазин сидить за тим самим сплетінням тесту FOSS, проведеного в SQLite МSK2 Одна зміна M SK3 два репозитори , три експерти MSC5 об 'єднані тими, хто володіє сплетенням. `Mostlylucid.Ephemeral` і ви змінили контракт, кожен продукт залежить від

Ось частина, яка мені найбільше подобається. Я тримаю чотири репозиції в польоті одночасно , кожен з спеціалістом, який має лише свій власний контекст МSK2 Попросіть одного агента тримати чотири репо водночас і він довільно змінює свій контекст M SK3 деталі Auth поглинають розвідувальні аргументи , обмеження використання затьмарують правила тривалості MSC5 і кожна відповідь стає трохи гіршою MSL6 окремі спеціалісти відокремлюють контексти М SK7 так що чотири активні репо - це чотири зосереджених агентів\ , не один заплутаний\ МSK9 Ніякий код LLM, який я використовував, не робить цього самостійно\ M SK10

---


## Архітектура ніколи не спить

Тиша перевага з 'являється, коли ніхто не кодує. У звичайному робочому потокіM SK1 момент закривання сеансу розумієш, що воно зникло : воно живе у контекстному вікні і вікно закрито .

Тут він залишиться на дискі. `overview-`' живі документи. Ці файли є довготривалою формоюMSC2 і вони виживають на кожному перезапускіM SK3 В пам 'яті немає стану зберігання демона, який крах міг би стирати

Це означає, що архітектура переживає будь-яку людину `overview-` повертається після compaction event, він читає контрольний пункт, який починається з теперішнього стану та складних уроків останнього сеансуM SK1 і орієнтується на один чтений. Коли `foss-` повертається, він знає, що `9b849629` і є ще одна сторона питання ризику. **Довгий-тривалість пам 'яті - це не функція, яка закріплена на стороніM SK1 Це сутність**, тому що акт зупинки роботи - це акт запису того, що робота була

---


## Кожне рішення є надійним

Посиловий автобус робить більше, ніж маршрутні роботи. Оскільки спеціалісти координують його, і кожна інформація приземляється в каналіM SK2 причину кожного рішення зафіксують, як це трапляєтьсяМSK3 Не записуються після цього в doc нікому не оновлюються МSK4 Зафіксовані в моментіМСК5 в словах, які насправді використовували спеціалісті МСК6

> Ця розмова - це документація.

![Увага-перший Сигналовий АвтобусМSK1 закріплений M SK2 Потрібна увага МSK3 група непорозмовлених ниток , потім Недавній M SK5 потім Арівіум , колір кожного рядка MSC7 кодований участницею зі статусним гліфом](/articleimages/styloagent-bus.png)

Ось справжня послідовність цієї флотилии: МСК0 , витягнутий прямо з автобусу, ".". Вона починається з `overview-` направляючи проблему ризику до `foss-`, позначена як невідкладна

```
From: overview-   Priority: urgent
# PRIORITY: the RISK display+correctness on the dashboard (human: this is the WORST)
Known bots showing VeryHigh ... known-good bots should latch friendly/Verified.
Report root cause + fix.
```

`foss-` і повернувся з причиною. : перевірений МSK1 зав 'язка не підключена `overview-` підтвердили і додали дві умови, обидві інженерні рішення, варті збереження M SK1

```
From: overview-   Priority: normal
# APPROVED - ship it (TDD). No DB op = perfect; add a REAL test of the wired flow
1. ADD A REAL TEST that exercises the ACTUAL wired flow end-to-end ... NOT one that
   manually calls UpdateClaimVerificationAsync. That's the exact false-confidence gap
   that hid this.
2. The CF / real-client-IP caveat is real ... if the gateway sees CF egress, the latch
   never fires.
```

Обидві ноти свідчать про існування. Перше записує, що попередній тест підробив потік і приховував błądM SK1 так що цього разу тест повинен керувати реальним шляхом. Друге записює перекреслений - граничний ризик і передає його `deploy-`. `foss-` надсилання `9b849629`, потім замінив поверхневий тест на справжній кінець - до МSK2 кінців один в `883a1277`, і `overview-` закрити петлю :

```
From: overview-   Priority: low
# 883a1277 real E2E test = exactly right; told deploy- to build it.
... drives the actual orchestrator + real store + real projection, no manual call ...
that fully closes the false-confidence gap that hid this.
```

Через шість місяців, коли хтось запитуватиме, чому ланцюг схвалення підключений туди, де він є, ми зможемо відповісти: МSK1 . Відповідь не втрачена. МSK2 , а на автобусі ",", відповідно до порядку . МSK4 , з прикріпленими SHA комп 'ютерами.

---


## Чому це зменшило мою працю

Це не змусило мене писати код швидше. Моделі були вже швидкимиM SK1 Це скоротило когнітивний навантаження , що було справжнім витратом.

**Я перестав бути автобусом інтеграції.** До StyloAgent я був єдиним компонентом, який розумів, як з 'єднуються двигун розпізнавання ",", ворота МSK2 , магазин Postgres , труба з розміщанням, МSK3 і deploy pipeline . МSK4 , так що кожен перехрест , МSK5 , відрізаний зміною, проходить через мою голову. МSK6 Я тримав обмеження , . . Я пам' ятав шви .

Тепер реконструкція відбувається один раз і записується :

| Перед МSK1 Після МSK2
|--------|-------|
| Знову МSK1 поясни один МSK2 DB шв 'є кожен час | Зашифрований як інваріант, який цінують експерти
| Контекст МSK1 перемикаємось через чотири домени, щоб зробити одну зміну МSK2 Рухаємось зміною ; кожен спеціаліст має власний контекст
| Запам 'ятайте, що було відправлено в минулому сеансі

Все, що залишається - це частина, яку варто зробити. : вирішити, що збудувати МSK1 і дозволити власникам збудовувати його .

---


## Куди це може потрапити

Це ідеї. МСК0 - не обіцянки. МSK1 - робочий процес працює сьогодні для одного інженера і однієї флотилии. . - напрямки, які він показує, більш гіпотетичні.

- **Кросс-спеціанти машинM SK1** Флота могла б об 'єднати машини, з спеціалістом, який керує всюди, де є її доменаM SK1 система керує.
- **Командна співпраця.** Декілька інженерів об 'єднують один флот , кожен маршрутізує роботу до одного і того ж стійкого експерта, таким чином архітектурна пам' ять поширюється, а не застрягає в одній людині
- **Віддалена експертиза.** спеціаліст, який володіє domeną, до якої можуть дістатися люди, які її не мають
- **Спільні пакети спеціалістів.** Спеціальний спеціаліст з розпізнавання або спеціаліст Кубернеті, який передавається іншій команді як starting point, а не збудований з нічого.
- **Організація-всесвітня архітектурна пам 'ятьM SK1** Отримане розуміння, яке мають експерти, які витримують людей, які покидають та приєднуються до них, так що знання не виходять з дверей, коли в них є інженер, який їх має

Це останнє далеко МСК0 , і я не кажу про це ".".

---


## Дивний пристрій для використання, і ніяких вкладів

Мій приклад використання дивний. Я є однією людиною, яка керує технічною групою агентів через конstelацію моїх власних продуктів та пакетів , так що я можу тримати чотири місця в польоті без того, щоб моя голова була вузьким місцем для зануренняM SK2 Більшість людей не мають цієї проблеми . Я не викидаю це як робочий процес, який кожен повинен прийняти MSC4 Це вирішило мою проблему M SK5

З тієї ж причини, Я не приймаю уривокM SK1 Зав 'язую його, Створюйте його на власний\, Візьміть десь, куди я б ніколи не подумав.MSC4 Релізи тут, якщо ви хочете почати з конструювання, а не з джерела.

[![Останній випуск](https://img.shields.io/github/v/release/scottgal/styloagent)](https://github.com/scottgal/styloagent/releases)

---


## Завершення

Справа не в кодуванні агента з більшою пам 'яттю. МСК0. Це була зміна в формі. МSK1. З одного агента, який намагається знати все, МSK2. До багатьох спеціалістів, кожен володіє чимось і спілкується між собою. .. Властство постійне. ММК4. Розуміння живе на автобусі. ММСК5. А архітектура більше не живе лише в моїй голові.

Це весь трюк. МСК0 - не розумніша модель, МСК1 - команда, МSK2 - експерти, які зберігають свої домени, МКС3 - архітектор, який зберігає їх послідовність, МСС4 - запис кожного рішення, яке триває довше сеансу, який було зроблено в МСК5 - він зберігає архітектуру, так що я не мушу

---


## Довідник : Практика робочого процесу

Ось відомі "-", Bots risk fix і МSK1 від початку до кінця .

1. **Обзор отримує запит.** Я сказав флоту, що найгіршим на панелі керування був дисплей ризику. `overview-` сформулювати його як одне дослідження з двома обличчями : ризик не показаний , і ризик хибним, коли показаний
2. **Уявлення про маршрути до спеціаліста.** Подібне повідомлення до `foss-`, власник детектора , з гальдом, що будь-яке відбитки пальців для виробництва МSK2 DB ре МSK3 індикатор потребує побудови спочатку і експлуатного людського ходу
3. **Спеціальний експерт досліджує** `foss-` відслідковував його до ланцюга і знайшов реальну причину : `UpdateClaimVerificationAsync` з нульовим числом викликачів в виробництві. Також він помітив, що теперішній тест підробив дзвінокM SK1 тому прогалина залишилася прихованою.
4. **Розмова відбувається.** `overview-` підтвердили згідно з цим правилом і додали дві умови на автобусі: : додайте реальний кінець МSK1 до МSK2 тест кінця , і підтвердіть справжній CF СМК4kliënт МСК5 індикатор IP з `deploy-`.
5. **Кодовий агент реалізує.** `foss-` підключили канат до orchestrator seam. `9b849629`. Ніяких операцій на заводі не потрібно МSK1 це самотужки МSK2 лікується, як Bots re - краwl
6. **Тести запускаються.** Перший тест довів, що магазин називався ".". `foss-` а потім додали справжній кінець- доM SK1 тест, який керує справжнім оркестратором , справжнім магазином МSK3 і справжнім проектуванням . Заверніть `883a1277`.
7. **Обновлення документації.** Ніхто окремо. Корінна причинаМSK1 дві умовиM SK2 і SHA-комміт всі на автобусі в порядку.
8. **Специальна дехидрація.** `foss-` пише свій зачуваний контекст : `9b849629` Wysyłка, `883a1277` приземлилася, одна сторона все ще відкритаM SK1 охоронні ланцюги рухалися вперед.
9. **Знання зберігаються.** Знову побудували ворота, які власноруч `deploy-`, перевірено на стежці МSK1 і стало піддатним для охороненого МSK2 розщеплення - згинального розрізу виробництва ХМSK4 Коли наступне питання про стовпування приходить МСК5 він приземляється `foss-`,, яка вже володіє відповіддю

Весь цикл ,, коли він рухався автобусом :

```mermaid
sequenceDiagram
    participant H as Human
    participant O as overview-
    participant F as foss-
    participant D as deploy-
    H->>O: the risk display is the WORST
    O->>F: PRIORITY (urgent), root-cause the risk verdict
    F->>F: trace projection to the claim latch
    F->>O: root cause, UpdateClaimVerificationAsync never wired
    O->>F: APPROVED, ship it plus a REAL end-to-end test
    F->>F: commit 9b849629, then 883a1277 (real e2e test)
    O->>D: rebuild the gateway from 883a1277
    D->>D: staging, known bot now reads LOW not VeryHigh
    D->>O: verified green on staging, ready for a guarded prod cut
```

Ніхто не написав цю послідовність після того, як це сталося.

---


## Подібні статті

- [Чому LLMs провалюються як датчики](https://www.mostlylucid.net/blog/llms-fail-as-sensors) - category error of using a probabilistic synthesizer as a boundary device
- [MCP є транспортом, Не є архітектурою](https://www.mostlylucid.net/blog/mcp-is-a-transport-not-an-architecture) - чому архітектура живе над протоколом , не всередині цього M SK2
- [Stylo.Bot: Як Bots стали розумнішими M SK2Part МSK3](https://www.mostlylucid.net/blog/botdetection-part2-signature-pipeline-and-stylobot-architecture) - детектор, який створює та запускає ця флотилия
- [Архітектура Sidecar](https://www.mostlylucid.net/blog/sidecar-architecture) - як двигун Stylo .Bot підключається до будь-якого стека