Salesforce avasi viime viikolla Agent Script -kielen lähdekoodit Apache 2.0 -lisenssillä. Yhtenäinen tiedostomuoto, parser, kompilaattori ja kielipalvelin löytyvät nyt julkisesta GitHub-arkistosta osoitteessa github.com/salesforce/agentscript.
Käytännössä Agent Script on agentin spesifikaatiokieli: yksi tiedosto kuvaa, mitä agentti tekee — sen tilan, käytettävissä olevat toiminnot ja ohjeet. Tämä siirtää agenttirakenteen UI-pohjaisesta painikkeiden kläpsyttelystä tekstipohjaiseen artefaktiin, jota kehittäjätyökalut ja koodausagentit ymmärtävät yhtä lailla. Salesforcen blogin mukaan kyse on tietoisesta liikkeestä kohti git-yhteensopivia agenttiartefakteja.
Yksi tiedosto, monta käyttöliittymää
Agentforce Builder, Vibes, Labs ja CI-putket ovat kaikki näkymiä samaan .agent-tiedostoon. Kompilaattori tuottaa tiedostosta runtime-spesifikaation, lintteri validoi sen ja kielipalvelin tarjoaa editorituen niin VS Codeen kuin selainpohjaiseen Monacoon.
Tämä yhden artefaktin malli tekee koodausagenteista käyttökelpoisia agenttien rakentamisessa. Kun grammatiikka, lintterit ja muodollinen spesifikaatio ovat julkisia, tekoälyavustaja ei joudu arvaamaan rakennetta. Se voi lukea spesifikaation, tarkistaa työnsä lintterillä ja tuottaa diffin, jonka ihminen voi tarkastaa.
Kun agentti on tiedostossa, versiohistoria, koodikatselmoinnit ja CI-tarkastukset toimivat ilman erityismekanismia. Agentin muutoksia voi käsitellä samoin kuin muunkin koodin. Se on yksinkertainen, mutta merkittävä muutos siinä, miten agenttirakentajat seuraavat omaa työtään tuotannossa.

Spesifikaatio ja runtime erotettu toisistaan
Agent Scriptin keskeisin suunnitteluperiaate on, että toteutus on irti spesifikaatiosta. Tiedosto kuvaa, mitä agentti on — ei sitä, miten ajoaika sen suorittaa. Sama skripti voi siten ajaa entistä kyvykkäämmillä runtimeilla ilman, että rivikään muuttuu.
Käytännössä tämä tarkoittaa myös, että kieli on dialektitietoinen. Perusdialektti agentscript määrittelee ydinblokkityypit. Agentforce ja MuleSoftin Agent Fabric laajentavat sitä omilla blokeillaan, kenttäskeemoillaan ja lint-säännöillään.
Lopputulos on hierarkia, jossa työkalut tunnistavat dialektiotsikon ja valitsevat oikean parserin ja linterin tiedoston perusteella. Lisättävien dialektien polku on auki muillekin, vaikka itse runtime jäisi suljetuksi. Salesforce on huomauttanut blogissaan, että dialektin lisäys onnistuu samalla mekanismilla, jolla Agent Fabric -dialekti on tehty.

Toolchain TypeScriptissä, runtime suljettuna
Avoin osuus jakautuu paketteihin: @agentscript/language sisältää AST-tyypit ja yli kahdeksantoista lint-ajopassia, @agentscript/agentforce yhdistää parserin, kompilaattorin ja dialektit yhteen SDK-pakettiin sekä Node.js- että selainympäristöön. Mukana ovat myös LSP-palvelin, VS Code -laajennus ja Monaco-integraatio.
Mitä avoin yhteisö ei saa: itse runtimea. Agent Script kompiloituu Salesforcen sisäiseen spesifikaatioformaattiin, joka ajetaan Salesforcen infrastruktuurissa. Salesforce ilmoittaa selvästi, että runtime saattaa avautua myöhemmin, mutta aikataulua ei luvata.
Tästä seuraa myös spesifikaatiopolitiikka: Salesforce ei ota toistaiseksi muutosehdotuksia kieleen itseensä. Spesifikaation täytyy pysyä synkassa runtimen kanssa, ja yksipuolinen kielenmuutos loisi haaroittumisen, jota Salesforce ei voisi tukea. Bug-korjauksia ja editori-integraatiomuutoksia otetaan kuitenkin vastaan.

Mitä tämä tarkoittaa muille agenttirakentajille
Agent Scriptin avaaminen on yksi konkreettinen esimerkki ilmiöstä, jossa agenttialustat siirtyvät graafisilta työpöydiltä kohti tekstimuotoisia, koodausagenttiyhteensopivia artefakteja. Vastaavaa polkua kulkevat OpenAI:n Symphony-spesifikaatio Linear-tikettien orkestrointiin ja Cursor-SDK ohjelmoitavissa oleviin koodausagentteihin.
Yhteinen syy on selvä: kun ihmisten ja koodausagenttien työtä halutaan rinnastaa, artefaktien on oltava tarkastettavissa diffinä, ei kuvakaappauksina. Tekstipohjainen artefakti palauttaa version- ja katselmointityökalut osaksi prosessia ja vähentää oletusarvojen takana piileskelevää logiikkaa.
Suomalaiselle kehittäjäyleisölle viesti on käytännöllinen: jos tiimissä rakennetaan Agentforce-agentteja, kannattaa tutustua spesifikaatioon ja VS Code -laajennukseen ennen kuin tekoälyavustajia opettaa kirjoittamaan tiedostoja. Repositoryssa on valmis pnpm ui:dev -leikkikenttä testailuun, ja editori-integraatioiden lähdekoodit ovat luettavissa.

Yhteenveto
Agent Script ei avaa Salesforcen agenttirungon ydintä, mutta se avaa kaiken sen ympärillä olevan: kielen, toolchain-pinon ja kehittäjätyökalut. Tämä tekee agenteista ohjelmoitavia ja tarkasteltavia samalla tavalla kuin muusta koodista.
Avoimuuden suurin hyöty on se, että koodausagentit oppivat kirjoittamaan oikeaa Agent Scriptiä julkisen spesifikaation perusteella. Se on hidas mutta merkittävä siirtymä siinä, kuinka yritysagentteja ylipäätään rakennetaan ja ylläpidetään.
