Blog

Mai mulți agenți AI pe un singur panou: ghid practic

Cum rulezi Claude Code, Codex și ChatGPT pe un singur panou fără muncă dublată: contracte de sarcină, revendicări atomice, leasing și o singură coadă de revizuire.

Weft este managerul de sarcini cu AI pentru fondatori solo și echipe mici.

Toate articolele

De Andrei Finogeev ·

Da, doi sau trei clienți AI pot împărți un panou, atâta timp cât panoul decide cine deține fiecare sarcină. În Weft, Claude Code, Codex și ChatGPT se conectează toți la același endpoint MCP. Fiecare revendică o sarcină cu start_task, o ține în viață cu semnale de viață și predă înapoi o chitanță. Dacă doi clienți întind mâna după același card, al doilea primește already_claimed și nimeni nu face munca de două ori.

Noi facem Weft. Informațiile despre alte produse provin din paginile lor oficiale, verificate pe 27 octombrie 2026.

Ghidul e pentru un fondator solo sau o echipă mică ce rulează doi sau trei clienți AI care se tot calcă pe picioare.

Când ajută cu adevărat un al doilea agent?

Mai mulți agenți nu fac implicit munca mai rapidă. Ajută când munca se împarte în bucăți care nu se ating și strică atunci când împart fișiere, o bază de date de test sau o decizie pe care n-a luat-o încă nimeni.

SituațieUn agent sau mai mulți?De ce
O funcție într-un singur repozitoriu, terminată dintr-o așezareUn agent (cu propriii subagenți, dacă are)Un singur context ține tot; un panou adaugă overhead
Două reparații independente în zone separate ale coduluiDoi agenți, ramuri sau worktree-uri separateFără fișiere comune, deci singurul risc e să aleagă același card
Planificare și triere în ChatGPT, programare într-un agent de terminalDoi clienți, sarcini diferiteChatGPT scrie și sortează sarcini; agentul de programare le revendică
Mai mulți agenți care așteaptă aceeași decizie de produsUn agent, după ce decizi tuAgenții în paralel vor ghici fiecare altfel

Dacă n-ai da două bucăți de muncă la doi oameni fără să vorbiți întâi, nu le da nici la doi agenți.

Ce trebuie să spună o sarcină înainte ca un agent s-o poată prelua?

Agenții iau sarcina ad litteram și rareori întreabă. Înainte ca un card să plece din Backlog, dă-i:

  • Un singur rezultat pe care îl poți verifica. Nu „îmbunătățește onboardingul”, ci „adaugă o stare goală pe pagina de proiecte, cu un buton de creare”.
  • Aria. Ce fișiere, pagini sau sisteme are voie să atingă și ce e interzis.
  • O verificare de finalizare. Testul, buildul sau URL-ul care arată că a mers.
  • Dovezile pe care le vrei înapoi. Un link spre pull request, un hash de commit, un URL publicat.
  • Unde se oprește. Orice e ireversibil (publicare, producție, bani) ar trebui să se încheie cu o întrebare către tine, nu cu o acțiune.

Coloanele implicite din Weft sunt Backlog, Todo, Doing și Done. O convenție simplă merge bine: doar cardurile din Todo sunt gata de revendicat. Proiectele țin un repozitoriu sau un client separat de restul.

Ce se întâmplă când doi agenți apelează start_task pe același card?

Mutarea unui card în Doing nu e un lacăt: doi agenți pot citi același card din Todo și pot începe amândoi. De aceea, în Weft, revendicarea însăși e lacătul.

Un apel start_task e o singură inserare în baza de date, păzită de un index unic, așa că baza de date decide cine câștigă. Câștigătorul primește un runId și un leaseToken, iar cardul se mută în Doing. Cel care pierde primește already_claimed, cu id-ul sarcinii, titlul și un indiciu să nu dubleze munca. Nu contează că un client e un agent de terminal, iar celălalt o aplicație de chat.

