Scarica AX Code · GratuitoDocumentazione

Questa pagina è tradotta dalla documentazione inglese. Comandi, identificatori ed esempi restano invariati. Runtime 7.24.4 · SDK 2.6.7. Testo inglese

Modalità di esecuzione (locale, cloud, ibrida, Council, Arena)

Stato: Attivo
Ambito: stato attuale
Ultima revisione: 2026-09-12
Responsabile: runtime di ax-code

AX Code può collocare il lavoro sull’inferenza locale, su provider ospitati o CLI, o su entrambi (ibrido), e può diramare il lavoro ad alta posta su più provider collegati (revisione council e arena best-of-N). Questa pagina documenta il comportamento distribuito di quelle modalità.

Fonte di verità

Quando il comportamento cambia, verifica rispetto a:

  • packages/ax-code/src/mode/ — policy pura, ibrido, aggregazione del council, classifica dell’arena, dibattito, budget, memoria, policy dei worktree, punteggio di implement-arena
  • packages/ax-code/src/tool/council.ts — strumento council multi-provider
  • packages/ax-code/src/tool/arena.ts e arena-implement.ts — arena di piano e di implementazione
  • packages/ax-code/src/session/prompt/prompt-routing.ts — collocamento ibrido quando modes.default è hybrid
  • packages/ax-code/src/config/schema-impl.ts — schema di configurazione modes
  • packages/ax-code/src/command/template/{council,arena}.txt — /council e /arena sono nel menu slash predefinito

Selettore della modalità di lavoro (Agent | Council | Arena)

TUI e Desktop espongono un controllo di modalità di lavoro per l’instradamento multi-modello. Il predefinito è Agent.

Selezione dell’interfaccia L’invio di testo libero diventa
Agent (predefinito) Prompt ordinario di un solo agente
Council Revisione multi-provider /council {your message}
Arena Best-of-N multi-modello /arena {your message}
  • Cromatura predefinita della TUI: il piè di pagina non mostra un chip Agent. Restano la modalità di esecuzione e Sandbox. /work-mode (palette Choose work mode) apre un selettore esplicito: Agent, Council e Arena, con costo e semantica su ogni riga. Le righe di insieme non disponibili sono disattivate, con la ragione.
  • Cromatura dell’insieme armato: dopo che scegli Council o Arena, compare un chip (Council · 2, oppure Arena (off) vuoto se in seguito diventa non disponibile). Fai clic sul chip per tornare ad Agent. Le chat nuove tornano ad Agent.
  • Disponibilità: una modalità è disponibile quando è attivata nella configurazione, almeno due provider collegati hanno un modello selezionabile e il tetto di membri configurato non è 1. Chip e righe del selettore si aggiornano in vivo quando i provider si collegano o si scollegano.
  • Suggerimento prima dell’invio (TUI): una riga di suggerimento sopra il prompt compare quando council o arena sono bloccati o ancora in controllo, e al primo uso di una modalità disponibile (per esempio Council mode · up to 2 reviewers · advisory · approval on first use). Dopo un invio riuscito in quella modalità il chip resta lo stato e il suggerimento si nasconde. Inviare mentre la modalità selezionata non è disponibile è bloccato, con la ragione: la bozza viene conservata e il prompt non viene mai declassato in silenzio a un’esecuzione a modello singolo.
  • Desktop: chip nella barra del compositore (accanto a Manual/Autonomous).
  • /council e /arena espliciti non vengono mai riscritti e restano i punti di ingresso una tantum.
  • Gli agenti specialisti (architect, security, …) restano sul selettore di agenti separato.

Modalità di collocamento in sintesi

Modalità Che cosa fa Muta il workspace? Predefinito
local Preferisce AX Engine (o il provider locale configurato) Sì (agente singolo) Quando fissi local, o quando l’ibrido colloca in locale
cloud Preferisce i provider di frontiera ospitati o CLI Sì (agente singolo) Quando il locale non è disponibile
hybrid La policy sceglie locale o cloud da disponibilità, complessità e privacy Sì (percorso singolo) Imposta modes.default: "hybrid"
council Dirama revisione o progetto strutturati; classifica consenso, maggioranza, minoranza e singolo No (consultivo) Strumento più /council, oppure modalità di lavoro = Council
arena Confronto di piani multi-modello, oppure best-of-N di implementazione su worktree Piano: no. Implementazione: solo nei worktree Su adesione (modes.arena.enabled) più modalità di lavoro = Arena

