Jeg blir mer og mer overbevist om at Unix-verktøytilnærmingen, med en haug med fokuserte, komponerbare funksjonelle enheter som kan brukes isolert eller som del av en større pipeline, også er den beste tilnærmingen for verktøy for kodeagenter. Problemet med å prøve å lage et stort samlet system som gjør alt, er at folk har sine egne arbeidsflyter og måter å gjøre utvikling på, og det er som regel for vanskelig å lage et prosjekt som passer for alle og kan ta hensyn til det uten at det blir en omfattende kompleksitet som ikke fungerer godt i praksis. Så jeg har ett verktøy for agentmail, ett verktøy for oppgavehåndtering (Steve Yegge's beads), ett verktøy for oppgavevalg (bv), ett verktøy for søk i tidligere historikk (cass), ett verktøy for polyglott-linting og bug-fangst (ubs), ett for sensitiv kommandohåndtering (slb), ett for håndtering av tmux og agentøkter (ntm), ett for minne (csm), osv. Og du kan bruke én av dem, noen av dem, eller alle. Og de er delvis integrert med hverandre, men alltid valgfritt. Så SLB kan bruke agent mail hvis du har satt det opp, men det fungerer også frittstående. Og NTM kan vise informasjon fra BV, men det er ikke tvunget. De blir som små Lego-klosser du kan bruke til å bygge hvilket som helst system du vil, og det blir enkelt å lage dine egne små verktøy for å legge til funksjonaliteten du ønsker. Og så blir din AGENTS dot md-fil litt som et operativsystem hvor du «installerer» verktøyene i agentens arbeidsminne og konfigurerer dem ved å beskrive hvordan, når og hvorfor du skal bruke dem (merkelig nok må du nå bekymre deg for å overbevise maskinen om å bruke verktøyene!) Så du kan ha alle verktøyene satt opp på maskinen din, men kun aktivere spesifikke verktøy avhengig av prosjektet ved å inkludere bare relevante beskrivelser som forklarer verktøyene du vil bruke.