spectre — zsh — it

whoami

Spectre — runtime OTP-nativo per agenti in Elixir. Questo sito ci gira sopra.

cat manifesto.md

Agenti che si leggono come una mappa, non come un trucco di magia.

Gli articoli qui sotto sono stati scritti via Telegram da un agente che chiede prima di scrivere. Ecco come funziona e su cosa è costruito.

$

man spectre

Cos'è Spectre

github.com/elchemista/spectre
spectre/README.md

Un agente è un sistema supervisionato, non un prompt. Spectre gli dà un solo proprietario per ogni pezzo di stato, messaggi espliciti a ogni confine e un recupero previsto fin dall'inizio — come OTP tratta tutto il resto.

cat POLICY.md

Tutto ciò che è protetto passa da un solo confine:

  • modelli e route possono proporre lavoro
  • il lavoro protetto deve passare da una policy deterministica
  • l'approvazione cambia lo stato ma non esegue il lavoro
  • l'esecuzione avviene solo tramite una chiamata esplicita dell'host
  • ogni esito finale viene restituito come dato

Un agente Spectre deve leggersi come una mappa, non come un trucco di magia.

support_agent.ex elixir

L'agente sta tutto in un modulo: il modello, il router, un'azione protetta e la policy che la sorveglia.

defmodule MyApp.SupportAgent do
  use Spectre.Agent

  model(MyApp.LLM, purpose: :smart)
  router(via: [:regex, :embedding, :llm_classifier])

  actions MyApp.SupportActions do
    protect(:delete_account, with: :delete_account_confirmation)
  end

  policy :delete_account_confirmation do
    request(:confirm_delete_account)
    accept(:confirmed_delete, regex: ~r/^yes, delete it$/i)
    reject(:cancel_delete, regex: ~r/^(no|cancel)$/i)
    attempts(3, then: :cancel_pending)
  end

  interrupt :HELP, regex: ~r/^(help|menu)$/i do
    reply(:help)
  end
end
$ spectre trace --this-site

Ogni articolo qui sotto è passato da questo percorso.

telegram / mcp — amministratore autenticato
└── spectre_beam — confine di canale, identità
└── spectre — routing, stato, policy, effetti
├── skills — reader · editorial · operations
├── spectre_prism — livello fast · balanced · deep
├── spectre_kinetic — action language → azione tipizzata
├── spectre_lens — controlla la pagina renderizzata
└── policy — conferma → effetto
└── writer → git → ets — la pagina che stai leggendo
$ why --like-this

Il routing è una manopola, non un dogma: regex, un dataset o un classificatore LLM completo. Quello che succede dopo la decisione resta deterministico.

Preso in prestito dai router di Phoenix, dagli schema Ecto, dai worker Oban e dagli alberi di supervisione OTP. Non un framework in cui sparire.

Niente SQL. I contenuti stanno su GitHub, Phoenix serve una proiezione ETS e l'agente chiede prima di scrivere.

github.com/elchemista/ex_blog — questo sito, open source

ls -1 spectre*

L'ecosistema

8 librerie

Sotto questo sito girano anche: vettore, ex_fastembed, ex_gram.

ls -lat posts/

Ultime pubblicazioni

Appunti scritti costruendo tutto quello che sta qui sopra.

0 file
stderr

ls posts/

ls: nessun file corrispondente in questa selezione

Il prossimo pezzo è già in lavorazione. Torna presto, oppure iscriviti al feed.

exit status 1