Agents, models, eines i habilitats d’IA¶
Responsabilitats del frontend de conversa¶
features/agent gestiona la composició del xat, les sessions, les confirmacions,
les accions dels missatges i la presentació del flux. El seu punt d’entrada públic
exporta AgentChat i el contracte complet de propietats. L’aplicació carrega
aquesta entrada dinàmicament; els quaderns importen el mateix component dins del
seu fragment de ruta opcional. Cap consumidor accedeix als mòduls privats del xat
ni força el component a un tipus més restringit.
Les llistes de referències de context es mantenen de només lectura a la interfície
i només es copien en construir la petició HTTP existent. Això preserva les
metadades de les fonts, l’àmbit del quadern, les càrregues útils, la reproducció
del flux i les claus de persistència. Els adaptadors genèrics HTTP i NDJSON
continuen a shared/api; les proves que combinen feedback i transport pertanyen
a la funcionalitat d’agent perquè el codi compartit no depengui d’interiors de la UI.
Model de capacitats¶
Gnosi distingeix models, agents, habilitats i eines:
- Model: una ruta de proveïdor amb capacitats, límits, metadades de cost, fiabilitat i credencials.
- Agent: instruccions, selecció de model, política de memòria i punts de control, i habilitats assignades.
- Habilitat: un paquet de capacitats documentat que aporta instruccions i restringeix les eines compatibles.
- Eina: una operació invocable classificada per efecte i origen.
- Font de context: material d’un Vault, taula, fitxer o origen extern seleccionat per l’usuari i afegit a una conversa amb límits explícits d’accés i mida.
El conjunt d’eines de coneixement del Vault manté els objectes LangChain
StructuredTool al punt de registre i només n’extreu les funcions tipades per
compondre eines internament. La creació de pàgines es registra mitjançant el
responsable canònic del Vault; la cerca obté explícitament el seu magatzem de
càrrega diferida, i les lectures de camins i PDF conserven els límits d’accés i
de mida fixats pel servidor.
El feed d’Artificial Analysis és una frontera tipada de comparació al servidor. Manté les credencials API privades, valida cada resposta paginada, completa només les metadades absents del catàleg, preserva les mètriques verificades de la memòria cau i recorre a la memòria cau antiga o a models.dev amb procedència explícita.
Arrencada i flux de peticions¶
sequenceDiagram
participant Start as App lifespan
participant MCP as MCP clients
participant Catalog as Skill and tool catalog
participant Graph as LangGraph workflow
participant Chat as Chat endpoint
participant Model as Selected model
Start->>MCP: Connect and discover tools
Start->>Catalog: Reconcile built-in, user, generated, and plugin entries
Catalog->>Graph: Build allowed capability set
Chat->>Graph: Message, agent, session, attachments, context
Graph->>Model: Route prompt/tool cycle
Graph->>Catalog: Validate tool effect and confirmation
Graph-->>Chat: Ordered events and final response
Les importacions històriques d’Agent continuen disponibles mitjançant façanes de compatibilitat estretes. El paquet de domini gestiona la correspondència i l’emmagatzematge del context, l’execució d’eines pròpies, els contractes d’evidència i citació, l’estat del flux, les confirmacions, les sessions i la composició de rutes. El catàleg i les rutes de governança d’agents segueixen el mateix patró al domini de configuració, preservant l’ordre de les rutes i els identificadors d’operació.
L’encaminador de models resol combinacions de proveïdor i model, límits de context, suport d’eines, límits de despesa i política d’alternatives. Obté les credencials del magatzem local de secrets o de la migració d’entorn admesa, sense exposar-les al frontend. Registra els motius de fallada separadament de les respostes visibles perquè els operadors puguin distingir temps d’espera, rebuig del proveïdor, credencials invàlides, excés de context i incompatibilitat d’eines.
El client híbrid històric continua disponible per a la composició social, els esborranys de correu i els analitzadors antics del pipeline a través d’una frontera de compatibilitat estrictament tipada. Delimita els mapes YAML dinàmics de proveïdors, exigeix un URL concret de proveïdor abans de qualsevol petició de xarxa, valida els embolcalls de resposta compatibles amb OpenAI, desa atòmicament la memòria cau indexada pel hash del prompt sota el directori de dades per dispositiu i preserva l’ordre establert de model principal i alternativa sense exposar credencials.
La transcripció Whisper local exposa un protocol de model i una forma de resultat
tipats; l’àudio es manté al dispositiu i la memòria cau dels models descarregats
sota demanda resideix sota GNOSI_DATA_DIR, independent del proveïdor.
La importació opcional no tipada de faster-whisper queda confinada a aquest
adaptador. La conversió de divises delimita igualment el JSON remot i el desat
abans dels càlculs de pressupost, conserva les alternatives amb dades reals
antigues i valors estàtics, i sempre retorna una taxa tipada positiva d’unitats
per dòlar nord-americà.
L’encaminador normalitza les metadades desconegudes del registre abans d’iterar-les, compara les quotes de tokens i finestres de context com a enters i manté el registre d’ús rere fronteres tipades de camins, càrrega i desament atòmic. Els límits monetaris distingeixen explícitament l’absència de límit del zero, preservant la política existent quan s’apropa el límit i les alternatives de models gratuïts, mentre que les dades persistides malformades es recuperen com un registre buit.
L’observabilitat d’agents, la reproducció, els diaris de flux, les reserves de
torns, la qualitat revisada, les memòries personal i semàntica, les avaluacions
de models i l’auditoria i salut de capacitats són estat operatiu per dispositiu.
Els magatzems SQLite/JSON es resolen directament mitjançant GNOSI_DATA_DIR;
mai no deriven la ubicació d’un Vault ni d’un proveïdor de núvol. Les proves
injecten aquest mateix resolutor canònic, i les claus de xifratge del flux
romanen al subdirectori secrets del directori de dades local.
Els perfils utilitzen pinned: només el proveïdor i model configurats. Les opcions antigues resilient, adaptive i decision_engine: jev ja no seleccionen alternatives per als perfils. El formulari desa un únic model sense alternatives. Les utilitats antigues continuen cobertes a backend/tests/test_agent_model_decisions.py; l’edició de perfils es comprova a frontend/src/features/settings/global-settings/AIAgentForm.test.tsx.
El client MCP per stdio valida els objectes JSON-RPC, tipa explícitament les peticions asíncrones pendents i encamina eines a través d’una memòria cau que només es refresca quan no hi troba una entrada. Els catàlegs d’eines malformats fallen localment, sense propagar valors no comprovats a l’execució de l’agent.
La configuració d’IA manté les credencials, les marques de connexions eliminades, el registre de models i les rutes de pressupost i ús en una façana de compatibilitat estrictament tipada. La generació i correcció de l’editor viuen al domini de configuració d’IA; les càrregues validades de mapes YAML i les metadades explícites de resposta històrica preserven exactament els contractes HTTP i OpenAPI existents.
Governança d’eines¶
Els descriptors d’eina declaren efectes de lectura, escriptura, externs i destructius. Les eines generades passen una validació basada en AST i s’executen en un entorn restringit. El validador bloqueja capacitats perilloses com l’escriptura indiscriminada de fitxers, l’accés a l’entorn, el recorregut dinàmic d’atributs de doble guió baix i les importacions insegures.
Les accions que requereixen confirmació creen registres pendents durables. La confirmació vincula usuari, sessió, eina, arguments, efecte i caducitat; acceptar una acció caducada o alterada no autoritza una invocació diferent. El manteniment caduca i elimina registres independentment del trànsit del xat.
Les metadades versionades de capacitats es delimiten a partir d’un model o mapa abans de validar-les. Els contractes de versió 2 rebutgen l’operació si les polítiques de temps d’espera, idempotència, privacitat, sortida de xarxa i resultat durable no són completes i vàlides; els descriptors històrics de versió 1 es mantenen compatibles. La cancel·lació cooperativa embolcalla qualsevol objecte Python esperable en un futur cancel·lable, de manera que els adaptadors de proveïdor basats en corrutines o futurs comparteixen la mateixa semàntica de token.
Habilitats i connectors¶
Les habilitats integrades d’execució viuen a pipeline/skills/. Els paquets
d’usuari i de connectors es validen en un catàleg preservant l’origen, l’activació,
la compatibilitat i la distinció entre camps gestionats i camps de l’usuari.
La reconciliació de connectors és idempotent: deshabilitar-ne un suspèn la seva
aportació gestionada sense eliminar les personalitzacions de l’usuari.
Les traduccions de files i pàgines utilitzen l’operació
compartida translation. Els botons de la interfície seleccionen el perfil del
plugin de Traducció; les accions dins d’una conversa hereten el perfil de l’agent
en execució. El perfil determina el model, les polítiques i el registre d’activitat.
El panell de traducció enllaça a aquest perfil. Els arguments històrics de DeepL
i Softcatalà es mantenen per compatibilitat, però s’ignoren; ja no hi ha
encaminament per parelles de llengües ni alternativa amb marcadors.
La reconciliació de connectors també pot executar-se abans de compondre les
rutes FastAPI. Deriva el directori .gnosi del context canònic del Vault
actiu i llegeix l’estat mitjançant
backend/domains/configuration/plugin_state.py; mai no importa una ruta del
Vault només per resoldre camins o configuració. Abans que existeixi el magatzem
del procés, el mateix normalitzador i escriptor atòmic operen rere un bloqueig
d’inicialització; després de la composició, la reconciliació reutilitza el
magatzem compartit i els bloquejos de mutació.
La façana històrica de memòria Chroma continua sent de càrrega diferida i estrictament tipada per compatibilitat d’importació. Importar-la només crea el directori d’emmagatzematge configurat; no carrega models d’embeddings. Si no hi ha embeddings, les lectures són buides i les escriptures fallen explícitament, mentre que la memòria personal canònica governada continua al servei SQLite acotat del domini Agent.
Context i memòria¶
L’estat de conversa queda acotat per agent i sessió. L’ordenació dels missatges a la UI usa identificadors estables, no només l’hora d’arribada. Els adjunts i les fonts de context validen camins, mida, tipus de fitxer i àmbit d’espai de treball i Vault. Les fonts externes grans usen representacions cercables en lloc d’injectar text brut il·limitat a cada torn.
El punt de control durable continua sent el registre complet d’auditoria, però els prompts del proveïdor usen una projecció acotada. Els missatges anteriors d’usuari i les respostes finals de l’assistent romanen com a memòria de conversa, mentre que s’ometen els grups històrics de crides d’eines i les seves càrregues brutes. El torn actual conserva els grups complets del protocol de crida i resultat, i el conjunt de la projecció conversacional té un límit estricte de caràcters encara que el model anunciï una finestra de context molt més gran.
La memòria personal revisada és un magatzem local separat i explícit, acotat per Vault i agent. A Configuració, els usuaris poden crear, editar, deshabilitar, caducar i eliminar fets o preferències amb revisions. La recuperació és lèxica i es limita a cinc elements; el prompt els etiqueta com a dades que no poden canviar polítiques, eines ni autoritzacions. Els punts de control de conversa i les associacions de vocabulari mantenen cicles de vida separats.
La navegació del Vault aporta context de pàgina, taula i vista activa només per al torn actual. El servidor amplia un tauler amb una única vista incrustada a la vista canònica de la taula, reaplica filtres i ordenació, i exposa una consulta exacta i acotada de files amb recompte i paginació. Les lectures exactes de pàgines i taules són crides d’eina creades pel servidor; després d’un resultat complet, la síntesi s’executa sense eines vinculades perquè un model insistent no repeteixi la crida fins al límit de recursió del graf.
La petició canònica de Recursos d’autoria pròpia també s’encamina al servidor. Gnosi executa la vista desada d’autoria exactament una vegada i formata el recompte i la llista acotada de registres directament a partir del resultat governat. Aquest camí no fa cap crida de model després de l’èxit de l’eina. Les peticions que requereixen interpretació o generació continuen amb la síntesi normal del model.
El mateix contracte determinista s’aplica ara a inventaris arbitraris del Vault adjunt, no només a temes o taules concrets. Abans de seleccionar eines, el servidor classifica l’operació com a conversa, consulta, inventari, anàlisi o acció governada. Les peticions d’inventari reben una exploració estructurada exhaustiva amb recompte exacte, identificadors canònics, resolució de tipus del registre actiu, agrupació per tipus, metadades seleccionades de procedència i paginació per desplaçament. El tema és una dada de consulta: afegir un tema o una taula nova no afegeix una branca d’intenció. La primera pàgina i les continuacions es formaten directament a partir del resultat governat, sense cridar cap model.
El mode de petició també evita que l’adjunt Coneixement per defecte desviï feines no relacionades. El mode de conversa no llegeix fonts ni vincula eines passives. Les peticions explícites de correu, calendari, contactes, Reader, temps meteorològic, web, Notion o Zotero ometen les eines de Vault per defecte, tret que la mateixa petició també esmenti un objecte del Vault; l’habilitat pertinent assignada continua disponible.
Cada petició porta ara un pla universal efectiu del torn al graf. El pla combina mode d’operació, dominis de dades explícits, descriptors actius, evidència requerida, permisos condicionats, localitat del proveïdor i estratègies d’execució i resposta. És estat propi de la petició que substitueix les dades del punt de control de torns anteriors. El node Brain interseca la selecció normal d’eines amb els noms del pla, de manera que les metadades mostrades a l’usuari descriguin les eines realment disponibles, no un classificador orientatiu.
La privacitat també és pròpia de cada petició. El pla distingeix processament local, evidència privada tractada pel model remot configurat, lectures externes i conversa ordinària. Les dades d’un Vault adjunt no compten com a utilitzades quan un domini explícit com Mail, Reader, Notion o web n’exclou les eines. La UI només informa d’aquesta situació i dels recomptes de fonts; els cossos de les fonts, prompts, secrets i raonament ocult no entren mai a les metadades de transparència.
Les respostes finals del model passen per un verificador determinista. Només comprova els resultats d’eines del torn actual i la política d’efectes; bloqueja afirmacions d’accions governades completades sense un resultat reeixit i respostes dependents de fonts que n’han omès l’evidència obligatòria; registra fallades d’eines com a limitacions i emet recomptes d’evidències i eines. Les respostes d’inventari usen el mateix verificador encara que el servidor en generi el text. La verificació mai no invoca un segon model.
Les respostes dependents de fonts també inclouen citacions d’afirmacions
validades pel servidor. Els resultats d’eines defineixen els únics identificadors
de font vàlids del torn. Els inventaris deterministes associen cada línia al
registre canònic del Vault i les afirmacions de recompte, agrupació, paginació i
mètode al manifest exacte del resultat de l’eina. La síntesi del model pot emetre
marcadors [[cite:SOURCE_ID]]; el verificador elimina els marcadors vàlids del
text visible, rebutja identificadors absents de l’evidència actual i marca el
fonament incomplet com a limitació. El xat mostra una correspondència acotada
entre afirmacions i fonts amb enllaços segurs a Vault, Reader o HTTP(S), sense
persistir fragments ni camins de fitxer com a metadades de citació.
Cada font citada també incorpora una empremta curta de versió derivada de la
revisió, etag, data d’actualització o manifest exacte de l’eina del torn.
La UI distingeix versions exactes de versions basades només en identitat,
sense exposar cossos de fonts ni secrets de connectors.
La cerca del Vault usa una classificació híbrida determinista: expansió de termes lèxics multilingües, reforços per títol exacte i rol d’índex, i puntuació vectorial reconstruïble. Els resultats es desen breument en una memòria cau indexada només per Brain, consulta i k; és acotada i no reté prompts ni cossos de fonts il·limitats. Els fragments retornats es delimiten com a evidència no fiable i es marquen instruccions semblants a injeccions; el prompt de Brain tracta cada font, connector, adjunt i resultat web com a dades, no instruccions.
Els inventaris exhaustius reutilitzen els índexs locals persistits de documents analitzats i enllaços. Els identificadors de relació s’amplien als títols indexats dels destins, de manera que un registre vinculat a un projecte o font coincident es pugui trobar sense reobrir cada document sincronitzat al núvol. Les escriptures normals de Gnosi actualitzen aquests índexs; el manteniment periòdic reconcilia edicions externes. Els registres absents de la memòria cau recorren a una lectura directa acotada. La cerca semàntica top-k continua sent el camí per descobrir evidències en consultes i anàlisis, i mai no es presenta com un inventari complet.
Les càrregues d’inventari també informen de l’antiguitat de l’índex d’enllaços, la cobertura de memòria cau, les lectures directes alternatives i l’estat d’ús de dades antigues mentre es revaliden. Un índex antic o absent demana una reconciliació protegida en segon pla sense retardar la resposta; el missatge conserva la limitació i no suggereix que l’índex s’acabi de reconstruir.
L’anàlisi de tota una col·lecció Reader s’admet com una operació de segon pla
mitjançant la façana de treballs de capacitats independent del proveïdor.
El servidor crea determinísticament la crida de treball, retorna un
identificador amb espai de noms reader: i exposa estat, disponibilitat del
resultat, represa després de fallada o interrupció i cancel·lació cooperativa
als detalls del missatge. La mateixa façana és extensible a altres proveïdors
durables que gestionin les seves fonts; les peticions no compatibles es mantenen
en primer pla i mai no es presenten com a treball durable.
Les eines d’agent de Reader exigeixen un Vault actiu concret abans d’analitzar o persistir pàgines, exposen càrregues d’àmbit tipades i només conserven un decorador identitat per a entorns mínims sense LangChain. Les lectures i mutacions d’articles delimiten els descriptors ORM històrics en una única frontera, preservant noms d’eina, efectes i respostes serialitzades. Les eines de context de Reader adjunt apliquen la mateixa comprovació i reutilitzen un únic Vault resolt per autoritzar l’estat i recuperar resultats, evitant canvis d’àmbit entre Vaults dins d’una crida. L’embolcall de contingut no fiable i els límits de sortida no canvien. Els proveïdors i despatxadors de cua registren contractes versionats que declaren tipus de treball, idempotència, concessió temporal, pressupostos d’intents i crides de model, resultat, represa i cancel·lació. Els tipus desconeguts fallen visiblement en lloc d’entrar en una branca de worker codificada a mà.
Els treballs Reader persisteixen una política acotada de recuperació juntament amb els punts de control. Un temps d’espera transitori, una fallada temporal de xarxa o servei, o un límit de peticions activa una espera cancel·lable amb retard exponencial acotat. Els intents i les crides de model consumeixen pressupostos persistits separats abans de qualsevol crida nova. Un temporitzador en segon pla gestiona els reintents normals del procés; la reconciliació de llistes i estats inicia un reintent vençut després de reiniciar el backend. Les fallades permanents, cancel·lades, malformades o sense pressupost continuen sent terminals i visibles. La represa manual usa els mateixos pressupostos i no pot eludir el límit del bucle.
La resta de torns de només lectura tenen un pressupost independent de tres resultats: si el model continua demanant eines, la invocació següent de Brain rep les evidències acumulades sense eines vinculades i ha de sintetitzar la resposta. El límit de recursió del graf continua sent, per tant, una última xarxa de seguretat, no el control normal del flux.
El pla universal també incorpora un pressupost operatiu immutable per torn: temps d’espera HTTP i màxims de crides de model, crides d’eina i resultats de lectura. Les converses reben un pressupost curt sense eines; les consultes i inventaris, pressupostos acotats de lectura; les anàlisis i accions governades, un pressupost més gran però finit. El graf aplica aquests valors abans de la invocació següent de proveïdor o eina, i el flux exposa els mateixos valors i si s’ha assolit un límit. Un pressupost de zero eines declara un mode, no eludeix l’autorització: les lectures de context obligatòries creades pel servidor segueixen el seu camí explícit. Les eines dinàmiques de context no es trien per a una pregunta general si l’usuari no ha aportat realment cap font de context.
Les automatitzacions de capacitats persisteixen àmbit, revisió, calendari i pressupostos per execució a la seva base SQLite migrada dins del directori local canònic. La reserva d’execució és transaccional, rebutja tasques solapades o que excedeixen el pressupost, recupera concessions caducades i registra un estat terminal encara que falli l’agent. L’absència de configuració de dades o una fallada de desament i lectura de comprovació avorta explícitament en lloc d’informar d’una automatització que no s’ha desat.
El ToolNode conserva el conjunt complet d’habilitats actives per executar i comprovar polítiques; cada invocació de model només vincula lectures passives i eines condicionades explícitament autoritzades per la petició actual. Els perfils automàtics històrics també limiten les lectures passives a coincidències multilingües amb el domini demanat i a l’operació exacta de context requerida, amb un màxim acotat; les habilitats d’àmbit explícit conserven el seu conjunt reduït de lectures assignades. Les lectures obligatòries de context només vinculen l’eina de la font requerida al primer pas. Aquesta vinculació per torn es deriva de la petició i mai no es reutilitza com a autorització en memòria cau.
El xat mesura cada resposta des de l’enviament de la petició fins al final del flux. Un comptador en viu de segons enters es reemplaça pel temps desat a la resposta completada. El flux també informa de les durades de preparació del servidor, encaminament, eines, model, temps residual i total, amb recomptes de crides i tokens; els detalls del missatge conserven aquest diagnòstic acotat. Cada missatge visible també permet rebobinar la conversa: després de confirmar, el servidor retalla el punt de control canònic de l’àmbit al límit complet del torn i retorna la seva projecció pública. El rebobinat només canvia la memòria de conversa; mai no presenta com a revertides confirmacions completades ni efectes externs.
Durant l’execució, el flux emet una marca de fase acotada per a encaminament,
generació del model o execució d’eines. El xat mostra la fase activa al costat
del comptador de segons i la restableix en acabar el torn. Els codis estables de
fallada transitòria (agent_loop_exhausted, temps d’espera, servei no disponible
i variants de límit de peticions) inclouen metadades orientatives de recuperació.
El client ofereix un reintent deliberat de la petició original després de
revisió de l’usuari; el servidor mai no repeteix automàticament un torn fallit,
perquè pot haver-se preparat una acció governada. Els errors permanents de
configuració o autorització conviden, en canvi, a editar la petició o els
ajustos d’execució.
El flux és propietari d’un token opac de cancel·lació. L’acció explícita de cancel·lar crida un endpoint autenticat i acotat al flux, i arriba al pont de cancel·lació asíncrona del proveïdor. Una desconnexió accidental del navegador o servidor intermediari no cancel·la el torn acotat acceptat: un productor independent continua, i els esdeveniments es poden reprendre. Els workflows en memòria cau no capturen esdeveniments específics de petició i els tokens s’alliberen en acabar el productor. Les fallades de proveïdor usen un tallacircuit acotat del procés, indexat per proveïdor i model; els errors d’autenticació i política continuen sent terminals. Els descriptors també exposen un estat de salut lleuger —saludable, no disponible o en quarantena temporal— perquè identificadors, noms o gestors absents i adaptadors que fallen repetidament no s’anunciïn com a capacitats executables. Dues fallades dins de la finestra de salut acotada posen breument l’eina en quarantena; una crida posterior reeixida esborra el registre de fallades consecutives.
El transport delimitat per salts de línia s’embolcalla en la versió 1 del protocol. Cada esdeveniment conté un identificador opac de flux, identificador d’esdeveniment, seqüència monòtona, identificador de traça i identificador opcional de torn. Una operació pendent del proveïdor es manté activa mentre s’emet un senyal de vida, de manera que un proveïdor lent però saludable no es cancel·li pel mecanisme de manteniment de connexió. El client ignora seqüències duplicades. Els esdeveniments es xifren en un diari local vinculat a l’àmbit durant com a màxim una hora, i el navegador reprèn des de l’última seqüència durant tot el temps d’espera del torn. La reproducció no repeteix crides de model, eines ni accions governades: només reaplica l’embolcall original d’esdeveniments.
Els prompts llargs conserven el punt de control complet com a registre d’auditoria, però afegeixen a la projecció del proveïdor un resum determinista acotat dels torns humans i d’assistent omesos. El resum només conté fragments curts i hashes opacs; no arrossega càrregues brutes d’eines ni cossos de fonts sense límit.
Cada torn amb flux rep un trace_id opac que es propaga per planificació,
selecció del model, salut d’execució, missatges, errors, mètriques i
esdeveniments de finalització. Això dona als registres distribuïts i a la UI
una clau de correlació sense persistir prompts, credencials ni text de fonts.
La disponibilitat MCP es desa breument en memòria cau per servidor, i el
comprovant d’execució inclou instantànies de proveïdors i connectors.
La recuperació del Brain combina puntuació vectorial reconstruïble, expansió lèxica multilingüe normalitzada sense accents, reforços de títol i índex, memòria cau acotada i evidències marcades contra injeccions. Les proves HTTP reals de taules i paperera són opcionals i s’executen a CI contra un Vault d’un sol ús i un port separat; la suite hermètica sempre apunta a un port tancat perquè no es pugui modificar accidentalment el backend natiu del desenvolupador.
Les files editables del registre de models es completen des del catàleg canònic abans d’arribar a Configuració o a l’encaminament d’execució. Les actualitzacions parcials de pressupost o configuració es fusionen amb les metadades existents de capacitats, finestra de context, cost i qualitat. Els canvis de proveïdor o model invaliden els grafs en memòria cau perquè les eines i credencials siguin efectives al torn següent. La capçalera del xat informa del model seleccionat, el nombre exacte d’eines i motius accionables de qualsevol degradació.
Els detalls del missatge aporten una explicació operativa acotada: mode, ruta, execució en primer o segon pla, eines realment utilitzades, recompte d’evidències, situació de privacitat, estat del verificador, actualitat de l’índex, estat durable del treball quan existeix i temps. És un comprovant d’execució, no una cadena de pensament.
El mateix comprovant inclou una interpretació semàntica depurada —operació, confiança, conceptes i estratègia de recuperació—, la decisió del selector de capacitats —nombre d’eines candidates i condicionades— i l’àmbit del punt de control. Les metadades del client exclouen resums de consulta, cossos de fonts, càrregues històriques d’eines, prompts i raonament ocult.
Les mètriques del torn inclouen una estimació en USD basada en el catàleg de proveïdors, juntament amb tokens i latència. El registre persistent de despesa continua sent la font de veritat; l’estimació és una metadada de visualització acotada i mai no autoritza res per si sola. La suite d’avaluació determinista també comprova que tots els plans respectin el límit de latència de 120 segons.
El corpus determinista de backend/agent/evals/ cobreix tots els modes de
petició, les quatre llengües de la UI, la delimitació de dominis, el tractament
privat local i remot, les accions governades i l’admissió durable de Reader.
S’executa abans de la suite de backend a les peticions d’integració pertinents
i cada dia; qualsevol cas fallit acaba amb codi no nul, sense cridar proveïdors
ni consumir tokens.
Els errors de producció i el feedback amb polzes de l’assistent alimenten
un cicle local i autenticat de qualitat. POST /api/chat/feedback només
accepta metadades operatives acotades i rebutja explícitament contingut de
resposta. El servidor registra errors de flux amb codis estables. El
magatzem SQLite local reté hashes d’identitats de torn, sessió i agent,
camps del pla i verificador, noms d’eina i franges de temps; no té columnes
de prompts, respostes, fonts, títols, camins, URL, fragments, adjunts ni
càrregues brutes d’eines. El feedback negatiu i els errors creen o actualitzen
determinísticament candidats sintètics d’avaluació deduplicats. Els
administradors els llisten, accepten, rebutgen, reobren i executen a través
de /api/ai/evals/candidates*. Els casos locals acceptats continuen separats
del corpus versionat de CI fins que un mantenidor els hi incorpori expressament.
Els administradors també poden executar una avaluació explícita amb cost d’un
model real per al model principal assignat a un agent. Usa tres prompts
sintètics multilingües i d’esquema, i només desa identitat de ruta, puntuació,
latència, tokens i codis estables de fallada. Mai no persisteix prompts ni
respostes. Les puntuacions revisades poden influir en l’ordre adaptive,
però no poden afegir models ni capacitats permeses.
Qualitat adaptativa i descobriment de capacitats¶
La salut d’eines sobreviu als reinicis del backend en un magatzem SQLite local acotat. Cada capacitat conserva comptadors d’èxits i fallades, una finestra de fallades consecutives, quarantena temporal i latència acumulada d’invocació. La construcció del catàleg actiu llegeix aquestes files en una instantània de memòria cau de vida curta, en lloc d’obrir la base per cada eina. Una invocació posterior reeixida aixeca la quarantena però conserva totals acotats del servei per al diagnòstic.
La recuperació d’inventaris del Vault combina frases exactes, tokens lèxics
normalitzats, similitud conservadora de caràcters, metadades, text en memòria
cau i relacions canòniques, mantenint una exploració exhaustiva de l’àmbit
autoritzat. Els usuaris poden afegir o eliminar associacions de vocabulari
revisades a /api/ai/semantic-associations. El magatzem local desa el hash
de l’àmbit del Vault i només conté parelles de termes acotades i un hash de
l’autor; mai no desa prompts, respostes, cossos de fonts, camins, credencials
ni text executable.
El verificador determinista final publica ara una puntuació de qualitat sobre text visible, evidència requerida, èxit d’eines, afirmacions de finalització sustentades, citacions, paginació d’inventaris i tractament de contradiccions. Els fets estructurats amb el mateix registre i camp però valors incompatibles al torn actual produeixen un comprovant acotat de conflicte amb noms de procedència, però sense valors privats. La resposta visible rep un avís localitzat en lloc de fusionar silenciosament els fets. Un corpus de respostes sense proveïdor complementa el d’encaminament i prova aquests contractes finals a CI.
Les evidències d’eines i adjunts s’examinen per detectar indicadors de substitució d’instruccions, suplantació d’autoritat, coerció d’eines i exfiltració de secrets. Només les categories acotades de risc arriben a les metadades de resposta; el text d’origen continua sent una dada no fiable i el comprovant sempre registra que l’autorització no ha canviat. El corpus adversarial de respostes comprova aquest límit.
Cada pla exposa un límit flexible de síntesi abans del temps d’espera estricte del torn. Quan s’assoleix aquesta reserva i hi ha l’evidència requerida, Brain elimina les eines vinculades i sintetitza el millor resultat sustentat; el flux emet una fase de termini perquè el client mostri la transició. Si encara falta evidència obligatòria, aquest límit continua sent determinant, en lloc de produir una resposta sense suport.
El descobriment de capacitats forma part del pla de torn aplicat. Per a cada
domini explícit informa d’una capacitat utilitzable, una d’assignada però
condicionada, o una connexió o habilitat absent. El descobriment no pot
instal·lar programari, concedir permisos ni autoritzar accions condicionades.
Configuració → IA → Qualitat mostra només metadades de recomptes de torns,
franges de latència, resultats de verificació, errors, candidats d’avaluació,
salut persistent de capacitats i l’editor reversible de vocabulari a través
de /api/ai/quality/dashboard.
Els contractes de capacitat poden optar per la versió 2 d’esquema mitjançant metadades del descriptor. La versió 2 rebutja l’operació si el temps d’espera, la idempotència, la privacitat, la sortida de xarxa i el resultat durable no són vàlids. Les eines i habilitats històriques de versió 1 continuen visibles com a antigues o parcials a Configuració mentre migren; les metadades de conformitat mai no fan executable un gestor.
Configuració de LLM Wiki¶
Coneixement utilitza el seu perfil de plugin. El paràmetre històric agent_id es conserva però no substitueix el perfil del plugin. L’antic perfil gestionat llm-wiki continua retirat; el perfil nou conserva les instruccions complementàries de Coneixement migrades. La configuració enllaça al perfil del plugin i a les seves habilitats.
El menú secundari Eines del Cervell és a la capçalera de la taula del Cervell, incloses les taules dins de pàgines. Ofereix la revisió determinista amb el resum a la mateixa vista i propostes de connexió amb IA que actualitzen i obren la bústia existent. Les accions de manteniment ja no apareixen als ajustos.
backend/domains/configuration/llm_wiki.py valida la taula Brain, les taules
d’origen, les dimensions categòriques, els camps de fitxer/URL, els valors fixos
i els destins de relació abans de mutar l’esquema. Després crea els rols i les
relacions canòniques, revalida els camps d’índex elegibles, persisteix
atòmicament i actualitza les pàgines del sistema mitjançant ports de façana
resolts en temps de crida.
La façana de configuració per Vault delimita mapes de propietats, fonts i
dimensions a objectes tipats, conservant deliberadament les funcions de camins
i taules de referència resoltes en temps de crida de vault_routes; les proves
amb Vaults d’un sol ús i les integracions existents poden substituir així
aquests punts històrics sense duplicar-ne l’estat mutable.
La seva frontera HTTP delimita una vegada l’encaminador històric resolt
dinàmicament a APIRouter, de manera que els endpoints de designació de Brain
i configuració LLM Wiki es mantenen estrictament tipats sense alterar permisos,
esquemes de càrrega útil, ordre de rutes ni OpenAPI.
L’adaptador de rutes importa directament els serveis canònics de configuració,
esquema i registres, evitant cerques de façana parcialment inicialitzada durant
l’arrencada autònoma d’Agent. Les operacions del Vault substituïbles en execució
continuen sent ports explícits, inclòs el VaultActionsPort tipat de les
accions de processament de Brain.
La frontera de processament usa el mateix encaminador tipat per a ingestió
durable, consulta periòdica, evidència, manteniment, lint, revisió de suggeriments,
dictat i aprenentatge de glossari; els serveis resolts en temps de crida i els
errors HTTP recuperables no canvien.
La planificació de Brain reintenta els errors transitoris del proveïdor, inclòs
HTTP 429, amb un màxim de cinc intents per fragment, 120 segons d’espera acumulada
i un límit total de 360 segons per crida. Cada petició rep el temps límit restant
(com a màxim 240 segons). L’espera exponencial incorpora una variació aleatòria i
respecta Retry-After en segons, les dates HTTP i retry-after-ms; si el període
d’espera supera el límit disponible, l’intent s’atura en lloc de reintentar abans
d’hora. No es reintenten els errors d’autenticació, de validació ni les quotes de
facturació explícitament exhaurides, i no es canvia de proveïdor automàticament.
Els errors de connexió i temps d’espera es reconeixen pels tipus de l’SDK,
inclosos els embolcalls de LangChain per a proveïdors compatibles amb OpenAI que
usen httpx2. Cada reintent reserva el seu cost dins del pressupost de lectura
existent; els càrrecs anteriors desconeguts continuen reservats. Els temps
d’espera de l’SDK fan servir el missatge traduït del proveïdor que no ha respost.
El treball durable exposa phase: retrying durant les esperes. El diàleg de
processament continua consultant l’estat, explica els límits de peticions i
ofereix un nou intent quan el treball s’atura.
Els plans de fragments completats es desen com a punts de recuperació amb el
hash exacte del prompt i el fragment d’origen. Un nou intent no forçat d’un
treball amb error o parcial reutilitza només els plans coincidents, els copia
al nou treball i continua amb els fragments pendents. Els canvis en l’evidència
d’origen o les entrades de planificació invaliden els fragments desats; el
processament forçat explícitament ignora tots els punts de recuperació anteriors.
Els treballs interromputs conserven el progrés real i les notes de font només
s’escriuen quan la planificació s’ha completat.
Cada crida d’ingestió selecciona explícitament l’agent configurat a agent_id.
Una resposta del proveïdor amb x-ratelimit-limit-req-minute: 0 atura els
reintents automàtics, perquè esperar no pot reposar un límit de zero peticions;
la capacitat restant nul·la amb un límit positiu continua rebent els reintents
habituals. Després d’un reinici del servidor, la consulta d’estat llegeix el
treball desat pel seu identificador exacte i comprova la taula font si s’indica.
Els treballs en execució interromputs passen a phase: partial i conserven el
recompte de fragments completats. El diàleg permet una sola petició d’estat
alhora, ignora respostes cancel·lades i mostra el progrés per fragments;
phase: idle per a un treball seguit atura les consultes amb un error recuperable.
La càrrega de configuració permet fins a 45 segons per a una resposta local lenta. Les respostes HTTP fallides es rebutgen abans d’entrar a la memòria cau compartida de configuració, de manera que un reintent pot arribar al servidor recuperat. Els errors del servidor sense detall fan servir el missatge traduït de configuració amb un botó de reintent separat. Carregar aquests ajustos no requereix un proveïdor de models disponible.
backend/domains/configuration/llm_wiki_schema.py gestiona separadament la
reparació idempotent dels camps Brain i la consolidació d’una relació canònica
de font, inclosos àlies històrics, metadades de pàgina i vistes contextuals
incrustades.
backend/domains/configuration/llm_wiki_records.py normalitza les notes
gestionades existents, etiquetes de font i títols localitzats d’índex de
recursos, sense gestionar rutes HTTP.
L’extracció de fonts es divideix entre
backend/domains/llm_wiki/documents.py, per als adaptadors tipats de documents
i multimèdia, i origins.py, per a identitat determinista d’evidències,
deduplicació i fragmentació. El servei històric continua sent una façana de
compatibilitat compacta perquè els contractes de quaderns i connectors
mantinguin els seus símbols actuals.
Les entrades dels extractors incorporen ara mapes explícits de metadades i
configuració i travessen els ajudants històrics d’adjunts i dades locals com a
valors Path concrets. La importació opcional de yt-dlp és l’únic adaptador
de tercers no tipat localitzat; la comprovació d’URL públics, empremtes, ordre
de fonts i procedència es mantenen estables.
El processament es divideix més en planning.py per a prompts, anàlisi i
plans fonamentats; dimensions.py per a correspondències de camps fixes,
d’origen o d’IA; ingestion.py per al flux bloquejant, i writing.py per
a persistència idempotent. index_rendering.py gestiona les pàgines de
recursos, dimensions i generals; search_index.py, els índexs reconstruïbles
JSON, FTS5 i vectorials. backend/services/llm_wiki.py i
backend/services/llm_wiki_indices.py continuen sent façanes de compatibilitat
resoltes en temps de crida perquè les importacions i els punts substituïbles
de connectors i proves continuïn resolent-se quan es criden.
backend/domains/llm_wiki/legacy_ports.py delimita els col·laboradors de camins,
taules, anàlisi de pàgines i persistència sense importar rutes prematurament.
L’escriptor JSON continua exposat per la façana perquè és un punt històric
substituïble; la reconstrucció i les actualitzacions incrementals conserven
la invalidació de memòria cau.
El mateix port de camins resolts en temps de crida gestiona les ubicacions del
Vault, .gnosi i les dades locals del glossari personal de dictat, la cua
de connexions i els treballs durables de Brain, les instantànies, els manifests
i els fitxers auxiliars de pàgina sincronitzats. Les exploracions de cua i lint
usen el port dinàmic de pàgines de taula, preservant les substitucions
existents en execució.
Aquest port d’entrada encara retorna pàgines tipades dinàmicament; el contracte
de metadades continua sent deute de tipatge separat.
La façana d’ingestió usa els mateixos ports per enumerar pàgines Brain, cercar
taules i actualitzar l’estat processat. La substitució de connectors en execució
es preserva, però les anotacions àmplies Any d’aquests ports no acrediten
un tipatge complet.
El lint determinista de Brain es divideix en comprovacions acotades de notes òrfenes, revisions antigues, referències creuades absents, claus duplicades de procedència, notes gestionades retingudes, citacions d’evidència trencades, reprocessament i deriva dels índexs de recursos. La forma de l’informe i els límits de resultats són estables i no requereixen cap proveïdor de models.
backend/domains/llm_wiki/lint_contracts.py defineix la projecció normalitzada
de notes, les vuit categories de resultats, els recomptes i l’informe complet
al punt de producció. Són diccionaris ordinaris amb tipus estàtics precisos,
no models d’execució ni esquemes imposats a metadades arbitràries desades.
La ruta HTTP pot afegir totals opcionals de suggeriments; el lint pur no els
emet. L’ordre de sortida, el tractament de dates, la descodificació de citacions
i el truncament no canvien. La frontera històrica d’entrada de pàgines i la
composició de rutes encara requereixen feina de tipatge separada.
Les citacions PDF fonamentades usen una frontera de persistència determinista separada. Resol la geometria de les cites amb un únic document en memòria cau per adjunt, crea o actualitza ressaltats gestionats estables en una transacció, preserva anotacions manuals i només elimina entrades obsoletes gestionades per Gnosi.
Invariants de fallada i seguretat¶
- Una fallada de proveïdor no encamina silenciosament cap a un model més car o menys privat fora de la política configurada.
- Una eina no disponible per al model o habilitat seleccionats no es pot invocar només pel nom.
- Els efectes destructius o externs requereixen la política declarada.
- El codi generat no pot accedir a secrets ni a l’estat del sistema de fitxers sense restriccions.
- Un servidor MCP fallit no elimina els servidors saludables del catàleg.
- La sortida parcial del model no es presenta com una acció confirmada completada.
- La sortida dependent de fonts no pot superar la verificació sense evidència de fonts del torn actual.
- Els identificadors de citació no es poden resoldre si el mateix torn no ha retornat exactament aquella font.
- Les metadades de transparència no poden contenir cossos de fonts, prompts ni càrregues brutes d’eines.
- La recuperació automàtica o manual de treballs no pot superar els pressupostos persistits d’intents o crides de model.
- La telemetria de qualitat no pot acceptar ni retenir contingut de prompts o respostes.
- L’evidència d’índex antic s’etiqueta i s’actualitza fora del torn en primer pla.
- Els missatges d’agent es mantenen aïllats per agent i sessió després de recarregar.
- L’encaminament adaptatiu no pot sortir de la llista explícita de models de l’agent seleccionat ni del límit de confiança local o remot.
- La detecció d’evidència sospitosa i la memòria personal no poden concedir eines ni canviar autoritzacions.
Focus de verificació¶
Executa proves d’encaminament de models, eliminació de proveïdors, fiabilitat, temps d’espera, reintents i resiliència MCP, catàleg d’habilitats, execució i API, validació d’eines generades, delimitació de context, curses de confirmació i caducitat, ordre del xat i fluxos de xat al navegador.
Execució universal d’agents¶
Gnosi encamina cada torn mitjançant un contracte acotat i independent del proveïdor. Abans de seleccionar capacitats, l’intèrpret semàntic normalitza la intenció multilingüe, registra una puntuació de confiança i pot abstenir-se si la petició no té tema. El resultat s’inclou al pla del torn sense desar el prompt original.
Les capacitats de segon pla usen la cua durable SQLite local. Un treball té clau d’idempotència, pressupost d’intents, concessió temporal i senyal de vida; una concessió caducada es pot recuperar després de reiniciar el procés o quan hi ha un segon worker actiu. L’anàlisi Reader conserva les seves instantànies JSON i punts de control de lots; la cua és la font de veritat de l’orquestració.
Cada operació de model o eina emet un registre acotat de diagnòstic correlacionat
amb el trace_id del torn. Els noms d’atributs es limiten a una llista permesa;
els consumidors no hi han de posar prompts, fonts, arguments ni sortides brutes
del proveïdor. Aquest filtre no cerca secrets en text arbitrari. Les crides
d’eina també passen per validació de mida d’arguments, temps d’espera del
descriptor, límits de sortida i política existent de rol i confirmació.
La cerca Brain manté la memòria cau JSON de compatibilitat i un fitxer auxiliar FTS5. Aquest redueix els candidats lèxics abans de la classificació híbrida vectorial determinista i exposa metadades d’actualitat per al diagnòstic. Si el fitxer auxiliar no està disponible, la memòria cau JSON continua sent una alternativa segura.
Els identificadors explícits de torn es reserven de manera durable a l’àmbit
d’espai de treball, usuari i sessió. Una petició duplicada es rebutja en lloc
d’executar dues vegades la mateixa acció o treball de segon pla. El flux
NDJSON emet esdeveniments progress amb node, fase, temps transcorregut i
comptadors acotats de crides perquè els clients mostrin el progrés de manera
àgil sense llegir prompts interns.
Els límits de seguretat es mantenen conservadors: les eines generades es revaliden en carregar-les, els URL de connectors poden usar la política de sortida a hosts públics i les credencials habituals s’oculten abans de persistir diagnòstics o missatges d’eina. El registre d’eines generades declara el camí SQLite local només a través d’una frontera idempotent d’inicialització; les migracions i la creació del directori pare es completen abans que cap consulta de cerca, aprovació, rebuig o estadístiques pugui obrir la base. Els fitxers font sincronitzats al núvol es mantenen separats d’aquest estat local. La protecció de simulació conserva les signatures de les funcions embolcallades, genera identificadors pendents resistents a col·lisions i mai no invoca una funció d’escriptura externa abans de confirmar-la. Confirmar i cancel·lar només consumeixen el registre pendent indicat; les operacions no externes mantenen l’execució normal.
L’execució d’eines generades també manté fronteres tipades des dels registres
fins a les memòries cau dels carregadors, esquemes JSON dinàmics, resultats
del cicle d’aprenentatge i callbacks de recursos del sandbox. Les càrregues
d’esquema no fiables es delimiten abans de crear models Pydantic; aquestes
anotacions documenten el contracte existent de subprocés sense debilitar
la validació ni traslladar l’execució al procés de l’aplicació.
El proveïdor del registre d’aprovacions construeix directament instàncies
validades de ToolDescriptor i exposa una funció de càrrega diferida que
preserva la signatura, de manera que política del catàleg i càrrega en
execució comparteixin la mateixa frontera tipada de registre. Els gestors
d’aprovació i rebuig també validen les respostes de mutació amb Pydantic,
mantenint les formes històriques de diccionaris i OpenAPI.
Les aportacions de connectors de tercers usen el mateix descriptor després
de delimitar esquemes de manifest i resoldre el Vault actiu mitjançant
l’adaptador tipat del domini. Els gestors continuen sent funcions del
sandbox Node amb exactament el subconjunt de permisos declarat; el tipatge
no importa Python dels connectors a FastAPI.
El suport d’eines pròpies de Gnosi també delimita els ports restants de
façanes històriques per analitzar metadades de capçalera, versionar pàgines,
actualitzar índexs i gestionar revisions de vistes de taula. Aquests
adaptadors mantenen tipades les instantànies de confirmació i les
comprovacions de concurrència optimista sense canviar formats persistits.
Les eines d’administració del Vault consumeixen aquests ports mitjançant
signatures explícites de registre, files de taula, actualització de metadades
i índex de pàgines. El descobriment de taules, les vistes desades d’autoria,
el filtratge determinista i la reubicació acotada de pàgines conserven així
el contracte JSON existent sota tipatge estricte.
Les eines de contactes vinculen cada operació a una sessió de gestió tipada
i a ContactsService acotat a l’espai de treball. La detecció de duplicats,
les actualitzacions acotades i les fusions destructives continuen tancant
la sessió determinísticament; l’absència del registre principal després
d’una actualització concurrent segueix ara el camí existent de resultat d’error.
Les eines de treball independents del proveïdor resolen un Vault actiu
concret abans de llistar, estimar, llegir, reprendre o cancel·lar feina
durable. L’absència de context de petició falla en aquesta frontera
d’adaptador, mentre que els identificadors de treball amb espai de noms
i totes les càrregues persistides de resultats no canvien.
La construcció d’eines MCP delimita cada descriptor de tercers i esquema
JSON abans de crear el model dinàmic Pydantic d’arguments. Els camps
obligatoris i opcionals preserven la semàntica de crida anterior, les
entrades malformades romanen aïllades i l’encaminament qualificat per
servidor continua passant pel client MCP existent.
Les eines de correu usen directament el contracte d’eina LangChain
instal·lat i tipen la frontera de serialització acotada per a missatges,
fils i carpetes exactes. Les lectures remotes, marques d’estrella,
respostes i operacions per lots, la delimitació de comptes i els efectes
de confirmació no canvien.
Els adaptadors governats restants de traducció, context web públic,
calendari, publicació social, clonació Notion i planificació de projectes
usen signatures d’eina concretes i rutes canòniques de domini. Les
peticions web també expliciten l’estat altrament inabastable de manca
de resposta després de gestionar redireccions acotades; es mantenen
les comprovacions SSRF, límits de càrrega, polítiques de compte i efectes
de confirmació.
Les fonts de context d’agent exposen ara un protocol tipat de font
cercable per al BOE i exigeixen camins concrets de Vault actiu abans
d’obrir estat de Reader o planificació. L’estat dels connectors es
llegeix mitjançant el domini canònic de configuració del Vault, mentre
que el petit graf de compatibilitat LangGraph usa un tipus de clau API
que conté secrets sense canviar les respostes alternatives.
El suport d’execució tipa ara els tokens de context de confirmació i
exigeix el directori de dades locals configurat abans d’obrir la base
d’auditoria. La memòria i la cerca del Vault usen accessors explícits
de magatzem diferit; el JSON del catàleg, identificadors de model,
classificació de fiabilitat i metadades d’avaluació es delimiten a
l’entrada sense alterar l’evidència d’encaminament.
Les fronteres d’integració Notion tipen ara respostes MCP allotjades,
arbres Markdown, callbacks de localització d’adjunts i configuració de
verificació de clonacions. Una primitiva atòmica i idempotent d’eliminació
de claus d’integració retira credencials OAuth caducades irrecuperables
en lloc de reintentar repetidament un token mort; els esquemes de
clonació, cossos de pàgina, vistes i marcadors d’adjunts conserven el format.
Les aportacions bàsiques als workflows d’IA usen una especificació
interna tipada d’identitat, activació, requisits de fonts, eines i
instruccions. Això evita que la creació de descriptors confongui camps
de text amb seqüències de fonts o eines; l’esquema i l’ordre del catàleg
publicat no canvien.
Els lectors de context adjunt preserven ara directament els contractes
concrets de text dels embolcalls d’URL, fonts externes i registres
interns. Cap conversió dinàmica de tipus no oculta una incompatibilitat
de proveïdor en aquestes fronteres de contingut no fiable.
Els lectors de memòria cau d’inventari conserven els punts històrics de
substitució del Vault mitjançant un adaptador tipat estret. Això preserva
la compatibilitat de connectors i proves sense estendre funcions
reexportades dinàmicament al domini d’agents.
Els despatxadors confirmats de pàgines i taules apliquen la mateixa regla
als punts de mutació del Vault: cada gestor reexportat dinàmicament es
delimita al punt de crida, mantenint el comportament històric de detecció
de conflictes, informació de resultats parcials, reversió i neteja en
segon pla.
L’emmagatzematge de context i el catàleg integrat de LLM Wiki també
delimiten localment els lectors històrics del Vault. La verificació del
cicle de vida de connectors vincula un Vault actiu concret, també en
proves aïllades, abans de resoldre configuració basada en fitxers.
Les eines MCP elegibles es materialitzen com a instàncies validades de
ToolDescriptor al límit d’aportació, amb origen MCP explícit i esquema
d’entrada normalitzat. Les anotacions de només lectura i destructives
continuen determinant l’admissió exactament com abans.
L’evidència de referències exigeix un Vault actiu concret abans de
resoldre o llegir camins, i el punt d’enumeració de pàgines de taula es
delimita localment. Els embolcalls d’evidència de quaderns retornen
directament cadenes tipades de contingut no fiable en cerques,
lectures exactes i anàlisis completes.
El registre del catàleg integrat manté separades les variables dels
descriptors d’eina i habilitat perquè la validació estàtica no
arrossegui un tipus d’eina al bucle següent d’habilitats; l’ordre
de registre i la revisió resultant del catàleg es mantenen estables.
El despatxador d’execució desperta ara la cua durable en arrencar l’aplicació, de manera que el treball Reader es recupera sense una petició d’estat. Les actualitzacions FTS de Brain són incrementals i incorporen una marca explícita de dades antigues. Les eines generades aprovades es carreguen com a intermediaris basats en subprocessos amb límits de recursos; els esquemes JSON dels descriptors es comproven abans i després d’executar, amb compensadors revisats opcionals per a fallades parcials. Un endpoint de reproducció només de metadades exposa esdeveniments acotats de pla, error, temps i verificació per identificador de traça. Les peticions ambigües s’aturen a l’intèrpret semàntic i demanen el tema absent en la llengua de la petició, en lloc d’endevinar una capacitat.
La verificació usa el corpus determinista de torns universals, les
proves focalitzades de fase dos, la suite completa backend/tests
i la comprovació de documentació.
Contractes dels registres locals de diagnòstic¶
agent_observability.py accepta valors d’atribut arbitraris i un contenidor
mutable de context. El SpanRecord produït associa claus de text amb primitives
SpanValue: cadenes, enters, nombres de coma flotant i booleans. No és un esquema rígid
d’esdeveniment: els atributs permesos poden substituir l’estat i la durada.
El tipatge conserva les conversions, els errors i la identitat compartida dels
registres existents.
El servei examina les primeres 32 entrades abans de filtrar-les amb SAFE_KEYS.
Normalitza els espais de les cadenes i les limita a 240 caràcters; els booleans
i els valors numèrics conserven la representació existent. Descarta les claus
desconegudes. Filtrar pel nom no elimina secrets del contingut: no posis
informació privada sota una clau permesa de proveïdor, model o estat.
La memòria conté com a màxim 2.000 registres; una consulta en retorna com a màxim
200 i comparteix els diccionaris desats. Això no limita la mida ni la retenció
del fitxer acumulatiu agent_spans.jsonl. Un OSError durant l’escriptura no
bloqueja l’operació ni descarta el registre en memòria; les altres excepcions
mantenen la propagació normal. Els errors del gestor de context desen la classe
de l’excepció, no el missatge.
Les proves utilitzen fitxers temporals, rellotges controlats i fils propis. El gestor real de política s’exercita amb un model inert per comprovar la identitat de respostes i excepcions i que el contingut fictici de peticions i errors no entri als diagnòstics. No cal cridar cap proveïdor ni llegir registres reals de l’usuari.
Catàleg de recursos i personalització¶
Els noms de les eines corresponen a cada operació concreta; les operacions diferents ja no comparteixen un verb i un domini genèrics. Les descripcions traduïdes utilitzen el text original com a alternativa. Les instruccions mostren el contingut real desat. Els identificadors tècnics i els esquemes es poden desplegar; la selecció d’eines inclou descripcions, origen, efectes, disponibilitat i filtres de cerca.
Les habilitats incloses són immutables. Personalitza obre un esborrany editable que
no es desa fins a prémer Desa. El servidor comprova la revisió d’origen i desa
la identitat, la versió, les instruccions i les eines originals a derived_from.
Les edicions posteriors conserven aquesta procedència i les actualitzacions del
catàleg es comparen sense sobreescriure la versió personal.
Aplicar una habilitat personal a agents i automatitzacions és una acció explícita. Les assignacions utilitzen revisions acabades de consultar i mantenen les habilitats obligatòries. Primer s’assigna l’habilitat als agents i després s’actualitzen les automatitzacions seleccionades; es conserven els canvis completats i es comuniquen els errors. Si una altra automatització encara utilitza l’original, es manté assignat. Cancel·lar l’esborrany no modifica ni el catàleg ni les assignacions.
Comparativa de models i paràmetres verificats¶
La comparativa mostra primer el model i la valoració dels seus perfils, seguits del cost mensual estimat i el fabricant, i després intel·ligència, context, preus d’entrada/sortida, modes, paràmetres, velocitat, latència i puntuacions especialitzades. Els títols compactes conserven unitats i text complet emergent; els filtres s’alineen amb els camps, Modes es tanca en clicar fora i els tokens mensuals separen els milers. El peu queda lliure de la barra horitzontal.
Els paràmetres s’expressen en mil milions, distingint totals i actius en models MoE. Els filtres admeten estat conegut/no publicat/pendent i límits de mida total. Els modes utilitzen AND explícit per defecte o OR. Les metadades estàtiques revisades continuen disponibles si el servidor no proporciona dades enriquides.
backend/services/model_parameters.py enriqueix les respostes amb una memòria cau local, sense consultes de xarxa en mostrar la comparativa. El procés refresh_model_parameters apareix una sola vegada al Centre de control, actiu cada 1440 minuts i condicionat a ai-platform. Cada execució comprova com a màxim 40 identitats diferents amb un pressupost de 120 segons comprovat entre models; cada consulta té un temps límit. Un cursor persistent reprèn els lots següents.
Només s’accepten organitzacions oficials de Hugging Face autoritzades, identitats inequívoques i camps explícits de paràmetres. Les dades verificades conserven font i data. Si una font falla o no coincideix, es preserven els valors anteriors; l’absència mai es converteix automàticament en «No publicats». Els models ambigus o no compatibles queden pendents de revisió manual. La substitució de la memòria cau és atòmica. Les proves cobreixen extracció, ambigüitat, conservació de dades, lots, registre del procés, metadades remotes i filtres.
Les columnes monetàries, el filtre de preu màxim d’entrada i el topall mensual utilitzen la moneda configurada. Els preus de comparació i la despesa registrada provenen de USD i utilitzen el tipus de canvi proporcionat abans de filtrar o comprovar el pressupost. El filtre de models incomplets utilitza l’interruptor compartit de l’aplicació.
Cobertura d’eines de les funcionalitats¶
La revisió de setembre de 2026 incorpora 29 eines assignables a habilitats i agents. Reutilitzen els serveis de l’aplicació i les seves validacions. Hi ha quatre habilitats noves (quaderns, cerca bibliogràfica, galeria i activitat) i cinc eines més dins de planificació. No s’assignen automàticament als agents.
| Àmbit | Cobertura |
|---|---|
| Vault, taules, etiquetes, comentaris, enllaços i paperera | Les eines existents cobreixen consultes i modificacions amb permisos. |
| Correu, contactes i calendaris | Eines existents limitades als comptes configurats, amb confirmació dels canvis externs. |
| Lector i treballs d’anàlisi | Eines existents per a fonts, extracció, anàlisi, progrés, cancel·lació i represa. |
| Quaderns | 10 eines per consultar quaderns i fonts, cercar i citar una revisió concreta, crear quaderns privats, afegir Recursos, canviar títols i actualitzar o aturar la indexació. Les eines del context adjunt conserven la selecció de fonts. |
| Cerca bibliogràfica i Recursos | 8 eines per consultar fonts i cerques, iniciar cerques limitades, llegir resultats, importar-ne un amb control de duplicats i consultar revisions sistemàtiques. Els registres de Recursos ja són accessibles mitjançant les eines de taules. |
| Galeria | 3 eines per consultar ubicacions, cercar per nom, tipus o etiquetes i editar etiquetes i descripcions. |
| Centre de control | 3 eines per consultar automatitzacions pròpies, resultats d’execució i serveis programats a l’espai personal. |
| Planificació | 5 eines per llistar versions de referència, crear o editar calendaris de treball, recursos i assignacions, i eliminar un element amb confirmació i comprovació de dependències. Es mantenen les eines existents de calendari, càrrega, desviacions, treball real i recurrències. |
| Cervell, memòria, publicació social, traducció i Notion | Coberts per les eines internes i dels plugins existents. |
| Reunions, documents i graf | Els lectors de fonts internes, pàgines/PDF i les operacions d’enllaços cobreixen la informació desada. La captura en directe, els dispositius i la disposició visual del graf es gestionen a la interfície. |
Cada eina comprova la identitat, l’espai, el rol i el vault de la conversa. Les consultes requereixen permís de lectura; les modificacions, permís d’edició i la política de confirmació corresponent. Els quaderns mantenen les comprovacions de propietat i revisió. Si es desactiva un plugin, les seves eines continuen visibles al catàleg però deixen d’estar disponibles, també a les habilitats pròpies.
Les cerques acadèmiques requereixen fonts concretes habilitades i disponibles; no amplien la cerca a totes les fonts si un identificador és incorrecte. El llistat omet credencials i configuració de connexió. La importació i la consulta de revisions requereixen el vault principal personal perquè els serveis existents resolen Recursos allà; altres vaults es rebutgen abans d’accedir-hi. Cal consultar el progrés de les cerques i la indexació per saber si han finalitzat.
Els noms i les descripcions estan traduïts als quatre idiomes de l’aplicació. Les credencials, la concessió de permisos, les aprovacions, la instal·lació de plugins i l’accés a dispositius continuen a la interfície. Les proves utilitzen dades simulades i no executen cerques externes ni crides a proveïdors.
Assistent principal i perfils opcionals¶
Els noms de les habilitats assignades enllacen a les seves fitxes desplegades al catàleg. Obrir una habilitat conserva l’editor de l’assistent i els valors del formulari sense desar; tornar a la pestanya Assistent recupera el mateix esborrany. Seguir l’enllaç no canvia l’assignació de l’habilitat. Les assignacions utilitzen els interruptors accessibles compartits; les habilitats obligatòries continuen bloquejades i les assignacions no disponibles es poden retirar.
Les lectures simultànies del catàleg esperen que acabi el registre de les extensions integrades. Es permeten les lectures recursives del mateix fil per evitar cicles d’importació, però altres fils no poden obtenir un catàleg parcial sense les habilitats del Cervell.
Aprenentatge de converses i memòria editable¶
El panell d’aprenentatge del xat privat agrupa instruccions de projecte, fonts seleccionades i referències de resultats. Les peticions explícites com «Recorda que…» creen records amb origen identificable; les cites i les referències ambigües no. Els records estan aïllats per espai de coneixement, assistent i usuari, amb àmbits addicionals de projecte o habilitat. Configuració → IA → Memòria permet cercar, filtrar, editar, activar, fixar una caducitat i eliminar. Les actualitzacions rebutgen revisions antigues. Eliminar un projecte desvincula les converses i desactiva els seus records.
L’extracció d’habilitats utilitza la conversa privada desada i el model configurat de l’assistent seleccionat. L’usuari revisa el procediment, els criteris, els exemples sintètics i les plantilles abans de desar-los al catàleg existent. L’assignació és una acció explícita d’administració. La prova amb un segon cas no executa eines: una revisió separada del model aporta evidències per a cada criteri i l’usuari decideix si conserva l’exemple. No certifica accions externes ni la veracitat dels resultats.
Els paquets JSON gnosi-skill-v1 inclouen instruccions, dependències, criteris, exemples i recursos de text. La importació valida la mida i els noms abans de revisar-los; no desa ni assigna automàticament. L’exportació exclou els records personals i l’historial de conversa. L’execució incorpora els criteris i recursos sense ampliar permisos. La migració additiva personal_memory_0002 conserva els records i crea els vincles privats de projecte i conversa.
Validació: backend/tests/test_agent_learning.py comprova captura, propietat, àmbits, caducitat, revisions, paquets i errors de les proves. Les proves de la interfície comproven el mode de lectura, la conservació de l’àmbit, les peticions d’aprenentatge i els avisos sense duplicats.
Lectura contextual de fonts¶
El botó de la font i el xat utilitzen el mateix treball persistent de processament i la skill assignada plugin.llm-wiki.process-source. El treball fixa el perfil seleccionat, el model i les instruccions efectives. Si falta la skill o el perfil està desactivat, falla explícitament. La skill dirigeix la interpretació, l’atribució, les peticions d’evidència i la revisió; l’aplicació controla els pressupostos, les citacions, el desament i els índexs.
La lectura utilitza fragments estructurals amb context veí, mapes de secció i un mapa global jeràrquic. L’extracció i la revisió poden demanar passatges originals distants. Es justifica el tractament de cada fragment principal i les notes proposades es revisen amb una visió conjunta abans de desar-les. La cobertura i les citacions literals acrediten la procedència, però no garanteixen la correcció semàntica. Els punts de recuperació només es reutilitzen quan coincideixen la font i les entrades d’execució; els plans antics sense revisió s’invaliden. El diàleg mostra el progrés i les observacions de la lectura.
Idioma de les instruccions¶
Les instruccions es desen i s’executen exactament com les escriu l’usuari, en qualsevol idioma. El catàleg mostra el text original. Si cal traduir-lo, feu-ho amb una eina externa i reviseu-lo abans d’enganxar-lo a l’editor.
La configuració mostra l’última versió personal i les seves assignacions dins de la mateixa targeta. Restaura l’original requereix confirmació i recupera les instruccions, les eines i l’activació originals abans de desar automàticament. Validar comprova la definició i la disponibilitat de les eines; no executa l’habilitat ni avalua la qualitat del resultat.
Execució de l’Agent principal¶
La IA funcional utilitza un executor compartit amb perfils explícits. Els botons i programacions dels plugins resolen el perfil del plugin; les converses utilitzen el perfil seleccionat. Es mantenen les habilitats, la memòria delimitada, el registre de consum, la reparació de format acotada i els punts de represa.
Activitat mostra identificadors d’execució, cancel·lació i les represes compatibles. La migració versionada copia la configuració, retira només el perfil Brain gestionat, preserva els perfils personals i trasllada les instruccions de Coneixement a una habilitat complementària. Les rutes de Coneixement i les antigues comparteixen implementació i permisos; Notion continua sent opcional.
Perfils i converses¶
Crea perfils des de Perfils addicionals (avançat). Al xat, obre el selector del nom de l’assistent i tria el Perfil de la conversa. El canvi s’aplica a les peticions següents i conserva l’historial. Cada conversa recorda el seu perfil. Fes servir per defecte, a Configuració, estableix el perfil per a converses noves; no canvia els xats existents.
Cada perfil té un únic LLM. Per fer servir un altre model, tria un altre perfil o edita el model del perfil. No hi ha selecció automàtica ni models alternatius en cas de fallada. Si el perfil s’elimina o el model no està disponible, tria un altre perfil des del xat. Per eliminar el predeterminat, primer estableix-ne un altre. Per desactivar la IA, desactiva el plugin.
La identitat de l’historial es manté a agent_id i session_id. El camp opcional profile_id tria el perfil d’execució, que el navegador desa com a profileId per conversa. Canviar de perfil manté els missatges, adjunts, recuperació del flux i retrocés vinculats al mateix historial. Els arguments de confirmació desats pel servidor conserven el perfil original. Les converses noves utilitzen el predeterminat actual; les habilitats programades utilitzen el perfil del seu plugin. Un perfil absent o desactivat produeix un error explícit.
Perfils dels plugins¶
Cada plugin d’IA té un perfil editable a la mateixa llista que els perfils personals, amb el nom del plugin que l’utilitza. Pots canviar-ne el model, les instruccions, les fonts i les habilitats, i triar-lo explícitament com a principal. Això no canvia quin perfil utilitzen les accions del plugin. Desactivar el plugin suspèn el seu bot i en conserva la configuració. Si falta el model o una habilitat necessària, l’acció ho indica sense substituir el perfil. Les execucions ja iniciades mantenen la configuració amb què van començar.
Valoració orientativa — weighted_catalog_v1¶
Orientació, no certificació: mínim 60/100 i 60% de dades, amb requisits per paper. Intel·ligència, codi i capacitat agentiva es comparen amb el catàleg actual; context i velocitat saturen a 200.000 tokens i 100 tokens/s. Latència i preu puntuen amb 1/(1+x/2). El preu usa una barreja fixa de 4 tokens d’entrada per 1 de sortida; no és el cost real d’una tasca. No es dedueixen cites, català ni fiabilitat a partir del context.
Els pesos són a backend/services/model_role_suitability.py. Els benchmarks es comparen dins del catàleg sense filtrar, amb el mateix rang per als empats i 0,5 si només hi ha un model; no són probabilitats de qualitat. Els requisits són intel·ligència, capacitat agentiva i eines per al Directiu; intel·ligència i eines per al Tot terreny; intel·ligència i context per al Documentalista (mínim 100k); intel·ligència per al Perit; intel·ligència i eines o sortida estructurada per a l’Administratiu; text, preu i velocitat per al Peó. Les dades absents redueixen la cobertura i els requisits absents impedeixen recomanar. Una limitació explícita preval sobre la puntuació. La mida del model no s’utilitza com a indicador de capacitat. El perfil antic es conserva per compatibilitat. La recàrrega recalcula també les dades en memòria cau.
La columna Ús mostra només el perfil seleccionat i el seu percentatge; ordenar-la compara aquella puntuació, amb els valors desconeguts al final. Cost estimat i Fabricant van a continuació. Sense filtre, ordenar Ús compara la millor puntuació disponible de cada model.
El panell Proves de perfils i estratègies de la comparativa permet triar agents habilitats i autoritzar cada execució amb consum real. Les proves per paper utilitzen 2–3 casos sintètics amb validadors deterministes. La comparació aplica els mateixos tres casos a Tot terreny, Directiu sempre actiu i Directiu amb rutes; inclou dues rutes conegudes i una resolució de fonts contradictòries amb dependències. Compara encerts, crides, intervencions evitables i cost; les dades absents no es consideren zero. És un laboratori aïllat que reutilitza l’elecció econòmica, sense eines de negoci. No és una certificació completa de llengua, recuperació extensa ni ús real d’eines.
Cada resultat conserva versió, data, model, proveïdor i comprovacions per cas dins de l’usuari i Vault originals. Les valoracions amb prou dades combinen 50% catàleg i 50% prova sintètica; les limitacions i mancances generals continuen visibles. Refresca la comparativa després de consultar els resultats. La prova té un límit global de 24 crides, fins a 512 tokens de sortida per crida; comparar les tres estratègies fa 17 crides. Les traces d’aquestes proves conserven només metadades. Cancel·la-les des d’Activitat. No canvien els models assignats.
Les propostes de conservació mostren les habilitats reutilitzables, les diferències de cobertura i model respecte dels agents existents i les execucions completades. No confonen completar una execució amb verificar tots els criteris particulars. Les instruccions permanents parteixen d’una plantilla d’habilitats registrades, sense copiar l’encàrrec; l’usuari pot revisar-les. Acceptar permet incorporar el nou perfil personal a l’equip. Una configuració equivalent existent evita una proposta duplicada. Rebutjar impedeix repetir la mateixa proposta.
Implementació: backend/services/agent_role_evaluations.py · backend/services/agent_team_retention.py · frontend/src/features/settings/AI/AgentEvaluationLab.tsx
Per resoldre una mida desconeguda, selecciona Pendent de verificar a la columna Paràmetres. Consulta la font oficial cerca una coincidència de versió exacta a les fitxes dels fabricants compatibles. Si la font no respon o no hi ha coincidència, la dada continua pendent. També pots registrar els milers de milions totals i actius, o una absència de publicació revisada, amb una font HTTPS i la confirmació explícita que has comprovat el model exacte. Les dades revisades manualment conserven la procedència i la data; no trobar una xifra no demostra que no estigui publicada. El servidor no visita els enllaços introduïts.
Seleccionar un perfil ordena per adequació estimada. Els candidats amb dades insuficients només apareixen amb Inclou incomplets activat; la cerca i els altres filtres no activen aquesta opció. Comparar tots els candidats activa explícitament els incomplets i conserva el perfil i el volum de tokens. No cal executar proves per triar un model.
Els preus per proveïdor són independents del preu del benchmark. El proveïdor seleccionat determina l’estimació mensual, les columnes de preu d’entrada/sortida, el filtre de preu i l’ordenació. Amb tots els proveïdors, cada parell diferent de proveïdor i tarifa apareix per cost mensual de tokens creixent; els desconeguts van al final. Les rutes de la comparativa en memòria cau s’actualitzen amb el catàleg actual. Les tarifes absents i els zeros antics no verificats són desconeguts, no gratuïts. El cost local per tokens exclou maquinari i energia; les estimacions exclouen quotes fixes i impostos. La velocitat i l’adequació continuen sent dades generals del model.
La coincidència de models conserva la variant plus i no elimina sufixos de mida com mini o small per trobar una ruta de proveïdor.
L’activació rebutja tarifes desconegudes abans d’habilitar el proveïdor o desar el registre; actualitzar el catàleg pot resoldre els preus absents.
El context i les capacitats es mostren per proveïdor, incloent modes d’entrada i sortida, ús d’eines i raonament. Les declaracions absents queden desconegudes, també els valors de context antics per defecte. Els filtres de proveïdor, l’ordenació de context i els filtres combinats de preu, context i modes fan servir dades de l’oferta; una mateixa oferta ha de complir totes les condicions. El context s’ordena pel màxim conegut del proveïdor seleccionat, amb els desconeguts al final. Els benchmarks i les valoracions de papers continuen sent evidències generals del model.
La coincidència del registre utilitza rutes exactes de proveïdor/model, mai noms ni fragments. El filtre d’activació i els àlies respecten el proveïdor seleccionat. Els filtres Directiu i Polivalent exclouen les rutes que declaren no admetre eines. L’activació conserva cada oferta de proveïdor/model i verifica la ruta seleccionada. Els canvis de la comparativa es desen en sèrie i rellegeixen el registre persistent abans de desar, preservant els canvis intermedis de models i pressupost. Recuperar mètriques de la memòria cau recalcula les valoracions de rol amb les dades recuperades.
Els desaments de la comparativa inclouen una revisió optimista del registre: un desament obsolet rep HTTP 409 en lloc de sobreescriure els canvis d’una altra finestra. Refrescar evita les memòries cau dels benchmarks i del catàleg de proveïdors, i conserva la procedència alternativa si falla. Les variants que comparteixen una ruta executable són vistes informatives d’una única oferta: l’activació i els àlies afecten l’oferta compartida, i el formulari explica que no configura el raonament ni reprodueix les condicions de les avaluacions. Sense puntuació significa que no hi ha cap puntuació numèrica de rol; les limitacions i puntuacions baixes tenen etiquetes diferenciades. La vista compacta mostra el context màxim i el preu mínim de cada columna, igual que l’ordenació. Les capçaleres exposen aria-sort, s’anuncia el recompte filtrat i la inspecció de paràmetres preomple les dades existents sense indicar un desament.
Configuració dels assistents i participació en l’equip¶
Cada perfil té una única fitxa sempre visible amb la configuració, l’elecció explícita del principal i la participació en l’equip. El principal coordina; els altres perfils reben encàrrecs, demanen ajuda, combinen les dues funcions o treballen sols. Canviar el principal transfereix l’estat de l’equip i retira el nou principal de les assignacions d’execució. No crea cap agent ni reactiva una col·laboració desactivada.
Les seleccions completes de participació, assignacions i permisos de temporals es desen automàticament. Els canvis incomplets queden al formulari, indiquen què falta i no substitueixen la darrera configuració completa. Retirar l’últim destinatari desactiva la col·laboració i els permisos per demanar ajuda. Els interruptors amb noms permeten seleccionar diversos models, habilitats i destinataris; les llistes buides expliquen com afegir-ne. La coordinació només s’afegeix en activar l’equip. L’edició d’un perfil incorpora l’estat més recent de l’equip per preservar els canvis simultanis de participació.
L’àrea de lectura de la configuració admet el focus del teclat. Les tecles de desplaçament funcionen des del text i dels interruptors individuals; els camps editables, desplegables i controls compostos conserven les seves interaccions.
Recomanacions de models i cicle de vida dels plugins¶
Cada fitxa visible recomana un paper de model segons el principal, les operacions del plugin, les habilitats conegudes i les seves còpies, les especialitats i les rutes. Guanya el paper de major exigència; les tasques desconegudes reben orientació Tot terreny. És una recomanació, no una puntuació del model ni un canvi de ruta o permisos.
Després d’un canvi de plugin es renoven les memòries cau de configuració i s’avisa el xat i el formulari. Només es fusionen els camps de cicle de vida i els perfils nous, preservant les edicions locals. Els perfils suspesos queden ocults i no poden executar feina; es retiren dels destinataris i les rutes actives. Si se suspèn el principal o l’últim destinatari, la col·laboració s’atura. El principal no es reemplaça automàticament. Es descarten respostes tardanes després de tancar la configuració o canviar de vault.
Nivell de raonament¶
Els perfils desen reasoning_effort opcional. L’editor consulta les opcions exactes d’OpenRouter amb GET /api/ai/model-reasoning: les metadades absents no habiliten opcions, null explícit admet els nivells de la passarel·la i el raonament obligatori exclou none. La memòria cau és fora del vault i inclou una alternativa verificada de Luna per al primer ús sense connexió. El desament rebutja opcions incompatibles. Les fàbriques del model predeterminat i del flux només propaguen el nivell quan proveïdor i model coincideixen amb el perfil. El raonament explícit d’OpenRouter i el predeterminat de Luna utilitzen Responses sense estat, store=false, historial complet i raonament xifrat entre crides d’eines. Els valors predeterminats dels altres models es conserven.
Ajuda opcional de l’equip¶
El permís de col·laboració ja no intercepta tots els fluxos. Primer es resol el model del perfil seleccionat, inclòs el nivell de raonament, i després s’ofereix request_team_help com a crida de control opcional al xat i a les operacions estructurades. Les eines natives i el transport JSON validat comparteixen contracte. La feina habitual no afegeix cap crida d’encaminament. La delegació ha de ser l’única crida i precedir qualsevol execució d’eines; la reparació de format no pot demanar ajuda. El coordinador conserva l’entrada del torn actual, les configuracions fixades, els permisos de confirmació, la cancel·lació i el límit total de crides. Els executors no poden encadenar ajuda ni retornar l’encàrrec al sol·licitant. El catàleg del pla inclou les especialitats dels membres. La reparació i la represa només usen el tractament d’equip si s’ha desat una petició d’ajuda o un pla; altrament mantenen l’assistent original. La migració no activa permisos d’equip.
Les metadades de raonament de només lectura són a backend/domains/configuration/ai/model_metadata_routes.py; l’encaminador de configuració d’IA les inclou a /api/ai/model-reasoning, amb el mateix contracte públic. Així es respecta el límit de mida dels fitxers del projecte.
Progrés dels recursos en segon pla¶
Tancar el diàleg de processament deixa una targeta compacta, no modal, al racó inferior dret. Mostra el títol del recurs, la fase, els fragments i el progrés disponible, i permet reobrir els detalls sense iniciar un altre treball. El magatzem global de tasques manté els inicis pendents i les consultes de seguiment sense solapaments, tant des de les files de taula com des d’un recurs obert, encara que es canviï de pàgina. Els resultats completats o interromputs continuen visibles fins que s’amaguen; reintentar reprèn la feina desada. El seguiment es reinicia en canviar de Vault o de compte i ignora respostes antigues. Aquest estat de sessió de la interfície no persisteix quan es recarrega l’aplicació.
Format de les operacions estructurades¶
Les operacions estructurades d’OpenRouter envien el contracte de sortida al proveïdor, amb mode d’esquema estricte per als contractes detallats i mode d’objecte JSON per als objectes genèrics. La selecció de ruta exigeix compatibilitat amb els paràmetres i conserva les preferències del proveïdor i el raonament. Les eines natives opcionals utilitzen contractes de funció estrictes; les eines JSON alternatives restringeixen l’embolcall i validen localment la resposta extreta. Els altres proveïdors mantenen la validació local. La lectura dirigida de fonts transmet l’esquema d’accions, amb el tipus de l’acció explícit.
Que el proveïdor accepti la petició no demostra que compleixi el contracte: les validacions locals d’esquema i contingut continuen sent obligatòries, amb l’intent de reparació limitat existent. Es pot recuperar un objecte o una llista JSON complets seguits únicament d’un delimitador final repetit, sense canviar cap camp; es rebutgen valors addicionals, prosa, tancaments incoherents i contingut incomplet. La comprovació de cites, la cobertura de fonts i la validació de notes es mantenen. La validesa estructural no garanteix exactitud factual ni una redacció idèntica entre execucions.
Si el planificador d’un equip opcional rebutja el context abans de fer cap crida al model o executar cap tasca, l’operació estructurada pot continuar amb el model original dins del mateix termini i límit de crides. Es conserven la petició completa i la resposta a la sol·licitud d’ajuda; la delegació rebutjada queda registrada i no redirigeix la represa cap a la fase fallida de l’equip. Els errors de permisos, les cancel·lacions i els errors posteriors a l’existència d’un pla continuen aturant l’execució. Reprendre el processament interromput des de la barra de la pàgina aprofita el progrés guardat, també després de reiniciar l’aplicació, sense forçar una execució nova.
La planificació i la replanificació dels equips validen els executors, l’ordre de les dependències i la tasca de resultat abans de completar la fase o iniciar les tasques. Els errors de coherència entren al procés de reparació habitual, amb un màxim de dues crides de planificació dins del pressupost total existent. Una segona resposta invàlida fa fallar la fase sense executar-ne les tasques. Els plans completats que es recuperen de la memòria cau també es validen abans de reutilitzar-los.
La lectura dirigida restringeix els camps de cada acció, incloses les notes, la cobertura i les cites. Valida les referències a la font, la cobertura completa i les citacions exactes abans d’acceptar o guardar una acció, perquè la reparació limitada conservi juntes les evidències originals i la resposta rebutjada. La validació prèvia no modifica l’estat de lectura. Cada pas inclou els identificadors exactes dels fragments i el nombre de passatges principals, i una identitat de pas impedeix reutilitzar una resposta idèntica entre iteracions diferents.
Les fases de l’equip hereten el temps d’espera de l’operació principal i continuen limitades pel seu termini existent. Una reparació delegada rep l’entrada i les dades originals juntament amb la resposta rebutjada i l’error de validació, per poder comprovar les evidències en corregir la resposta.
La validació de lectura comunica conjuntament els errors independents de cobertura i citació, identificant la posició de les notes i cites sense reproduir el text de la font. Així, l’únic intent de reparació permès pot corregir totes les incoherències conegudes amb l’evidència original, en lloc de descobrir només l’error següent després de cada intent. Els plans invàlids no fan avançar l’estat de lectura.
Les reparacions de referències de la lectura dirigida retornen canvis limitats per un esquema per a les notes rebutjades i la cobertura. Es conserven la petició original, la memòria global, les notes afectades i els passatges originals de referència. Només poden canviar els camps de referència enumerats; els títols, cossos, ordre i camps no afectats de les notes es copien intactes de l’esborrany. Les rutes duplicades, absents o no autoritzades es rebutgen localment. El perfil original fa aquesta reparació dins del límit de tres crides al model del pas de lectura i del termini original, sense delegacions addicionals. L’acció reconstruïda ha de superar l’esquema original i la validació completa d’evidències abans de desar-se o entrar a la memòria cau.
Abans que comenci cap delegació, les peticions d’ajuda invàlides o repetides d’una operació estructurada es rebutgen conjuntament. Els registres de crida queden resolts com a no executats, i l’assistent original pot respondre directament amb la petició completa dins del límit de reparació i del termini existents. No s’executa cap encàrrec a l’equip ni cap eina combinada. Cada pas de lectura també inclou l’estat de lectura i de desament de cada fragment enumerat, fins i tot després d’una represa, perquè el recompte no amagui quins plans queden pendents.
La lectura de fonts llargues conserva el termini ampliat i limitat durant la selecció d’accions posterior, la revisió de plans recuperats i la represa, encara que la petició actual sigui breu. La mida de la font determina el temps disponible; els límits de context, el pressupost finit de reintents, la cancel·lació i la validació es mantenen.
Cada pas de lectura dirigida mostra els indicadors de revisió i el nombre de notes dels plans desats, juntament amb l’acció i el fragment que han produït l’últim resultat. Aquests fets de progrés desats prevalen sobre afirmacions contradictòries de la memòria de treball del model; la memòria es conserva intacta i inclou el pas en què es va registrar quan està disponible. L’indicador de revisió recull la declaració del lector, no la correcció semàntica. Els punts de represa antics continuen sent compatibles. Cada pas permet com a màxim tres crides al model perquè, després de corregir la sintaxi JSON, encara es pugui reparar una vegada només les referències, sense ampliar el termini de l’operació ni permetre una altra delegació. Si aquesta reparació falla, pot utilitzar la crida restant amb el mateix contracte immutable de canvis i el mateix termini; en esgotar-los, el pas s’atura sense desar el pla invàlid.
Les regles de les propietats de les notes de lectura es mantenen a la configuració del plugin Cervell: copiar un camp del recurs, usar un valor fix, deduir-lo amb IA o deixar-lo buit. L’skill classifica cada nota només entre les etiquetes existents proporcionades. Cada camp configurat amb IA apareix explícitament a l’esquema de resposta i ha de constar a cada nota; les dues vies de lectura rebutgen omissions, camps desconeguts, valors inventats i diversos valors en un camp de valor únic abans de desar. Una llista explícitament buida és vàlida quan l’evidència no justifica cap categoria. L’aplicació resol les etiquetes i aplica les regles de còpia i de valor fix. Instal·lar aquesta correcció no reclassifica les notes existents. Els Tags configurats ignoren la llista antiga d’etiquetes lliures, també quan la classificació s’absté explícitament o el valor copiat del recurs és buit.
Inventaris exactes, proves verificables i resultats d’error¶
Els predicats exactes dels camps conserven el valor demanat a property_filters; les paraules de l’ordre no es fan servir com a cerca de text lliure. Les relacions es resolen dins de les taules de destinació autoritzades per ID o títol exacte únic. Els títols ambigus, les destinacions sense accés i els inventaris incomplets no poden produir un canvi parcial amb bulk_update_rows. Les assignacions validen la definició real del camp i les opcions permeses, conservant el zero numèric i el booleà fals. Aquest camí manté les comprovacions habituals de confirmació i permisos.
Les proves d’aprenentatge conserven el criteri original i el seu ordre. Cada fragment retornat ha d’aparèixer a l’entrada o la sortida proporcionades; es rebutgen les comprovacions malformades i els fragments inventats. Les dades que falten per a la prova es mostren al costat del resultat. Això acredita la procedència dels fragments i la validesa del contracte, però no demostra que el judici del model sigui correcte.
Els errors traduïts del xat conserven un codi estable i content_language; els detalls privats de les excepcions no es presenten com a resposta. Un servei no disponible abans del workflow acaba amb has_response=false i message_count=0. La interfície conserva la llengua i el temps límit efectiu del backend. La recuperació és una acció manual explícita, sense reintent automàtic. Una sola tasca productora manté la font viva durant tot el seu cicle perquè el context d’execució i la neteja de cancel·lació es conservin durant els heartbeats.
La configuració mostra una sola personalització vigent per habilitat original, triada segons la modificació més recent del paquet. L’edició desa al mateix paquet; crear una segona personalització de la mateixa font retorna un conflicte en lloc de duplicar-la. Restaura l’original demana confirmació abans de substituir instruccions, eines i activació; desa a la mateixa habilitat personal i conserva les assignacions.
Consum multiproveïdor i despesa del mes actual¶
Configuració → Plugins → IA → Consum mostra només l'ús de Gnosi amb tots els proveïdors configurats i selecciona inicialment els últims set dies. Els intervals, agrupacions i filtres inclouen proveïdor, model, agent, activitat, origen i perfil de model. Gràfics, totals, peticions paginades i exportació CSV comparteixen els filtres. La identitat del model inclou el proveïdor i l'identificador de model; el total d'un agent suma les seves crides entre rutes.
backend/services/ai_usage_ledger.py desa metadades de peticions a SQLite sense prompts ni respostes. backend/services/ai_usage_transport.py captura el consum abans de validar o transformar les respostes en transports SDK, callbacks i streaming. Cada crida conserva la ruta real, atribució, tokens, durada, estat i tarifes del moment; els canvis posteriors de configuració no reescriuen els costos històrics. El cost informat pel proveïdor té prioritat, inclòs el zero explícit; si falta, s'estima amb la tarifa de la ruta. Les tarifes desconegudes continuen sent desconegudes i els models locals tenen cost monetari de tokens zero. Els identificadors de crida eviten duplicats, inclosos els intents fallits i els fluxos amb consum parcial.
backend/services/ai_usage_dashboard.py ofereix /api/ai/usage/dashboard, /api/ai/usage/requests i /api/ai/usage/export amb els permisos d'espai de treball existents. Els imports decimals en USD es converteixen a la moneda de Settings amb la procedència del tipus de canvi. El consum desconegut, parcial i estimat es diferencia del zero i dels errors de càrrega. Els totals mensuals JSON existents es copien i importen una vegada, conservant proveïdor, model i import sense inventar dates de peticions ni agents. Només apareixen en intervals que cobreixen el mes complet; el detall de peticions comença amb l'activació del registre.
El control de despesa del mes actual utilitza el mateix registre i suma tots els proveïdors independentment de les dates i filtres del dashboard. Mostra el topall configurat, l'import consumit i el pressupost restant en la moneda de Settings. Un topall zero o buit significa sense límit. Els controls d'agents i equips rebutgen noves crides en arribar al topall només quan el bloqueig està activat. Amb el bloqueig desactivat, els models de pagament i les peticions opcionals de selecció de model continuen sent admissibles per sobre del topall. Les rutes automàtiques, adaptatives, resilients i manuals comparteixen aquesta política; un topall zero o absent no bloqueja cap selector. La disponibilitat, les quotes de tokens, els límits de context i els pressupostos individuals de lectura continuen vigents. backend/tests/test_ai_consumption.py cobreix la separació de proveïdors, qualitat del cost, streaming, idempotència, migració, moneda i coherència del mes actual amb els filtres; les proves d'agents i equips cobreixen el bloqueig activat i desactivat.
Els filtres d’igualtat entre cometes preserven el títol literal del recurs en català, castellà, anglès i francès, incloent donde i où. Les assignacions explícites com set estat to "En revisió" o définis estat sur "En revisió" utilitzen l’inventari complet verificat i requereixen confirmació abans d’escriure. Les ordres negades o explicatives no autoritzen actualitzacions. Aquests fluxos deterministes no acrediten la idoneïtat del model.
Una petició explícita de no utilitzar eines s’aplica al torn actual en català, castellà, anglès i francès. Elimina lectures obligatòries de context, eines d’escriptura autoritzades i ajuda d’equip del pla efectiu i de les eines del model, també als perfils dirigits. El material citat no imposa aquesta restricció. Les respostes del model encara necessiten una revisió factual independent.
Les peticions per llistar les propietats o els camps d’una taula consulten el seu esquema autoritzat, amb tipus, opcions i relacions, sense buscar registres. També funcionen amb taules buides.
Lectura de llibres amb límits i reparació de referències¶
La lectura dirigida limita cada fragment de treball a 4.096 tokens estimats. El pressupost d’entrada inclou l’embolcall de l’operació, l’esquema de sortida repetit, els missatges serialitzats i les instruccions de sistema. El límit predeterminat d’accions creix fins a almenys quatre accions per fragment més setze; els límits explícits més petits es conserven. La divisió manté tots els passatges originals, el context veí, la cerca i recuperació entre fragments i la memòria global desada del lector.
Cada knowledge.process-source.phase retorna una acció amb l’executor fixat. L’aplicació valida, executa i desa aquesta acció abans de demanar-ne una altra. Aquesta operació no incorpora l’eina d’ajuda d’equip ni amplia el límit de crides per a equips; les altres operacions conserven la coordinació opcional i totes mantenen l’autorització, la validació d’evidències i les traces centralitzades.
La reparació de referències vincula cada ruta permesa amb l’esquema del seu camp: identificador de font, cites o cobertura. La validació local imposa la mateixa correspondència quan s’ometen enumeracions de rutes molt grans. Els canvis invàlids es poden tornar a demanar dins del màxim existent de tres crides al model i del termini original, conservant l’esborrany, les evidències i les rutes permeses. Els títols, cossos, ordre i camps no afectats de les notes romanen intactes. Només una acció que supera l’esquema original i tota la validació d’evidències pot augmentar els plans desats; els punts de represa compatibles conserven els plans completats i la memòria de lectura.
L’aplicació lliura automàticament el següent original pendent, eliminant una crida al model que només servia per demanar-ne la lectura. Les accions explícites de lectura, cerca, recuperació i índex continuen disponibles. Cada petició inclou com a màxim vuit entrades d’índex properes, amb la posició i el total; l’acció d’índex recupera altres intervals. L’esquema d’accions no es repeteix com un segon contracte de sortida dins de la petició de lectura.
Cada pla desat inclou una memòria global actualitzada i limitada que recull l’argument acumulat, els matisos, les contradiccions i les connexions entre fragments. La memòria i els plans només avancen després de validar l’esquema i les evidències. Els punts de represa antics amb plans desats i memòria buida reconstrueixen la síntesi a partir de totes les notes desades, en grups limitats, abans de continuar; les notes originals romanen intactes. La represa des de la fila de la taula envia force=false per a feines interrompudes, i una data de processament anterior no impedeix recuperar el punt de represa. El reprocessament explícit d’una feina completada continua utilitzant force=true.
En reprendre, els punts interromputs anteriors del mateix recurs es comparen amb la identitat exacta de les fonts i de l’executor i es tria el conjunt de plans compatible més avançat. Un reinici explícit crea un límit de llinatge que les represes posteriors no poden travessar.
La reconstrucció de memòria global antiga utilitza el pressupost de memòria global (com a màxim 8.000 tokens estimats i una vuitena part del context d’entrada), en lloc del pressupost més curt de resum d’un fragment. La petició de síntesi i la validació fan servir les mateixes unitats de tokens estimats.
Cada operació de lectura dirigida reserva com a màxim 16.384 tokens de sortida per al seu únic resultat limitat, incloses les reparacions de format i d’evidències. Les altres operacions mantenen els ajustos del proveïdor. Això evita reservar els 65.536 tokens per defecte del proveïdor per cada fragment o síntesi de memòria, sense canviar la identitat del punt de represa.
El consum d’OpenRouter conserva l’identificador de generació i l’estimació original per separat. Quan el transport omet el cost facturat, una consulta de metadades GET limitada en segon pla recupera total_cost de la generació i actualitza la mateixa crida com a reported, sense afegir crides ni comptadors de tokens. Els imports absents, invàlids o no disponibles mantenen l’etiqueta d’estimat o desconegut; una consulta fallida no inventa cost zero ni interromp l’operació del model. El tauler de consum, el pressupost i el CSV llegeixen l’import reconciliat.
El lector dirigit admet plan.memory_updates amb canvis exactes old/new, com a alternativa compatible a retornar tota plan.memory. Una cadena old buida afegeix text; una altra cadena ha de coincidir exactament una vegada. La memòria no esmentada es conserva localment. Els canvis són atòmics: una coincidència absent o ambigua, una memòria buida, el límit de context o cites/cobertura invàlides impedeixen desar el pla i avançar. Cada pas continua rebent la memòria global completa. Les peticions ja no repeteixen la descripció d’accions que figura a l’esquema. Els checkpoints i els plans anteriors mantenen la seva identitat i contingut.
El processament de llibres incorpora un límit persistent de 0,50 USD, editable al diàleg de confirmació. Cada crida reserva un import conservador abans d’arribar al proveïdor: entrada serialitzada, sortida màxima i un marge del 10% sobre la tarifa, sense descomptes de memòria cau. Els preus desconeguts o les sortides sense límit bloquegen la crida. Els reintents interns del SDK es desactiven; les reparacions i els reintents governats reserven individualment. Una crida fallida o amb cost només estimat manté la reserva. Els costos reals del transport o les metadades de la generació coincident d’OpenRouter la liquiden atòmicament. Una pausa conserva el progrés; reprendre reutilitza el pressupost i el consum acumulat. Augmentar explícitament el límit requereix una altra petició de processament. En checkpoints antics sense pressupost, el límit nou cobreix la feina pendent i exclou la despesa històrica.
Una comprovació prèvia de només lectura estima tot el procés: passatges originals, instruccions i esquemes repetits, memòria global, reconstrucció de la memòria antiga, notes, revisió final i marge limitat de reparació. Mostra la ruta triada, el nombre exacte de plans compatibles, les crides previstes i cotes conservadores de tokens. L’estimació no és una factura fixa: cerques addicionals, notes més llargues o canvis de tarifa poden afectar el consum. Una petició amb l’identificador d’estimació torna a verificar font, execució, preu, mida dels lots i progrés desat; una estimació caducada no inicia una feina de pagament.
El lliurament automàtic agrupa fins a quatre fragments existents, reduint crides repetides sense canviar-ne la identitat. El límit de context pot reduir el lot. Cada lot retorna un pla separat per fragment i una actualització de la memòria global. Es validen identificadors, classificació, cobertura completa i cites literals abans de desar cap pla. La reparació de referències només modifica els camps permesos del pla fallit; els altres plans i tots els cossos de les notes queden intactes. Es mantenen la lectura individual, les cerques i la recuperació de plans. La regressió sense cost de 191 fragments reprèn 166 plans originals amb set lots i una acció final, preservant els originals; això no demostra la qualitat semàntica ni la facturació real d’un llibre.
La comprovació prèvia també indica els fragments desats incompatibles amb la font o els ajustos actuals. Els dos diàlegs i les peticions amb identificador d’estimació bloquegen aquesta represa, conservant els checkpoints en lloc de pagar silenciosament una altra lectura. Tornar a processar explícitament continua sent una acció diferent de reprendre.
Proves de funcions del bot i evidència reutilitzable¶
El selector del bot deriva les funcions requerides de les habilitats assignades i obligatòries, l’ascendència canònica de les habilitats, les operacions i les rutes explícites de l’equip. Les habilitats personals desconegudes queden sense classificar. La vista de decisió llegeix l’evidència desada sense crides al proveïdor; les capacitats i tarifes de l’oferta exacta i els llindars editables del catàleg continuen sent requisits. Es prioritzen les mostres de treball comprovades i revisades, i després el cost. Les puntuacions del catàleg són referències generals, no mesures d’encert en la tasca.
Els candidats inactius ofereixen Configurar per provar, que obre la configuració de l’oferta exacta. Un cop activats, el panell de proves s’obre automàticament amb els passos per revisar el límit de despesa i autoritzar les crides. Els candidats actius ofereixen Provar model. Obrir el panell o activar el model no executa les mostres ni l’assigna al bot. La bateria predeterminada conté casos originals per a les dotze funcions: lots de correu, extracció de factures, un assaig amb canvi de tesi i evidència contradictòria, recuperació, diagnòstic de codi, planificació de dependències, anàlisi fonamentada, traducció amb elements protegits, redacció, canvis de calendari, cribratge bibliogràfic i síntesi de reunions. Abans de gastar, es poden consultar la font, la tasca i les dades esperades. Són casos representatius redactats per a la prova, sense documents personals ni execució del bot en producció. La bateria bàsica anterior continua disponible per API. Cap bateria executa eines de negoci ni codi arbitrari generat, i cap acredita la comprensió d’un llibre sencer.
Cal autorització explícita i un pressupost positiu (0,05 USD per defecte, convertits a la moneda configurada; màxim 1 USD). La previsualització reserva un màxim conservador per als casos pendents. Les mostres de treball fan servir raonament per defecte i un màxim de 1024 tokens de sortida; les bàsiques mantenen 512. Es conserven el transport auditat, les reserves duradores i l’absència de reintents automàtics de l’SDK. Cada cas desa el resultat produït, el veredicte automàtic, la data original, el temps i el cost comunicat, estimat o desconegut. Els errors de transport, la cancel·lació, els càrrecs desconeguts i la sortida truncada aturen les crides següents sense confondre un resultat no concloent amb baixa qualitat.
Les comprovacions automàtiques verifiquen les dades i l’estructura demanades, sense avaluar la qualitat del text. Els resultats oberts requereixen acceptació o rebuig humà després de revisar fidelitat, cobertura, claredat i utilitat respecte de la font. Els comentaris i dates es desen al mateix informe, sense crides al model. Una revisió pendent no compta com a evidència completa. Un rebuig descarta l’oferta per a les funcions corresponents. L’acceptació humana no pot anul·lar errors de dades. Cal accés de propietari o administrador i no es poden modificar evidències d’altres usuaris ni informes en execució.
La reutilització exigeix el mateix usuari, espai de treball, vault, proveïdor/model exacte, versió de la bateria i mode d’inferència. La versió de les mostres incorpora l’empremta de les instruccions, dades esperades i requisits de revisió; canviar el joc impedeix reaprofitar evidència antiga. Els resultats es conserven i es poden reutilitzar sense repetir automàticament proves de pagament. Passats 30 dies, els resultats favorables deixen de donar l’estat actual de comprovat i prioritat en les recomanacions; aquest llindar és orientatiu i no mesura la validesa. La reutilització conserva les dates originals. El proveïdor pot revisar silenciosament el model; l’avís permet decidir una repetició explícita si cal. Només s’executen casos pendents llevat que l’usuari demani repetir-los. Els resultats i revisions s’aprofiten entre bots amb funcions comunes. Les proves i revisions no assignen ni activen models. Es rebutgen proves simultànies de la mateixa oferta.
GET /api/agent/runs/task-evaluation-suite
GET /api/agent/runs/task-evaluations
POST /api/agent/runs/task-evaluations/preview
POST /api/agent/runs/task-evaluations
POST /api/agent/runs/task-evaluations/{report_id}/review
version: hash of work samples; bot_tasks_v1 for basic
mode: work_default_1024; diagnostic_default_512 for basic
request: agent_id, provider, model, tasks, budget_usd, authorize_model_calls, retest, suite
storage: agent_team_artifacts / task_evaluation
Banc públic compartit de mostres de treball¶
El banc viu a ismigar/ismigar.github.io, dins de data/model-evaluations/, i es publica a https://gnosi.temenosismael.org/data/model-evaluations/index.json després de fusionar la PR del web. Comença buit. Gnosi el consulta sense credencials, cookies, context privat ni crides a models; no hi ha pujada automàtica ni integració amb el Worker privat del growth-dashboard. L’app torna a validar el joc original complet, els camps permesos, hashes, paràmetres acotats, dates i veredictes automàtics. Desactiva redireccions HTTP i proxies d’entorn, limita resposta i memòria cau a 4 MB, espacia les actualitzacions i conserva una còpia validada per treballar sense connexió. Si el banc falla o és invàlid, les proves locals continuen disponibles.
La reutilització compara model i proveïdor exactes, versió del joc, mode, revisions del client i validador, endpoint canònic, versió de l’SDK LangChain OpenAI, raonament predeterminat i límit de sortida. Inicialment cobreix els endpoints estàndard d’OpenRouter, OpenAI, DeepSeek i Mistral; endpoints propis i execucions antigues sense paràmetres registrats queden locals. El proveïdor identifica la passarel·la configurada, sense certificar criptogràficament el desplegament intern. Cada cas necessita les darreres observacions concordants d’almenys dues persones diferents de GitHub, revisades amb acreditacions de PR del repositori. Els textos oberts necessiten també revisió humana acceptada i aprovació del mantenidor. Repetir una observació des del mateix compte no aporta independència. Desacords i incidències no concloents obliguen a una comprovació local, sense descartar automàticament el model. L’evidència pròpia té prioritat. Es mostren origen i nombre d’observacions, i es pot desactivar la reutilització o repetir els casos. L’antiguitat es marca sense caducitat; el cas compartit representatiu és la més antiga de les darreres observacions participants, perquè una aportació nova no amagui suport antic.
El resum separa encerts automàtics, errors i incidències no concloents, i mostra origen del cost i mediana/rang de cost i temps. No substitueix les tarifes actuals ni acredita la quota de l’usuari, la comprensió d’un llibre complet o l’execució d’eines en producció. Les còpies compartides desades es contrasten amb el banc actual i no compten com a execucions locals noves; una retirada o pèrdua de consens invalida la reutilització quan arriba el banc actualitzat.
L’exportació és de només lectura i acotada al propietari/administrador: revisar els camps permesos, descarregar localment i decidir si aportar el fitxer mitjançant una PR. Només s’exporten resultats nous de les mostres originals amb paràmetres registrats. S’ometen identitats de bot i execució, rutes del vault, credencials, notes de revisió, fonts personals i casos reutilitzats. Inclou respostes públiques, model/proveïdor/ajustos, dates, costos amb origen i veredictes; la interfície exigeix inspecció i explica que aquests camps seran públics en publicar-los. Els mantenidors vinculen l’aportació a l’autor de la PR, revisen els textos oberts, executen el validador portable i regeneren l’índex. L’app no fa crides a models ni publica externament en exportar.
Raonament de lectura limitat i costos de respostes truncades¶
Les fases de lectura conserven el límit de sortida de 16.384 tokens. Quan el bot no té un nivell de raonament explícit, demanen raonament baix només si el model exacte d’OpenRouter declara que l’admet. Les preferències explícites del perfil o transport tenen prioritat; les capacitats desconegudes i els altres proveïdors es mantenen. La petició conserva la ruta triada, l’esquema de sortida i els requisits del proveïdor, i consta a la traça. No canvia cap ajust desat del bot ni invalida els plans de fragments validats. Redueix el risc de consumir tota la sortida en raonament, però no garanteix completar el llibre dins del pressupost.
Si l’anàlisi d’una resposta estructurada falla pel límit de sortida, la comptabilitat llegeix el consum de la resposta continguda a l’excepció abans de registrar la crida fallida. El cost comunicat liquida la reserva d’aquella crida, inclòs el raonament facturat; si manca el cost, continua desconegut i reservat. No s’afegeixen reintents ocults ni increments de pressupost. El diàleg distingeix l’esgotament per raonament d’una resposta truncada, conserva el progrés i mostra els detalls tècnics plegables amb ajust de línia. Les reserves històriques sense evidència de facturació no s’alliberen silenciosament.
Reparació de referències de tot el lot¶
Abans de validar les evidències, el lector pot recuperar un resum criptogràfic omès de l’identificador d’un segment només quan el prefix exacte d’origen i seqüència es resol inequívocament entre els segments proporcionats i ja llegits. No endevina identificadors aliens, no substitueix un resum erroni ni altera cites, text de notes, classificació o memòria global. Les referències canòniques es desen i es registra el recompte de normalitzacions. La cobertura, la coincidència literal de cites i l’atribució primària es continuen comprovant sense canvis; aquesta correcció de transport conserva les identitats dels checkpoints existents.
Ara un lot recull els errors de referències de tots els plans abans de demanar-ne la reparació limitada. El contracte de pedaços identifica cada pla i camp afectat; el restaurador local exigeix els camins permesos i els tipus de cada pla fins i tot quan una gramàtica gran del proveïdor omet enumeracions. Cada pla rebutjat inclou els originals primaris, també si tant l’identificador com la cita són erronis. Les notes vàlides i la memòria compartida romanen immutables, i el lot només es desa quan tots els plans superen la validació. Les reparacions mantenen el límit de tres crides, el termini i el pressupost; no afegeixen reinicis automàtics ni reintents il·limitats. El diàleg del recurs resumeix el rebuig d’evidències en l’idioma configurat i deixa els diagnòstics al desplegable de detalls tècnics.
Quan una acció de lectura té una estructura completa però conté valors de classificació invàlids, el reparador comprova també les cites i la cobertura en el mateix pas. Una còpia privada utilitza valors buits només per detectar altres errors; mai no es desa ni es retorna. Un únic pedaç ha de proporcionar tots els camps de classificació rebutjats i les correccions de referències. Es conserven les classificacions vàlides, el text i l’ordre de les notes i la memòria global, i l’acció restaurada completa passa les validacions originals d’esquema i evidències. El JSON incomplet o altres errors d’estructura continuen utilitzant la reparació limitada de la resposta completa. Així, una correcció de sintaxi seguida d’errors de classificació i cites pot cabre dins del mateix límit de tres crides, sense ampliar el termini ni el pressupost.
La mateixa reparació limitada també recull actualitzacions invàlides o mal ubicades de la memòria global. Un lot pot proposar canvis de memòria dins de cada pla tot i que el contracte exigeix una única actualització compartida; aquests canvis continuen visibles a l’esborrany rebutjat i requereixen un pedaç explícit de memòria consolidada. Una còpia privada conserva la memòria actual només per detectar conjuntament tots els errors de classificació, cobertura i cites. Mai no es desa. El pedaç restaurat ha de triar una síntesi completa o canvis seqüencials exactes, mai les dues opcions; els textos de substitució inexistents o ambigus continuen sent errors. La resta de notes i camps vàlids es mantenen intactes. No canvien el límit de crides, el pressupost, el termini ni la identitat del punt de represa. El diàleg tradueix l’error d’edició de memòria i conserva el diagnòstic als detalls desplegables.
Recuperació limitada dels lots i temps d’espera mesurat¶
Quan el proveïdor talla un lot lliurat automàticament després d’emetre tokens de resposta, el lector divideix per dos el lliurament pendent, com a màxim de quatre a dos i a un. L’esgotament només de raonament, les lectures explícites, les evidències invàlides i els errors de pressupost no activen aquesta recuperació. Si falla un sol fragment, s’atura. El màxim reduït es desa al checkpoint i es respecta després de reiniciar, també en reprendre un error anterior de límit de sortida. L’estimació prèvia utilitza i explica el mateix màxim reduït. Cada crida intentada continua reservant contra el pressupost durable original; no s’augmenta cap límit. Els fragments immutables, les cites exactes, els plans desats i la memòria global es conserven. S’adapta el lliurament dels lots, sense canviar la identitat dels fragments ni retallar notes. Les proves locals cobreixen recuperació, reinici, reducció manual, estimació sense plans desats, conservació de totes les evidències i aturada per pressupost durant la recuperació; no demostren que un llibre real s’acabi.
Els diagnòstics de reparació estructurada indiquen el camp i la restricció incorrectes sense repetir tot l’esquema JSON ni el document rebutjat dins del diagnòstic. Per a les accions del lector es validen els arguments de l’acció triada, evitant errors enganyosos d’una altra alternativa. Les instruccions de lliurament automàtic distingeixen explícitament els passatges ja aportats de les lectures posteriors. Es mantenen la validació, la comprovació d’evidències i el límit de reparacions.
Les recomanacions mostren el temps recent mesurat de les mostres i, per a tasques de llibre, les durades i els errors disponibles dels passos de lectura real amb el mateix proveïdor i model. El temps de cada pas inclou correccions, no barreja feines pare ni altres operacions i no s’extrapola a la durada del llibre perquè varien els lots i els contextos. Només representa l’activitat recent retornada per l’API. Entre candidats que han superat totes les proves de les tasques seleccionades, l’opció equilibrada minimitza el cost estimat multiplicat pel temps mitjà de mostra només si tots els candidats comprovats tenen mesures positives i recents del mateix joc vigent, mode i casos demanats. Altrament conserva l’ordre per cost i indica les mesures absents. L’opció més econòmica continua ordenada per cost. Les evidències antigues de qualitat es poden reutilitzar, però no compten com a mesures actuals de velocitat. Les mesures són orientatives i poden provenir de mostres compartides; la càrrega de treball i la del proveïdor poden variar.
Lectura de fonts dirigida per l’aplicació¶
La ruta actual de processament de fonts utilitza semantic_reading.py. Gnosi programa una visió global de la font, la interpretació ordenada, un mapa conjunt de totes les notes proposades i la revisió amb evidència original abans de desar. El model ja no tria accions del flux, copia identificadors de font ni reescriu la memòria de treball. El lector dirigit per accions i els seus contractes descrits en altres apartats d’aquesta pàgina són rutes de compatibilitat antigues, no el lector de producció.
L’skill original plugin.llm-wiki.process-source està escrita en anglès i defineix la metodologia intel·lectual: notes de lectura atòmiques i substantives, atribució, evidència exacta, matisos, classificació i connexions fonamentades amb coneixement existent. El bot de Coneixement defineix la finalitat i els criteris de l’usuari. El codi controla lots, identitats de font, progrés, checkpoints, recuperació de context, pressupost, validació, seccions i desament. Les fonts continuen sent dades no fiables. Les notes permanents continuen requerint aprovació humana.
Cada interpretació retorna resultats ordenats dels passatges amb idees, citacions exactes i propietats semàntiques. L’aplicació els vincula a les fonts primàries ja conegudes i als camps configurats. Les cites han de coincidir exactament amb l’original; les cites contextuals ambigües i les notes sense cita primària no superen la validació. Cada passatge primari té notes o un motiu d’omissió. La reparació parcial només demana corregir interpretacions de passatges invàlides i conserva els passatges vàlids i les observacions. Cada fase governada permet dues crides al model, manté el termini i les reserves de despesa i no pot delegar.
Finestres de text més àmplies contribueixen a un mapa jeràrquic de l’argument, inclòs el final. Els passatges veïns i la recuperació lèxica entre tots els originals aporten context a la interpretació. Les notes prèvies, els temes, les preguntes i les contradiccions es desen com a dades estructurades del checkpoint i se’n seleccionen les entrades pertinents per continuar llegint. Totes les notes i observacions contribueixen al mapa conjunt. La revisió examina totes les notes proposades amb evidència original i els dos mapes i retorna correccions puntuals; les notes intactes es conserven localment. Les cites exactes acrediten procedència, no correcció semàntica. La recuperació lèxica i els mapes generats poden perdre matisos i no substitueixen el judici humà.
Els checkpoints semantic-state conserven mapes, plans validats, observacions i revisions acabades. Per reutilitzar-los han de coincidir la política d’execució, els fragments originals, els camps configurats, el títol i la llengua. Si només canvia l’índex de coneixement, es conserven els esborranys basats en la font i els mapes ja pagats, però totes les notes s’han de revisar de nou amb els candidats de connexió actuals; les revisions anteriors no els validen. Els checkpoints antics d’accions es conserven però no es poden importar silenciosament després del canvi d’skill; l’estimació prèvia mostra la incompatibilitat i exigeix reprocessament explícit. Cap actualització inicia la lectura, canvia el model ni augmenta el límit de despesa. L’estimació inclou visió global, interpretació, síntesi conjunta i revisió; el volum de notes i les reparacions són estimacions, mentre que el pressupost persistent existent controla cada crida real.
Les regressions sense connexió cobreixen l’entrega completa d’una font llarga, la revisió conjunta, les correccions d’atribució, la vinculació de cites exactes, els tipus de propietats, la reparació parcial, la reducció de lots per límit de sortida, la reutilització de checkpoints i les interrupcions. Validem l’orquestració i les invariants, no la comprensió d’un llibre sencer per un model real.
Els mapes d’argument i les síntesis conjuntes de notes es demanen com a text pla limitat, sense esquema de sortida JSON. Gnosi els serialitza als checkpoints. Les respostes buides, els embolcalls JSON, els blocs de codi i els mapes que superen la capacitat de context reservada es rebutgen dins del límit existent de dues crides. La interpretació i la revisió mantenen els contractes estructurats estrictes i la validació d’evidències. Això evita pagar per reparar la puntuació JSON al voltant de la prosa; no certifica la qualitat semàntica del mapa.
Els mapes de fonts complets que superen l’objectiu de 2.000 tokens es conserven als checkpoints. El mapa global de l’argument i el mapa conjunt de notes que es repeteixen al context han de cabre en un màxim de 2.000 tokens estimats (menys amb contextos petits). Cada reducció retorna una síntesi completa més breu de totes les entrades i permet com a màxim dues crides supervisades. Un esborrany complet massa llarg es desa i es comprimeix enviant només aquest esborrany; una síntesi tallada es torna a demanar una vegada a partir dels mapes d’entrada complets i mai es ramifica en més finestres de síntesi. Un segon error atura el procés conservant el progrés. Els checkpoints de reducció versionats inclouen la política d’execució fixada, el títol, l’idioma i el material exacte; els grups completats es conserven després d’una interrupció. El càlcul previ valora els mapes de fonts realment desats per a la primera reducció i només els mapes de navegació limitats al context repetit. Els originals, les cites exactes, les comprovacions d’atribució i la revisió de totes les notes continuen sent autoritatius; un mapa més curt no acredita la completesa semàntica.
L’objectiu més breu demanat al segon intent de reducció deixa marge; l’acceptació continua utilitzant la mateixa capacitat del mapa. Una resposta completa entre aquest objectiu i la capacitat és vàlida. La represa també converteix els esborranys complets compatibles que ja hi caben en checkpoints de resultat sense cap altra crida al model, inclosos els desats per reintents anteriors més estrictes. Els esborranys buits, incomplets, incompatibles o encara massa llargs no poden eludir la validació. No es retalla cap text de la font i es conserven el pressupost i el màxim de dues crides.
La interpretació i la revisió conjunta seleccionen identificadors locals de cites entre fragments numerats que cobreixen els originals subministrats sencers, des de la primera resposta del model. Gnosi restaura el text exacte abans de les mateixes comprovacions d’esquema, passatge principal i cites; una correcció de sintaxi utilitza les mateixes opcions. El pressupost d’entrada inclou el catàleg numerat i els espais en blanc es mantenen units a les evidències originals. Les reparacions d’interpretació inclouen diagnòstics per nota i conserven els passatges vàlids i la memòria semàntica. La memòria cau de l’operació conserva el contracte validat de selecció, mentre que els checkpoints de lectura mantenen cites literals, de manera que la feina completada compatible es pot reutilitzar. Les evidències només de context, ambigües, buides o inventades continuen sent invàlides. El màxim de dues crides i el pressupost no canvien. Els errors de cites utilitzen el missatge d’evidències traduït existent i conserven els detalls tècnics.
Les interpretacions utilitzen entrades amb clau passage_N; la revisió utilitza entrades note_N amb una substitució o null per conservar l’original. Cada entrada exigeix primary_quote_ids no buits, enumerats exclusivament a partir de la seva font. Els context_quote_ids addicionals no poden substituir l’evidència principal. Les reparacions parcials imposen les mateixes restriccions. Les definicions compartides dels camps limiten la mida de l’esquema. La validació local rebutja passatges desplaçats i cites d’una altra font abans de vincular-los; els plans de lectura desats continuen sent compatibles.
La versió 2 de la identitat de lectura normalitza les claus dels diccionaris i l’ordre de l’índex de coneixement. Els límits de coneixement i catàlegs de relacions s’apliquen després d’una ordenació estable, de manera que una recàrrega no pot seleccionar un subconjunt arbitrari diferent. Els components de la identitat es desen per al diagnòstic; l’ordre de les fonts, el text, les classificacions i la política d’execució continuen sent rellevants. Els mapes de prosa complets tenen una identitat pròpia basada en el material exacte, el títol, la llengua i la política d’execució fixada, independent de la classificació i el context de coneixement. Es poden reutilitzar encara que calgui regenerar les notes provisionals. Les memòries cau de mapes antics requereixen evidència explícita d’una resposta completa del proveïdor abans de migrar-les.
Les operacions de mapes de prosa reserven com a màxim 8.192 tokens de sortida. Les metadades natives del límit de sortida rebutgen el text incomplet abans de desar-lo com a mapa complet o reparar-ne el format tornant a enviar tota la font. Només es poden dividir les finestres de fonts originals i d’entrada de notes conjuntes que continguin text de resposta; les finestres germanes completes i les decisions de divisió es conserven després d’una interrupció. La síntesi jeràrquica mai divideix una sortida tallada i ha de reduir-se en un nombre finit de nivells. El progrés de la visió general avança quan es completen les finestres de fonts; aquests mapes són diferents dels fragments de notes extrets.
El diàleg de processament descobreix una feina persistent activa o interrompuda en obrir-se abans d’habilitar un inici de pagament. Obrir una pàgina de font recupera les feines interrompudes al monitor de la cantonada, també després de recarregar, sense suggerir que s’han completat. Recuperar l’estat no inicia cap feina, no emet cap notificació d’èxit ni marca notes com a creades. Una confirmació inactiva oberta comprova si s’ha iniciat feina externament i s’hi vincula sense iniciar-la de nou. El magatzem compartit manté el seguiment en tancar o navegar; el descobriment es pot cancel·lar, no solapa peticions ni substitueix un inici local pendent. Les feines històriques completades no bloquegen un nou processament explícit. El diàleg mostra fase, percentatge i errors de connexió o síntesi traduïts, amb els detalls tècnics disponibles. Les notes només es desen després de completar la interpretació de les fonts i la revisió fonamentada.
Durant la interpretació, el context auxiliar recurrent té límits independents de la finestra del model: els originals recuperats utilitzen com a màxim 8.000 tokens estimats, les notes relacionades 6.000 i les observacions 4.000, amb límits proporcionalment inferiors en models petits. Es conserven els passatges principals complets, els veïns, els mapes globals i la validació exacta de cites. Les peticions semàntiques estructurades mantenen l’esquema al contracte de l’operació i del proveïdor sense una altra còpia dins del text de lectura; les reparacions parcials utilitzen el mateix transport. Una resposta JSON extensa que acaba abans de completar-se fa que el lector divideixi només el lot pendent, en lloc de demanar una reescriptura completa. El lot pot passar de quatre fragments a dos i després a un; els errors d’un sol fragment aturen la lectura. Cada nou intent continua reservant el seu cost dins del pressupost original del llibre. Els plans validats, les identitats de les fonts, els mapes complets i el llinatge dels punts de control es poden reutilitzar. Les peticions més petites no garanteixen una latència determinada del proveïdor. La navegació d’enllaços es limita a les vuit notes existents més ben classificades dins de 4.000 tokens estimats, sense modificar l’índex de coneixement desat.
Els grups independents de revisió amb evidències originals s’executen ara de dos en dos com a màxim mitjançant semantic_review_execution.py. La interpretació manté l’ordre. Cada grup conserva els mateixos originals complets, mapa global, mapa conjunt de notes, esquema i validació que l’execució seqüencial. Les còpies separades del context d’execució hereten l’espai autenticat, la cancel·lació del procés pare i les mateixes reserves atòmiques del pressupost del llibre. Un únic coordinador desa cada grup vàlid, també quan l’altre falla, i aplica les correccions en l’ordre de la font. Els grups massa grans que fallen es redueixen sense repetir els grups veïns desats. Una reserva bloquejada per l’altra crida es pot tornar a provar quan la tanda ha avançat; una tanda sense progrés es pausa. El transport estructurat demana només un format JSON compacte i conserva els textos, les notes, les explicacions, els matisos i les evidències seleccionades. Les identitats dels punts de control continuen sent compatibles; les respostes amb indentació també són vàlides. Les reproduccions locals seqüencials, paral·leles i de respostes registrades comproven l’equivalència del context i les dades, però no garanteixen judicis idèntics del model ni una acceleració concreta de tot el llibre.
Les cites seleccionades en la revisió conserven empremtes de la font generades per l’aplicació juntament amb el text copiat exactament. La vinculació comprova tant l’empremta com la presència literal en els originals subministrats, de manera que un text repetit no pot canviar silenciosament d’atribució. El catàleg compartit de revisió inclou els passatges principals i de suport de totes les notes; les proves seleccionades d’altres notes continuen disponibles durant la validació i es desen amb el pla revisat. Els punts de control antics conserven l’àmbit de proves original de cada nota. Les fonts desconegudes, el text reescrit, les seleccions desalineades i les substitucions sense proves del seu passatge principal continuen fallant; no es descarta cap cita ni correcció substantiva per completar una revisió.
La recuperació de la revisió també reconeix un objecte JSON tallat dins d’una cadena o al final de l’entrada, encara que el proveïdor indiqui una finalització normal i només retorni un prefix curt. Redueix a la meitat el grup pendent dins del mateix pressupost, en lloc de pagar una altra reescriptura completa; una fallada amb una sola nota atura el procés. Les revisions antigues interrompudes amb aquest error exacte del parser es reprenen amb una mida desada més petita. Les divisions s’aturen als límits dels intervals ja validats, també amb mides senars, perquè cap part d’un grup veí completat es torni a revisar. No s’accepta ni es completa localment cap resposta incompleta.
Acceptació de la qualitat de lectura¶
Una resposta completa del proveïdor no és un veredicte de qualitat. La revisió conjunta inclou passatges originals adjacents complets entre pàgines i diagnòstics explícits de la prosa. Els enllaços numèrics interns sense resoldre, les notes al peu sense definició i la barreja corrupta d’alfabets sense suport rebutgen tot el lot revisat, incloses les notes sense canvis. La resposta declara els defectes pendents; si n’hi ha, el procés s’atura abans de publicar i conserva les interpretacions i els mapes pagats. Les revisions i els plans reduïts anteriors no poden eludir aquest contracte d’acceptació versionat. Les comprovacions mecàniques no certifiquen la veritat semàntica.
El ressaltat del PDF exigeix trobar la cita completa, amb coordenades dels caràcters originals i normalització només dels espais de maquetació. Admet cites curtes; les coincidències repetides requereixen identificar el passatge original. Es rebutgen les coincidències només de l’inici i s’eliminen els ressaltats gestionats que ja no es poden verificar quan l’adjunt està disponible. Les pàgines que només contenen imatges i les ambigüitats no resoltes continuen sent errors explícits, sense inventar coordenades. Els processos acabats amb observacions mostren un avís de revisió en lloc d’un indicador d’èxit sense reserves; les observacions repetides es mostren una sola vegada.
La versió 2 de la revisió de qualitat també proporciona al revisor les observacions
anteriors de l’extracció. Els avisos originals es conserven als punts de represa
i a l’historial del pla revisat; els avisos actuals indiquen les limitacions que
la revisió encara detecta. Els avisos de passatges sense notes revisables
continuen pendents. La tasca i el manifest de la font distingeixen una revisió
acabada de l’acceptació: qualsevol avís pendent de lectura, extracció o cites
manté reviewed a fals i quality_status a needs_review. No s’esborren avisos
silenciosament per obtenir un estat d’èxit.
Les exclusions de la política també s’apliquen durant la revisió conjunta. El revisor pot excloure una nota amb una justificació explícita basada en la font quan el passatge queda fora de la política activa o no permet una nota substantiva. L’aplicació conserva el passatge a la cobertura i el context, desa el motiu, rebutja posicions invàlides o repetides i reté l’esborrany original i el punt de represa. Les notes gestionades ja publicades queden obsoletes, però se’n conserven el text i les edicions manuals. No es poden descartar idees substantives per evitar corregir-les. La versió 3 de qualitat invalida decisions de revisió anteriors i reutilitza els esborranys i els mapes de la font.
La revisió de qualitat versió 4 limita cada lot a les notes que rep i conserva
els dos mapes globals com a orientació fal·lible. El revisor pot demanar pàgines
originals completes o cerques en la llengua de la font per a una nota concreta
mitjançant evidence_requests, amb un màxim de dues rondes. Les cerques retornen
passatges sencers dins del límit, sense escurçar els originals; les pàgines
explícites hi han de cabre completes o el lot s'atura. Les correccions provisionals
no publiquen notes ni eviten les comprovacions finals de prosa, cites o problemes
pendents. Cada ronda es desa i es reutilitza tant en reintents de pressupost del
mateix treball com en represes. Les revisions reeixides conserven les empremtes
dels originals addicionals, que es tornen a validar abans de reutilitzar-los.
S'invaliden les revisions antigues, però es conserven els esborranys i els mapes.
L'estimació amb reparacions inclou aquestes rondes opcionals i les seves
reparacions de format; totes les crides comparteixen el límit acumulat del llibre.
El format enviat al proveïdor omet la restricció d’unicitat de llistes no admesa per a les peticions d’evidència; la validació canònica continua rebutjant localment els números de pàgina duplicats.
La revisió de qualitat versió 5 passa els defectes semàntics pendents pel validador de sortida governat. L’única crida correctiva existent rep el problema concret i pot corregir notes, explicar una exclusió prevista per la política o demanar originals. No obté més intents de reparació de format, i els resultats pendents continuen impedint la publicació. Les claus de fase versionades eviten que les respostes antigues acceptades amb defectes eludeixin aquest límit de correcció; les interpretacions originals es poden reutilitzar.
Les metadades de facturació d’OpenRouter poden continuar indisponibles després d’acabar una resposta. La confirmació, que només consulta metadades, es reintenta al cap de 2, 10, 30, 120 i 300 segons, amb un màxim de sis GET en total. Dos treballadors en segon pla comparteixen una cua limitada a 128 confirmacions pendents; l’espera dels reintents no ocupa treballadors ni bloqueja consultes noves, i no es duplica una crida ja pendent. Només un import confirmat pel proveïdor i amb la mateixa identitat liquida una reserva. Quan s’esgoten els reintents, el cost continua pendent; no es repeteix la crida al model, no s’anul·la un càrrec desconegut ni s’augmenta el límit del llibre.
La interpretació i les seves reparacions limitades conserven ara l’empremta immutable de la font de cada cita seleccionada, igual que la revisió. Restaurar el text no pot descartar una selecció inequívoca perquè les mateixes paraules apareguin també en un altre paràgraf. El recorregut de reparació parcial conserva tant els caràcters originals com la font seleccionada; les substitucions de font sense suport i els originals modificats continuen sent invàlids. Els punts de control literals antics continuen sent compatibles, però les cites contextuals ambigües sense procedència es rebutgen en lloc d’atribuir-les per conjectura.
Abans de la interpretació, cada segment primari desat hereta el nom del document del seu fragment pare. La petició, el conjunt complet d’evidències i la vinculació de cites utilitzen la mateixa vista de la font; no es pressuposa que els segments desats dupliquin el nom del document. La regressió del lector complet comprova aquest traspàs, a més de la restauració de cites individuals.
La revisió de qualitat versió 6 comprova la geometria de les cites del PDF abans de revisar i abans d’acceptar cada lot corregit, amb índexs de pàgina compartits i accés serialitzat a PDFium. Les cites que no es poden localitzar o són ambigües generen indicacions precises de correcció, preservant el contingut substantiu de la nota. Els avisos de revisió segueixen el mateix recorregut de correcció limitada que els problemes pendents: l’atribució i la incertesa qualificada de la font han de quedar a les notes i a la valoració, mentre que els defectes de lectura pendents impedeixen l’acceptació. Les observacions prèvies dels passatges exclosos es conserven al punt de control d’auditoria i no reapareixen sense revisar com a avisos finals. Es reutilitzen les interpretacions i els mapes; les revisions anteriors es repeteixen amb el nou control de qualitat.
Una escriptura acabada amb problemes de qualitat pendents es mostra com un procés parcial que es pot reprendre, també per als registres històrics després de reiniciar l’aplicació. L’estat, l’estimació i l’execució reutilitzen els mateixos punts de control i el pressupost acumulat sense exigir un reinici forçat; el registre d’auditoria desat es conserva.
La revisió de qualitat versió 7 assenyala els comentaris residuals sobre límits dels fragments a les notes finals perquè es corregeixin amb les fonts. Aquesta comprovació de redacció no classifica la veritat semàntica: mai no reconstrueix la font ni elimina qualificacions automàticament. Els esborranys es reutilitzen, però la revisió final ha d’expressar el sentit sostingut pels originals o demanar el text que realment falti. Els registres d’acceptació del procés i del manifest incorporen la versió de revisió; una acceptació semàntica antiga o obsoleta es pot reprendre sense modificar l’auditoria ni reiniciar el pressupost.
Una revisió correctiva acotada esmena la proposta precedent. Els canvis nuls conserven les correccions i exclusions anteriors, mentre que les substitucions explícites poden modificar-les o revertir-les; el resultat combinat encara ha de superar tots els controls d’evidència, prosa i geometria del PDF abans de ser acceptat. Això evita que una segona resposta parcial restauri silenciosament esborranys originals defectuosos. Els números de nota dels diagnòstics mantenen la posició original encara que s’exclogui una altra nota. El pressupost de correcció i la versió de qualitat es mantenen.
La selecció de represa només compta els grups revisats quan la versió de qualitat coincideix amb les regles d’acceptació vigents. Una revisió antiga acabada no ha de desplaçar el treball parcial acceptat més recent amb la mateixa cobertura de la font; comptar revisions obsoletes provoca repeticions de pagament evitables. Els mapes i les interpretacions originals continuen sent reutilitzables amb els controls d’identitat existents.
La versió 8 de revisió de qualitat també detecta prosa final que descriu el text disponible com a tallat o una frase subministrada com a mancada d’una explicació completa. Les decisions de la versió 7 només poden migrar sense repeticions de pagament després que cada lot superi tots els controls vigents d’esquema, evidència, prosa i cites. La decisió desada rebutjada es conserva a l’auditoria; només es revisa de nou aquell lot, amb l’error com a informació de correcció. Les polítiques semàntiques anteriors encara requereixen una revisió nova. La persistència ignora les rutes inexistents del registre en seleccionar una nota gestionada, tria una única còpia activa per clau de manera determinista i marca les altres com a substituïdes sense eliminar els fitxers ni el text personal.
El control de continuacions absents inclou les referències a frases inconcluses i les afirmacions explícites que el text subministrat no conté la continuació. Aquests resultats es remeten a una revisió basada en els originals; el control no elimina mai la reserva automàticament.
Evidència de lectura segons el perfil¶
Els candidats per llegir llibres han de declarar sortida estructurada o crides a eines en l’oferta exacta del proveïdor. La mostra de treball comprova cites literals i atribució, una frase que continua al passatge següent, la correcció d’una paraula estrangera introduïda, un canvi de tesi i veus contradictòries. La síntesi breu en català continua requerint revisió humana de l’idioma, la llargada, la fidelitat i la cobertura; les comprovacions de dades fixes no certifiquen la qualitat de la prosa ni un llibre complet. Canviar la mostra canvia la versió de la bateria i impedeix reutilitzar aprovacions anteriors.
Un perfil només rep l’estat actual de comprovat si totes les tasques detectades tenen criteris i cada criteri té un resultat recent acceptat. La bateria determina els requisits de revisió encara que un registre desat els ometi. Els resultats antics continuen visibles, i els errors de contracte o rebutjos humans coneguts exclouen l’oferta afectada fins que un resultat nou els substitueixi. No es veta cap model pel nom, i els errors d’infraestructura no es tracten com a errors de qualitat del model. Obrir les recomanacions, canviar les mostres o perdre l’estat actual de comprovat no executa proves de pagament ni canvia el model assignat al perfil.
El Markdown de les cites i el format dels localitzadors de font són a backend/domains/llm_wiki/citation_rendering.py. La façana backend/services/llm_wiki.py conserva les exportacions dels auxiliars, els enllaços a les fonts i el format de les marques de temps. Les proves del controlador de configuració separen les simulacions HTTP mutables de les assercions de persistència; la bateria continua comprovant els dos estats de l’interruptor de pressupost i la reobertura.
Context compacte de coordinació i registre de continuacions¶
agent_team_context projecta només les evidències de coordinació: un extracte de la petició limitat a 6.000 caràcters, quatre missatges recents de fins a 800 caràcters cadascun conservant-ne els rols, descripcions de capacitats sense duplicats i un inventari de fonts amb recomptes de seleccions. Exclou els resultats d’eines, les metadades del proveïdor i el contingut de les fonts. L’executor i els artefactes de recuperació conserven la petició, els missatges, els permisos i les seleccions exactes originals. Els recomptes locals de caràcters comparen les mides dels paquets; no mesuren tokens.
Una única tasca completada de redacció o traducció, només de lectura, pot desar un artefacte de continuació vinculat a l’àmbit. Una gramàtica de petició completa reconeix reformulacions estilístiques concretes en català, anglès, castellà i francès. La resposta i el missatge d’usuari anteriors han de coincidir amb els resums criptogràfics desats, i el perfil actual, la revisió del catàleg, les capacitats, el rol i les referències de fonts han de coincidir amb la seva empremta. Els adjunts, permisos o objectius nous, els assentiments ambigus, els executors temporals, la síntesi i les modificacions requereixen coordinació normal. La disponibilitat de l’executor i les habilitats assignades es tornen a validar abans de cada assignació reutilitzada.
La comprovació de continuïtat obté els identificadors registrats de redacció i traducció d’agent_operation_catalog.skill_id, inclòs core.gnosi-translation-workflow. La regressió de traducció utilitza la identitat del catàleg i verifica que una revisió d’estil posterior reutilitzi l’especialista. Les proves sintètiques de derivació han de validar totes les habilitats assignades amb el catàleg del runtime abans de cridar els models.
El pla declara operation, response_kind i output_contract; les metadades de capacitat exposen application_operation. La validació local comprova que la tasca de resultat utilitzi l’habilitat assignada de l’operació i impedeix que els resultats estructurats directes evitin un especialista disponible. Es mantenen les salutacions, els aclariments necessaris i les explicacions de capacitats realment no disponibles. Els contractes JSON utilitzen esquemes en línia acotats, sense referències ni patrons.
En la planificació nativa d’OpenRouter, operation_input omet l’esquema duplicat del missatge mentre el proveïdor i l’executor local conserven el contracte complet. Els proveïdors locals, els esquemes dinàmics i les reparacions de resultats mantenen l’esquema dins el missatge.
explicit_output_keys reconeix plantilles completes de retorn JSON, sense cometes i en límits d’instrucció. El pla ha de conservar aquestes claus; les output_signatures registrades i úniques seleccionen l’operació disponible corresponent. Les instruccions citades i el text font dins blocs de codi no poden aportar una directiva de format. Els contractes de taula buits es rebutgen abans d’executar, impedint que un pla invàlid repari un camp demanat transformant-lo en un objecte buit. La planificació nativa presenta la petició actual com a camp de primer nivell i conserva l’historial com a evidència de referència.
CheckedTeamOutput valida el JSON final delegat abans de completar-ne l’execució de conversa. Un resultat vàlid no afegeix cap crida al model. Una sintaxi, claus o tipus invàlids permeten una única crida team.repair amb el mateix executor, les evidències originals i sense eines; una reparació fallida genera TeamOutputContractError i no pot repetir el graf de la tasca. Els esdeveniments de confirmació es mantenen pendents en lloc d’interpretar-se com a resultats JSON. Els resultats estructurats no instal·len marcadors de continuïtat de text.
agent_team_usage llegeix el registre de crides del proveïdor de l’arbre d’execucions de l’àmbit i separa planificació i replanificació, execució, síntesi i reparació. Inclou reintents, exclou totals de treballs ja agregats i manté com a desconeguts el consum i el cost absents. Una traça team.usage i els detalls de la resposta del xat mostren el desglossament. planning_calls_avoided compta les crides de coordinació evitades, mai tokens o dòlars hipotètics. Una comparació abans i després ha d’utilitzar les mateixes peticions sintètiques, models i requisits de sortida, conservar la cobertura de tokens i costos informats pel proveïdor i valorar la qualitat del resultat. No es dupliquen peticions de producció per mesurar-les.
La primera crida team.plan redueix un nivell compatible l’esforç predeterminat declarat pel model d’OpenRouter seleccionat, amb un mínim de low, només per a una salutació inicial o una operació d’escriptura/traducció ja identificada, sense accions autoritzades ni contracte JSON explícit. Les peticions ambigües, els resultats estructurats i team.replan conserven l’esforç normal. Els perfils amb esforç explícit no canvien. Els valors predeterminats desconeguts, none, minimal i low es mantenen; la política no augmenta mai un valor predeterminat més econòmic. Si la validació local de l’esquema o de l’assignació rebutja el pla, la segona crida existent utilitza l’esforç normal, la mateixa instantània, contracte i diagnòstic, sense eines. Es mantenen el termini original i el límit de dues crides; un segon pla invàlid atura l’execució. Els especialistes, la síntesi, la reparació del resultat i els proveïdors sense compatibilitat declarada conserven el comportament existent.
Una instrucció explícita i no citada de format JSON, inclòs un contracte identificat com a tal, orienta l’encaminament mitjançant les signatures de sortida registrades. Les claus arrel conegudes també restringeixen la planificació nativa: el contracte d’objecte ha de declarar explícitament el tipus i una llista de camps no buida. La validació local continua comprovant les claus exactes, els tipus i l’especialista seleccionat; encara es poden demanar aclariments. Les instruccions de correcció preserven la persona i el nombre del subjecte original quan resolen la concordança.
La planificació elimina els títols i valors predeterminats de l’esquema, i omet la definició d’especialista temporal quan aquesta capacitat està desactivada. Es conserven les restriccions executables, els noms de propietats i les dades literals. Les opcions d’una llista es comproven localment contra el tipus d’element complet: una opció escalar no pot contradir un element d’objecte i arribar al proveïdor com un esquema invàlid.
La correcció fixa primer la referència de cada subjecte a partir del demostratiu, pronom o quantitat explícits abans de corregir la concordança. Conserva nombre, persona, negacions, identificadors i condicions, i els comprova contra l’original abans de retornar el text, dins la mateixa crida de l’executor. Les peticions explícites de transformar la referència continuen formant part de la tasca actual. El corpus sintètic és backend/tests/fixtures/writing_fidelity.json. compare_case_quality, a backend/services/agent_team_evaluations.py, exigeix evidència completa per cas, definicions inalterades i totes les comprovacions del candidat correctes. Un cas arreglat no compensa un cas que passa a fallar; l’evidència absent, desconeguda o sense tipus bloqueja l’acceptació. Aquestes comprovacions permeten avaluar regressions i no certifiquen la semàntica de qualsevol text.
Els xats de correcció incorporats amb una única font completament citada tenen comprovacions locals a backend/services/agent_correction_contracts.py i backend/services/agent_correction_output.py. Comproven persona i nombre de demostratius/pronoms aparellats, quantitats i identificadors protegits, i pèrdua de negació. Les instruccions no reconegudes, transformacions explícites, sortides de codi/JSON i peticions d’accions fan servir el flux original. Els mètodes personals i el principal no s’embolcallen; els fluxos que criden eines no es repeteixen. Un text vàlid necessita una crida. Una infracció detectada rep com a màxim una reparació sense eines pel mateix executor fixat, amb la font original i el pressupost restant del pare. Si la reparació falla, falla l’execució en lloc de publicar el text incorrecte. Les comprovacions locals cobreixen referències explícites i no fan una anàlisi morfològica o semàntica general.
Les substitucions exactes de títols desats es deriven a una skill del Vault que tingui activada l’eina d’edició. El catàleg compacte mostra les eines d’acció demanades per skill i la validació exigeix una tasca amb permís d’escriptura. Una resposta de text no pot completar una acció sense un resultat correcte de l’eina autoritzada o una confirmació pendent.
Les substitucions completes entre cometes, en català, castellà, anglès i francès, eviten la crida al model del coordinador i conserven l’execució en equip, els pressupostos, la cancel·lació i les confirmacions. La vista única s’obté localment de la pàgina adjunta, inclosos els blocs gnosi-view i el contingut codificat en JSON, sense tallar l’inventari de vistes. Si falta la vista o n’hi ha diverses, cal concretar-la. Es comproven la procedència, l’inventari complet, la revisió de la vista i els títols originals. Les substitucions són simultànies; una lletra aïllada només coincideix amb un token o un prefix numèric de fase, preservant les paraules. La confirmació revalida la vista i els fitxers, i la transacció conserva els altres camps, els cossos i les files excloses.
L’ocultació de credencials respecta el pressupost real del resultat de l’eina i conserva el JSON complet en execucions governades. bulk_update_rows admet valors d’arguments limitats a 64.000 caràcters; les altres eines mantenen el límit habitual. backend/tests/test_agent_title_replacements.py comprova la previsualització i l’escriptura de 31 files entre 748 de prova, les vistes i els títols canviats, l’agent directe, els canvis de tema i el consum de zero crides al model. La latència de les dades sintètiques no garanteix la latència de producció.
Les accions sobre títols també accepten una @pàgina entre el camp i el verb de substitució. Les cometes de la menció formen part del nom i no dels operands. Les mencions seleccionades aporten els seus IDs; un nom escrit es resol només si coincideix amb un únic títol exacte de l’índex, normalitzant la tipografia i el punt final, i es revalida amb la pàgina. Un destí explícit no recau en una vista aliena. La interacció amb una vista incrustada publica la vista seleccionada i la pàgina que la conté; navegar torna a publicar el context encara que el registre obert sigui el mateix. Els filtres this es resolen contra aquesta pàgina i es revalida que encara contingui la vista abans de confirmar. Si hi ha diverses vistes sense selecció, es demana concreció localment, sense model. backend/tests/test_agent_title_mentions.py prova l’entrada HTTP sense permisos preassignats, mencions seleccionades i escrites, tres vistes, confirmació real i 31 canvis entre 748 files sintètiques, preservant les altres files i la pàgina.
Les edicions confirmades de títols resolen el mateix camp de l’esquema que la lectura nativa de pàgines i de l’índex: nom actual abans que ID immutable i àlies antics. Un title intern obsolet no pot rebutjar un Nom, Title, Título o Titre visible que no ha canviat. La previsualització conserva el camp de destí i la confirmació rebutja un canvi d’aquest camp abans d’escriure. Es desen junts el camp visible i el títol intern. Les proves HTTP cobreixen valors interns i visibles diferents, camps reanomenats, còpies discordants, escriptures confirmades i files excloses intactes.
La publicació del context incrustat és estable quan es torna a renderitzar l’aplicació: compara els identificadors i noms de pàgina, taula i vista, en lloc de la identitat dels objectes del registre o la vista. Els esdeveniments repetits de punter i focus reutilitzen el context fins que canvia o un altre mòdul n’assumeix el control. Una prova amb el component pare receptor verifica que la publicació s’atura, que els canvis de pestanya s’actualitzen i que tornar a la vista en recupera l’abast.
Les substitucions literals de títols també reconeixen noms o títols de tasques, files i registres de la vista actual, amb l’abast abans o després del verb i els operands, en les quatre llengües. La gramàtica consumeix la petició sencera i continua exigint substitucions explícites entre cometes i una única vista activa; les vistes amb nom o alienes, altres camps, negacions i accions addicionals no es redueixen silenciosament a edicions de títols. backend/tests/test_agent_title_view_wording.py cobreix l’entrada HTTP sense permisos preassignats, confirmacions i escriptures reals sobre 31 de 748 registres sintètics, i cap crida al model encara que el proveïdor no estigui disponible. Les fallades de connexió amb el proveïdor es classifiquen com a errors de xarxa recuperables amb missatges traduïts; no compten com a fallades de qualitat del model i no es reintenten automàticament.
El checkpoint d’una acció sobre títols conserva la petició literal exacta i la revisió de la taula, vista i pàgina que la conté. Una continuació com Ara canvia "Fase " per "F". P.ex.: Fase 1 per F1 substitueix els operands preservant els espais; l’exemple ha de concordar amb la substitució. «Fes-ho» prepara una previsualització nova i no executa una confirmació antiga. Un canvi de tema, context adjunt, agent principal o revisió de vista, pàgina o filtres impedeix reutilitzar-la. Les converses antigues només es recuperen a partir d’una previsualització del servidor i la seva traça, amb el mateix àmbit, mai a partir de la prosa de l’assistent. Les proves HTTP cobreixen continuacions, confirmacions i escriptures reals en 31 de 748 files, sense crides al model. L’escriptura massiva rellegeix cada títol visible abans d’anunciar èxit i reverteix si la verificació falla. El xat consulta una vegada l’estat que falti i no interpreta una resposta HTTP correcta o un resultat desconegut com a acció completada.
Les confirmacions dels equips s’emeten com a esdeveniments natius i targetes del checkpoint; el JSON no es converteix en una bombolla de l’assistent. El JSON antic només es transforma si el seu identificador coincideix amb una confirmació del servidor en el mateix àmbit. Els duplicats es redueixen a una targeta preservant les dades del torn, les cites de l’usuari i altres missatges. Una acció del Vault completada totalment o parcialment invalida la cache de la barra lateral i emet un únic avís per lot, actualitzant les vistes obertes sense canviar el focus ni esborrar la cerca. Una resposta tardana no recarrega un altre Vault actiu. Desfer i eliminar una conversa utilitzen el bloqueig de sessió amb espera limitada: una sessió ocupada retorna chat_session_busy amb una explicació traduïda i conserva l’historial.
Només les respostes de les eines poden aportar evidència d’una confirmació nativa a l’agregació de l’equip o ajornar la validació d’una sortida estructurada mentre es revisa l’acció. El JSON de l’assistent i de l’usuari es tracta com a dades i no pot deixar l’equip pendent de confirmació.
Interpretació estructurada dels canvis de títol¶
Quan hi ha una única vista desada activa, les peticions fora de la via literal poden usar team.view_edit: una consulta governada al director, amb un termini de 25 segons, un límit de sortida de 1.536 tokens i raonament baix només si és compatible i no s’ha configurat explícitament una altra opció. La interpretació exclou el contingut dels documents, la memòria personal i la conversa completa. ViewEditDecision conté només operació, camp de títol, àmbit, condició i transformacions de text limitades; no executa codi, expressions regulars, identificadors ni àmbits més amplis proposats pel model. Les plantilles numèriques conserven {n}. Les peticions que no són edicions tornen a la derivació habitual; les propostes invàlides o ambigües demanen un aclariment.
La proposta validada title_edit queda a l’estat del servidor i selecciona un membre existent de l’equip amb eines del Vault. L’executor resol l’inventari complet de la vista, comprova la revisió desada, calcula localment els títols afectats i usa la confirmació nativa i l’escriptor verificat existents. Una continuació verificada reutilitza el programa sense més consultes al model; un canvi de vista o de tema no l’hereta. Cada missatge nou neteja l’estat d’una proposta anterior. Les proves amb el proveïdor real usen dades inventades; les proves HTTP sintètiques també comproven les files afectades, les excloses i que cap fitxer canviï abans de confirmar.