Karatasi ya kudanganya ya harness ya wakala: vipengele, faili, matatizo na orodha ya kuanzisha
Harness ya wakala ina vipengele vitano: maelekezo, zana, mazingira, hali na maoni. Seti ndogo ya faili ni AGENTS.md kama rauta fupi, skripti ya ukaguzi (make check, verify.sh), faili la maendeleo, na orodha ya vipengele pamoja na hali zao; hali ya kukamilika inatolewa na skripti, si na wakala.
Vipengele vitano vya harness ya wakala
| Kipengele | Ni nini | Vifaa | Dalili ya kuvunjika |
|---|---|---|---|
| Maelekezo | Wakala anachopaswa kujua kuhusu mradi | AGENTS.md / CLAUDE.md, skills, docs/, ADR | Anakiuka makubaliano yanayojulikana |
| Zana | Wakala anaweza kufanya nini | shell, majaribio, linter, browser, seva za MCP | «Anataka lakini hawezi» |
| Mazingira | Wakala anafanya kazi wapi | faili za lock, Docker/devcontainer, git worktree, sandbox, init.sh | Kikao kinaanza kwa kurekebisha mazingira |
| Hali | Kinachodumu baada ya kuanzishwa upya | PROGRESS.md, DECISIONS.md, feature_list.json, commit | Kikao kipya hakijui kazi ilipoishia |
| Maoni | Wakala anajuaje kuhusu makosa yake | make check, E2E, hooks, arch-check, mkaguzi | «Imekamilika», lakini haifanyi kazi |
Mpangilio wa kujenga kutoka mwanzo: maoni → maelekezo → hali → mazingira → zana.
Faili za harness
| Faili | Kazi | Kanuni |
|---|---|---|
| AGENTS.md / CLAUDE.md | Mlango wa kuingilia: mradi ni nini, unauendeshaje, unakaguaje | Rauta fupi (takriban mistari 80), viungo vya nyaraka vyenye sharti la «lini usome» |
| docs/*.md | Maelezo ya kina kwa mada | Husomwa inapohitajika, si yote |
| .claude/skills/*/SKILL.md | Taratibu zinazorudiwa (deploy, review) | Hupakiwa kazi inapolingana na maelezo yake |
| PROGRESS.md | Hali, yaliyokamilika, vikwazo, hatua zinazofuata | Husasishwa mwishoni mwa kila kikao |
| DECISIONS.md | Uamuzi, sababu, chaguzi zilizokataliwa | Andika njia, si hitimisho tu |
| feature_list.json | Vipengele: behavior, verification, state | Kipengele kimoja tu active (WIP=1) |
| scripts/verify.sh | Kukagua kipengele na kukipandisha hadi passing | Yeye pekee anayeweka passing, pamoja na SHA ya commit |
| scripts/arch-check.sh | Mipaka ya muundo | Msimbo 1 + WHY na FIX kwenye matokeo |
| scripts/init.sh | Kukagua mazingira kabla ya kazi | Mazingira, git safi, make check ya kijani, kipengele kinachotumika |
| sprint contract | Mkataba wa kila kipengele kabla ya msimbo | Ndani ya wigo / nje ya wigo / maswali wazi |
| .claude/settings.json | Ruhusa na hooks za Claude Code | Ukaguzi kwenye matukio, si kwenye kumbukumbu ya wakala |
Muundo wa AGENTS.md
# Mradi: backend ya malipo (FastAPI, PostgreSQL)
## Kuendesha
docker compose up -d && ./scripts/init.sh
## Ukaguzi
make check # lint, aina, kitengo, arch-check
make e2e # hali za mwisho-hadi-mwisho
## Definition of Done
- make check na make e2e — msimbo 0
- kipengele kinapandishwa hadi passing na skripti ya scripts/verify.sh
- PROGRESS.md imesasishwa
## MUST
- maswali ya database kupitia repository tu
- siri kutoka kwenye vigezo vya mazingira tu
## Nyaraka
- docs/payments.md — kazi inapogusa malipo na marejesho
- docs/migrations.md — schema ya database inapobadilika
Hali za kipengele
| Hali | Maana | Nani anabadilisha |
|---|---|---|
| pending | Iko kwenye foleni | Mpangaji |
| active | Inafanyiwa kazi (moja tu) | Wakala, mwanzoni |
| passing | Ukaguzi umepita | verify.sh pekee |
| blocked | Inahitaji uamuzi wa binadamu | Wakala, pamoja na sababu |
Ngazi za uthibitishaji
| Ngazi | Nini | Lini |
|---|---|---|
| 1 | Lint, aina | Kila wakati |
| 2 | Majaribio ya kitengo na ujumuishaji | Kila wakati |
| 3 | E2E | Mabadiliko yanagusa zaidi ya tabaka moja; kabla ya «imekamilika» |
| 4 | arch-check | Uingizaji mpya unaovuka tabaka |
Haki ya kusema «imekamilika» ni baada ya ngazi ya juu kabisa tu. Majaribio ya kitengo ya kijani si utayari.
Kufanya kanuni ziwe za kimashine
| Ngazi | Zana | Gharama |
|---|---|---|
| Guard ya grep | Skripti ya kutafuta muundo yenye ujumbe wa WHY/FIX | Dakika |
| Kanuni ya linter | import-linter (Python), dependency-cruiser, eslint-plugin-boundaries (JS/TS) | Saa moja |
| Jaribio la muundo | Jaribio kwenye CI linaloshindwa tabaka zinapokiukwa | Zaidi, lakini linaonekana kwenye make check |
#!/usr/bin/env bash
fail=0
if grep -rn "from app.db" app/services/; then
echo "WHY: service haziungani moja kwa moja na database"
echo "FIX: tumia repository kutoka app/repositories/"
fail=1
fi
exit $fail
Matatizo ya kawaida na suluhisho
| Tatizo | Kipengele | Suluhisho |
|---|---|---|
| Kanuni ya CLAUDE.md haifuatwi | Maelekezo | Punguza faili, geuza kanuni kuwa ukaguzi au hook |
| Wakala hawezi kuendesha majaribio | Zana | Ruhusu amri, sakinisha utegemezi kwenye image |
| Tabia inatofautiana kati ya mashine | Mazingira | Faili za lock, Docker/devcontainer, matoleo maalum ya runtime |
| Usahaulifu kati ya vikao | Hali | PROGRESS.md, makabidhiano ya kikao, kusoma mwanzoni |
| Vipengele vitatu vimeanza, hakuna kilichomalizika | Hali | WIP=1 kwenye feature_list.json |
| «Imekamilika», lakini haifanyi kazi | Maoni | DoD, E2E, verify.sh, mkaguzi huru |
| Majaribio ya kijani, kipengele kimevunjika | Maoni | E2E yenye database na usanidi halisi |
| Wakala anaiga mifumo mibaya | Maoni | arch-check tangu siku ya kwanza |
| Haieleweki wakala alifanya nini | Hali | Commit ndogo, ripoti kwenye PROGRESS.md, DECISIONS.md |
| Wakala ameharibu mazingira usiku | Mazingira | Sandbox, git worktree, vituo vya kuhifadhi, rollback kupitia init.sh |
| Maoni yale yale ya review mara mbili | Harness kwa ujumla | Geuza kuwa ukaguzi kwenye make check, ondoa maandishi kwenye maelekezo |
Majukumu kwa kazi ndefu
| Jukumu | Hufanya | Hafanyi |
|---|---|---|
| Mpangaji | Vipengele vyenye vigezo vya kukubalika | Haandiki msimbo |
| Jenereta | Hutekeleza kipengele kimoja, huendesha majaribio | Haamui kama kimekamilika |
| Mkaguzi | Hutoa hukumu kwa rubriki, akitaja faili, mstari, kumbukumbu | Haoni hoja za jenereta |
| Merge | Commit review == pass inapotokea | Ni msimbo, si wakala |
Bajeti ya kazi ya kujiendesha
- Lengo — sentensi moja (kwa mfano kupeleka vipengele vyote hadi passing).
- WIP=1, kikomo cha muda na majaribio kwa kila kipengele.
- Kipimo kinapanda kwa mfululizo; regression inamaanisha rollback mara moja.
- Migration, miundombinu, fedha — upandishaji kwa binadamu.
- Baada ya review kadhaa kushindwa, kipengele kinaanzishwa upya kwa muktadha safi.
Orodha ya kuanzisha wakala
- AGENTS.md ipo: stack, jinsi ya kuendesha, amri ya ukaguzi, DoD.
- make check inapita kwenye clone safi.
- Mazingira yanaweza kuzalishwa upya: faili za lock, Docker au devcontainer.
- Amri zinazohitajika zinapatikana kwa wakala; zile hatari zimezuiwa au ziko kwenye sandbox.
- Kuna E2E angalau kwa hali kuu.
- Kuna PROGRESS.md na kanuni ya kuisoma mwanzoni mwa kikao.
- Vipengele vipo kwenye orodha pamoja na hali zake, kimoja tu kikiwa kinatumika.
- Hali ya passing inatolewa na skripti.
- Ujumbe wa ukaguzi una WHY na FIX.
- Kazi imeandikwa pamoja na vigezo vya kukubalika na mipaka ya wigo.
- Imeamuliwa ni nini kinahitaji uamuzi wa binadamu.
- Verification gap imepimwa kabla ya mabadiliko, kwa ulinganisho.
Vipimo vya harness
| Kipimo | Jinsi ya kukihesabu |
|---|---|
| Verification gap | Sehemu ya «imekamilika» bila uthibitisho wa ukaguzi kwenye kazi 10 |
| MTTR | Muda kutoka kuvunjika hadi kurejea kwenye hali ya kazi |
| Cold start | Kama kikao kipya kinaweza kujibu «tuko wapi, nini kinafuata» bila kukisia |
| Ablation | Kushuka wakati kipengele kimoja kinazimwa kwenye seti ya kazi iliyo thabiti |
Kwa ufupi
Harness ni mzunguko, si faili moja: maelekezo, zana, mazingira, hali na maoni. Anza na ukaguzi, weka AGENTS.md fupi, mpe skripti jukumu la hali ya kukamilika, na pitia harness mara kwa mara. Yote haya yanakusanywa kuwa kitu kimoja katika mradi wa kozi ya harness engineering.
Maswali ya mara kwa mara
AGENTS.md inatofautianaje na CLAUDE.md?
Kwa kusudi ni kitu kimoja: faili la maelekezo kwa wakala. CLAUDE.md inasomwa na Claude Code, AGENTS.md ni muundo wa pamoja kwa mawakala mbalimbali; katika CLAUDE.md unaweza tu kutaja AGENTS.md.
AGENTS.md inapaswa kuwa na mistari mingapi?
Hakuna kikomo kigumu, lakini faili la kuingilia ni bora liwe fupi — kama mistari mia hivi, kama faharasa. Maelezo yanahamia kwenye nyaraka tofauti.
Je, feature_list.json inahitajika kwa mradi mdogo?
Kwa mabadiliko ya mara moja hapana. Inalipa wakala anapofanya kazi kwenye vipengele kadhaa mfululizo au katika vikao kadhaa.
Siri ambazo wakala anahitaji ziwekwe wapi?
Kwenye vigezo vya mazingira au kwenye meneja wa siri, si kwenye faili la maelekezo wala kwenye msimbo. Mpe wakala ufikiaji wa mazingira, si thamani za siri zilizoandikwa kwenye maandishi.
Mada hii inafundishwa kwa kina pamoja na mazoezi katika kozi “Harness Engineering: инженерия надёжности AI-агентов”.
- Из чего состоит harness AI-агента: инструкции, инструменты, среда, состояние, обратная связь
- Харнес AI-агента с нуля: AGENTS.md, feature_list.json, verify.sh и автономный цикл