Bloc · 15 de setembre del 2026 · 3 min de lectura
Primer l'espai, després la cerca
Quan el context de dos clients conviu al mateix lloc, hi ha una xifra que ha de ser sempre zero: el que passa de l'un a l'altre. Per què esfis no filtra després de cercar, com s'apliquen les polítiques i què queda registrat de cada lliurament.
El dia que un agent que treballa per a un client rep una decisió d'un altre client, el problema no és que la resposta sigui pitjor. El problema és que ha sortit una informació que no havia de sortir. Per això, a esfis, l'espai no és un criteri més del rànquing: és el primer que es comprova.
Filtrar al final no n'hi ha prou
La temptació és cercar a tota la base de dades i descartar al final el que no correspon. Funciona fins que falla: un límit que talla abans del filtre, una puntuació que queda registrada, una peça que s'escola en un resum. Tot allò que arriba a puntuar-se pot acabar en algun lloc.
A esfis, l'ordre és aquest, i l'ordre mateix ja és la política:
espai → permisos → vigència → rellevància → límit
Primer es decideix què podria veure aquesta IA des d'aquest espai, i només això es puntua. Una coincidència perfecta d'un altre client ni tan sols entra al càlcul, per molt que s'assembli a la pregunta. Una prova automàtica ho vigila: l'autenticació d'Acme va amb Auth0, la de Globex amb Clerk, i una pregunta feta des d'Acme no pot retornar mai Clerk.
D'on surt l'espai
Un record sense espai és personal i arriba a tot arreu: en quina llengua vols les respostes o com t'agrada que s'escrigui el codi. Un record amb espai només surt dins del seu.
L'agent no ha de dir on és. L'espai es dedueix de la carpeta des d'on el client ha arrencat el servidor MCP: s'agafa l'espai amb el camí més llarg que la conté. Afegir una carpeta a l'app ja en crea l'espai, i la variable ESFIS_SPACE el fixa si cal. Quan un agent substitueix un record sense indicar cap espai, el nou hereta l'espai de l'antic.
Qui veu què
Les polítiques s'apliquen de la més concreta a la més general: aquesta IA en aquest espai, aquesta IA a tot arreu, tothom en aquest espai i, finalment, tothom. Si no hi ha cap regla, l'accés es permet.
esfis --deny '*' acme
esfis --allow claude-code acme
Des de la versió 1.8, també es pot fer a Configuració › Espais, sense obrir el terminal.
Denegar l'accés no vol dir només impedir la lectura. Qui no pot veure un espai tampoc no hi pot escriure, ni substituir-hi res, ni oblidar-ne res. I, per a aquesta IA, forget d'un identificador que no pot veure respon exactament igual que si no existís: ni tan sols sap que hi és.
Què queda registrat
Cada recall per MCP deixa un lliurament: quina IA l'ha fet, des de quin espai, amb quina pregunta, què hi ha entrat i què n'ha quedat fora, amb el motiu. Es desen identificadors i motius, no textos. Si més endavant oblides un record, no tornarà a aparèixer sencer a la traça.
esfis --why 212
L'explicació es genera en el moment de consultar-la. Fins ara, el que quedava fora per pertànyer a un altre espai només es comptava. Des de la 1.8, --why anomena les peces que haurien respost la pregunta i continua comptant la resta. Aquestes peces es puntuen quan tu consultes l'explicació, a la teva pantalla; el lliurament que va rebre l'agent no les va veure mai.
La xifra que vigilem
A Context, no memòria vam dir que hi ha una xifra que sempre ha de ser zero: context d'un espai que arriba a un altre. Aquest és el mecanisme que la manté a zero. Els detalls són a la documentació.

