Sedan Unix skapades för över ett halvt sekel sedan har det haft ett stort inflytande på moderna tekniska arbetssätt och metoder för mjukvaruutveckling. Unix utvecklades ursprungligen i Bell Labs laboratorier och blev snabbt mer än bara ett operativsystem. Det etablerade en heltäckande filosofi för mjukvaruutveckling och systemdesign. I dag, när vi bygger framtidens mjukvaruutveckling med artificiell intelligens (AI), får Unix filosofiska kärnprinciper nytt liv och formar utvecklingen av agentisk AI.
Lauri Palokangas
Lapa is a technology geek and an IT professional who switched to marketing and sales 15 years ago. He runs Eficode’s marketing and communications by day and is involved in behavioral economics research by night. In his free time, he engages in endurance trail running and likes to learn languages.
1. Modularitet: Smått är vackert
Unix förespråkar att bygga enkla komponenter som kopplas samman med tydliga gränssnitt, sammanfattat som ”Skriv enkla delar som är sammankopplade med tydliga gränssnitt.” Denna modularitet hjälper till att hantera komplexitet och gör det möjligt för team att iterera snabbt utan onödiga beroenden. Agentic AI-system förkroppsligar denna princip genom att strukturera autonoma AI-agenter för att lösa eller samarbeta kring avgränsade problem. Agenterna arbetar självständigt och fattar beslut genom kontinuerligt lärande och analys av externa och komplexa dataset.
När AI-agenter följer denna grundprincip om små, avgränsade agenter som ”gör en sak och gör den väl”, kan utvecklaren delegera lösningen av repetitiva uppgifter till agentic AI och minska den kognitiva belastningen. Att använda filsystemet som databas säkerställer interoperabilitet med befintliga applikationer, förbättrar skalbarheten och gör det enkelt att lösa nästa problem i linje med en annan agentic AI-lösning.
The only way to write complex software that won’t fall on its face is to hold its global complexity down — to build it out of simple parts connected by well-defined interfaces, so that most problems are local and you can have some hope of upgrading a part without breaking the whole.
2. Dataströmmar som text: Transparens spelar roll
Unix föredrar starkt textbaserad kommunikation för tydlighet och enkel felsökning. Principen ”Dataströmmar bör, om möjligt, vara textbaserade (så att de kan visas och filtreras med standardverktyg)” är brett etablerad. Inom AI är tydliga, textbaserade interaktioner vanliga, vilket särskilt märks genom den utbredda användningen av JSON, YAML och prompt engineering. I Unix anda minskar möjligheten till utförlig output under utveckling och felsökning den kognitiva belastningen för utvecklaren som granskar och förbättrar lösningen.
Genom att använda textorienterade dataströmmar och styra detaljnivån i applikationers output uppnår agentic AI-system bättre interoperabilitet, enklare integration och smidigare felsökning. Det är viktiga fördelar vid hantering av komplexa AI-miljöer. Transparensen stödjer dessutom direkt compliance och spårbarhet vid granskning, vilket är avgörande för organisationer i reglerade branscher.
I think that the terseness of Unix programs is a central feature of the style. When your program’s output becomes another’s input, it should be easy to pick out the needed bits. And for people it is a human-factors necessity — important information should not be mixed in with verbosity about internal program behavior. If all displayed information is important, important information is easy to find.
3. Komplexa gränssnitt, enkla backends
Unix principer omfattar en tydlig separation mellan komplexa användargränssnitt och enklare, stabil backendlogik. Genom att separera UI från backendlogik säkerställer du att utveckling av användargränssnittet inte i onödan stör kärnfunktionaliteten. På samma sätt separerar agentic AI-plattformar tydligt komplexa gränssnitt för beslutsfattande, som konversationsbaserade UI:n eller interaktiva dashboards, från robusta och förutsägbara backendkomponenter som ansvarar för beräkningar, datahantering och autonomt beslutsfattande baserat på kontinuerligt lärande. Enligt Unix typiska principer, där data skickas genom en pipe från en process till en annan, behöver en agentic AI-satsning inte börja med ett omfattande initiativ för en datasjö. Att utgå från det minsta problemet som är värt att lösa och skicka den information som behövs mellan agenterna kan vara helt rätt angreppssätt.
Att följa principerna för separation förenklar styrningen, stärker systemets motståndskraft och gör att varje lager kan utvecklas i sin egen takt. Det minskar därmed underhållsarbetet avsevärt och förbättrar systemets övergripande tillförlitlighet.
4. Generositet i input, noggrannhet i output
I linje med Postels princip ”Var liberal i det du accepterar och konservativ i det du skickar.” betonar Unix flexibilitet vid hantering av input och noggrannhet i output. Denna balans säkerställer bred kompatibilitet och tillförlitlighet i olika system. Agentic AI-system tillämpar denna princip: robusta AI-agenter accepterar varierande inputdata, samtidigt som de strikt validerar och standardiserar sin output för att upprätthålla kvalitet och enhetlighet i efterföljande led. Eftersom agentic AI till sin natur är icke-deterministisk krävs ytterligare ett lager av ”orakel” för att validera outputen innan den anses giltig för nästa agent.
Genom att tillämpa denna princip kan du integrera AI-system smidigare mellan flera team och tredjepartsverktyg, vilket stärker den operativa effektiviteten och användarnas förtroende.
5. Prototypa före optimering
Unix rekommenderar att snabbt skapa prototyper av lösningar i tolkade språk, som Python, innan de förfinas och optimeras i kompilerade språk som C. Detta sammanfattas i principen: ”Prototypa innan du förfinar. Få det att fungera innan du optimerar det.” Utveckling av agentic AI speglar denna praxis nära och börjar vanligtvis med snabba Python-prototyper för att testa kapaciteten för autonomt beslutsfattande innan prestandakritiska delar finjusteras.
Agentic AI följer också denna idé på en högre abstraktionsnivå. Att automatisera processer med agenter kan inte ske i ett enda steg. Eftersom införandet av agenter kan ses som en stokastisk process kan en agent få negativa effekter på den bredare lösningen, vilket utvecklaren behöver hantera innan arbetet går vidare. Lösningen är att tillämpa agentic AI på en del av lösningen i taget för att lära sig hur den löser en allt större del av helheten.
Ett iterativt och snabbt arbetssätt för att utveckla agentic AI ligger väl i linje med agila metoder. Det gör det möjligt för team att snabbt validera idéer, identifiera flaskhalsar och effektivt förfina AI-agenter. Det minimerar kostsamma, förtida optimeringar och minskar därmed avsevärt tiden till marknaden och projektrisken.
6. Föredra flera språk vid behov
Unix erkänner att en strategisk kombination av programmeringsspråk kan förenkla mjukvaruutveckling, särskilt när det blir mer komplext att hålla sig till ett enda språk. Agentic AI-lösningar använder ofta flera språk och ramverk: Python för maskininlärning och modeller för förstärkningsinlärning, JavaScript för interaktioner i frontend och YAML för konfigurationer. Eftersom allt i slutändan blir tokens passar även bildbehandling och informationsutvinning från bilder naturligt in i denna uppsättning språk.
Detta flerspråkiga arbetssätt gör det möjligt för team att välja de verktyg som passar bäst för specifika uppgifter, vilket minskar komplexiteten, förbättrar underhållbarheten och stärker den övergripande flexibiliteten och utvecklarnas produktivitet.
7. Kassera aldrig information i förtid
Unix rekommenderar: "När du filtrerar, kasta aldrig bort information du inte behöver." Agentic AI-system tillämpar detta genom omfattande loggning, övervakning och noggrann dokumentation. Genom att bevara detaljerad driftdata och metadata kan systemen förbättras kontinuerligt.
Att upprätthålla omfattande dataset och loggar ger bättre diagnostik, effektivare felhantering och framtidssäkrar AI-driftsättningar, vilket i slutändan skyddar organisationens investeringar.
8. Utbyggbarhet: Utforma för framtida tillväxt
Unix betonar att man ska utforma system för framtida utbyggbarhet: "Design for the future, because it will be here sooner than you think." Agentic AI-plattformar måste också planera för att smidigt kunna integrera framtida funktioner, utökningar eller förändringar utan omfattande omskrivningar.
Genom att säkerställa utbyggbarhet från början förblir AI-investeringar relevanta och anpassningsbara i en snabbt föränderlig teknisk och affärsmässig miljö. Att planera för utbyggbarhet bevarar den strategiska flexibiliteten och gör det möjligt att snabbare anpassa sig till nya marknadskrav och tekniska framsteg.
Word and Excel and PowerPoint and other Microsoft programs have intimate — one might say promiscuous — knowledge of each others’ internals. In Unix, one tries to design programs to operate not specifically with each other, but with programs as yet unthought of.
Unix-filosofin som tidlös visdom
Unix-filosofin utvecklades i en helt annan dataålder, men erbjuder tydliga, strategiska insikter som är högst relevanta i dagens landskap för agentic AI. Dess principer har visat sig vara anmärkningsvärt framsynta och påverkar direkt beprövade metoder för autonoma AI-system: modularitet, transparens, ansvarsfördelning, generositet i indata, snabb prototypframtagning, pragmatisk flerspråkighet, informationsbevarande och utbyggbarhet.
Den tidlösa visdomen, född ur praktisk erfarenhet och förfinad under årtionden, ger en stabil grund för att leda agentic AI-projekt med tydlighet, enkelhet och strategisk framförhållning. Det säkerställer att våra teknikbeslut förblir robusta, Agile och effektfulla även framöver.
P.S. Hur är det med Unix-pipelines?
En av Unix grundidéer är pipelines: att koppla en applikations utdata till en annans indata. Eftersom värdeskapande med agentic AI i grunden handlar om samma sak, vore det då inte rimligt att se MCP (Model Context Protocol) som en naturlig fortsättning på pipelines?
Strikt sett har MCP och Unix-pipelines sitt ursprung i fundamentalt olika koncept:
Unix-pipelines är i grunden linjära, deterministiska och passiva. De följer uttryckliga regler, där varje komponent utför en enkel och förutsägbar uppgift på textdata.
MCP är däremot i grunden dynamiskt, målstyrt och interaktivt. Det stöder förhandling, samarbete och autonoma beslut mellan agenter, styrt av föränderliga mål och sammanhang snarare än fördefinierade linjära arbetsflöden.
Även om båda har ytliga likheter, till exempel modularitet och kombinerbarhet, är MCP inte en vidareutveckling av Unix-pipelines utan en självständig utveckling. Trots denna skillnad lever två centrala idéer från upphovsmannen till Unix-pipelines, Doug McIlroy, vidare i världen av agentic AI:
Låt varje mjukvara (agent) göra en sak väl. Om mjukvaran (agenten) förväntas göra något annat, skriv den som en separat mjukvara (agent) i stället för att göra den tidigare mer komplicerad med fler funktioner.
Utgå från att utdata från en mjukvara (agent) används som indata till en annan mjukvara (agent), även om du ännu inte vet vilken mjukvara (agent) det är. Skräpa inte ned utdata. Undvik strikt kolumnbaserade eller binära indataformat. Försök inte vara interaktiv.The Bell System Technical Journal. Bell Laboratories. M. D. McIlroy, E. N. Pinson, and B. A. Tague. “Unix Time-Sharing System Forward”. 1978. 57 (6, part 2). p. 1902.
- DevOps
- AI
Subscribe to our newsletter
Related blogs