L’instradamento degli specialisti per parole chiave e la suddivisione per complessità (vedi Auto-Route) sono ortogonali al collocamento ibrido e alle modalità di insieme.

Lo sforzo del modello, o livello di pensiero (Veloce, Bilanciato, Profondo, Massimo), è anch’esso ortogonale: è un budget di ragionamento per modello, non una modalità di lavoro. Vedi Sforzo del modello.

Configurazione

In ax-code.json:

{
  "modes": {
    "default": "hybrid",
    "hybrid": {
      "preferLocalWhenAvailable": true,
      "escalateOnHighComplexity": true,
      "localProviderID": "ax-engine"
    },
    "council": {
      "enabled": true,
      "maxMembers": 3,
      "timeoutMs": 180000,
      "debateRounds": 0
    },
    "arena": {
      "enabled": true,
      "maxContestants": 3,
      "strategy": "verify_first"
    },
    "budget": {
      "maxEstimatedUsd": 0.5,
      "estimatedUsdPerMember": 0.05
    }
  }
}
Campo Significato
modes.default local | cloud | hybrid | arena | council. Non impostato: ibrido quando il locale corrisponde ai segnali della policy, altrimenti cloud per i predefiniti a percorso singolo.
modes.hybrid.* Preferenza locale, escalation ad alta complessità verso il cloud, id del provider locale
modes.council.* Attivazione, tetto dei membri, timeout, scala del timeout del modello di ragionamento, sostituzioni di timeout per membro, round di dibattito, presidente su adesione e diramazione adattiva (entrambi spenti per impostazione predefinita)
modes.arena.enabled Deve essere true perché lo strumento arena funzioni (spento per impostazione predefinita). Le modifiche a metà sessione vengono raccolte alla chiamata di strumento successiva (Config.getFresh). Oppure passa enableIfDisabled: true sullo strumento arena.
modes.arena.strategy verify_first (consigliato per l’implementazione), diversity oppure hybrid_score
modes.arena.reasoningTimeoutScale Moltiplicatore di timeout per i contendenti il cui modello dichiara capacità di ragionamento (ripiego su modes.council.reasoningTimeoutScale, poi 3)
modes.arena.memberTimeoutMs Sostituzioni assolute di timeout per contendente, con chiave "providerID" o "providerID/modelID" (ripiego su modes.council.memberTimeoutMs)
modes.arena.judge Giudice di rubrica in cieco per la modalità piano (predefinito: true)
modes.ensembleLedger Registro locale JSONL delle chiamate per le generazioni di insieme (predefinito: true; solo hash SHA-256 dei prompt, niente corpi, niente uscita)
modes.budget.* Tetto a chiusura in caso di fallimento sull’USD stimato per la diramazione di insieme

Collocamento ibrido

Quando modes.default è hybrid e l’utente o l’agente non ha fissato un modello:

  1. Se il provider locale (predefinito ax-engine) ha un modello selezionabile → preferisci local per complessità bassa o media.
  2. Se la complessità è alta e escalateOnHighComplexity è vero → cloud.
  3. Se la privacy richiede il locale e il locale è disponibile → local.
  4. Se il locale non è disponibile → cloud.

La complessità usa ancora il percorso esistente del modello piccolo e veloce per i messaggi low quando l’instradamento di complessità di auto-route è attivo (Auto-Route). L’ibrido non sostituisce l’instradamento degli specialisti per parole chiave.

Modelli locali e guida alla memoria: Selezione dei modelli di AX Engine. Elenco dei provider: Provider supportati.

Council (modalità di consenso)

Strumento: council
Slash: /council <question>

  1. Seleziona provider collegati diversi (diversità di famiglia: sotto un gateway multi-modello non riconosciuto la famiglia ripiega sull’id del modello; bias morbido dalla memoria degli esiti).
  2. Dirama in parallelo un prompt strutturato di revisione o di progetto.
  3. Aggrega i problemi in livelli di consenso (unanime tra i membri riusciti al quorum: almeno max(2, ⌈2/3 × attempted⌉) successi), maggioranza stretta (più della metà dei membri tentati), minoranza (almeno due) e singolo. I rilievi dichiarano il sostegno rispetto ai membri tentati (2/6), e i report a bassa copertura affermano che le etichette di consenso richiedono il quorum.
  4. Round di dibattito facoltativi: sintesi anonima (Chatham House) condivisa tra i round; nessuna attribuzione di marca. Il dibattito è limitato a tre round e si ferma prima in caso di convergenza.
  5. Restituisce un report markdown consultivo. Non modifica i file.

