system-one-design
Trasforma un passo domanda-ed-estrazione in domande tipizzate — una condizione ciascuna, nomi di opzione che non portano il verdetto, un numero in risposta — e non lasciare mai che quel numero fermi il lavoro da solo.
Conferita da chi ha letto la scheda, non rivendicata dal file su se stesso. Una scheda che l'agente distilla durante un'esecuzione che ha consumato contenuti non affidabili nasce contaminata e resta in attesa di revisione prima di essere mai recuperata.
Quando viene in mente
- estrarre un sì o un no dalla prosa di un modello
- classificare molti elementi con un modello
- chiedere a un modello di dare un voto
- la risposta di un modello decide cosa succede dopo
Il valore di solito sta in Evita e Verifica. Fai è la sezione che scrivono tutti.
Il corpo della scheda qui sopra è una traduzione. L'originale inglese è ciò che la CLI importa, ciò che l'agente legge in esecuzione e ciò che l'hash qui sotto attesta.
Trigger
Un passo fa a un modello una domanda la cui risposta è uno di pochi valori noti — sì o no, una di cinque etichette, un livello da basso ad alto — e poi legge quel valore nella prosa che ha scritto. Oppure la stessa domanda viene posta a centinaia di elementi. È una decisione tipizzata travestita da chat.
Fai
- Ponila come domanda tipizzata (
chimera decide,POST /api/decideo lo strumentodecide):noulper sì/no,choiceper una di un insieme,scoreper livelli ordinati. Torna una probabilità. - Una condizione per domanda. "È un errore e viene dal database?" sono due domande; poni entrambe e combina le risposte nel codice, dove la regola è visibile.
- Dai alle opzioni nomi che non portano il verdetto (niente "yes", "safe", "pass") e metti il significato
nei criteri. Un'opzione jolly ("other") è dove finisce una lettura incerta — dalle un criterio
stretto o lasciala fuori. Fai in modo che le prime parole delle opzioni siano diverse: un modello locale legge l'etichetta dal primo token, quindi
codingecoding_agentnon si possono mai distinguere (24 dei 231 item pubblici di JevBench sono rimasti senza lettura così). Sull'opzione jolly, misurato su 1.000 oggetti di commit: un "other" ampio ha assorbito il 78% degli item che appartenevano a un'opzione nominata, uno stretto il 58%; toglierlo ha portato l'F1 delle classi nominate da 0,24 a 0,43, al prezzo che gli item davvero fuori dall'insieme finiscano su un'opzione nominata. - Mostra al modello solo la cosa giudicata: non l'output degli strumenti intorno, non una frase che perora una risposta.
- Scegli ogni soglia da esempi etichettati, mai a occhio, e tieni il numero accanto alla decisione che ha alimentato.
- Tieni aritmetica, date e conteggi nel codice: calcola il fatto, mettilo nello stato e fai la domanda su di esso. Un modello di decisione legge; non calcola (nel livello difficile di JevBench il modello locale ha azzeccato 1 item su 15 di date e numeri).
Evita
Lasciare che il numero chiuda, salti o approvi il lavoro. Una decisione può aggiungere controllo — una revisione, un avviso, una seconda verifica — e nient'altro: l'unica decisione di questo progetto che poteva dire "fermati qui" ha peggiorato ogni modello che guidava, e tanto più quanto migliore era il modello.
Evita anche di leggere la risposta dopo un ragionamento (il numero collassa a 0 o 1), di dividere un giudizio in atomi che descrivono qualcosa che entrambe le classi condividono (un atomo "distrugge dati?" ha segnalato puliture legittime quanto attacchi) e di prendere una probabilità grezza per calibrata. Tieni lo stato essenziale: una riga per ogni fatto che non è scattato (una colonna di "none") ha spostato il numero su ogni item, e lo stesso contenuto ripetuto si legge come uno schema che non c'è.
Verifica
- Il linter accetta ogni domanda (una domanda rifiutata non arriva mai a un modello).
- Ogni domanda risponde in entrambi i sensi sui tuoi elementi; una che dice sempre la stessa cosa sta leggendo il formato, non il testo.
- Con uno stato lungo e un modello locale, il prompt sta nella finestra di contesto — un taglio silenzioso passa per un risultato del modello.
- Da qualche parte, un campione etichettato mostra che il numero separa i casi che contano — e copre ogni modo in cui la decisione sbaglia, su entrambi i lati; un campione di un solo tipo di errore calibra solo quel tipo.
- Prima di leggere un cambio di formulazione come un effetto, rifai la domanda invariata e guarda quanto si muove il numero da solo.
Rischio
Una risposta tipizzata sembra più certa della prosa, e non lo è: un modello piccolo può ordinare bene e comunque sbagliare con sicurezza a metà della sua scala. Tratta un numero non calibrato come un indizio, registralo e calibra sulle tue etichette prima che una soglia significhi qualcosa.
Come usarla
La scheda è un dato. Clona il repository e importala per percorso — ciò che arriva dalla rete è trattato come contaminato e trattenuto in attesa di approvazione, che è il comportamento desiderabile e il motivo per cui qui non c'è un installatore in una riga.
git clone https://github.com/brcampidelli/chimera-agent.gitchimera skills-import chimera-agent/skills/system-one-design/SKILL.mdIntegrità
SHA-256 del file così com'è pubblicato. Chi lo importa può verificare che ciò che ha ricevuto sia ciò che questa pagina mostrava.
347bfae9f826835f3351a60983b826f9b59fe5a7a9c1b87bf1a7bc3415ece699