Pentru un agent, already_claimed e un răspuns normal, nu o eroare. Mișcarea corectă e să apeleze din nou get_my_work și să ia următorul card. Descriem bucla completă în bucla de revendicare, semnal de viață și chitanță.

Cum funcționează semnalele de viață și leasingul de 20 de minute?

O revendicare e un leasing, nu o atribuire permanentă. start_task dă un leasing de 20 de minute și îi spune agentului să-l reînnoiască la fiecare 300 de secunde. Agentul îl reînnoiește apelând report_progress cu runId și leaseToken. Dacă între timp agentul a pierdut leasingul, apelul întoarce lease_lost și ar trebui să se oprească, nu să continue să editeze.

Când o sesiune moare, nu mai rămâne nimeni care să spună asta. Tăcerea e singurul semnal pe care îl primește panoul, așa că Weft tratează tăcerea ca semnal:

  • După 20 de minute fără semnal de viață, rularea e marcată ca expirată, tokenul e șters și sarcina redevine neatribuită.
  • O curățare rulează la fiecare 10 minute, iar o sarcină expirată e eliberată imediat și atunci când alt client încearcă s-o revendice.
  • Cât timp un agent așteaptă o întrebare către tine, păstrează sarcina 60 de minute. După asta leasingul cade, dar întrebarea rămâne deschisă.

Semnalele de viață sunt apeluri de instrumente. O sarcină de 40 de minute, cu un semnal la fiecare 5 minute, consumă cam 8 apeluri pe ele, iar Free are 200 de apeluri pe lună, așa că trei agenți zilnici îl vor depăși. Pro nu are plafon de apeluri.

Cum știe panoul ce agent ce a făcut?

Fiecare client OAuth care se autentifică în Weft e un actor separat. Claude Code, Codex și ChatGPT se înregistrează fiecare separat, iar panoul arată numele cu care s-a înregistrat fiecare client. Fiecare eveniment din istoric înregistrează ce client l-a produs.

Clienții fără OAuth pot folosi un token de acces personal; și fiecare token e un actor separat, dar tokenurile nu au permisiuni restrânse (tokenuri de acces). Drepturile se setează pe fiecare conexiune OAuth:

  • full (implicit): toate cele 32 de instrumente.
  • write: totul în afară de cele trei instrumente distructive (coș, arhivare, încheierea sprintului).
  • read: doar cele 11 instrumente de citire.

O împărțire rezonabilă: agenții de programare pe write, orice e experimental pe read. Deconectarea unui client îi revocă tokenurile fără să-i atingă pe ceilalți. Weft emite refresh tokenuri, așa că un client conectat își reînnoiește singur autentificarea.

Identitatea pe panou nu înseamnă izolare pe disc. Doi agenți cu nume diferite se pot suprascrie totuși unul pe altul în același checkout. Dă-i fiecărui agent de programare propria ramură sau propriul worktree.

Unde ajunge munca terminată și cât poate aștepta după tine?

Implicit, o sarcină finalizată merge direct în Done. Se oprește în schimb în Inboxul tău când are nevoie de revizuire sau când o verificare eșuează. Acolo alegi Acceptă, Refă, Mai târziu sau Renunță. Refă cere o notă. Întrebările din request_input ajung în același Inbox și pe telefon ca notificare push, așa că ai un singur loc în care să te uiți, indiferent ce agent a întrebat.

Chitanța de la complete_task conține un rezultat, artefacte pe care le poți verifica, ce nu s-a făcut, necunoscute și un nextStep. nextStep apare deasupra butonului Acceptă, așa că acceptarea aprobă exact acel pas. Mai multe în ce a făcut agentul meu AI.

Inboxul are o limită, iar cu mai mulți agenți o vei atinge. Ține 5 elemente într-un spațiu de lucru de o persoană și 10 într-o echipă, sau 45 de minute de revizuire estimată, oricare vine primul. Întrebările se pun la socoteală. Când e plin, start_task refuză cu attention_queue_full și îi spune agentului ce mai poate face, de exemplu să raporteze progresul sau să citească panoul. Trei agenți pot produce muncă mai repede decât o poate revizui un om; limita îi oprește să adune rezultate pe care nu le vei citi niciodată.

