Jag blir alltmer övertygad om att Unix-verktygsmetoden med en massa fokuserade, komponerbara funktionella enheter som kan användas isolerat eller som en del av en större pipeline också är det bästa sättet för verktyg för kodningsagenter. Problemet med att försöka skapa ett stort enhetligt system som gör allt är att folk har sina egna arbetsflöden och sätt att utveckla utvecklingen, och det är oftast för svårt att försöka skapa ett projekt som passar alla och kan rymma det utan att det blir en omfattande komplexitet som inte fungerar bra i praktiken. Så jag har ett verktyg för agentmail, ett verktyg för uppgiftshantering (Steve Yegge's beads), ett verktyg för uppgiftsval (bv), ett verktyg för tidigare historiksökning (cass), ett verktyg för polyglottlinting och bugfångst (ubs), ett för känslig kommandohantering (slb), ett för hantering av tmux och agentsessioner (ntm), ett för minne (csm), osv. Och du kan använda en av dem, några av dem, eller alla. Och de är delvis integrerade med varandra, men alltid valfritt. Så SLB kan använda agent mail om du har det inställt, men det fungerar också fristående. Och NTM kan visa information från BV men det är inte tvingat. De blir som små Lego-klossar som du kan använda för att bygga vilket system du vill, och det blir enkelt att skapa egna små verktyg för att lägga till den funktionalitet du vill ha. Och sedan blir din AGENTS dot md-fil lite som ett operativsystem där du "installerar" verktygen i agentens arbetsminne och konfigurerar dem genom att beskriva hur, när och varför du ska använda dem (konstigt nog måste du nu oroa dig för att övertala maskinen att använda verktygen!) Så du kan ha alla dina verktyg inställda på din maskin men bara aktivera specifika beroende på projektet genom att bara inkludera relevanta beskrivningar som förklarar vilka verktyg du vill använda.