Blogg

Anteckningar om harnessen, modellerna under den och vad som förändras när en ny kommer.

Minnessynkronisering utan att sista skrivningen vinner

Två datorer, en uppsättning anteckningar, den ena redigerad medan den andra sov. Varje synkroniseringssystem har ett svar på det, och de flesta svarar med en jämförelse av tidsstämplar som i tysthet kastar bort den ena sidan. Det fungerar för ett utkast du kan skriva om. Det fungerar inte för filen en agent läser före varje tur, eftersom det som kastas bort är raden du skrev för att något inte skulle hända igen.

Modell-id:n hör inte hemma i TypeScript

Ett modell-id är det snabbast föränderliga faktumet i hela systemet. Leverantörer byter namn på dem, pensionerar dem, släpper en daterad variant, ändrar i tysthet vad det odaterade aliaset pekar på och låser hälften av dem bakom vilket konto som frågar. Kompilera in det i ett paket och du har garanterat att paketet har fel inom några veckor — inte trasigt på ett uppenbart sätt, vilket åtminstone vore en buggrapport, utan fel på just det sättet där en väljare erbjuder någon en modell som deras nyckel inte kan anropa.

En deny-regel är den enda gräns du får

Allt annat som en agent-harness kallar en behörighet är en bedömning av kostnad. Det är värt att säga rakt ut, eftersom gränssnittet inte gör det: en godkännandefråga, ett läge som heter Auto och en inställning för skrivbara rotkataloger ser alla ut som samma sorts sak, och bara en av dem är en gräns som systemet håller oavsett vad.

Att byta modell mitt i en session kostar ingenting

Och det är ett designbeslut, inte en funktion. De flesta agentverktyg skrivs mot en leverantör och anpassas till andra i efterhand. Ordningen låter som en implementationsdetalj. Den är hela saken.