Suna AI on avoimen lähdekoodin, Apache 2.0 -lisenssillä julkaistu generalistinen tekoälyagentti, joka toimii luonnollisen kielen periaatteella ja automatisoi monimutkaisia työtehtäviä, kuten selaimen ohjausta, tiedonkeruuta, tiedostonhallintaa sekä API-integraatioita käyttäjän puolesta.
Keskeiset ominaisuudet
- Selainautomaatio: Verkkosivustojen selaaminen, lomakkeiden täyttö ja tietojen poiminta Playwright- tai vastaavilla työkaluilla.
- Tiedostonhallinta: Tiedostojen luonnin, muokkauksen ja poiston tuki esimerkiksi raporttien ja datasetien käsittelyä varten.
- Verkkohaku ja tiedonkeruu: Kohdennettu web-skrapaus useista lähteistä sekä datan analysointi ja synteesi.
- Komentorivitoiminnot: Järjestelmäkomentojen ajaminen ja DevOps-työnkulkujen automatisointi komentorivin kautta.
- API-integraatiot: Yhdistäminen ulkoisiin palveluihin ja työnkulkujen automatisointi rajapintojen avulla.
- Muokattavuus ja laajennettavuus: Modulaarinen arkkitehtuuri, jossa TypeScript- ja Python-SDK:t tukevat omien agenttien rakentamista ja Docker-pohjainen ympäristö mahdollistaa turvallisen itseisännöinnin.
Vertailu muihin vastaaviin
Suna erottuu erityisesti avoimuuden, itseisännöinnin ja räätälöitävyyden ansiosta verrattuna kaupallisiin pilvipohjaisiin vaihtoehtoihin.
Manus AI Agent on pilvipohjainen, LLM-keskeinen ratkaisu, joka nojautuu pääasiassa ulkoisiin foundation-malleihin (esim. Claude tai Alibaba Qwen) ja tarjoaa saumattoman käyttöliittymän ilman paikallisia resursseja. Suna puolestaan mahdollistaa täyden hallinnan agentin ympäristöstä ja mallivalinnoista sekä vahvan tietoturvan konttiteknologian avulla.
G2-alustan arvioiden mukaan Suna AI Agent on yksi suosituimmista avoimen lähdekoodin AI-agenttityökaluista eri käytettävyys- ja räätälöitävyyskriteereillä. Sivustolla on listattuna yli kymmenen vastaavaa tuotetta, joita voit vertailla ominaisuuksien ja hinnoittelun perusteella.
Vertailutaulukko
Ominaisuus | Suna AI Agent | Manus AI Agent |
---|---|---|
Lisenssi | Apache 2.0, avoin lähdekoodi | Suljettu lähdekoodi |
Isännöinti | Itseisännöitävä tai pilvipalvelu | Vain pilvipohjainen |
Arkkitehtuuri | Modulaarinen: Python, React, Docker | LLM-keskeinen, pilvi-infrastruktuuri |
Räätälöitävyys | Täysi valvonta, muokattavat SDK:t | Rajoitettu kolmannen osapuolen palveluihin |
Työkalut ja integraatiot | Selainautomaatio, API, CLI, tiedostot | Perustyökalut integroituna LLM:ään |
Hinnoittelu | Ilmainen perus, lisämaksu token-käytöstä | Kuukausi- ja käyttöperusteiset paketit |
Vaikka Suna vaatii aluksi enemmän ylläpitoa itseisännöinnin ja konfiguroinnin muodossa, se tarjoaa joustavuutta, avoimuutta ja täyden hallinnan yritystason automaatioon. Pilvipohjaiset agentit puolestaan helpottavat käyttöönottoa ja hallintaa, mutta ovat usein suljetumpia ja vähemmän räätälöitävissä.
Mikä on Kortix
- Kortix on avoimen lähdekoodin alusta, jonka organisaatio (“kortix-ai” GitHubissa) kehittää ja ylläpitää Suna-agenttia.
- Kortix on kokonaisvaltainen alusta AI-agenttien luomiseen, hallintaan ja koulutukseen.
- Alustan lippulaiva-agentti on Suna, joka demonstroi Kortixin kyvykkyydet.
Mikä on Suna
- Suna on yleiskäyttöinen tekoälytyöntekijä, joka hoitaa selausautomaatiota, tiedonkeruuta, tiedostojen hallintaa, API-integraatioita ja muita monimutkaisia työnkulkuja.
- Projektin lähdekoodi löytyy GitHub-organisaatiosta kortix-ai (repo nimeltä “suna”), mutta agentin nimi on edelleen Suna.
Suna-agenttien luominen – suora vastaus
Suna AI:lla agenttien rakentaminen koostuu agentin konfiguroinnista, sen taitojen (skills) määrittelystä ja työnkulkujen (workflows) kuvaamisesta joko Python- tai TypeScript-SDK:lla. Agentin käyttäytyminen ja integraatiot syntyvät koodissa ja konfiguraatiossa: valitset LLM-mallin, määrittelet tehtävät ja kytket tarvittavat lisäosat (browser, API, CLI). Kun agentti on kuvattu, käynnistät sen Docker-kontissa tai palvelinympäristössä, jolloin se reagoi kutsuihin ja suorittaa automaattisesti määritellyt työvaiheet.
1. Agentin perusrakenne
- Rooli ja tavoite
Määrittele, mitä agentin halutaan tekevän (esim. “kerää tuotearvosteluja verkkokaupoista”). - Taidot (skills)
Listaa tarvittavat moduulit: selainautomaatio, tiedostonhallinta, sähköpostiliikenne, yms. - Workflow-kuvaus
Kirjoita sekvenssi komentoja tai funktioita, jotka suoritetaan tietyssä järjestyksessä. - Mallivalinta
Ilmoita, käytätkö paikallista LLM:ää vai ulkoista API-mallia (esim. OpenAI, Aleph Alpha).
2. SDK-valinta ja ympäristö
Ominaisuus | Python SDK | TypeScript SDK |
---|---|---|
Asennus | pip install suna-ai | npm install @kortix-ai/suna |
Kehitystyökalut | Jupyter, VSCode | VSCode, ESLint |
Tyylimuoto | Dekoraattorit (@agent.task ) | Luokat ja tyypitykset (class ) |
Esimerkkejä ja dokumentti | Laaja esimerkkikirjasto GitHubissa | Erityisesti web-integraatioissa |
Esimerkki 1: Lomaketäyttö ja tiedonkeruu
from suna import Agent, BrowserSkill
agent = Agent(name="FormFetcher", model="gpt-3.5-turbo")
agent.add_skill(BrowserSkill())
@agent.workflow
def kerää_tuotetiedot(url: str):
browser = agent.get_skill("browser")
browser.goto(url)
browser.fill("input#search", "kuulokkeet")
browser.click("button#submit")
browser.wait_for_selector(".product-item")
tuotteet = browser.query_selector_all(".product-item .title")
return [t.text for t in tuotteet]
if __name__ == "__main__":
print(agent.run("kerää_tuotetiedot", "https://esimerkki-kauppa.fi"))
Tämä agentti avaa verkkokaupan, hakee tuotteen nimen ja palauttaa listan tuloksista.
Esimerkki 2: Raportin generointi ja sähköpostilla lähettäminen
import { Agent, FileSkill, EmailSkill } from "@kortix-ai/suna";
const agent = new Agent({ name: "ReportMailer", model: "local-llm" });
agent.addSkill(new FileSkill());
agent.addSkill(new EmailSkill());
agent.workflow("createAndSendReport", async (params) => {
// 1. Luo CSV-raportti
const data = [["Päivä", "Arvo"], ["2025-08-15", 123]];
await agent.file.writeCSV("report.csv", data);
// 2. Lähetä sähköposti liitteenä
await agent.email.send({
to: "h@example.com",
subject: "Päiväraportti",
body: "Liitteenä tämän päivän raportti.",
attachments: ["report.csv"],
});
return "Sähköposti lähetetty";
});
agent.run("createAndSendReport");
Tässä agentti muodostaa CSV-tiedoston ja käyttää EmailSkill-lisäosaa raportin lähettämiseen.
Esimerkki 3: Slack-integraatio ja notifikaatiot
- Asenna ja kytke SlackSkill lisäämällä OAuth-token asetuksiin.
- Luo workflow, joka kuuntelee tiettyjä tapahtumia ja lähettää viestejä Slack-kanavaan.
- Hyödynnä agent.runAsync-metodia, jotta Slack-webhook-kutsu ei blokkaa pääprosessia.
Parhaat käytännöt ja jatkotoimet
- Testaa ja simuloi agenttia paikallisesti ennen tuotantoon siirtoa.
- Roolien ja taitojen eriyttäminen helpottaa ylläpitoa ja uudelleenkäyttöä.
- Seuraa lokitietoja ja määritä alertit virhetilanteisiin (esim. Prometheus + Grafana).
- Skaalaa agentteja Kubernetes-klusterissa, jos samanaikaisia ajoja tarvitaan paljon.
- Vaihtele LLM-malleja kuormituksen ja tarkkuustarpeen mukaan: kokeile kevyempiä paikallisia malleja prototyypeissä.