Dictarea prompturilor către agenți paraleli, lane cu lane
Ilustrație

Dictarea prompturilor către agenți paraleli, lane cu lane

Rularea a doi sau trei agenți de programare simultan face din prompt gâtuirea. Un flux vocal pentru a hrăni lane-uri paralele fără să pleci din cel curent.

Teodor Deleanu3 septembrie 20268 min de citit

Prima dată când rulezi doi agenți de programare unul lângă altul, ceva pare în neregulă și îți trebuie o vreme până să-i pui un nume. Fiecare agent e rapid. Fiecare, singur, ar fi un câștig clar. Împreună ar trebui să fie dublul câștigului. În schimb, ziua pare mai fragmentată decât era cu unul singur, iar termini după-amiaza cu mai puțin făcut decât te așteptai.

Motivul nu sunt agenții. E forma inputului de care au nevoie. Un agent de programare funcționează pe proză: „împarte handlerul, păstrează semnătura publică, adaugă un test pentru calea de timeout." Proza e ieftin de gândit și scump de livrat, pentru că livrarea înseamnă să-ți duci mâinile și atenția în fereastra potrivită, în momentul potrivit. Cu un singur agent, momentul acela se aliniază cu ritmul tău natural. Cu trei, momentele sosesc când vin ele, iar fiecare întrerupe exact ce erai la mijlocul de a face.

Articolul ăsta e despre problema livrării, nu despre problema gânditului. E un flux de lucru practic pentru dictarea prompturilor în lane-uri paralele de agenți pe Mac, cu limitele sincere incluse. Dacă nu ai citit Cum conduci Claude Code cu vocea, articolul acela acoperă bazele pe un singur lane; acesta presupune că rulezi deja mai multe.

De ce lane-urile paralele pedepsesc exact tastarea

Un prompt are trei costuri: formularea, livrarea și revenirea de după. Formularea e inevitabilă și se petrece mai ales în capul tău. Livrarea, când tastezi, înseamnă să comuți focusul pe terminalul agentului, să găsești linia de input, să tastezi patruzeci până la optzeci de cuvinte și să apeși enter. Revenirea înseamnă să te întorci la ce făceai înainte ca agentul să întrebe.

Cu un singur lane, costul livrării e mic, pentru că probabil te uitai deja la terminalul acela. Cu lane-uri paralele, aproape niciodată nu te uiți. Lane-ul unu pune o întrebare cât timp citești diff-ul lane-ului doi. Întrebarea e ușoară; răspunsul e o propoziție. Dar ca să răspunzi trebuie să părăsești diff-ul, iar când te întorci recitești ultimele treizeci de linii ca să-ți găsești locul.

Înmulțește cu fiecare redirecționare, cu fiecare „da, continuă", cu fiecare „nu, celălalt fișier", iar overheadul se compune. Lane-urile paralele nu eșuează pentru că agenții sunt lenți. Eșuează pentru că tu devii magistrala de mesaje, iar o magistrală de mesaje care trebuie să se mute fizic între ferestre are o latență groaznică.

Vocea elimină cea mai mare parte a costului de livrare. Îți ții ochii pe diff, ții o tastă apăsată, spui propoziția, dai drumul. Cuvintele ajung în câmpul de input al agentului. Tu nu ai plecat nicăieri.

Configurația care funcționează

Iată configurația, ținută intenționat plictisitoare.

Un hotkey, nu o fereastră. Keebye stă în bara de meniu și ascultă un hotkey de tip ține-sau-apasă (⌘ dreapta este implicit; Fn și ⌥ dreapta sunt celelalte opțiuni, iar Esc abandonează o dictare în curs). Nu există nicio fereastră de aplicație de deschis și niciun mod în care să intri. Ții, vorbești, dai drumul. Contează mai mult decât sună: un instrument de dictare care are nevoie de propria fereastră este doar încă un lane.

Inserare în câmpul cu focus. Transcrierea e inserată acolo unde e cursorul tău. Implicit se face prin paste, cu un ritm adaptat terminalelor, ca un prompt lung să nu inunde un shell. Dacă rulezi agenți în tmux sau prin SSH, unde paste-ul se comportă prost, există un mod de tastare opt-in care injectează textul ca apăsări de taste Unicode; Dictarea care supraviețuiește terminalului explică când merită comutat.

Batch, nu streaming. Keebye transcrie la eliberarea tastei, ca o singură rostire. Nu vei vedea cuvintele apărând în timp ce vorbești. Pentru prompturi, e compromisul corect: vrei ca propoziția întreagă să ajungă dintr-o dată, curățată, în loc să o vezi materializându-se cuvânt cu cuvânt cât timp inputul agentului are deja jumătate de gând în el.

Totul on-device. Transcrierea rulează local (un model implicit calibrat pentru engleză sau un model de 25 de limbi, dacă îl activezi). După descărcarea modelului, funcționează cu Wi-Fi-ul oprit. Pentru prompturi către agenți asta e mai puțin teatru de confidențialitate și mai mult latență: nu există dus-întors prin rețea, așa că un prompt scurt e gata aproape imediat după ce eliberezi tasta.

Un ritm de comutare între lane-uri