Servono almeno due membri risolti per partire: con meno, si interrompe con un preflight «membri insufficienti» prima di qualsiasi richiesta di approvazione o chiamata di modello (le coppie esplicite di modelli sullo stesso gateway contano come due). I livelli di consenso significativi richiedono comunque almeno due membri riusciti; altrimenti il report è marcato incompleto.

Ammissione dell’evidenza. I membri ricevono solo la domanda e il contesto forniti. Non ereditano la sessione chiamante e non leggono file dai percorsi nel brief. Includi i requisiti, il diff pertinente, i frammenti originali obbligatori e l’evidenza di verifica necessaria per l’ambito di revisione dichiarato.

Il context facoltativo è accettato alla lettera fino a 24,000 unità di codice UTF-16. Un contesto più grande restituisce context_rejected prima dell’inferenza dei membri; AX Code non lo accorcia mai in silenzio. Dividi la revisione in richieste circoscritte in modo esplicito, oppure rimuovi lo sfondo facoltativo conservando l’evidenza obbligatoria.

Prima di ogni round, AX Code controlla l’intero prompt contro un tetto locale di 128,000 byte e i limiti noti di input e di contesto di ogni membro risolto, riservando l’output richiesto e l’istruzione di ripiego più 2,048 token per lo schema e la cornice. La dimensione dell’input usa una stima deliberatamente conservativa in byte UTF-8. Può rifiutare prompt che ci starebbero; non è né un conteggio esatto del tokenizer né una garanzia sulla serializzazione del provider. I limiti di modello sconosciuti vengono dichiarati e restano soggetti ai tetti locali. Se un round di dibattito non ci sta, il risultato è incompleto e conserva il report dell’ultimo round completato.

contextAdmission registra la soglia locale di lunghezza del contesto, la dimensione fornita e un digest del contenuto; promptBudget controlla la richiesta completa separatamente. Entrambi devono passare prima dell’inferenza. Questi campi sono indipendenti da successfulMembers e non stabiliscono completezza semantica, freschezza delle fonti o qualità garantita della revisione.

Timeout. Ogni membro gira sotto modes.council.timeoutMs (predefinito 180000 ms); i modelli che dichiarano capacità di ragionamento ottengono modes.council.reasoningTimeoutScale volte quel budget (predefinito 3, quindi 540000 ms). Per dare a un membro noto come lento più tempo senza gonfiare l’attesa di tutti gli altri, imposta una sostituzione assoluta modes.council.memberTimeoutMs con chiave "providerID" o "providerID/modelID": la chiave esatta del modello prevale su quella di tutto il provider, ed entrambe prevalgono sul calcolo di base e di scala:

{
  "modes": {
    "council": {
      "memberTimeoutMs": { "deepseek/deepseek-v4-pro": 900000 }
    }
  }
}

ax-code.json è un file di configurazione protetto: gli agenti devono chiedere all’utente di modificarlo.

Corsie facoltative (spente per impostazione predefinita). modes.council.chairman: true aggiunge una chiamata di sintesi del presidente in cieco dopo l’aggregazione (e dopo eventuali round di dibattito): il presidente riceve solo rilievi anonimizzati (livelli e conteggi di sostegno, mai le identità dei membri) e restituisce un verdetto, azioni consigliate e note di dissenso. La suddivisione deterministica dei livelli resta l’output primario; il fallimento del presidente viene dichiarato e non è fatale. modes.council.adaptive: true avvia la diramazione con due membri e ne espande uno alla volta fino a maxMembers mentre la copertura del round 1 è sotto il quorum o il dissenso è materiale; gli inneschi di espansione sono costanti regolabili dal harness.

Quando usarlo

  • Compromessi di architettura, sicurezza o progetto
  • Revisione del codice ad alta posta, dove l’accordo tra modelli alza la confidenza
  • L’utente chiede una revisione multi-modello o una «seconda opinione»

Flusso dell'agente (importante)

Chiama council presto, una volta che l’evidenza pertinente è disponibile, con un brief context circoscritto in modo esplicito. Evita scavi ampi di esplorazione multipla non legati a quella revisione; raccogli l’evidenza originale obbligatoria prima di chiedere ai membri rilievi sul codice. Se l’utente ha chiesto council o arena, task_parallel viene rifiutato finché lo strumento di insieme non è stato l’azione primaria prevista.

