Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

Uvažování je nezávislé na providerovi, poradci jsou volitelní a revize je zaznamenaný fakt, ne tvrzení

Uvažování je nezávislé na providerovi, poradci jsou volitelní a revize je zaznamenaný fakt, ne tvrzení

majordomus://adr/adr-0098navrženo reasoningadvisorsprovidersrelace

odkazuje na

  • put_in_force share/advisors.yaml (soubor)
  • put_in_force adr-0024
  • put_in_force adr-0032
  • put_in_force adr-0049
  • put_in_force adr-0067
  • put_in_force docs/REASONING.md (dokument)

odkazuje na něj

98. Uvažování je nezávislé na poskytovateli, poradci jsou volitelní a review je zaznamenaný fakt, ne tvrzení

Kontext

Vlastníkův pracovní protokol pro závažnou technickou nejistotu zněl „prozkoumat lokálně, zeptat se ChatGPT, pak Gemini nebo Codexu, syntetizovat, pokračovat“. Žil v soukromých poznámkách jednoho pracovníka a v pomocném skriptu v scratchpadu relace: nic v repozitáři o něm nevědělo, nic nezaznamenávalo, co poradce řekl, a nic nedokázalo odlišit proběhlou revizi od tvrzené. Byl také zapsán jako posloupnost názvů dodavatelů. To je tvar, který se rozbije, když CLI není nainstalováno, chybí klíč nebo neběží démon: každý krok jmenuje něco, co může chybět.

Odpověď omezují čtyři platná rozhodnutí. ADR 0024 vyčerpalo slovo poskytovatel na klientské nástroje, které v tomto repozitáři pracují (share/providers.yaml). ADR 0049 učinilo katalog modelů deklarativním a jeho strany nazvalo vendory. ADR 0032 drží HTTP klienty, TLS a async runtime mimo majordomus-cli; síťové transporty žijí ve vrstvě Node pod scripts/lib/. ADR 0067 umožnilo propojeným runtime meshe žádat o revize a odpovídat na ně.

O návrhu byli před sestavením konzultováni dva nezávislí recenzenti (záznamy jsou v relaci, která jej sestavila). Jeden odpověděl obecně; druhý našel rozhodující vadu v prvním konceptu: připustit konzultaci jen tehdy, byl-li její poradce dostupný v době záznamu, činí nepřípustnou odpověď, která dorazí poté, co jiné selhání otevřelo okruh poradce. Připuštění nyní čte snímek dostupnosti plánu, který požadavek rozeslal.

Rozhodnutí

Uvažování není poskytovatel. Čistá politika (crate::reasoning::policy) rozhoduje, zda vyslovená nejistota zaslouží nezávislou revizi, kolik režim uvažování dovoluje a které schopnosti revize potřebuje. Nejmenuje žádného poradce. Test a reasoning.check na každém doctor drží, že žádný zdrojový soubor nezávislý na poskytovateli žádného nejmenuje.

Poradci se deklarují jednou, odkazem. share/advisors.yaml deklaruje poradní role: transport (api, cli, local_runtime, peer), adaptér, který jím mluví, spustitelný soubor, jehož přítomnost říká, že je nainstalován, a poradní schopnosti. Poskytovatel, dodavatel a model jsou odkazy do dvou existujících tabulek a odkaz, který nevede nikam, je nález. Pořadí deklarace je pořadí preferencí; „nejdřív ChatGPT“ jsou data. Propojené mesh runtimy s funkcí reviews se za běhu stávají poradci ze stejné deklarace.

Nepřítomnost je stav. Dostupnost se odvozuje z přítomnosti (spustitelný soubor v PATH, proměnná s přihlašovacími údaji nastavená — její hodnotu crate nikdy nečte), z režimu (offline připouští jen poradce na tomto stroji, ci žádného), z explicitního seznamu zákazů a ze zaznamenaných výsledků dřívějších konzultací: dvě přechodná selhání otevřou okruh poradce na dobu ochlazení, limit četnosti na dobu vlastní, selhání autentizace na hodinu a poradce se poté vrátí jako recovering. Žádný poradce není běžným plánem: politika pak vrátí strukturovanou lokální revizi, kterou místo toho provede relace, a reasoning se hlásí jako funkční. Nic na vstupní cestě, v doctor, v CI ani při bootu nekontaktuje model.