Fluxul care a rămas până la capăt are trei obiceiuri.

Ochii rămân pe lane-ul care cere judecată. În orice moment, un lane e cel căruia îi aparține atenția ta, de obicei un diff sau outputul unui test. Acela e lane-ul pe care îl citești. Celelalte primesc doar instrucțiuni verbale scurte. Când lane-ul doi are nevoie de o decizie, arunci o privire, dai clic în inputul lui, ții tasta, spui decizia, dai drumul și dai clic înapoi. Clicul e singurul cost mecanic; propoziția în sine e gratis.

Prompturile sunt rostite ca propoziții complete. Agenții se descurcă mai bine cu propoziții întregi decât cu fragmente telegrafice, iar dictarea produce propoziții întregi în mod natural, pentru că așa vorbesc oamenii. „Anulează modificarea de schemă, dar păstrează redenumirea din API, apoi rulează migrarea din nou și arată-mi outputul" este un prompt rostit bun. Tastat, e unul plictisitor.

Cuvintele de umplutură dispar, sensul nu. Curățarea din Keebye e bazată pe reguli, implicit: elimină „um"-ul, „ăăă"-ul, cuvântul repetat, și lasă formularea ta în pace. Există o șlefuire opțională prin LLM local pentru propoziții mai ordonate, susținută de o gardă de fidelitate care revine la transcrierea literală când versiunea șlefuită arată pierdere severă de tokeni, expansiune sau repetiție. Garda aceea e o euristică, nu o verificare semantică: nu confirmă că textul șlefuit ți-a păstrat sensul sau o negație. Pentru prompturile către agenți, majoritatea lasă șlefuirea oprită; o transcriere literală e exact ce ai spus, iar asta e ce vrei să ruleze agentul.

La ce e bună vocea, lane cu lane

Nu orice prompt vrea să fie rostit. După câteva luni, împărțirea arată cam așa.

Redirecționări și continuări: mereu vocal. „Continuă." „Nu, celălalt config." „Adaugă un test pentru cazul gol și rulează din nou." Acestea sunt prompturile cu cel mai mare volum într-o sesiune paralelă și au toate lungimea unei singure respirații.

Feedback de review: în mare parte vocal. Să citești un diff și să povestești ce e greșit în el e natural. „Bucla de retry înghite eroarea, loghează-o înainte de sleep și limitează încercările la cinci." Dictarea prinde asta în ritm de vorbire, cât timp ochii tăi rămân pe cod.

Briefurile inițiale de task: mixt. Un brief lung și structurat, cu căi de fișiere și constrângeri, beneficiază în continuare de tastare sau de dictarea unei versiuni brute pe care apoi o editezi. Vocea e în regulă pentru proză; identificatorii exacți ies mai ușor tastați. Dicționarul personalizat ajută aici: adaugă o dată numele de module ale proiectului tău și jargonul recurent, iar ele încetează să fie transcrise ca cel mai apropiat cuvânt englezesc.

Orice conține cod: tastat. Dictarea unui regex e o experiență proastă. Dictează instrucțiunea („scrie un regex care prinde headerul de versiune"), nu artefactul.

Limite sincere

Unele sunt ale lui Keebye; altele sunt ale categoriei.

Latența primei dictări. Microfonul se încălzește după prima dictare a sesiunii și păstrează un pre-roll de 500 ms de acolo încolo. Prima apăsare a zilei poate plăti un cost de pornire a streamului, iar un cuvânt rostit înainte ca bufferul să prindă poate fi tăiat. De ce aplicațiile de dictare îți mănâncă primul cuvânt acoperă mecanica.

Acuratețea pe identificatori. Numele de variabile în snake case și acronimele interne sunt exact locul în care orice model de speech se chinuie. Dicționarul reduce asta, dar nu o elimină. Citește promptul înainte să apeși enter pe ceva distructiv.

Câmpuri securizate. Keebye refuză să insereze în câmpuri de parolă și de input securizat. E intenționat și ocazional inconvenient, când un prompt din terminal cere o passphrase.

Fără comenzi vocale. Nu există vocabular de tip „linie nouă" sau „selectează tot". Keebye e un instrument de dictare, nu un strat de control vocal. Navigarea între lane-uri rămâne un clic sau o scurtătură de tastatură.

Doar macOS. Build-ul de Windows nu este lansat.

Încotro de aici

Dacă agenții tăi trăiesc mai ales într-un singur editor, ghidurile pentru Cursor și Claude Code au specificul fiecărui instrument. Dacă alegi între aplicații de dictare pentru fluxul ăsta, Keebye vs Superwhisper e o comparație onestă care include și unde Superwhisper se potrivește mai bine.

Versiunea scurtă a tot ce e mai sus: agenții paraleli nu au nevoie ca tu să tastezi mai repede. Au nevoie ca tu să nu mai fii cel mai lent salt dintre ei. Ține ochii pe lane-ul care cere judecată și vorbește-le celorlalte.

Hrănește fiecare lane din locul în care ești

Începe proba gratuită și dictează următorul prompt în agentul care așteaptă — fără să părăsești diff-ul pe care îl citești.

Start free trial

Early access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.

Citește mai departe