Quando non usarlo

  • Domande banali (latenza e costo)
  • Codice sensibile alla privacy che non deve lasciare l’inferenza locale
  • Un solo provider collegato

Arena (best-of-N)

Strumento: arena
Slash: /arena <task>
Richiede: modes.arena.enabled: true e almeno 2 modelli selezionabili distinti su provider collegati (incluso un gateway condiviso)

Ammissione dell’evidenza (condivisa con il council). Il context facoltativo è accettato alla lettera fino a 24,000 unità di codice UTF-16. Un contesto più grande restituisce context_rejected prima di qualsiasi richiesta di approvazione, creazione di worktree o chiamata di modello: AX Code non lo accorcia mai in silenzio. Dividi il compito in richieste circoscritte in modo esplicito, oppure riduci lo sfondo facoltativo conservando l’evidenza obbligatoria. La richiesta di approvazione stessa scatta solo dopo che ogni preflight senza effetto è passato (disattivato, ammissione del contesto, preflight git di implementazione, budget, risoluzione dei membri).

mode: "plan" (predefinito)

  • Ogni contendente propone un approccio, i passi, i rischi e un punteggio di rischio autovalutato e calibrato (nessuna scrittura nel workspace).
  • Con almeno 2 proposte riuscite, una chiamata di giudice di rubrica in cieco (il primo membro risolto; identità rimosse, ordine casuale) valuta ogni proposta su copertura dei requisiti, fattibilità, piano di verifica ed evidenza di rischio (0–10 ciascuna, pari consentiti). Il totale della rubrica (0–40) è il segnale primario di classifica; il rischio autovalutato resta solo di visualizzazione. Il fallimento del giudice, o modes.arena.judge: false, ripiega sul punteggio autovalutato con una nota di dichiarazione.
  • Classificato prima per livello di verifica, poi per punteggio del giudice o di rischio, poi per diversità dell’impronta della patch (mai la sola popolarità). Le classifiche di piano sono consultive e non sono verifica di esecuzione.
  • Solo consultivo.

mode: "implement"

  • Richiede un worktree git primario con almeno un commit e nessuna modifica non committata, registra il commit di base esatto e crea un worktree git per contendente da quel commit.
  • Esegue un agente di implementazione in ogni worktree.
  • Cattura in un commit di ramo durevole le modifiche tracciate e non tracciate di ogni contendente, inclusi i commit creati dall’agente stesso.
  • Esegue i comandi di verifica del progetto rilevati (typecheck, test, lint) solo dopo che è stata catturata una patch non vuota.
  • Classifica con prima la verifica per impostazione predefinita: possono vincere solo le patch completate, non vuote, che superano la verifica; tra quelle che passano, preferisce rischio più basso e patch diverse.
  • Non fa il merge in automatico. Il report include percorsi dei worktree, rami e intervalli di commit, perché tu li ispezioni, li unisca o faccia cherry-pick.

L’arena di implementazione richiede un progetto git.

Regola di classifica (allineata alla ricerca)

Per i candidati di codice: prima la verifica, seconda la diversità, la popolarità mai da sola.
Il voto di maggioranza ingenuo su patch sbagliate simili è un anti-pattern (trappola della popolarità).

Comandi slash

Comando Scopo
/council … Guida la revisione consultiva multi-provider
/arena … Guida il best-of-N di piano o di implementazione

Sicurezza e costo

  • Sandbox e autonomia si applicano ancora al lavoro di un solo agente (Sandbox, Autonomo).
  • Council e arena di piano non scrivono file.
  • Gli scrittori dell’arena di implementazione sono isolati nei worktree; un worktree primario sporco viene rifiutato, così l’input non committato non può essere omesso in silenzio.
  • La diramazione di insieme moltiplica l’uscita verso i provider e il costo; usa modes.budget e tieni piccoli maxMembers / maxContestants. Le stime di budget prezzano il caso peggiore: council 2 × (debateRounds + 1) chiamate per membro (ripiego di schema più tentativo), arena di piano 2 per contendente più una chiamata piatta del giudice, arena di implementazione una stima documentata di 12 chiamate per traiettoria.
  • Un registro locale delle chiamate di insieme (ensemble-calls.jsonl nella directory di stato globale, tetto di 2 MB) registra gli esiti per generazione con hash SHA-256 dei prompt: mai i corpi dei prompt, mai le credenziali, niente uscita. Disattivalo con modes.ensembleLedger: false.
  • L’accordo tra modelli è evidenza, non prova: esegui i test prima di distribuire.