Review je záznam, přijatý podle pravidel. Jeden zapisovatel, reasoning.record, ukládá typované záznamy pod .ai/local/state/reasoning/<task>/ (stav checkoutu, ADR 0005): posouzení, plán, konzultace, nesouhlas, řešení, závěr, validace, pokus. Podstatné posouzení musí nést důkazy. Zapisovatel plán vypočítá z dostupnosti daného okamžiku a nikdy ho nepřijme. Konzultace musí jmenovat poradce, kterého její plán vybral. Dokončená konzultace nese normalizovaný závěr a selhaná žádný. Nesouhlas se řeší řešením, které cituje důkazy; závěr je odmítnut, dokud je nevyřešený nesouhlas k jeho posouzení, musí zvážit každou odpověď, kterou jeho posouzení obdrželo, a jeho počet review se vypočítá. Žádné pole nedovolí volajícímu tvrdit, že review proběhlo, a žádná cesta nepřemění počet souhlasících poradců v rozhodnutí.

Transport je mimo crate. scripts/lib/advisors/ drží jeden adaptér na transport za jedním kontraktem (typovaná selhání: timeout, rate limit, autentizace, malformed, prázdný, nedostupný, zrušený), driver, který se konzultuje souběžně a vrací výsledky v pořadí plánu, a scripts/advisor-consult, které zaznamená plán, konzultuje a zaznamená každý výsledek přes crate. Sada kontraktu spouští každý adaptér proti fakes.

Relace jej nese. reasoning.status odvozuje stav, časovou osu a zprávu jen ze záznamů. majordomus context tu zprávu ukazuje, handover --derive ji nese a pozdější posouzení téhož subjektu znovu použije platný závěr místo nového dotazu, pokud nedeklaruje nové důkazy. Snímek prostředí, doctor, stránka Reasoning v Cockpitu, HTTP a MCP promítají tytéž schopnosti. Každý profil provádění deklaruje svůj režim uvažování.

Zamítnuté alternativy

  • Přepínač poskytovatele ve workflow (if gemini … else if codex …). To je vada, která se opravuje: správnost by závisela na kardinalitě a pojmenování.
  • Většina nebo kvorum. Shoda je důkaz o shodě. Počet, který rozhoduje, je způsob selhání, který návrh existuje, aby učinil nereprezentovatelným.
  • Síťový kód v cratu. Zamítá to ADR 0032 a důvody platí dál.
  • Živé sondování při vstupu. Přidalo by síťovou latenci a selhání sítě ke každému cd. Přítomnost je levná a upřímná o tom, co měří, a selhání se zjistí dotazem a zaznamená.
  • Ukládání přepisů. Jsou velké, možná soukromé a nejsou tím, co pozdější relace potřebuje. Normalizovaná pole se ponechávají; surové odpovědi ne.
  • Zapisovat každý závěr jako ADR. Většina závěrů je vázána na úlohu. Jeden povýší na ADR, když mění architekturu, aktem člověka.

Důsledky

  • Majordomus uvažuje, plánuje, zaznamenává, implementuje a validuje bez nainstalovaného poradce; cesta bez poradce je cvičena testovacím případem, ne jen tvrzena.
  • Přidat poradce je jedna položka v share/advisors.yaml a pro nový transport jeden adaptérový modul; následuje každá plocha a nic jiného se neupravuje.
  • Přihlašovací údaj, který je přítomen, ale chybný, se zjistí při prvním dotazu, zaznamená se jako auth_failed a poradce zůstane vyloučen hodinu místo opakovaných pokusů.
  • Počet review rozhodnutí je fakt o záznamech. Relace si nemůže nárokovat review od poradce, který byl nedostupný nebo se ho nikdo nezeptal.
  • Co zůstává mimo: crate nemůže vědět, zda poradce odpovídá, dokud se někdo nezeptá, a transportní vrstva je Node vrstva tohoto repozitáře bez devDependency, ne součást nainstalované binárky, jak ADR 0032 už říká o své sourozenecké.

Odkud to pochází

kanonický soubor
.ai/repo/adrs/0098-reasoning-is-provider-independent-advisors-are-optional-and-review-is-recorded.md
identity
adr-0098
dostupné také jako
Zdroj MCP majordomus://adr/adr-0098 · majordomus entity show adr/adr-0098 · GET /api/v1/entity?uri=majordomus://adr/adr-0098
v Cockpitu
/cockpit/objects/adr/adr-0098

Tato stránka je generována z výše uvedeného souboru pomocí scripts/generate-site-data; úprava stránky nic nemění, úprava souboru změní všechna rozhraní. Výše uvedené vztahy jsou hrany docs/generated/graph.json, které spustitelný program zapisuje ze stejného indexu.

Prohledává názvy a popisy všech stránek, které tento web publikuje.