Intervjuer
Professor Eran Yahav, medgrundare och med-VD för Tabnine – Intervjuserie

Professor Eran Yahav, medgrundare och med-VD för Tabnine, är en professor i datavetenskap vid Technion – Israel Institute of Technology, vars forskning fokuserar på programmeringsspråk, maskinlärning och programvaruteknik, särskilt programsyntes och stor skalans kodanalys. Utöver sitt akademiska arbete co-founded han Tabnine (ursprungligen Codota) för att tillämpa år av forskning i praktiska utvecklarverktyg, vilket hjälpte till att bana väg för AI-drivna kodkomplettering och automatisering. Hans arbete brottas akademiska och industriella världar, med fokus på att göra AI-genererad kod mer tillförlitlig, säker och kontextmedveten för verkliga företagsmiljöer.
Tabnine är en AI-driven kodplattform som är utformad för att hjälpa utvecklare under hela programvaruutvecklingslivscykeln, från att skriva och felsöka kod till att generera tester och dokumentation. Ursprungligen lanserad som ett kodkompletteringsverktyg, har den utvecklats till en bredare företagsfokuserad plattform som integrerar generativ AI och agentbaserade arbetsflöden, vilket möjliggör för team att automatisera komplexa utvecklingsuppgifter samtidigt som de upprätthåller stark kontroll över sekretess, säkerhet och regelefterlevnad. Med stöd för dussintals programmeringsspråk och integrationer över stora IDE:er, syftar Tabnine till att förbättra utvecklarens produktivitet samtidigt som de säkerställer att AI-genererad kod förblir pålitlig och anpassad till företagets standarder.
Du har tillbringat år med att forska om programanalys och syntes vid Technion och tidigare arbetat på IBM Research. Vilket problem inom programvaruutveckling övertygade dig om att co-grunda Tabnine, och hur formade din akademiska forskning företagets ursprungliga vision?
Mitt akademiska arbete fokuserade på programanalys och syntes, vilket i princip handlar om att lära maskiner att förstå och generera kod. Jag gjorde min doktorsavhandling om programanalys, och det är också där jag tillbringade mina första år av tillämpad forskningsarbete. Att hantera programvarukvalitetsproblem med programanalys gjorde det tydligt att vissa problem är mycket svåra att lösa när programmet har skrivits fel. En uns av förebyggande är värd en pound av botemedel, om man så vill. Detta övertygade mig om att rätt sätt att hantera programvarukvalitet är via programsyntes, vilket är där jag tillbringade större delen av min forskningstid och energi.
Jag arbetade initialt med programsyntes för samtidiga program, försökte automatisera skapandet av samtidiga program från sekventiella. Jag bytte sedan till en mer allmänt tillämplig programsyntes med hjälp av maskinlärning.
Programsyntes med hjälp av maskinlärning var också den grundläggande idén som drev Tabnine. Idén, som nu verkar uppenbar, var att modeller kunde lära sig kodmönster direkt från stora korpusar av kod och hjälpa utvecklare i realtid. Den allmänna idén är tillämplig under alla stadier av programvaruutvecklingslivscykeln – från kodskapande till kodgranskning, till distribution och bortom.
Visionen har alltid varit att förstärka den mänskliga utvecklaren genom att ge dem verktyg som accelererar utvecklingsprocessen och tar bort friktion. Programvaruutveckling är en kreativ och problemlösande disciplin, och målet var att AI skulle ta bort friktion från processen genom att hantera rutinuppgifter och hjälpa utvecklare att stanna i flöde. Den visionen vägleder fortfarande oss idag, även om tekniken har utvecklats avsevärt sedan de tidiga dagarna.
Tabnine banade väg för AI-kodassistenter år före generativ AI blev mainstream med verktyg som OpenAI:s modeller. Tittar tillbaka, hur har rollen för AI i programvaruutveckling utvecklats sedan de tidiga dagarna, och vilka lärdomar lärde branschen av den första vågen av kodkopiloter?
Den första generationen av AI-kodassistenter fokuserade främst på förutsägelse. De var i princip avancerade autocomplete-system som hjälpte utvecklare att skriva kod snabbare genom att förutsäga nästa rad eller funktion.
Vad som har förändrats med agentloopar är att AI nu kan hantera uppgifter med större autonomi, till den punkt där vi kan betrakta agenter (med rätt vägledning) som oberoende juniorutvecklare.
Men detta har också lärt branschen en viktig läxa. Rå modellförmåga är inte tillräckligt för företagsprogramvaruutveckling. Modeller som tränats på offentliga data kan producera imponerande utdata, men de saknar ofta kännedom om en organisations arkitektur, beroenden och konventioner.
Det är därför att nästa utvecklingssteg inte bara handlar om större modeller eller större kontextfönster, utan om att koppla modellerna till den verkliga kontexten där programvaran byggs.
Många företag upptäcker att skalning av AI-agenter kräver mer än större modeller – det kräver djupare organisatorisk kontext. Varför tror du att kontext blir den verkliga gränsen för tillförlitlig AI-driven utveckling?
Programvarusystem är komplexa nätverk av relationer. En enda förändring kan påverka flera tjänster, API:er eller nedströmskomponenter.
AI-modeller idag är mycket bra på att generera trovärdig kod, men de opererar ofta utan en strukturerad förståelse för dessa relationer. Utan den förståelsen kan AI inte tillförlitligt resonera om konsekvenserna av en förändring.
Vad företag upptäcker är att tillförlitligheten hos AI-system beror på kvaliteten på kontexten de opererar i. Om ett AI-system förstår systemets arkitektur, beroenden mellan tjänster och organisationens kodstandarder, kan det generera kod som stämmer mycket bättre överens med hur systemet faktiskt fungerar.
I den meningen blir kontext den nästa gränsen för företags AI-utveckling.
Er nya Enterprise Context Engine syftar till att ge AI-agenter en strukturerad förståelse för en organisations arkitektur, beroenden och ingenjörspraxis. Hur skiljer sig detta tillvägagångssätt från vanliga metoder som retrieval-augmented generation som många företag för närvarande förlitar sig på?
Retrieval-augmented generation är en användbar teknik. Den tillåter modeller att hämta relevanta dokument eller kodsnuttar när de genererar ett svar.
Men återvinning ensam skapar inte förståelse. Den ger tillgång till information, inte struktur.
Enterprise Context Engine är utformad för att gå längre genom att bygga en strukturerad representation av programvarumiljön. Den analyserar repository, tjänster, beroenden, API:er och arkitektoniska relationer och organiserar dem i en modell av hur systemet faktiskt fungerar.
Detta tillåter AI-system att resonera om relationerna mellan komponenter snarare än att bara hämta textstycken. För komplexa företagsmiljöer blir den skillnaden mycket viktig.
AI-kodverktyg utvecklas från autocomplete-förslag till autonoma agenter som kan utföra flerstegsarbetsflöden. Hur ser du på balansen mellan mänskliga utvecklare och agentbaserade system förändras under de närmaste fem åren?
AI-agenter kommer att ta på sig rutinmässiga utvecklingsuppgifter. De är redan kapabla att implementera funktioner från början till slut, inklusive testning och dokumentation. Varje utvecklare kommer att bli en teamledare för AI-utvecklare. Den största utmaningen skulle vara att kommunicera kraven till detta team och verifiera att de genererade artefakterna matchar de angivna kraven.
Men programvaruutveckling är i grunden en kreativ och problemlösande disciplin. Mänskliga utvecklare kommer att fortsätta att definiera arkitektur, göra avvägningar och styra den övergripande riktningen för system.
Vad som kommer att förändras är abstraktionsnivån som utvecklare arbetar på. Istället för att fokusera på kod kommer utvecklare att alltmer orkestrera högnivåarbetsflöden och samarbeta med AI-system som utför delar av dessa arbetsflöden.
På så sätt blir utvecklarnas roll mer strategisk när AI hanterar mer av det mekaniska arbetet.
Tabnine har indikerat att företagsanvändare kan se AI-genererad kodgodkännandegrad nå runt 80% i vissa miljöer. Vilka mått bör organisationer använda för att avgöra om AI-kodverktyg faktiskt förbättrar utvecklarnas produktivitet snarare än att bara generera mer kod?
Den viktigaste frågan är inte hur mycket kod AI genererar, utan hur mycket användbart arbete det faktiskt producerar.
Det finns flera mått som organisationer bör spåra. Ett är första-godkännandegrad – hur ofta AI-genererad kod kan användas utan ändring. Ett annat är granskningscykeltid – hur många iterationer som krävs innan en pull-begäran kan slås samman.
Organisationer bör också titta på utvecklartiden som spenderas på omarbete, samt ledtid för ändringar från utveckling till produktion.
Om AI-verktyg faktiskt förbättrar produktivitet bör man se förbättringar över dessa mått. Utvecklare spenderar mindre tid på att fixa genererad kod och mer tid på att arbeta med högvärdiga uppgifter.
Företag förblir försiktiga med att exponera proprietär kod för externa modeller. Hur adresserar konceptet “Tillförlitlig AI-kodning” styrnings-, sekretess- och regelefterlevnadsproblem som har bromsat företags antagande av AI-utvecklingsverktyg?
Förtroende är en av de viktigaste faktorerna för företags antagande av AI.
Förtroende är den ultimata utmaningen för att förverkliga AI-ingenjören. Hur kan vi lita på AI-ingenjören att agera autonomt för att slutföra kritiska programvaruutvecklingsuppgifter? Hur kan vi säkerställa att dess handlingar stämmer överens med våra förväntningar på kvalitet, säkerhet och regelefterlevnad med våra policys? Om AI-ingenjören ska vara en accepterad medlem i våra ingenjörsteam måste den vara lika betrodd som våra välgranskade och lämpligt ombordade medarbetare.
Att hantera denna utmaning bygger på två kritiska pelare:
- Personanpassning: Utrusta AI-ingenjören med en intim förståelse för er organisation, kodbas och bästa praxis.
- Kontroll: Implementera robusta system för att säkerställa att all kod – både AI-genererad och mänskligt skriven – uppfyller er organisations kvalitets-, säkerhets-, prestanda- och tillförlitlighetsstandarder.
Dessutom innebär Tillförlitlig AI-kodning att ge organisationer kontroll över hur AI distribueras och säkerställa centraliserad styrning och kontroll.
Du har föreslagit att organisatorisk kontext kan bli en grundläggande lager i företags AI-stack – liknande databaser eller molninfrastruktur i tidigare datoreror. Vad ser den framtida arkitekturen ut som?
Om man tittar på hur företagsteknologi utvecklas, ser vi ofta nya infrastrukturlager dyka upp.
Databaser blev grunden för att hantera data. Molnplattformar blev grunden för att köra applikationer i stor skala.
I AI-eran kommer organisationer att behöva infrastruktur som tillåter AI-system att förstå den interna strukturen i företaget – dess system, relationer och operativa begränsningar.
Den infrastrukturlagern kommer att tillhandahålla strukturerad kontext som flera AI-system kan använda, oavsett om de är kodassistenter, supportagenter eller operativa automatiseringsverktyg.
På så sätt blir kontext en gemensam grund för företags AI.
Många företag bygger kodassistenter tätt kopplade till en enda grundmodell. Tabnine tillåter istället företag att ansluta olika modeller beroende på deras behov. Varför är modellflexibilitet viktig för den långsiktiga utvecklingen av företags AI-utvecklingsverktyg?
AI-ekosystemet utvecklas mycket snabbt. Nya modeller släpps ofta, och olika modeller har ofta styrkor inom olika områden.
Företag bör inte behöva omforma sina utvecklingsarbetsflöden varje gång modellandskapet förändras. Genom att tillåta organisationer att välja och växla mellan modeller tillhandahåller vi flexibilitet som hjälper till att framtidsäkra deras AI-strategi.
Modellflexibilitet tillåter också organisationer att balansera prestanda, kostnad, sekretesskrav och distributionsbegränsningar.
På lång sikt kommer företag sannolikt att operera i en miljö med flera modeller, och utvecklingsplattformar bör utformas med den verkligheten i åtanke.
För CTO:er och ingenjörsledare som utvärderar AI-utvecklingsplattformar idag, vad är de största misstagen som organisationer gör när de distribuerar AI-kodverktyg, och hur kan de undvika dem?
Ett vanligt misstag är att fokusera enbart på modellförmåga. Större modeller är definitivt en kritisk komponent, men tillförlitlighet i verkliga miljöer beror på hur väl AI förstår systemet det opererar inom.
Ett annat misstag är att distribuera AI-verktyg utan att överväga styrnings- och säkerhetskrav. Företag behöver tydliga policys kring hur kod åtkomsts, hur modeller distribueras och hur utdata valideras.
Slutligen förväntar sig organisationer ibland att AI ska leverera omedelbara produktivitetsvinster utan att anpassa arbetsflöden eller tillhandahålla tillräcklig kontext. Lyckade distributioner innebär vanligtvis att AI integreras i befintliga utvecklingsprocesser och ansluts till organisationens kod och arkitektur.
När dessa element kommer samman, kan AI bli en kraftfull accelerator för programvaruutveckling snarare än bara ett annat verktyg.
Tack för den underbara intervjun, läsare som vill lära sig mer bör besöka Tabnine.












