Autonomous AI agent: paano pagtrabahuin ang agent nang ilang oras nang hindi nakakakuha ng basura
Tumatakbo nang ilang oras ang autonomous AI agent nang walang tao kapag may layuning kayang suriin ng makina, nakakulong ang agent sa sandbox na may pinakamababang karapatan, nasa disk ang progreso, at hindi ang agent mismo ang humahatol kung tapos na ang trabaho kundi ang mga test at hiwalay na evaluator. Kailangan ang limitasyon ng pagsubok at badyet, at ang panuntunang tumigil at tumawag ng tao kapag natigil ang gawain.
Ano ang autonomous AI agent at paano ito naiiba sa karaniwang request
Ang karaniwang pakikipagtrabaho sa agent ay hakbang-hakbang: sumulat kayo ng prompt, gumagawa ang agent ng isang hakbang, tinitingnan ninyo ang resulta at pinagpapasyahan kung ano ang susunod. Ang autonomous AI agent ay tumatakbo sa isang ikot: minsan ninyong inilalarawan kung ano ang itsura ng huling estado, at pagkatapos ay inuulit ng agent ang "gawin — suriin — ayusin" hanggang maabot ang layunin o maubos ang badyet. Pagkatapos ng simula, puwede na kayong umalis.
Mukhang simple ito, pero ang karaniwang unang karanasan ay ganito: umaga ibinigay ang gawain sa agent, at sa gabi ay lumalabas na ilang oras nitong inayos ang bug na naayos na pala, dahil nakalimutan nito ang ginawa nito isang oras na ang nakalipas. Walang nagsabi sa kanya kung kailan titigil at kung kailan tatawag ng tao. Narito kung paano idisenyo ang ikot na hindi hahayaang mangyari iyon.
| Karaniwang prompt | Autonomous loop | |
|---|---|---|
| Ano ang itinatakda ninyo | Ano ang gagawin sunod | Ano ang itsura ng huling estado |
| Ano ang ginagawa ng agent | Isang beses na gumagana | Inuulit hanggang maabot ang layunin |
| Sino ang nagpapasya kung tapos na | Kayo | Kondisyong kayang suriin o hiwalay na evaluator |
| Puwede ba kayong umalis | Hindi | Oo |
Mahalagang paalala: hindi pinapalitan ng loop ang harness. Ginagawang maaasahan ng harness ang isang pagtakbo, at ginagawang tuloy-tuloy ng loop ang mga pagtakbo. Ang loop sa ibabaw ng mahinang harness ay mas mabilis lang gumawa ng basura.
Angkop ba ang gawain para sa autonomous agent
Ang unang tanong: may dulo ba ang gawain na kayang suriin ng makina? Ang "lahat ng test sa direktoryong tests/payments ay pumapasa", "lahat ng feature sa listahan ay nasa estadong passing", o "tumaas ang sukatan kumpara sa baseline" ay angkop. Ang "pagbutihin ang code" o "ipagpatuloy ang pagpapaayos ng payments" ay hindi: walang dulo ang ganoong layunin, at iikot ang loop hanggang maubos ang badyet.
Makatutulong na makilala ang apat na uri ng loop:
- Hakbang-hakbang — kayo ang nagta-type ng bawat prompt; ito ang karaniwang interactive na trabaho.
- Ayon sa layunin — kayo ang nagtatakda ng layunin, at ang independent na pagsusuri o badyet ang huminto. Ito ang autonomous agent na tumatakbo nang ilang oras.
- Ayon sa oras — tumatakbo ayon sa iskedyul (halimbawa, umagang pagrepaso ng mga sirang CI build), at kayo ang manu-manong humihinto.
- Ayon sa pangyayari — may panlabas na trigger (bagong issue, sirang deploy), at humihinto kapag tapos na ang pagproseso ng pangyayari o naabot ang limitasyon ng pag-ulit.
Karaniwang pagkakamali ang paghalo ng loop ayon sa oras at loop ayon sa layunin: "bawat 10 minuto, ipagpatuloy ang payments." Sa bawat pagtakbo ng loop ayon sa iskedyul, nagsisimula ang instruksyon mula sa simula at hindi alam kung ano na ang nagawa. Kung may dulo ang gawain, kailangan ang loop ayon sa layunin na may memorya ng progreso.
Hakbang 1. Sandbox: saan puwedeng magkamali ang agent
Ang agent na walang bantay ay gagawa ng mali sa kalaunan: magbubura ng file, susulatan muli ang migration, o magpapatakbo ng mabigat na command. Kaya ang tanong ay hindi "paano siya hindi magkakamali", kundi "paano hindi magkakahalaga ang pagkakamali".
- Hiwalay na working copy. Binibigyan ng
git worktreeang agent ng sariling direktoryo at sariling branch sa parehong repositoryo. Hindi nagagalaw ang pangunahing branch, hindi nagkakabanggaan ang maraming agent, at nabubura ang pumalyang pagtakbo sa isang command. - Container o virtual machine. Kung kailangan ng agent ang buong access sa mga command, patakbuhin ito sa container na walang access sa home directory, mga susi, at production database.
- Test na datos. Lokal na database, sandbox ng mga payment system, at pekeng susi. Walang production secret sa environment ng agent.
# sariling branch at direktoryo para sa autonomous na pagtakbo
git worktree add ../shop-agent -b agent/f03-refunds
# pagkatapos ng pagtakbo: tingnan ang resulta o itapon
git -C ../shop-agent log --oneline main..
git worktree remove ../shop-agent
Hakbang 2. Karapatan: pinakamababa na sapat para sa gawain
Kung mas matagal magtrabaho nang mag-isa ang agent, mas makitid dapat ang karapatan nito. Sa Claude Code, itinatakda ang mga pahintulot sa settings.json (listahan ng allow at deny para sa mga tool at command): tahasang payagan ang kailangan ng gawain, gaya ng pagpapatakbo ng test, linter, at pag-edit ng file sa working copy, at ipagbawal ang mapanganib, gaya ng push sa pangunahing branch, paghawak ng secret, at network command kung hindi kailangan.
Ang mode na isinasagawa ang lahat nang walang kumpirmasyon ay pinapayagan lamang sa nakahiwalay na sandbox, kung saan ang pinakamasamang kalalabasan ay isang itinapon na container. Sa makinang pangtrabaho na may access sa inyong mga susi at repositoryo, hindi ito dapat gawin.
Ang mga pagbabawal na hindi dapat labagin ay gawing mekanismo, hindi teksto lamang. Ang linyang "huwag galawin ang migrations/" sa instruksyon ay hiling lamang; ang hook na humaharang sa pag-edit ng direktoryong iyon, o ang karapatan ng file system, ang tunay na garantiya.
Hakbang 3. Layunin, pagsusuri, paghinto: tatlong linya bago tumakbo
Ang pinakasimpleng gumaganang ikot ay nakasandal sa tatlong bagay, at mas mabuting isulat ang mga ito bago magsimula kaysa habang tumatakbo:
- Layunin — ang itsura ng huling estado.
- Beripikasyon — paraang kayang suriin ng makina para malaman kung naabot ang layunin: isang command na nagbabalik ng tagumpay o pagkabigo.
- Kondisyon ng paghinto — limitasyon ng pagsubok, oras, o pera, na pagkatapos nito ay humihinto ang loop kahit hindi naabot ang layunin.
Maginhawang itago ito sa hiwalay na file ng metodolohiya na tanging tao ang nag-e-edit. Halimbawa para sa payment backend:
# program.md — metodolohiya ng autonomous na pagtakbo
## Layunin
Lahat ng feature sa .agent/feature_list.json ay nasa estadong passing.
## Sukatan
Bilang ng feature sa passing. Tumataas nang tuloy-tuloy. Regression = agarang rollback.
## Mga limitasyon
- Isang feature lamang ang ginagawa sa isang pagkakataon.
- Huwag galawin ang migrations/ at infra/.
- Huwag galawin ang mga dependency nang walang tala sa journal.
## Daloy ng trabaho
1. Kunin ang unang feature na wala pa sa passing.
2. Ipatupad, patakbuhin ang pytest at linter.
3. Kung berde — commit at tala sa .agent/progress.md. Kung pula — ayusin.
## Paghinto at pagtaas sa tao
- 3 bigong pagsubok sa isang feature — markahan bilang blocked, lumipat sa susunod.
- Kapag blocked na ang lahat ng natitira — huminto at sumulat ng ulat.
- Anumang gawaing may kinalaman sa pera ng kliyente, karapatan sa access, o pagbura ng datos — hindi gagawin, kundi itataas sa tao.
Hakbang 4. Ikot ng check-fix na may memorya sa disk
Hindi tumatagal ang context window sa mahabang trabaho: napupuno ito, pinaiikli, at nire-restart ang session. Kaya dapat nasa mga file ang progreso, hindi sa "isip" ng agent: listahan ng gawain na may estado, journal ng nagawa at ng hindi gumana, at kasaysayan ng git.
Magandang modelo ang "ratchet na gumagalaw lamang pasulong", gaya ng proyektong autoresearch ni Andrej Karpathy, kung saan nagpapatakbo ang agent ng daan-daang ML experiment magdamag. Bawat iterasyon: basahin ang metodolohiya, bumuo ng hipotesis, gumawa ng pagbabago, patakbuhin ang eksperimento na may nakapirming badyet ng oras, ihambing sa baseline. Kung gumana, commit; kung hindi, rollback. Itinatala ang resulta sa journal, at sumusunod ang susunod na hipotesis.
Dalawang desisyon mula sa skema na ito ang dapat kunin:
- Nakapirming badyet bawat pagsubok. Nagiging maihahambing ang mga pagsubok, at hindi nauubos ng isang bigong hipotesis ang buong magdamag.
- Sa pangunahing branch, pagpapabuti lamang. Lahat ng hindi gumana ay inirollback, hindi iniwan sa tabi. Ang
git logay nagiging na-verify na journal ng trabaho na madaling basahin sa umaga.
Makikita rin sa skemang ito ang paghihiwalay ng tungkulin ayon sa file: walang nag-e-edit ng imprastraktura at ebalwasyon, ang code ng eksperimento lang ang ina-edit ng agent, at tao lamang ang nag-e-edit ng metodolohiya. Hindi kayang "pagandahin" ng agent ang resulta sa pamamagitan ng pagbabago ng paraan ng pagsukat.
Hakbang 5. Sino ang nagpapasya kung tapos na: hiwalay na evaluator
Kapag walang tao sa loop, ang sariling pagsusuri ng agent ang tanging preno, at hindi ito gumagana. Ang agent na katatapos lang sumulat ng code ay madalas na naniniwalang tama ito: nakikita niya ang sarili niyang pangangatwiran at "alam" niya ang gusto niyang gawin.
Mga panuntunan sa paghihiwalay ng generator at evaluator:
- Hindi ang sessyon na gumawa ng trabaho ang dapat magsuri. Sa Claude Code, maginhawa rito ang mga subagent dahil may sariling context ang bawat isa.
- Malinis na context ang dapat matanggap ng evaluator: ang kinakailangan, ang diff, at ang resulta ng mga pagsubok, at wala sa pangangatwiran ng gumawa.
- Kung posible, ibang modelo ang evaluator, o man lang ibang prompt na may ibang papel.
- Ang hatol ay batay sa rubric, at bawat punto ay tumuturo sa patunay: linya ng test, output ng command, lugar sa diff.
Nananatiling pangunahin ang mga awtomatikong pagsusuri. Ang evaluator ay para sa mga bagay na hindi nahuhuli ng test: hindi tama ang pagkaunawa sa kinakailangan, test na inangkop sa code, o pagbabagong lumampas sa saklaw ng gawain.
Mga kriterya ng paghinto: kailan dapat sumuko ang agent
Ang loop na walang kondisyon ng paghinto ay mauuwi sa walang katapusan; tanong na lang kung kailan. Ang pinakakaunting kailangan ay ang mga sumusunod:
| Kriterya | Ano ang nahuhuli nito |
|---|---|
| Naabot ang layunin ayon sa pagsusuri | Normal na pagtatapos |
| Limitasyon ng pagsubok sa isang gawain | Pag-ikot sa iisang lugar |
| Pangkalahatang badyet ng oras, hakbang, o pera | Walang hanggang trabaho at singil ng API |
| Walang progreso sa N iterasyon | Kunwaring trabaho: tumatakbo ang mga pagsubok, pero hindi gumagalaw ang sukatan |
| Regression ng sukatan | Pag-ayos sa isa na sumisira sa isa pa |
| Trigger ng pagtaas sa tao | Mga gawaing hindi dapat pagkatiwalaan sa loop |
Suriin ang progreso ayon sa nilalaman, hindi ayon sa bilang ng pagsubok: ang "40 iterasyon ang nagawa" ay walang kahulugan, ang "tumaas ang bilang ng berdeng feature mula 5 hanggang 9" ay may kahulugan. Kapag natigil ang gawain, senyales ito na ibigay sa tao, hindi na paikutin muli ang loop.
Mga panganib ng autonomous agent na hindi agad nakikita
Ang mga halatang panganib, gaya ng naburang file at sirang build, ay nasasaklaw na ng sandbox at karapatan. Mas mapanganib ang tahimik na gastos na naiipon sa loob ng ilang linggo:
- Utang sa beripikasyon. "Mukhang maayos" sa halip na "napatunayan ng makina." Ang lunas ay mga kondisyon ng paghinto na kayang suriin ng makina, walang pagbubukod.
- Paghina ng pag-unawa. Unti-unti ninyong nakikilala ang sarili ninyong code. Ang lunas ay ang sapilitang pagbasa ng mga diff: hindi dapat lumampas ang bilis ng loop sa bilis ng inyong pagbasa.
- Cognitive capitulation. Tumitigil kayong magkaroon ng sariling opinyon sa resulta at tinatanggap ang lahat. Makatutulong na tapat na bilangin kung ilang beses ninyong sinabing "titingnan ko mamaya" at hindi naman ninyo tiningnan.
- Pamamaga ng context. Ang mahabang pagtakbo ay nag-iipon ng kasaysayan, kaya lalong magastos at lalong humihina ang bawat susunod na hakbang. Kailangan ang pagpapaikli ng context at panlabas na memorya mula sa unang loop, hindi kapag gulo na ang lahat.
Paano patakbuhin ang unang autonomous loop sa isang gabi
Huwag magsimula sa "hahanapin at gagawin ng agent ang mga gawain mismo." Lumalaki ang autonomiya nang paunti-unti: una, isang gawain na may layunin at kondisyon ng paghinto; pagkatapos, isang awtomasyon ayon sa iskedyul; pagkatapos, magkahiwalay na tagagawa at tagasuri sa nakahiwalay na working copy; at saka lang ang mga loop na sila mismo ang naghahanap ng trabaho at sabay-sabay na tumatakbo.
- Hanapin ang gawaing ginagawa ninyo nang kamay nang hindi bababa sa dalawang beses sa isang linggo at may nakikitang dulo na kayang suriin.
- Isulat ang layunin, beripikasyon, at kondisyon ng paghinto: tatlong linya.
- Gumawa ng hiwalay na worktree at itakda ang karapatan: pinapayagan ang test at pag-edit ng file, hindi ang push at mga secret.
- Gumawa ng file ng progreso at hilingin sa agent na i-update ito pagkatapos ng bawat iterasyon.
- Paghiwalayin ang mga papel: isinusulat ng tagagawa, sinusuri ng tagasuri sa hiwalay na context ang diff.
- Maglagay ng pangkalahatang limitasyon at unang beses na tingnan ang resulta pagkalipas ng isang oras, hindi kinaumagahan.
Buod
Ang autonomous AI agent ay kasing-maaasahan lamang ng mga hangganan nito: sandbox kung saan walang halaga ang pagkakamali, pinakamababang karapatan, layuning kayang suriin ng makina, memorya sa disk, hiwalay na evaluator, at mahigpit na kondisyon ng paghinto na may pagtaas sa tao. Kung wala ito, ang mahabang pagtakbo ay hindi pagtitipid ng oras kundi naantalang paglilinis ng gulo. Paano bumuo ng ganitong loop sa isang buong proyekto, mula sa program.md hanggang sa hiwalay na evaluator, ay tinatalakay nang praktikal sa kursong harness engineering.
Mga madalas itanong
Puwede bang iwanang tumatakbo magdamag ang autonomous agent sa personal na laptop?
Puwede, kung nakakulong ito sa container o hiwalay na working copy na walang access sa mga susi at production data, na may limitadong karapatan at pangkalahatang limitasyon ng badyet. Ang mode na walang kumpirmasyon sa makinang may inyong mga secret ay masamang ideya.
Magkano ang gastos ng agent na tumatakbo buong gabi?
Nakadepende ito sa modelo at haba ng context, kaya magtakda nang maaga ng badyet sa hakbang, oras, o pera. Ang paglaki ng context ay nagpapamahal sa mga huling hakbang kumpara sa mga naunang hakbang, kaya nakakatipid din ang pagpapaikli ng context at panlabas na memorya.
Bakit hindi puwedeng ipasya ng agent mismo na tapos na ang gawain?
Nakikita ng agent ang sarili niyang pangangatwiran at madalas na naniniwalang tama ang resulta. Ang pagiging tapos ay dapat kumpirmahin ng mga test at ng evaluator sa malinis na context na nakakakita lamang ng kinakailangan, diff, at resulta ng mga pagsusuri.
Ano ang gagawin sa umaga sa mga resulta ng autonomous na pagtakbo?
Basahin ang journal ng progreso at ang git log ng branch, suriin ang mga diff, at asikasuhin ang mga gawaing nasa estadong blocked. I-merge sa pangunahing branch ang mga bagay lamang na nabasa at naunawaan ninyo.
Ano ang pagkakaiba ng autonomous agent sa pagpapatakbo sa pamamagitan ng cron?
Ang iskedyul ay nagsisimula ng instruksyon mula sa simula sa bawat pagtakbo; ito ay loop ayon sa oras. Ang autonomous agent ay gumagana ayon sa layunin: inaalala ang progreso sa mga file at humihinto kapag naabot ang layunin o naubos ang badyet.
Detalyadong tinatalakay ang paksang ito, may praktis, sa kursong “Harness Engineering: инженерия надёжности AI-агентов”.
- Автономный AI-агент часами без присмотра: Loop Engineering и условия остановки
- Харнес AI-агента с нуля: AGENTS.md, feature_list.json, verify.sh и автономный цикл