Ce se strică și cum îți revii?

DefecțiuneCe veziCe face WeftCe faci tu
Doi clienți pornesc aceeași sarcinăUn card în Doing, un client care a primit already_claimedBaza de date lasă o singură revendicare să câștige; cealaltă e refuzatăNimic, dacă agentul care a pierdut trece mai departe. Dacă a continuat totuși să lucreze, strânge-i instrucțiunile
O sesiune se prăbușește sau laptopul intră în repausUn card în Doing, fără progresDupă 20 de minute fără semnal de viață, rularea expiră și sarcina redevine neatribuităVerifică ramura pentru muncă parțială înainte s-o preia alt agent
Un agent termină, dar nu apelează niciodată complete_taskMunca e îmbinată, cardul e încă în DoingLeasingul expiră; sarcina e eliberată, nu închisăÎnchide-o tu sau cere-i unui agent s-o finalizeze cu dovezile
Un agent are nevoie de o decizie pe care doar tu o poți luaO întrebare în Inbox, poate o notificare pushRevendicarea se păstrează 60 de minute; răspunsul ajunge la agent la următorul lui start_task sau get_my_workRăspunde cu una dintre variantele pe care ți le-a dat
Prea multe te așteaptăUn Inbox plinstart_task refuză cu attention_queue_fullRevizuiește sau renunță la elemente; agenții pot reîncepe pe măsură ce coada se golește
Doi agenți editează același checkoutModificări fără legătură amestecate într-un singur diffNimic; Weft nu-ți vede fișiereleSepară worktree-urile sau ramurile înainte să rulezi agenți în paralel

Cum configurezi doi sau trei clienți?

Toți trei se conectează la același endpoint și se autentifică prin browser, fără vreo cheie de copiat.

# Claude Code
claude mcp add --transport http weft https://letsweft.com/api/mcp

# Codex: add to ~/.codex/config.toml, then sign in
[mcp_servers.weft]
url = "https://letsweft.com/api/mcp"

codex mcp login weft

ChatGPT se conectează prin aplicația Weft din directorul lui, pe orice plan, inclusiv Free. Pagini pas cu pas: Claude Code, Codex, ChatGPT, Cursor (instalare cu un clic). Autentificarea urmează specificația de autorizare MCP.

ChatGPT lucrează pe rânduri: acționează cât timp ești în conversație. Se potrivește pentru planificare, scrierea sarcinilor și răspunsuri la întrebări. Rulările lungi de programare merg mai bine într-un agent de terminal, pentru că un semnal de viață la câteva minute cere o sesiune care continuă să ruleze.

Cum arată o probă de o săptămână?

  1. Ziua 1: conectează doi clienți. Claude Code și Codex sau un agent de programare plus ChatGPT. Pune agenții de programare pe drepturi write.
  2. Zilele 1–2: scrie cinci până la zece sarcini după contractul de mai sus. Un rezultat, arie, verificare de finalizare, dovezi. Lasă-le în Todo. Dacă ai deja sarcini în Linear, Jira, Notion sau Trello, importă-le întâi; importul e gratuit pe orice plan.
  3. Zilele 2–5: rulează ambii agenți pe aceeași coadă Todo, fiecare în propriul worktree, fiecăruia spunându-i-se să revendice cu start_task și să termine cu complete_task și artefacte.
  4. Ziua 5: testează intenționat defecțiunile. Îndreaptă ambii agenți spre același card și urmărește cum unul primește already_claimed. Oprește o sesiune în mijlocul sarcinii și verifică dacă după 20 de minute cardul e din nou liber.
  5. Ziua 7: auditează doar din panou. A rulat vreo sarcină de două ori sau a rămas în Doing după ce s-a terminat? Ai putut verifica fiecare rezultat din artefactele lui? Repară șablonul de sarcină înainte să adaugi un al treilea agent.

