Адамдар мен агенттерге арналған ортақ жұмыс кеңістіктерін құру
Perplexity Жобалары ұзақ мерзімді жұмысты қалай тұрақты сақталатын, параллель әрі бақыланатын етеді.
Біз жақында Жобалар мүмкіндігін іске қостық — онда адамдар мен агенттер Perplexity Computer ішінде ұзақ мерзімді тапсырмалар бойынша бірге жұмыс істейді. Әр жоба сеанстар, агенттер және пайдаланушылар бойынша контекст жинайтын файлдық жүйесі бар ортақ жұмыс кеңістігінде орналасқан. Айларға созылатын көп қатысушылы бірлескен жұмыс сақталуды, параллельділікті және бақыланушылықты талап етеді:
- Сақталу: жұмыс жеке агент сеансынан немесе Sandbox ортасынан ұзағырақ сақталуы керек, сонда болашақта оны сол пайдаланушы немесе агент жалғастыра алады, ал кез келген қатысушы оны әрі қарай дамыта алады.
- Параллельділік: бір жобадағы бірнеше пайдаланушының әрқайсысында бір-бірінің жұмысын қайта жазбай, ортақ күйді алға жылжытатын, параллель түзетулер енгізетін бірнеше агент болуы мүмкін.
- Бақыланушылық: пайдаланушылар да, агенттер де бүкіл жобаны қайта оқымай-ақ соңғы сеансынан бері кімнің не өзгерткенін тексеріп, қажет болса түзетулерді кері қайтару үшін тарихты көре алуы керек.
Бұл қиындықтар бағдарламалық жасақтама инженерлеріне таныс. Git forge платформалары осы талаптарды орындау үшін ондаған жыл бұрын пайда болды: бұл нұсқаларды басқаруды бірлескен жұмыс мүмкіндіктерімен толықтыратын хостингтегі қызмет, оның арқасында көптеген қатысушы бірыңғай ақиқат көзіне тоғыса алады. Жобалардың негізіндегі файлдық жүйе — адам мен агент және агент пен агент арасындағы бірлескен жұмысқа арналған дәл осындай Git forge.
Архитектура
Git сақталуды, параллельділікті және бақыланушылықты қазірдің өзінде қамтамасыз етеді. Ол әр файлды мазмұны бойынша анықтайды, сондықтан өзгермеген файлдар бір рет сақталады және сақталған көшірмелер ешқашан ескірмейді. Әр коммит барлық жаңартылған файлдарды бірден сақтайды, сондықтан қатысушылар ешқашан аяқталмаған күйді көрмейді. Екі жазушы қақтығысқанда, ұтылғаны өз өзгерістерін жаңа нұсқаға қайта қолданып, әрекетті қайталай алады. Коммиттер тізбегі кімнің не өзгерткенін көрсетеді және бұрынғы нұсқаларды қалпына келтіруді жеңілдетеді. Агенттерге адамдарға арналған forge-тің қалған бөлігі — шолу экрандары, тармақтарды басқару және хабарландырулар сияқты мүмкіндіктер қажет емес.
Біздің архитектурамыз бүкіл процесті бұлтта іске асырады және бағдарламалаудан тыс білім жұмысының барлық түрлерін қолдайды. Әр Computer жобасы 5 компонент қызмет көрсететін Git репозиторийіне негізделген:
- CLI әр Sandbox ортасында жергілікті жұмыс көшірмелерін жүргізеді, жаңартуларды синхрондайды және агенттің өзгерістерін жібереді.
- Басқару жазықтығы жоба репозиторийін табады және оған қол жеткізу үшін қысқа мерзімді тіркелгі деректерін береді.
- Git қызметі репозиторий деректерін Sandbox орталарына жібереді, олардың жіберілімдерін қабылдайды және қай жіберілім соңғы қабылданған коммит болатынын шешеді.
- AWS S3 негізіндегі сақтау қоймасы репозиторий деректерін тұрақты сақтайды.
- Төменгі ағындағы өңдеу сақталған құжаттардан мәтін мен басқа пайдалы ақпаратты шығарып, агенттер жобаны жүктегенде немесе жаңартқанда оны қолжетімді етеді.
Әр агенттің өз оқшауланған Sandbox ортасы бар. Сол Sandbox ортасында ол шағын CLI басқаратын репозиторийдің жергілікті көшірмесімен жұмыс істейді. CLI репозиторийді табу үшін басқару жазықтығына жүгінеді, содан кейін Git қызметі арқылы деректерді алып, өзгерістерді жібереді. Агент проксиі Sandbox сұраулары Git қызметіне жетпес бұрын қолжеткізу құқығын тексереді. Git қызметі репозиторийлерді ортақ файлдық жүйеде оқиды және жазады, сондай-ақ әр жіберілімнің соңғы қабылданған коммит болатын-болмайтынын шешеді. Бұл файлдық жүйені S3 негізіндегі сақтау қоймасын кәдімгі файлдар мен каталогтар ретінде қолжетімді ететін AWS S3Files ұсынады. Сақтау қоймасы әрқайсысының өз файлдық жүйесі мен Git қызметі репликалары бар оқшауланған ұяшықтарға бөлінген. Коммит қабылданғаннан кейін фондық өңдеушілер өзгерген құжаттардан мәтін мен басқа пайдалы ақпаратты шығарып, нәтижелерді репозиторий тарихынан бөлек сақтайды және агенттер жобаны жүктегенде немесе жаңартқанда оларды қолжетімді етеді.
Әрі қарай компоненттерді бір-бірлеп қарастырамыз.
CLI: Sandbox орталарында жергілікті файлдармен жұмыс істеу
Агенттер біздің ішкі Sandbox платформамыз — SPACE жүйесінде жұмыс істейді. Әр Sandbox ортасында репозиторийді материалдандырып, оны синхрондалған күйде ұстайтын шағын CLI бар. Агент атқарған әрбір мағыналы жұмыс бірлігі үшін ол өзгерістерді коммит ретінде жібереді.
Агенттер әдетте жоба файлдарының аз ғана бөлігімен жұмыс істейді, сондықтан бүкіл репозиторийді алдын ала материалдандырудың қажеті жоқ. Сол себепті CLI кешіктіріп материалдандырады: Git Large File Storage (LFS) арқылы сақталған үлкен және бинарлы файлдар нысанның нақты өлшемін сақтайтын шағын нұсқағыш файлдар ретінде келеді, сондықтан агент жүктеп алудың қажет-қажет еместігін атауы мен өлшеміне қарап шеше алады. PDF сияқты құжаттар үшін агент алдымен талданған мәтінді оқиды және бастапқы файлдарды тек қажет болғанда ғана жүктеп алады.
Тағы бір табиғи нұсқа — виртуалды файлдық жүйені пайдалану. Біз FUSE негізіндегі іске асыруды сынап көрдік, бірақ файлдық жүйеге ауыр жүктеме түсіретін жұмыстарда ол жергілікті файлдармен салыстырғанда шамамен 400 есе баяу болды, өйткені әр сұрау желі арқылы бару-қайтуды қажет етеді. Сонымен қатар ол әдетте хосттан артықшылықты мүмкіндіктерді талап етеді, сондықтан әр агент артықшылықты Sandbox ортасында жұмыс істеуі керек болар еді.
Басқару жазықтығы: репозиторийлерді табу және қолжеткізу рұқсатын беру
Басқару жазықтығы әр репозиторийдің қай жерде сақталғанын анықтайды және оған қолжеткізу рұқсатын береді. Репозиторий жасалғанда басқару жазықтығы оны сақтау ұяшығына — Git қызметінің өз репликалары бар оқшауланған сақтау бірлігіне тағайындайды. Агент жобамен жұмысты бастағанда CLI басқару жазықтығынан репозиторийдің қай жерде сақталғанын сұрайды. Басқару жазықтығы орналасқан жерді және Git қызметіне арналған уақытша тіркелгі деректерін қайтарады. Басқару жазықтығы репозиторий деректерін ешқашан оқымайды және жазбайды. Репозиторийге не кіретінін Git қызметі шешеді.
Git қызметі: деректерді тасымалдау және жаңартуларды үйлестіру
Git қызметі Git операцияларын орындайды және репозиторий мазмұны мен нұсқалар тарихын Sandbox орталары мен сақтау қоймасы арасында тасымалдайды. Бұл — Git-тің өз қызмет көрсету командаларының жұқа қабығы. Ол клиентке репозиторийдің head-і қайда екенін хабарлау үшін ref discovery функциясын, клондау және деректерді алу үшін upload-pack командасын, сондай-ақ жаңа нысандарды және репозиторийдің head-ін алға жылжыту сұрауын қабылдау үшін receive-pack командасын қолдайды. Ол сондай-ақ Git LFS API-ге қызмет көрсетеді: үлкен және бинарлы файлдар үшін ол Sandbox орталары сол файлдарды S3-ке тікелей жүктеп, одан тікелей жүктеп ала алуы үшін қысқа мерзімді сілтемелер береді.
Біз дайын forge серверінен бастадық, осылайша тек өзімізге қажет Git операцияларына бағытталған жеңіл forge жүйемізді жасаумен қатар агент пен пайдаланушы интерфейстерінің прототипін параллель жасай алдық.
Қызмет репликалар паркінен тұрады, әрқайсысы — бір сервердің жұмыс істеп тұрған данасы. Ұяшық ортақ сақтау қоймасын репликалар жиынымен және оларды қолдайтын қызметтермен біріктіреді. Осылайша бір ұяшықтағы репликалар әр репозиторийдің тәуелсіз көшірмелерін жүргізудің орнына бір ортақ файлдық жүйеге қол жеткізе алады.
Бұл ортақ сақтау қоймасы репликаларға күйсіз (stateless) болып қалуға мүмкіндік береді. Ұяшықтағы кез келген реплика оның кез келген репозиторийіне қызмет көрсете алады, сондықтан репликаларды ауыстыру немесе қосу репозиторий деректерін серверлер арасында жылжытуды қажет етпейді. Репозиторийге келетін сұраулар кэштер пайдалы болып қалуы үшін әдетте бір репликаға жіберіледі, бірақ репозиторий нақты сол дананың қолжетімді болып қалуына тәуелді емес.
Қабылдау қадамы қабылданған коммиттің репозиторийдің жарамды күйі екеніне көз жеткізу үшін репозиторий инварианттарын тексереді. Біз әр репозиторий үшін нақты келісімшарт анықтаймыз, сондықтан механикалық тексерулер оның шамадан тыс өсіп кетуіне жол бермейді. PDF және суреттер сияқты үлкен және бинарлы файлдар шикі Git блобтары ретінде емес, Git LFS арқылы сақталады. Тығыздау (compaction) репозиторий көлемін шектей отырып, соңғы тарихты қолжетімді күйде сақтайды. Сәтті жіберуден кейін CLI Git қызметінен репозиторийді тығыздау қажет пе екенін сұрайды. Сақталған коммиттер саны шекті мәннен асса, Git қызметі ең соңғы коммиттердің шағынырақ жиынын ғана қалдырады. Ескі тарих бір бастапқы снапшотпен ауыстырылады, ал соңғы коммиттер олардың идентификаторларын жаңарту үшін қайта қолданылады.
Қарапайым синхрондау қадамы бір мезгілде жазатын тараптарды бақылайды. Ол соңғы қабылданған коммитті, яғни head-ті қадағалайды. Жіберілім келгенде, ол оны сол head негізінде құрылған жағдайда ғана қабылдайды. Олай болмаса, ол құрылымдалған stale-base (ескірген негіз) жауабын жібереді; содан кейін ұтылған тарап өз өзгерісін жаңа head үстіне қайта қолданып, қайта жіберуі керек. Бұл дизайн бір мезгілде жұмыс істейтін агенттердің бір-бірінің жұмысын байқаусыз қайта жазып тастамауын айтарлықтай баяулатусыз қамтамасыз етеді. Біздің өндірістік жұмыс процестерімізде жіберілімдердің 2%-дан азы ескірген деп қабылданбайды. Жалпы алғанда, жіберудің медианалық кідірісі 1,7 секундтан аз, ал p99 кідірісі 8 секундтан аз.
Git қызметі сондай-ақ әрбір қабылданған өзгерісті тіркейді. Әр қабылданған жазу үшін ол outbox-қа — репозиторийді, жаңа коммитті, өзгерісті енгізген пайдаланушыны және өзгерген жолдарды көрсететін журналға жазба қосады. Парсер сияқты төменгі ағындағы қызметтер жаңа жұмысты табу үшін осы журналды оқиды.
Бұл құрамдас бөліктер бірігіп, агенттерге қажет емес элементтерсіз репозиторийді басқару қабатын құрайды. Pull request-тер қажет емес, өйткені әр өзгерісті адам қарап шықпайды. Оның орнына Git қызметі жіберу сәтінде келісімшартты тексереді, жарыста ұтылған агент өз өзгерісін қайта қолданады, ал коммит тарихы кімнің не өзгерткенін тіркейді. Детерминистік тексерулер өсуді басқаруды адам операторға сеніп тапсырудың орнына әр репозиторийді өз келісімшарты шегінде ұстайды.
Сақтау қоймасы: жұмысты тұрақты сақтау
Сақтау қабаты репозиторий деректерін Sandbox орталары мен Git қызметінің репликаларынан тәуелсіз түрде тұрақты сақтайды. Репозиторийлер AWS S3Files қызметінде орналасқан: ол S3 негізіндегі сақтау қоймасын стандартты Git өзгеріссіз пайдалана алатын файлдық жүйе интерфейсі арқылы ұсынады. Әрқайсысы — ортақ файлдық жүйедегі bare Git репозиторийі: онда жұмыс көшірмесі емес, репозиторийдің нысандары мен сілтемелері (references) болады.
Сақтау мен есептеуді ажырату Sandbox орталарын уақытша етіп қалдыруға мүмкіндік береді. Әр агент өз Sandbox ортасын алады, ал көптеген агент бір машинаны бөліспей-ақ бір жобамен жұмыс істей алады. Sandbox ортасы істен шықса, тек жіберілмеген жұмыс қана қатерге ұшырайды.
Оның орнына әр жобаға оның барлық агенттері ортақ пайдаланатын ұзақ өмір сүретін Sandbox ортасын беруге болар еді, сонда жоба файлдары сол машинаның дискінде сақталар еді. Алайда бұл агенттердің есептеу ресурстарын машина жұмыс істейтін орынға байлап тастап, оның ең жүктелген кезеңдерге есептелген өлшемде болуын талап етер еді. Сонымен қатар ол жоба сақтау жүйесінің бөлігі ретінде басқарылатын сақтық көшірмелер мен қалпына келтіру арқылы айлар бойы ақаусыз жұмыс істеуі керек болар еді.
Төменгі ағындағы өңдеу: құжаттарды агенттер үшін оқылатын ету
Негізгі төменгі ағындағы компонент — жоба файлдарын агенттер оңай оқи алатындай етіп, жаңадан қосылған немесе жаңартылған құжаттардан мәтін мен метадеректерді шығаратын парсер конвейері. Парсер өңдеушісі өзгерістер ағынының кезегінен жаңартуларды алады, коммит метадеректерінен өзгерген файлдарды анықтайды және мазмұн хэші арқылы шикі байттарды жүктейді. Содан кейін ол құжатты талдап, шығарылған мәтін мен құжат метадеректерін жасайды.
Талданған нәтижелер репозиторийден тыс, бастапқы құжат хэшімен кілттелген қоймада сақталады. Бұл артефактілер репозиторийге ешқашан коммит ретінде қайтарылмайды, себебі бұл тарихты қажетсіз ластап, бір мезгілдегі жазулар санын арттырар еді. Оның орнына талданған нәтижелер Sandbox ортасына checkout және синхрондау арқылы жетеді. Әр жұмыс көшірмесінде CLI артефактілерді материалдандыру үшін пайдаланатын арнайы каталог болады. Талдау асинхронды түрде жүреді, сондықтан фондық парсер өңдеушісі checkout процесін бөгемейді.
Агенттер жұмыс кеңістігін қалай пайдаланады
Агенттер Sandbox ортасына жүктелген репозиторий нұсқасын стандартты файлдық жүйе құралдарымен зерттейді. Олар «алдымен іздеу, содан кейін оқу» деген қатаң конвейерді ұстанудың орнына қалталарды тізімдейді, файл мазмұнын grep арқылы іздейді, қатысты үзінділерді оқиды және тапқанын келесі қай жерді қарау керегін шешуге пайдаланады.
Search өнімі де Computer сияқты осы тәсілді стандартты файл құралдары арқылы қолданады. Жеке барлау агенті жобаны шектеулірек бюджет аясында іздеп, қатысты файл жолдары мен растайтын үзінділерді қайтарады. Содан кейін жауап беретін модель таңдалған файлдарды оқып, жауап жасайды. Бар жоба Sandbox ортасын қайта пайдалану дайындық уақытын қысқартады: дайын (warm) жұмыс көшірмесіне қосылу шамамен 2,9 секунд алады, ал суық іске қосу шамамен 8 секундқа созылады.
Талданған мәтін PDF және Office файлдары сияқты үлкенірек құжаттарды сол құралдармен іздеуге мүмкіндік береді. Агент алдымен манифесті — қай құжаттардың шығарылған мәтіні бар екенін көрсететін тізімді тексереді, содан кейін сол мәтінді кәдімгі файлдар сияқты іздеп, оқиды. Ол бастапқы құжатты мәтін жеткіліксіз болғанда ғана, мысалы, суреттерді, беттің орналасуын немесе ендірілген деректерді қарау үшін жүктеп алады.
Біз бұл тәсілді сол корпус бойынша бір құжатқа қатысты 150 қаржылық сұрақта индекс бойынша семантикалық іздеумен салыстырып сынадық. Барлау агенті дұрыс құжатты табуда 0,867, дұрыс жауап беруде 0,627 балл жинады, ал семантикалық іздеуде бұл көрсеткіштер шамамен 0,39 және 0,37 болды. Бұл жауаптар бойынша шамамен 1,7 есе, табу бойынша 2 есе жақсы нәтиже береді, ал кідіріс шамамен 25%-ға төмен. Барлау агенті негізінен шығарылған мәтінмен жұмыс істейді және бастапқы PDF файлдарын сирек жүктеп алады.
Бір ортақ инфрақұрылым
Computer-дің тұрақты жады да осы файлдық жүйе инфрақұрылымын пайдаланады. Perplexity Brain — Computer-дің білім уикиі — жадты өз тарихы мен саясаттары бар білім репозиторийлерінде сақтайды. Білімді жоба файлдарынан бөлек сақтаудың арқасында фондық жад жаңартулары сол файлдардағы түзетулермен бәсекелеспейді. Екеуі де қажет сеанс екі репозиторийді де жүктейді.
Фондық агенттер бар білімді оқиды, жаңа ақпаратты қосады және жаңартылған беттерді коммит ретінде сақтайды. Басқа агенттер бұл беттерді кәдімгі файл құралдарымен оқиды, ал адамдар да оларды өңдей алады. Жазушылар әр оқырманмен тікелей үйлестірудің орнына өз жұмысын репозиторий арқылы бөліседі. Коммит тарихы кімнің не өзгерткенін тіркейді, ал outbox қабылданған жаңартулар туралы төменгі ағындағы қызметтерге хабарлайды. Адамдар мен агенттер білімнің қалай дамығаны туралы жазбаға сүйене отырып, бір-бірінің жұмысын жалғастыра алады.
Қорытынды
Адамдар мен агенттер жобаны бөліскенде, жұмыс кеңістігі тек файлдарды сақтаумен шектелмейді. Ол үлестерді біріктіруге және не өзгергенін бақылауға арналған ортақ орын береді. Бұл негіздің едәуір бөлігін Git қазірдің өзінде қамтамасыз етеді. Біз агенттер әр жаңартуды адам мақұлдамай-ақ жұмысын жібере алуы үшін үйлестіру мен автоматты тексерулерді қосамыз. Нәтижесінде ең қажетті элементтеріне дейін ықшамдалған forge аламыз, өйткені агенттер арасындағы бірлескен жұмыс пен көп қатысушылы бағдарламалық жасақтама әзірлеу түптеп келгенде бір мәселе.
Агенттер тұрақты репозиторийлерге үлес қоса отырып, тәуелсіз, уақытша Sandbox орталарында жұмыс істейді. Репозиторий шектеулері өсуді басқарылатын деңгейде ұстайды, нақты жүктеп алу агенттерге не алу керегін өздері таңдауға мүмкіндік береді, ал кәдімгі файлдар таныс құралдармен зерттеуге жол ашады. Фондық жаңартулар, интерактивті түзетулер және жоспарланған тапсырмалар тікелей үйлестірусіз бір-бірінің жұмысын жалғастыра алады.
Жобалар ішінде дербес жұмыс істейтін агенттер көбейген сайын, олардың ортақ жұмыс кеңістігі сенімді әрі адамдарға түсінікті болып қалуы керек. Мақсат қарапайым: әр өзгеріс оны жасаған агенттен ұзағырақ сақталуы, келесі қатысушыға қолжетімді болуы және не өзгергені туралы анық жазба қалдыруы тиіс.
Дәйексөз
@online{perplexity2026BuildingSharedWorkspacesForPeopleAndAgents,
author = {{Perplexity} and Se Won Jang and Peter Hart and Kartik Kapur and Kevin Lau and Sidhant Rajadnya and Ishbir Singh and Thomas Wang and Jarrod Bryan and Claire Beamer and Jeremy Yang},
title = {{Building shared workspaces for people and agents}},
date = {2026-10-12},
url = {https://www.perplexity.ai/hub/blog/building-shared-workspaces-for-people-and-agents}
}