Hugging Face julkaisi funesin, avoimen muistikerroksen koodausagenteille. Työkalu indeksoi istunnot, jotka Claude Code, Codex, pi ja Hermes jättävät levylle, ja antaa agentin hakea niistä kesken työn. Julkaisun takana on Hugging Facen insinööri David Corvoysier.

Ongelma on tuttu jokaiselle, joka vaihtaa työkalua tai konetta kesken projektin. Agentti aloittaa joka kerta nollasta. Viime viikon perustelut katoavat istunnon mukana, vaikka ne olisi kirjoitettu auki rivi riviltä.

Agentti kohtaa projektin aina vieraana

Koodausagentit tuottavat jo nyt juuri sen aineiston, joka jatkuvasti häviää. Kun agentti selaa koodikantaa, kokeilee ratkaisuja, törmää virheisiin ja vaihtaa suuntaa, se jättää jälkeensä tiheen kuvauksen myös siitä, miksi jokin tehtiin.

Pelkkä loki ei kuitenkaan riitä. Kymmenen tuhannen vuoron arkistosta ei löydä grepillä vastausta kysymykseen, miksi tietystä jäsennysratkaisusta luovuttiin. Jäljistä tulee muistia vasta, kun ne indeksoidaan, järjestetään ja liitetään takaisin alkuperäänsä.

funes on yksi binääri, ja sen oletustaustaosa toimii ilman erillistä koneoppimisajoympäristöä. Komento funes add claude rakentaa ensimmäisen indeksin, antaa agentille recall- ja get-työkalut ja asentaa koukun, joka indeksoi jokaisen valmistuneen vuoron.

Indeksointi on inkrementaalista. Uudet ajot lisäävät vain uudet vuorot sen sijaan, että koko historia upotettaisiin uudelleen. Vanhempi aineisto täydentyy taustalla rajatuissa erässä.

Kehittäjän työpöytä yöllä, päätteessä vierii pitkä istuntoloki

Paikallinen indeksi ja kolmivaiheinen haku

Konepellin alla toimii yksi deterministinen putki. Se jäsentää jokaisen tuetun jäljen samaan vuoro- ja lohkomuotoon, pilkkoo sen paloiksi, upottaa palat lukittuun paikalliseen malliin ja kirjoittaa tuloksen paikalliseen Lance-aineistoon.

Kysely yhdistää vektorihaun ja BM25-avainsanahaun, sulauttaa niiden järjestykset ja pisteyttää ehdokkaat uudelleen cross-encoder-mallilla. Lopuksi tulokset painotetaan tuoreuden mukaan ja niihin liitetään viereiset palat.

Olennaista on se, mitä recall palauttaa. Se antaa alkuperäisen tekstin, ei tiivistelmää, ja kertoo tarkalleen mistä se on peräisin: agentti, aikaleima, istunto ja vuoro. Jokaiseen osumaan liittyy get-komento, joka avaa koko vuoron ympäristöineen.

Mitään ei tislata faktaksi kirjoitushetkellä. Upotus ja uudelleenpisteytys ajetaan käyttäjän omalla koneella, eikä tiliä tai pilvipalvelua tarvita. Päättely jää sille koodausagentille, jota käyttäjä muutenkin ajaa.

Valaistuja lasisiruja järjestäytyneinä kerroksina, muutama kirkkaampi kuin muut

Muisti on datasetti, ei palvelu

Muisti saadaan seuraamaan työtä sitomalla se lisäyshetkellä. Komento funes add codex acme/funes-memory julkaisee nykyisen muistin annettuun osoitteeseen. Sen jälkeen funes pitää sen ajan tasalla ja julkaisee muutokset istunnon rajoilla.

Sama komento toisella koneella tuo muistin mukanaan. Paikallinen muisti on Lance-aineisto ja jaettu muisti Hugging Face -datasetti, joka on oletuksena yksityinen ja käyttäjän omistuksessa. Etämuistin tiedostot välimuistitetaan paikallisesti, joten toistuvat haut palaavat paikalliseen nopeuteen.

Tunnistetiedot poistetaan jo indeksointivaiheessa. Julkaisu käy jokaisen palan vielä kertaalleen läpi ja pidättää kaiken, mikä näyttää salaisuudelta. Skannerin kattavuus ja sen rajat on kuvattu projektin SECURITY.md-tiedostossa.

Ero olemassa oleviin muistipalveluihin on omistajuudessa. Hugging Face tarjoaa datasetille valmiin pääsynhallinnan, versioinnin ja jakelun. Muistista ei tule tiliä erilliseen palveluun, jota vuokrataan takaisin rajapinnan kautta.

Kaksi kannettavaa eri huoneissa, joita yhdistää hehkuva valojuova

Mitä tämä muuttaa tiimeissä

Jaettu muisti ei ole sidottu siihen agenttiin tai malliin, joka sen loi. Työ voi alkaa Claude Codessa ja jatkua Codexissa ilman, että konteksti rakennetaan uudelleen. Sekalaista pinoa ajavalle tiimille tämä on se kerros, joka ratkaisee jatkuvuuden hinnan.

Yhden kysymyksen kysymiseen on kevyempi komento. funes ask lukee oletuksena paikallista muistia, hakee osuvat kohdat, antaa ne koodausagentille ja palauttaa vastauksen lähteineen. Se ei asenna integraatiota eikä muuta agentin pysyviä asetuksia.

Kynnys kokeilla on matala. funes on yksi binääri, ja käyttöönotto vaatii yhden komennon. Indeksi rakentuu lokeista, jotka ovat jo valmiiksi levyllä, joten mitään ei tarvitse kerätä etukäteen.

Haun epäonnistumista ei peitellä. Jos löydetyt kohdat eivät tue vastausta, agentti sanoo sen suoraan. Hugging Face julkaisi myös funesin oman kehityshistorian julkisena muistina, jota kuka tahansa voi kysellä ilman omaa indeksiä.

Ohjelmistotiimin yhteinen työpöytä ylhäältä kuvattuna, useita näyttöjä rinnakkain

Yhteenveto

funes ei ole uusi malli eikä uusi agentti. Se on infrastruktuuria, joka tekee jo olemassa olevasta aineistosta käyttökelpoista. Hugging Facen mukaan ratkaisu perustuu tietoisesti paikalliseen ajoon ja käyttäjän omistamaan aineistoon.

Rajoitteetkin on syytä tunnistaa. Muisti kattaa vain ne agentit, joiden jäljet funes osaa lukea, ja hyöty kasvaa vasta historian karttuessa. Tuoreessa projektissa haettavaa on vielä vähän.

Valinta osuu silti ajankohtaiseen kysymykseen. Kun koodausagenttien määrä kasvaa ja tiimit vaihtavat työkalua projektin mukaan, muistin lukitseminen yhteen toimittajaan on riski. funes siirtää sen päätöksen takaisin kehittäjälle.