Cum se compară cu abordarea Hypertask?

Modelul de leasing al Hypertask e solid: revendicare, semnal de viață, eliberare, cu expirare. Diferența e locul în care trăiește modelul. Documentația Hypertask listează leasingul sarcinilor, dovezile și escaladarea doar ca endpointuri REST, intenționat, iar referința instrumentelor are 21 de instrumente MCP, fără vreun instrument de leasing (prezentare MCP). În Weft, revendicarea, semnalul de viață, întrebarea și chitanța sunt instrumente MCP, așa că orice client MCP le folosește fără cod suplimentar.

WeftHypertask
Revendicare și leasingÎn MCP: start_task, report_progress (leasing de 20 de minute)Doar endpointuri REST, intenționat (documentație)
Instrumente MCP3221 (documentație)
AutentificareOAuth în browser, cu refresh tokenuri; tokenuri de acces personale opționaleConfigurarea documentată e o cheie API copiată, care expiră după 30 de zile; o conexiune aprobată în browser durează 90 de zile, fără refresh (documentație)
Identitatea agentuluiFiecare client OAuth sau token e un actor separatAgenți ca conturi de serviciu cu propria identitate
Calea prin ChatGPTAplicație publicată în directorul ChatGPT, pe orice plan, inclusiv FreeGPT personalizat cu OpenAPI Actions sau un conector personalizat prin Developer mode, potrivit Hypertask (documentație)
CLI și API RESTNiciunulCLI pe npm și un API REST (documentație)
Aplicații mobileiOS și AndroidFără aplicație nativă iOS (aplicație web pe ecranul principal); fără listare în Google Play (documentație)
Limbi27Doar engleză
Preț pe locFree: 50 de sarcini, 200 de apeluri AI pe lună. Pro: 7,87 € pe lună sau 66,55 € pe an, cu TVA inclusFree: 3 panouri de persoană. BYOK 8 $ anual / 10 $ lunar. Pro 16 $ anual / 20 $ lunar (prețuri)
Credite AINu e nevoie: gândirea se petrece în propriul tău client AIAI integrat; planul BYOK folosește propriile tale chei de model

Hypertask e alegerea mai bună dacă agenții tăi rulează din scripturi sau CI și vrei un CLI și un API REST, dacă vrei agenți ca conturi de serviciu gestionate ca utilizatorii sau dacă vrei AI integrat (scrierea sarcinilor, etichete inteligente, triere), viteză din tastatură și pontaj al timpului. Weft nu are CLI, API REST sau webhookuri și nici integrare cu GitHub sau Slack. Weft se potrivește când agenții tăi sunt clienți MCP pe care îi folosești deja, printre ei și ChatGPT, și vrei să le răspunzi de pe telefon.

Pentru o comparație mai largă, vezi manageri de sarcini MCP comparați și o alternativă la Hypertask.

Trebuie ca agenții mei să vorbească între ei?
Nu. Se coordonează prin panou: revendicări, chitanțe și întrebări. Weft nu apelează niciodată un agent; fiecare își trage următoarea sarcină cu get_my_work.
Va lăsa un agent prăbușit o sarcină blocată în Doing pentru totdeauna?
Nu. După 20 de minute fără semnal de viață, rularea e marcată ca expirată și sarcina redevine neatribuită, așa că o poate revendica alt client. Verifică mai întâi ramura pentru muncă parțială.
Nu mă vor îngropa trei agenți în revizuiri?
Inboxul e plafonat la 5 elemente pentru o persoană (10 pentru o echipă) sau 45 de minute de revizuire; când e plin, agenții nu pot începe sarcini noi. Majoritatea sarcinilor terminate merg direct în Done.
Costă mai mult să rulezi mai mulți agenți?
Weft taxează pe loc, nu pe agent: Pro costă 7,87 € pe lună sau 66,55 € pe an de persoană, cu TVA inclus. Planul Free plafonează apelurile AI la 200 pe lună, pe care semnalele de viață ale mai multor agenți le consumă repede. Vezi prețurile.