Back to "Rajoitetut hämärät MoM:-signaalisopimukset Agent Chatterin yli"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

AI Architecture DiSE LLM Patterns

Rajoitetut hämärät MoM:-signaalisopimukset Agent Chatterin yli

Tuesday, 06 January 2026

Osa 1 kuvaili putkilinjaa: SuunnitelmaM SK1 Ehdokas , Johdanto-osan käyttäjä. Yksi todennäköinen osatekijäMSC4 rajattu deterministiseen totuuteenMST5

Mutta mitä tapahtuu, kun on moninkertainen esittäjät? Useat LLM-järjestelmät ? Tekstimallien kanssa puhuvat näkemismallit

Se on rajattu hämärä MoM (CFMoMM SK1 rajoitettu valinta useista ehdottajista, vahvistettu yhteisen totuuden vastaisestiM SK1 Ei "liittää monet mallit puhumaan

CFMoM on malli, jossa useat todennäköisyyteen perustuvat osat ehdottavat signaaleja, mutta vain deterministinen logiikka voi yhdistääM SK1 vahvistaa, tai toimia niiden perusteella .

Säännös:

  1. Mallit julkaisevat signaaleja. Ei ole luonnollista kieltä komponenttien välillä.
  2. Substrate säilyttää tosiasiat ja todisteet. kirjallinen, schemaM SK1validattu , lähteeseen suuntautuvien viittausten kanssa.
  3. Johtaja päättää. Cross-validates, ratkaisee konfliktitM SK2 panee täytäntöön kynnysarvoja .

"Yhdessä monessa järjestelmässä, virastojärjestelmissä, ,, yhteisenä substrattina on kieli, M SK3, ja constrainerina on grammatika.


Terminologia

Ennen alkamista, korjaa sanasto

Määräaika
CFMoM Rajoitettu hämärä MoMM SK1 rajoitettu valinta monista ehdottajista
Alkuperä tosiasiat SSK1 todisteet + budjetit S(deterministinen
Signalisopimus Miten komponentit kirjoitetaan substrattiin
Konsensuksen alue varasto + etenemissuuntaus + asynkkiarviointi
Koordinointiharjoittelija Toimien lopullinen vartiosto

Huomautus: Konsensustila on linja-auto ja muisti, ei arbittiM SK1 Se voi suorittaa syöttämistä-aikatodistusta MSC3esitysjärjestelmäMST4 todisteet olemassaolostaMSV5 mutta ei koskaan tee päätöksiäMSP6 Päätökset elävät konstrainerissaMSM7

Nämä eivät ole uusia käsitteitä. Ne ovat osia 1 mallia, joka on laajennettu osittain

Invariantit

Ne eivät ole neuvottelukelpoisia

  • Vain konstraineri voi aiheuttaa sivuvaikutuksia.
  • Todisteet on validoitava syöttäessä järjestelmää vastaan. Muussa tapauksessa hylkääminen.
  • Evidence must be pointer-verifiable Ei prosecitaatioita.
  • Viestit ovat muuttamattomia. Julkaistuna, ei koskaan muutettuM SK1
  • Kanonialisointi tapahtuu syöttäessä. Konstraineri ottaa kanonaaliset tosiasiat huomioon.
  • cross-lähteenluottamus ei ole vertailukelpoinen, ellei se ole kalibroitu
  • Kaikki päätökset antavat tilintarkastustuloksen.

Se mikä ei ole

Asia Miksi CFMoM on erilainen?
Asiantuntijoiden yhdistelmä (MoE MoE sekoittaa mallitulokset matemaattisesti rajoitusten alla olevat signaalit todisteiden ja politiikan perusteella
Agenttikeskustelu Monet agenttijärjestelmät kulkevat vapaasti -muodolliset viestit komponenttien välille . CFMoM kieltää vapaanM SK3muodostetut inter-toimet-komponenttiviestitMSC5 vain kirjatut signaalit pääsevät substrattiinMRK6
Routiointi Routing selects millainen malli kutsua. CFMoM hyväksyy useat ehdotukset ja rajoittaa valintavirkoja
Äänestys Äänestys edellyttää, että tulokset ovat vertailukelpoisia
LangChain-muodon grafiikat Graffit välittävät viestin, . CFMoM julkaisee muuttamattomia signaaleja yhteiselle substratille

CFMoM ei ole kirjasto tai kehys. Se on epistemillinen sääntö Todennäköiset osatekijät voivat ehdottaa,, mutta vain deterministisetM SK1 todisteet -toteutunut logiikka voi yhdistää tai toimia


Miksi LLM-to-LLM-viestintä on epäonnistunut

Kun kaksi LLM:ta viestivät luonnollisen kielen välityksellä, saamme moninkertaistumishäiriöitä. Vaikka kaikki hyökkäykset ovat suurin piirtein oikeitaM SK2 virheet moninkertoutuvat odotettua nopeammin .

Semanttinen ajo: Kukin malli tulkitsee hieman eri tavalla . Malli A sanoo, että "käyttäjä vaikuttaa turhautuneeltaM SK3 Mallia B lukee, että kun "käyttäjä on vihainen." Mallio C syventyy "hätääntyvä käyttäjä havaittiinMSC7 Kolme hyökkäystäMST8 kolme tulkintaaMstK9 yksi väärä johtopäätösM stk10

LuottamuksenpesuMalli A on 80% varma jostakin, . Se kertoo mallille B sujuvassa runossa, M SK3 Malli B kohtelee sitä tosiasiana, koska kieli kuulostaa varmalta.

Hallucinaatioheikkeneminen: malli A keksii uskottavan yksityiskohdan, . malli B rakentuu siihen, M SK2 malli C mainitsee sen sellaisena kuin se on vahvistettu

Formatti epävakaus: malli A tuo outputs JSON . Toisinaan. malli B analysoi sitä

Instinkt on lisätä enemmän kannustimia muotojen täytäntöönpanoon. Mutta pehmeät rajoitukset epäonnistuvat komponenttien välillä aivan kuten ne epäonnistuvat osien sisällä.

: pakottaa kaikki osatekijät väliseen viestintään yhteisen deterministisen avaruuden kautta.

Mitä "mallit eivät tarkoita

Tämä on vaikeaa sääntöä.

  • Muodot eivät koskaan sisälly muihin malleihin' tulot suoraanM SK1 Ei "tiivistää, mitä malli A sanoi
  • Ne syövät vain pohjatietoja , joka hyväksyi suunnitelman + todisteiden tarkastukset syöttäessä
  • Human-näkökohtainen selitys on luotu viimeiseksi eikä se koskaan palaa järjestelmään.
  • Jos huomaatte, että kirjoitatte pyynnön, jossa viitataan toiseen malliin, olette rikkonut mallia

Tämä tappaa ", mutta minun agenttini voi tiivistää toisen agentin " porsaanreikiä M SK2 Tämä porsaanreikä on se, miten semanttinen ajo alkaa


Signalisopimus

Muodon ytimenä on kirjattu pöytäkirja, jonka kaikkien osatekijöiden on käytettävä. Ei prosoaM SK1 Ei vapaata -muodollinen output. täytettävät olotMSC4

Todisteita koskevat viittaukset

Ensinnäkin määritellään, mitä "todisteet " tarkoittavat

public record EvidenceRef(
    string Kind,                    // "chunk", "frame", "timestamp", "request", "row"
    string Store,                   // namespace (e.g., "documents", "video-frames")
    string Id,                      // chunk-12, frame-0042, t=00:13:21.200, req-abc
    JsonElement? Locator = null,    // span, bbox, row-range - schema depends on Kind
    string? ContentHash = null      // optional hash for version verification
);

Tämä ei ole ketju. Se on viittaus todistettavissa olevaan lähdemateriaaliinM SK1 Kaikkien väitteiden on mainittava, mihin ne perustuvat Locator field handles spans, bounding boxes , timestamps, tai jokin muu paikkajärjestelmä M SK3 sen järjestelmä on määritelty Kind.

KonstrainedSignal-rekisteri

public record EmbeddingRef(string ModelId, float[] Vector);

public record ConstrainedSignal(
    string Id,                                      // stable identifier
    string SourceId,                                // component name/version
    string FactsSchemaId,                           // "bot-detection/1.0", "summarization/2.1"
    DateTimeOffset At,                              // when produced
    string? CorrelationId,                          // ties signals to one input/request
    string? SubjectId,                              // what this signal is about, if known
    JsonElement Facts,                              // schema-validated, not ad-hoc object
    IReadOnlyList<EvidenceRef> Evidence,            // what it's based on
    float Confidence,                               // self-estimated probability of correctness
    IReadOnlyList<EmbeddingRef>? Embeddings = null  // optional, supports multi-model migration
);

Miksi tämä toimii

  • Tosiasiat ovat schema-validoitu syöttäessä: FactsSchemaId viittaa malliin, joka määrittelee, mitä palette_dominant_hue merkitsee, minkä tyyppinen se on , mitä yksiköitä se käyttääM SK2 Ei mainintaa Dictionary<string, object>. Järjestelmät ovat JSON-järjestelmän mukaisia.
  • Kanonaalistuminen tapahtuu syöttäessä: Vakaat tyypitM SK1 vakaat yksiköt , vakaa normalisointi. Aikataulut ovat ISO-standardeja 8601. Värikkeet on hexMSC5 Koordinaatit ovat WGSMST6 Konstrainerissa otetaan käyttöön kanonaaliset tosiasiat
  • Todisteet ovat rakenteellisia: Viittaukset todistettavissa olevaan lähteeaineistoon , ei prosoivia ominaisuuksia M SK2
  • Luottamus on määritelty: "SelfM SK2arviointitodennäköisyys asianmukaisuudesta".Kalibrioitua luottamusta ei koskaan verrata eri lähteisiin.
  • Sisällytykset ovat valinnaisia tukivälineitä: Ottamiseen ja ryhmittämiseen , ei totuuden todistamiseen M SK2
  • Tarvittavat lähtökohdat on täytettävä tai signaali hylätään. Vaihtoehtoiset alueet ovat sallittuja.

Ingestion: Missä validointi tapahtuu

Signaaleja validoidaan ja kananikalisoidaan, kun ne saapuvat substrattiin, eikä silloin, kun constraineri käsittelee niitäM SK1

public async Task IngestAsync(ConstrainedSignal signal)
{
    // Hard fail if schema invalid
    _schemaRegistry.Validate(signal.FactsSchemaId, signal.Facts);

    // Canonicalise units, formats, types
    _canonicaliser.Apply(signal.FactsSchemaId, ref signal);

    // Verify evidence pointers exist and are in scope
    foreach (var evidence in signal.Evidence)
        _evidenceStore.VerifyExists(evidence);

    await _store.WriteAsync(signal);
}

Kun constraineri näkee signaalin, se on jo suunnitelmassa, -, validi,,, kanoniinisoitu ja todisteet vahvistettu.

Todisteiden tarkastustasot

_evidenceStore.VerifyExists suorittaa todellista työtä. Nämä ovat tasot

  • On olemassa: Referenced chunk
  • Scope-asiallinen: Span-rajat (StartM SK2 End) ovat alkuaineiston sisällä
  • Content-hash match: Evidence pointer matches expected hash
  • Mahdollisuudet: soittaja voi viitata tähän todistusaineistoon.

Signalit, jotka eivät täytä minkäänlaista tasoa, hylätään syöttäessä. Ei osittaisia todisteitaM SK1

Critical Distinction: Sisällytykset vs tosiasiat

Tämä on se kohta, jossa monet monimutkaiset agenttirakenteet ovat väärässä.

Sisällytykset annetaan kauko geometria, joka liittyy samankaltaisuuteen. Ne ovat todennäköisiä , vain vähemmän kiihkeitä kuin luonnollinen kieliM SK2 Kaksi signaalia, joilla on samanlaiset sisällytykset mahdollisuus olisi sama asia.

Tosiasiat + Todisteet on totta. Asia, jonka mukaan M SK1 tarkoittaa samaa " eri osissa, on oltava

  • Luettelo mitattavissa olevista piirteistä ( palettilaatitM SK1 esineiden tunnistukset, aikarajat )
  • Evidence pointers (chunk
  • Ei sisällytä samankaltaisuutta yksinään

Siirrot auttavat löytämään signaaleja, jotka mahdollisuus Tosiasiat varmistavat, että ne ovat.

Todellinen esimerkki: Bot-detection

Siihen Bot-tutkimukset, Wave- ja Wave-detektorit sekä LLM:t viestivät DetectionContribution:

DetectionContribution.Bot(
    source: "UserAgent",        // or "LLM"
    category: "BotSignature",
    confidence: 0.85,
    reason: "Contains automation keyword",
    weight: 1.0
);

Pöytäkirja on rajoite. LLM ei voi ramblea. Sen on täytettävä pisteitä . UserAgent-detektor ja LLM tuottavat saman muodon merkinnän outputinM SK3 Downstream-komponentit eivät tarvitse tietää, kuka sen on tuottanut


Konsensuksen ilmapiiri

Yhteinen substratti ei ole passiivinen varastointi. Se koordinoi aktiivisesti signaalivirtaaM SK1

flowchart TB
    subgraph Specialists["Specialist Proposers"]
        S1[Text Analyzer]
        S2[Image Processor]
        S3[Behavioral Model]
        S4[Domain Expert LLM]
    end

    subgraph Consensus["Consensus Space (includes Ingestion Gate)"]
        C1[Ingestion Gate]
        C2[Signal Aggregator]
        C3[Async Evaluator]
        C4[Cluster by Embedding]
    end

    subgraph Constrainer["Coordination Constrainer"]
        B1[Verify Facts + Resolve]
        B2[Conflict Resolution]
        B3[Budget Management]
    end

    subgraph Output["System Output"]
        O1[Coordinated Response]
        O2[Audit Trail]
    end

    S1 --> C1
    S2 --> C1
    S3 --> C1
    S4 --> C1

    C1 --> C2 --> C3 --> C4

    C4 --> B1 --> B2 --> B3 --> O1
    B3 --> O2

    style Consensus stroke:#ef4444,stroke-width:3px
    style Constrainer stroke:#22c55e,stroke-width:2px

Asynchroninen signaalikäsittely

Asiantuntijat eivät odota toisiaan. He antavat signaaleja, kun he täyttävät

public class ConsensusSpace
{
    private readonly ConcurrentDictionary<string, ConstrainedSignal> _signals = new();

    public async Task ContributeAsync(ConstrainedSignal signal)
    {
        _signals.TryAdd(signal.Id, signal);

        // Trigger evaluation without blocking the contributor
        _ = Task.Run(async () =>
        {
            var evaluation = await _evaluator.EvaluateAsync(signal);
            await _distributor.DistributeAsync(evaluation);
        });
    }

    public IDisposable Subscribe<T>(Func<T, Task> handler)
        where T : ConstrainedSignal
    {
        // Components subscribe to signals they care about
    }
}

Nopeat detektaattorit (UserAgent-tarkastuksetM SK1otsakeanalyysi) eivät pysäydy hitaisiin (LLM-analyysi,käytösmallitMSC5 Konsensaatioalue kerää signaaleja ajan mittaanMST6 varhaiset signaalit voivat käynnistää varhaisen loppumisenMSV7 myöhäiset signaalit viimeistelevät tai ylittävät


Specialisaatio ja ulottuvuus

Yhteisellä signaalisopimuksella asiantuntijat voivat keskittyä siihen, mitä he tekevät parhaiten

Luonnollinen työosasto

public class TextSpecialist : ISpecialist
{
    public async Task<ConstrainedSignal> AnalyzeAsync(InputData input, string correlationId)
    {
        var entities = await ExtractEntitiesAsync(input.Text);
        var sentiment = await AnalyzeSentimentAsync(input.Text);

        var facts = JsonSerializer.SerializeToElement(new
        {
            entities = entities.Select(e => e.Label).ToArray(),
            sentiment_score = sentiment.Score,
            sentiment_label = sentiment.Label
        });

        return new ConstrainedSignal(
            Id: Guid.NewGuid().ToString(),
            SourceId: "TextSpecialist/1.2",
            FactsSchemaId: "text-analysis/1.0",
            At: DateTimeOffset.UtcNow,
            CorrelationId: correlationId,
            SubjectId: input.Id,
            Facts: facts,
            Evidence: entities.Select(e => new EvidenceRef(
                "span", "documents", input.Id,
                JsonSerializer.SerializeToElement(new { Start = e.Start, End = e.End }))).ToList(),
            Confidence: CalculateConfidence(entities, sentiment),
            Embeddings: [new EmbeddingRef("all-MiniLM-L6-v2", _embedder.Embed(entities, sentiment))]
        );
    }
}

public class ImageSpecialist : ISpecialist
{
    public async Task<ConstrainedSignal> AnalyzeAsync(InputData input, string correlationId)
    {
        var objects = await DetectObjectsAsync(input.Image);
        var palette = await ExtractPaletteAsync(input.Image);

        var facts = JsonSerializer.SerializeToElement(new
        {
            objects = objects.Select(o => o.Label).ToArray(),
            palette_dominant_hex = palette.Dominant.ToHex(),
            palette_accent_hex = palette.Accent.ToHex()
        });

        return new ConstrainedSignal(
            Id: Guid.NewGuid().ToString(),
            SourceId: "ImageSpecialist/2.1",
            FactsSchemaId: "image-analysis/1.0",
            At: DateTimeOffset.UtcNow,
            CorrelationId: correlationId,
            SubjectId: input.Id,
            Facts: facts,
            Evidence: objects.Select(o => new EvidenceRef(
                "region", "images", input.Id,
                JsonSerializer.SerializeToElement(o.BoundingBox))).ToList(),
            Confidence: CalculateConfidence(objects, palette),
            Embeddings: [new EmbeddingRef("all-MiniLM-L6-v2", _embedder.Embed(objects, palette))]
        );
    }
}

Muodollinen sopimus

Molemmat asiantuntijat julkaisevat samalle substratille kirjattujen tosiasioiden kanssa. mutta eri alojen tosiasioita ei voida verrata suoraanM SK1

Kun tekstiasiantuntija laatii entity_color: "blue" ja kuvaasiantuntija tuottaa palette_dominant_hex: "#0000CC", miten vahvistetaan sopimus

Ei raaka-arvoa. "blueM SK1 != | | "#0000CC

public interface IFactResolver
{
    bool CanResolve(string factNameA, string factNameB);
    FactAgreement Resolve(JsonElement factA, JsonElement factB);
}

public class ColorResolver : IFactResolver
{
    public bool CanResolve(string a, string b) =>
        (a.Contains("color") && b.Contains("hex")) ||
        (a.Contains("hex") && b.Contains("color"));

    public FactAgreement Resolve(JsonElement factA, JsonElement factB)
    {
        // Canonicalise both to RGB space
        var colorA = ParseToRgb(factA);
        var colorB = ParseToRgb(factB);

        // Tolerance-based comparison in perceptual space
        var distance = CieDeltaE(colorA, colorB);
        return new FactAgreement(distance < 10.0, distance);
    }
}

(The Contains edellä mainittu logiikka on ilmeistä. tuotannossaM SK1 ratkaisut kirjataan schemaparin avulla + tosiasiallinen avain , ei substring-heuristiikkaa

Yhdensuuntainen-järjestelmä comparison on mahdoton standardin mukaan Saatte sen vain rekisteröimällä nimenomaisen ratkaisun. Tämä on turvallisuusominaisuuksiaM SK1 ei rajoituksia.

Koordinointikonstraineri käyttää ratkaisurekisteriä:

  1. Yhdenmukaistaa ryhmittymiä koskevat embeddingit (cheapM SK1 fuzzy)
  2. Jokaista tosiseikan paria varten, löytää ratkaisun ( tai käyttää standardin mukaista täsmällistä
  3. Resolverit kanonialisoidaan ja verrataan asianmukaiseen suvaitsevaisuuteen
  4. Yhdistetään, jos ratkaistaan, lippu, jos ristiriidassa

Mitään luonnollista kieltä ei vaadita. On havaittavissa erimielisyyksiä , ei peitetäM SK2 ristiriitainen-modaalisia tosiasioita verrataan yhteisessä kanonallisessa avaruudessaan


Koordinointiharjoittelija

Osaan 1, liitännäistraineri oli verkonvalvoja.

Osissa 2, koordinointikonstraineri on orkesteri. Se

  1. Cross-validates: Onko eri asiantuntijoiden viestit yksimielisiä tosiasioista?
  2. Konfliktit ratkaistaan: Kun asiantuntijat eivät ole samaa mieltä
  3. Talousarvion hallinnointi: Kuinka monta asiantuntijaa on pyydettävä tähän inputiin
  4. Sovelletaan yhteisymmärryksen kynnysarvoja: Kuinka paljon yhteisymmärrystä ennen toimenpidettä

Konstraineri on deterministinen. Se ei sisällä mitään LLM:tä, ei todennäköistä logiikkaa , ei MSC2 tuomiopuhelujaM SK3 Jokainen päätös noudattaa selviä sääntöjä. Tämä on rakenteellinen takuutus, joka tekee muodon muutoksen toimivaksi

Kolmen vaiheen tarkastus

public class CoordinationConstrainer
{
    public async Task<CoordinatedResult> ConstrainAsync(
        IReadOnlyList<ConstrainedSignal> signals)
    {
        // Step 1: Cluster candidates by embedding (cheap, fuzzy)
        var clusters = ClusterByEmbedding(signals);

        // Step 2: Within each cluster, verify agreement on FACTS (hard)
        var verified = new List<ConstrainedSignal>();
        foreach (var cluster in clusters)
        {
            // Time-of-use re-check: evidence may have expired or been GC'd since ingestion
            var withValidEvidence = cluster.Where(s =>
                s.Evidence.Any() && _evidenceStore.IsStillAuthorisedAndAvailable(s.Evidence)).ToList();

            var factAgreement = VerifyFactAgreement(withValidEvidence);
            if (factAgreement.Agreed)
                verified.AddRange(factAgreement.Signals);
            // Disagreeing signals are logged for analysis, not merged
        }

        // Step 3: Check consensus threshold (policy, hard)
        if (verified.Count < _policy.MinimumSignals)
        {
            if (_policy.AllowEscalation)
                return await EscalateToTiebreakerAsync(signals);
            else
                return CoordinatedResult.Degraded("Insufficient consensus");
        }

        // Step 4: Merge and apply output constraints
        var merged = MergeSignals(verified);
        return ApplyOutputConstraints(merged);
    }

    private FactAgreement VerifyFactAgreement(IReadOnlyList<ConstrainedSignal> cluster)
    {
        // Agreement is on Facts via rules registry, not raw equality
        foreach (var (signalA, signalB) in AllPairs(cluster))
        {
            var result = _rules.CheckAgreement(
                signalA.FactsSchemaId, signalA.Facts,
                signalB.FactsSchemaId, signalB.Facts);

            if (!result.Agreed)
                return new FactAgreement(false, cluster, result.ConflictingFact);
        }
        return new FactAgreement(true, cluster, null);
    }
}

// The rules registry handles type-appropriate comparison
public class FactAgreementRules
{
    private readonly Dictionary<string, IFactResolver> _resolvers = new();
    private readonly IFactResolver _defaultResolver = new DefaultFactResolver();

    public void Register(string factPattern, IFactResolver resolver) =>
        _resolvers[factPattern] = resolver;

    public AgreementResult CheckAgreement(
        string schemaA, JsonElement factsA,
        string schemaB, JsonElement factsB)
    {
        // Cross-schema: use resolvers to map between schemas
        if (schemaA != schemaB)
            return CheckCrossSchemaAgreement(schemaA, factsA, schemaB, factsB);

        // Same schema: compare fact by fact
        foreach (var prop in factsA.EnumerateObject())
        {
            if (!factsB.TryGetProperty(prop.Name, out var valueB))
                continue;

            var resolver = FindResolver(prop.Name);
            var result = resolver.Resolve(prop.Value, valueB);
            if (!result.Agreed)
                return new AgreementResult(false, prop.Name);
        }
        return new AgreementResult(true, null);
    }

    private IFactResolver FindResolver(string factName) =>
        _resolvers.FirstOrDefault(r => factName.Contains(r.Key)).Value
        ?? _defaultResolver;
}

public class DefaultFactResolver : IFactResolver
{
    public bool CanResolve(string a, string b) => true;

    public FactAgreement Resolve(JsonElement a, JsonElement b)
    {
        return a.ValueKind switch
        {
            JsonValueKind.Number => ResolveNumeric(a, b),     // Tolerance
            JsonValueKind.String => ResolveString(a, b),     // Exact match
            JsonValueKind.True or JsonValueKind.False =>
                new FactAgreement(a.GetBoolean() == b.GetBoolean(), 0),
            _ => new FactAgreement(a.GetRawText() == b.GetRawText(), 0)
        };
    }

    private FactAgreement ResolveNumeric(JsonElement a, JsonElement b)
    {
        var va = a.GetDouble();
        var vb = b.GetDouble();
        var tolerance = Math.Max(Math.Abs(va), Math.Abs(vb)) * 0.001; // 0.1%
        return new FactAgreement(Math.Abs(va - vb) <= tolerance, Math.Abs(va - vb));
    }

    private FactAgreement ResolveString(JsonElement a, JsonElement b) =>
        new FactAgreement(a.GetString() == b.GetString(), 0);
}

Keskeinen käsitys: Ehdotus sisällytyksistä. Siihen sisältyvä samankaltaisuus viittaa siihen, että " nämä signaalit saattavat olla yhteydessä toisiinsa M SK2 tosiasioiden vertailu vahvistaa, että

Päätöksenteko

Constrainerin päätöksenteko on deterministinen. Ei LLM:täM SK2 ei helistiikkaa , ei "judgmentti". Tässä on virtaMSC6

  1. Ryhmäehdokkaat sisällyttämällä samankaltaisuudet (hintainen klusterointiM SK1
  2. Filterti ohjelmien pätevyys ja todisteiden tarkistaminen (on jo tehty syöttäessäM SK1 mutta voida tarkistaa uudelleen
  3. Asiat ratkaistaan canonilliseen vertailualueeseen ratkaisurekisterin kautta
  4. Laskenna sopimustulos kutakin ryhmittymää kohden: osa vaadituista tosiasioista, jotka on ratkaistavaM SK1 sovittu ≥N eri lähteistä
  5. Politiikka: vähimmäissopimuskynnys, , vähimmmäislähteiden lukumäärä,, kutakin,-lähteen luottamuksen raja-arvot
  6. Toiminta: yhdistetään, jos sovitaan

Jokainen askel on määriteltävä toimenpide. Jokainen päätös tuottaa tilintarkastuspöytäkirjan


Mallien sekoittaminen objektiiviseen palautukseen

Konsensustila mahdollistaa jotain voimakasta: riippumaton oppiminen yhteisestä objektiivisesta totuudesta.

Oppimisen vyöhyke

flowchart TB
    subgraph Specialists["Specialist LLMs"]
        S1[Model A]
        S2[Model B]
        S3[Model C]
    end

    subgraph Consensus["Consensus Space"]
        C1[Signal Aggregation]
        C2[Decision Selection]
    end

    subgraph Action["Deterministic Execution"]
        A1[Execute Decision]
        A2[Measure Outcome]
    end

    subgraph Memory["Long-Running RAG"]
        M1[Decision Record]
        M2[Objective Outcome]
        M3[Attribution]
    end

    subgraph Feedback["Independent Learning"]
        F1[Model A reviews own history]
        F2[Model B reviews own history]
        F3[Model C reviews own history]
    end

    S1 --> C1
    S2 --> C1
    S3 --> C1
    C1 --> C2 --> A1 --> A2

    A2 --> M1 --> M2 --> M3

    M3 --> F1 --> S1
    M3 --> F2 --> S2
    M3 --> F3 --> S3

    style Memory stroke:#3b82f6,stroke-width:3px
    style Feedback stroke:#22c55e,stroke-width:2px

Miksi tämä toimii

  1. Päätökset annetaan: RAG varastoi, mikä malli ehdotti mitä
  2. Tulokset ovat objektiivisia: Deterministiset osat mittaavat, mitä itse asiassa tapahtui
  3. Vastaukset jaetaan, mutta painottaminen on riippumatonta: Jokainen LLM näkee samat tulostiedot mutta päättää, miten mukauttaa
public record DecisionRecord(
    string DecisionId,
    string ProposingModel,           // Which LLM proposed this
    ConstrainedSignal OriginalSignal,   // What it claimed
    float ConsensusScore,            // Agreement at decision time
    DateTime Timestamp
);

public record OutcomeRecord(
    string DecisionId,
    bool ObjectiveSuccess,           // Deterministic measurement
    Dictionary<string, float> Metrics,  // What we measured
    TimeSpan TimeToOutcome
);

Riippumaton oppiminen, Yhteinen totuus

Jokainen LLM voi hakea RAG:tä eri tavalla:

// Model A: Conservative, focuses on avoiding failures
var modelAContext = await _memory.QueryAsync(
    "decisions WHERE ProposingModel = 'ModelA' AND ObjectiveSuccess = false",
    limit: 100
);
// Learns: "I was overconfident when X, be more cautious"

// Model B: Aggressive, focuses on missed opportunities
var modelBContext = await _memory.QueryAsync(
    "decisions WHERE ProposingModel != 'ModelB' AND ObjectiveSuccess = true",
    limit: 100
);
// Learns: "Others succeeded where I hesitated, be bolder on pattern Y"

// Model C: Specialist, focuses on its domain
var modelCContext = await _memory.QueryAsync(
    "decisions WHERE Domain = 'security' ORDER BY ObjectiveSuccess DESC",
    limit: 100
);
// Learns: "These security patterns work, reinforce them"

Mahdollisuus oppia

Tämä toimii vain siksi, että palaute on tavoitteellinen.

Ilman deterministista palautusta
"Modelli A katsoi, että se toimi hyvin
"Model B ei ollut samaa mieltä tuloksestaM SK2 "Botti vahvistettiin Honeypotilla

Deterministinen kerros mittaa todellisuutta. LLM:t eivät voi kiistää mittauksiaM SK1 Jokainen malli oppii samasta perustodellisuudesta, mutta mukautuu itsenäisesti omien historiansa ja painopisteensä perusteella

Poikkeuksellinen erikoistuminen

Ajan myötä,-mallit erikoistuvat luonnollisesti

  • A-malli oppii, että se pystyy tekemään varovaisia päätöksiä
  • Malli B oppii, että se ylittää rajatapaukset, käy ilmi silloin, kun muut ovat epävarmoja
  • Malli C oppii alueestaan syvästi, tulee kyseisen signaalin tyypin asiantuntijaksi

Yksikään keskeinen orkesteri ei määritä roolia. erikoistuminen syntyy objektiivisesta palautteesta todellisista tuloksista


Miksi Frontier-mallit tekevät tästä tärkeämmän

Counterintuitive insight: paremmat mallit tekevät yhteisistä substrateista MORE critical, ei vähemmän.

Muodot paranevatM SK1 Riski kasvaa, koska
Tehokkaammat tulokset Mahdollisuuksia hienotunteiseen väärinkäsitykseen
Suurempi luottamus
Laajempi toimintavalmius
Parempi näyttää johdonmukaiselta vaikeampaa havaita, kun he eivät ole semanttisesti samaa mieltä

Rajamalli, joka viestii toisen rajamallin kanssa luonnollisen kielen kautta, ei ole turvallisempi kuin kaksi pientä mallia, jotka tekevät samaa.. Epäonnistumiseen liittyvät menetelmät ovat monimutkaisempia.

Ratkaisu on sama: voimaviestintä deterministisen yhteisen alueen välityksellä . Siirtämismalli ei välittele siitä, onko ehdottaja pieni tai rajallinen


Kehitys ilman murtumista

Koska viestintä tapahtuu kirjattujen tietojen ja yhteisten sisällytteiden kautta:

  • Swap text specialist from GPT-4 to Claude without touching other components
  • Lisätä uusi erikoistunut (audioanalyyserM SK1 muuttamatta olemassa olevia
  • Parannetaan sisällyttämistä koskevaa mallia kaikkiin komponentteihin atomisesti

Embedding-mallin muuttaminen

Haluatte ajantasaistua all-MiniLM-L6-v2 vuodeksi nomic-embed-text-v1.5. Mutta kaikissa tallennetuissa signaaleissa on vanhan mallin sisällytyksiä

Ratkaisu: kaksinkertainenM SK1kirjaaminen useiden sisällytteiden kanssa .

Koska Embeddings on luettelo EmbeddingRef, maahanmuutto on yksinkertainen

public class EmbeddingMigration
{
    // Phase 1: Dual-write (new signals get both embeddings)
    public ConstrainedSignal EnrichWithDualEmbedding(ConstrainedSignal signal)
    {
        var oldVector = _oldModel.Embed(signal.Facts);
        var newVector = _newModel.Embed(signal.Facts);

        return signal with
        {
            Embeddings =
            [
                new EmbeddingRef("all-MiniLM-L6-v2", oldVector),
                new EmbeddingRef("nomic-embed-text-v1.5", newVector)
            ]
        };
    }

    // Phase 2: Compare agreement rates
    public async Task<MigrationReport> CompareAgreementAsync()
    {
        var signals = await _store.GetRecentSignalsAsync(limit: 10000);

        var oldClusters = ClusterByEmbedding(signals, s =>
            s.Embeddings?.FirstOrDefault(e => e.ModelId == "all-MiniLM-L6-v2")?.Vector);
        var newClusters = ClusterByEmbedding(signals, s =>
            s.Embeddings?.FirstOrDefault(e => e.ModelId == "nomic-embed-text-v1.5")?.Vector);

        // Do the same Facts end up in the same clusters?
        var agreementRate = CalculateClusterAgreement(oldClusters, newClusters);

        return new MigrationReport(agreementRate, threshold: 0.95);
    }

    // Phase 3: Flip readers after threshold met
    public void CompleteMigration()
    {
        // Update config to use new model for queries
        // Keep old embeddings for rollback if needed
        // Optionally prune old embeddings after confidence period
    }
}

Keskeiset kohdat:

  • Jokaiseen sisällytykseen sisältyy malliId. Ei ole mitään arvausta.
  • Dual-write liitetään vain luetteloon Vanhat luvut toimivat edelleen.
  • Vertailu klustersopimus, ei raaka-kosineeritys
  • Suljetaan kynnysarvon jälkeen (e.g., 95% sama-yhteissopimus).
  • Tosiasiat ovat vakaat. Vaikka sisällytykset muuttuisivat, kirjatut tosiasiat jäävät todellisiksi.

Epäonnistumiseen liittyvät menettelyt ja palaukset

Tämä malli särkyy, kun asiat menevät pieleen. Valvontaa koskevat vaatimukset-järjestelmäpuitteet merkitsevät, että epäonnistumiset ovat selviä ja korjattavissaM SK2

ristiriitaiset tosiasiat

Kaksi asiantuntijaa ilmoittavat samasta asiasta eriarvoisista arvoista. Ratkaistelija ei voi sovittaa niitä yhteen

Vastaus: Luettelo konfliktista täydessä kontekstissa . Älkää sekoittako sitäM SK2 heikennä tulosta vähennetyn luottamuksen osoittamiseksi

Epäviralliset tai epäasialliset todisteet

signaali saapuu todisteiden osoittajien kanssa, joita ei ole olemassa, eivät kuulu soveltamisalaanM SK1 tai tarkastus on epäonnistunut

Vastaus: Hylätään signaali syöttäessä. Se ei koskaan pääse substrattiinM SK2 Ehdotetun osan ilmoitetaan, ja se voi yrittää uudelleen pätevien todisteiden avulla .

Ei yksimielisyyttä

Liian vähän signaaleja, tai liian suuria erimielisyyksiä politiikan kynnysarvon saavuttamiseksi .

Vastaus: Fall back to a deterministic baseline

Asetetut todisteet

Todisteet olivat päteviä syöttäessä, mutta niiden voimassaoloaika on päättynyt.

Vastaus: KonstraineriM SK1aika--käyttötarkastelu (IsStillAuthorisedAndAvailable) ottaa tämän vastaanM SK1 signaali suljetaan pois nykyisestä päätöksestä, koska "todisteet ovat vanhentuneita"tarkastussyytteen vuoksi

Yhteinen totuuden lähde epäonnistuu

Alkuperä ei ole saatavilla.

Vastaus: Lähtöputken katkaisejaM SK1 Ei voida ottaa tai käsitellä signaaleja . Järjestelmä heikentyy turvallisiin standardeihin tai etujärjestelmiin myöhemmin käsiteltäväksi saataviin tuloihin . Tämä on infrastruktuurihäiriön aiheuttama häiriö M SK4 ei mallihäiriön johdosta

Muodot eivät esitä epäonnistumista. Ne tekevät niistä kovaa, lokalisoitua , ja takaisinkelpoista.


täytäntöönpanotarkistuksen luettelo

Monien ryhmien rakentamiseksi-agenttijärjestelmätM SK1

  1. Vali ONE:n sisällytysmalli kaikilta osin (e.gM SK2kaikilta -MiniLM
  2. Määrätään signaalisopimus (ConstrainedSignal + EvidenceRef) ennen kuin rakennetaan mitään erikoistunutta
  3. Kanonaaliset yksiköt ja normalisointi kaikille tosiasioille (ISO 8601 aikarajatM SK2 hex-värit
  4. Kehitetään ensin yhteisymmärrysaluetta (signaalikokonaisuusM SK1 asynkkiarviointi
  5. Jokainen asiantuntija tuottaa signaaleja, ei koskaan luonnollista kieltä muille asiantuntijoille
  6. Koordinointikoordinaattori vahvistaa sopimuksen tosiasioista, ei sisälly samankaltaisuutta
  7. Rekisteriratkaisut lippua varten-modal fact comparison (color names vs hexM SK2 jne.
  8. Luettelo kaikista signaaleista puutteiden korjaamiseksi ja kehityksen edistämiseksi
  9. Mitataan tulokset objektiivisesti (
  10. Säästöpäätös + tulosparit pitkällä-käynnissä olevalla RAG:llä
  11. Antakaa mallien tiedustella omaa historiaansa riippumattoman oppimisen
  12. Swap komponentit yksi kerrallaan, varmistaa, että signaalit vastaavat edelleen schemaa

Järjestelmä on pohja

Osa 1: Rajoitukset luovat hyödyllistä käyttäytymistä yksittäisissä osissa

Osa 2: Yhteiset rajoitukset luovat johdonmukaista toimintaa eri osatekijöiden välillä.

Konsensaatioalue ei ole keskinäinen tietolähde. Se on laajentunut substratti. Kun asiantuntijat viestivät kirjattujen tosiasioiden sijasta kielellä , todisteiden osoittajien sijasta lausuntojen välityksellä–, rajoitukset, jotka tekevät yksittäisistä osista luotettavia, tekevät koko järjestelmän luotettaviksiM SK4

Useat esittäjät. Yhteinen totuus

Muodot eivät puhu toistensa kanssa. Ne julkaistaan substratilleM SK1 Konstraineri vahvistaa . Tulokset mitataan. RAG muistaaMST4 Jokainen malli oppiiMSC5

Osa 1 rajoittaa mallin. osa 2 rajoittao avaruusmallien jakautumistaM SK3

Tämä on rajattu hämärä MoM.


Luettelo

  • "Modelit eivätM SK1t puhu = ei vapaita - muille malleille syötetään mallitulokset
  • Evidence re-todistuksen tekeminen päätöksessä sallitaan/onnistaan säilyttäminenM SK1 ei virheellisyys . virheettömyys havaittiin syöttäessä
  • Sopimuksen tulos = osa vaadituista tosiseikoista, jotka on ratkaistavissaM SK1 sovittu eri puolilla ≥N erilaiset lähteet. Se on deterministinenMSC4

Luettelo

Osuus Muodos Axis SSK3
1 Rajoitettu epämääräisyys Yksittäinen osake
2 ≥ Rajoitetut hämärät MoM tämä artikla
3 Rajoitettu hämärän taustan vetäminen Aika / muisti

Osa 1 rajoittaa yhden todennäköisen osan determinististen rajojen kanssa.

Osa 3 laajentaa tätä rakennetta ajanjaksolla. Muodot saattavat huomataM SK1 mutta insinööri päättää, mikä pysyy ennallaan . Rajoituksesta tulee itse muisti

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.