Cheatsheet ng harness ng agent: mga bahagi, file, problema, at checklist sa paglulunsad
Binubuo ang harness ng agent ng limang subsystem: tagubilin, kasangkapan, kapaligiran, estado, at feedback. Ang minimal na set ng mga file ay AGENTS.md bilang maikling router, verification script (make check, verify.sh), file ng progreso, at listahan ng mga feature na may status. Ang status ng pagiging handa ay itinatakda ng script, hindi ng agent.
Limang subsystem ng harness
| Subsystem | Ano ito | Mga artifact | Sintomas kapag sira |
|---|---|---|---|
| Mga tagubilin | Ano ang dapat malaman ng agent tungkol sa proyekto | AGENTS.md / CLAUDE.md, skills, docs/, ADR | Nilalabag ang mga kilalang kaugalian |
| Mga kasangkapan | Ano ang kayang gawin ng agent | shell, test, linter, browser, MCP server | «Gustong gawin pero hindi kaya» |
| Kapaligiran | Saan gumagana ang agent | lock file, Docker/devcontainer, git worktree, sandbox, init.sh | Nagsisimula ang session sa pag-aayos ng kapaligiran |
| Estado | Ano ang nananatili sa pagitan ng mga restart | PROGRESS.md, DECISIONS.md, feature_list.json, mga commit | Hindi alam ng bagong session kung saan natigil |
| Feedback | Paano nalalaman ng agent ang pagkakamali | make check, E2E, hook, arch-check, tagasuri | «Tapos na» pero hindi gumagana |
Ayos ng pagpapatupad mula sa simula: feedback → tagubilin → estado → kapaligiran → kasangkapan.
Mga file ng harness
| File | Layunin | Panuntunan |
|---|---|---|
| AGENTS.md / CLAUDE.md | Pasukan: ano ang proyekto, paano ito patakbuhin, paano ito suriin | Maikling router (mga 80 linya), mga link sa dokumento na may kondisyon na «kailan basahin» |
| docs/*.md | Detalye ayon sa paksa | Basahin kapag kailangan, hindi lahat |
| .claude/skills/*/SKILL.md | Mga paulit-ulit na proseso (deploy, review) | Ikinakarga kapag tumugma ang gawain sa paglalarawan |
| PROGRESS.md | Kalagayan, mga nagawa, mga hadlang, susunod na hakbang | I-update sa pagtatapos ng bawat session |
| DECISIONS.md | Desisyon, dahilan, mga opsyong tinanggihan | Itala ang landas, hindi lang ang konklusyon |
| feature_list.json | Mga feature: behavior, verification, state | Eksaktong isang feature na active (WIP=1) |
| scripts/verify.sh | Pagsusuri ng feature at paglipat sa passing | Ang tanging nagtatakda ng passing, kasama ang SHA ng commit |
| scripts/arch-check.sh | Mga hangganan ng arkitektura | Exit code 1 + WHY at FIX sa output |
| scripts/init.sh | Pagsusuri ng kapaligiran bago magtrabaho | Kapaligiran, malinis na git, berdeng make check, active na feature |
| sprint contract | Kasunduan para sa feature bago magsulat ng code | Saklaw / labas sa saklaw / mga bukas na tanong |
| .claude/settings.json | Mga permiso at hook ng Claude Code | Mga pagsusuri na nakakabit sa mga event, hindi sa memorya ng agent |
Balangkas ng AGENTS.md
# Proyekto: payment backend (FastAPI, PostgreSQL)
## Paglulunsad
docker compose up -d && ./scripts/init.sh
## Verification
make check # lint, type, unit, arch-check
make e2e # mga end-to-end na senaryo
## Definition of Done
- make check at make e2e — code 0
- ang feature ay inilipat sa passing ng scripts/verify.sh
- na-update ang PROGRESS.md
## MUST
- ang DB query ay sa pamamagitan lang ng repository
- ang mga secret ay mula lang sa environment variable
## Mga dokumento
- docs/payments.md — kapag gawain ay tungkol sa bayad at refund
- docs/migrations.md — kapag binabago ang schema ng DB
Mga status ng feature
| Status | Kahulugan | Sino ang naglilipat |
|---|---|---|
| pending | Naghihintay sa pila | Tagaplano |
| active | Ginagawa (isa lang) | Agent sa pagsisimula |
| passing | Pumasa sa pagsusuri | Verify.sh lang |
| blocked | Kailangan ng desisyon ng tao | Agent, kasama ang dahilan |
Mga antas ng verification
| Antas | Ano | Kailan |
|---|---|---|
| 1 | Lint, type | Palagi |
| 2 | Unit at integration test | Palagi |
| 3 | E2E | Ang pagbabago ay tumatama sa higit sa isang layer; bago sabihing «tapos» |
| 4 | arch-check | Bagong cross-layer import |
Karapatang sabihing «tapos na» ay pagkatapos lang ng pinakamataas na antas. Ang berdeng unit test ay hindi katumbas ng pagiging handa.
Paggawang masusunod ang mga panuntunan
| Antas | Kasangkapan | Gastos |
|---|---|---|
| Grep guard | Script na naghahanap ng pattern at nagpi-print ng WHY/FIX | Ilang minuto |
| Panuntunan ng linter | import-linter (Python), dependency-cruiser, eslint-plugin-boundaries (JS/TS) | Isang oras |
| Architecture test | Test sa CI na nabibigo kapag nilabag ang mga layer | Mas mabigat, pero nakikita sa make check |
#!/usr/bin/env bash
fail=0
if grep -rn "from app.db" app/services/; then
echo "WHY: hindi direktang kumokonekta ang mga service sa DB"
echo "FIX: gamitin ang repository mula sa app/repositories/"
fail=1
fi
exit $fail
Mga karaniwang problema at solusyon
| Problema | Subsystem | Solusyon |
|---|---|---|
| Hindi sinusunod ang panuntunan sa CLAUDE.md | Mga tagubilin | Paikliin ang file, gawing pagsusuri o hook ang panuntunan |
| Hindi makapagpatakbo ng test ang agent | Mga kasangkapan | Payagan ang command, i-install ang dependency sa image |
| Magkakaiba ang kilos sa bawat makina | Kapaligiran | Lock file, Docker/devcontainer, nakapirmi na bersyon ng runtime |
| Amnesia sa pagitan ng mga session | Estado | PROGRESS.md, handoff ng session, pagbasa sa simula ng session |
| Tatlong feature ang sinimulan, wala ni isang natapos | Estado | WIP=1 sa feature_list.json |
| «Tapos na» pero hindi gumagana | Feedback | DoD, E2E, verify.sh, independiyenteng tagasuri |
| Berde ang test pero sira ang feature | Feedback | E2E na may totoong database at configuration |
| Kinokopya ng agent ang masamang pattern | Feedback | arch-check mula sa unang araw |
| Hindi malinaw kung ano ang ginawa ng agent | Estado | Maliliit na commit, ulat sa PROGRESS.md, DECISIONS.md |
| Nasira ng agent ang kapaligiran magdamag | Kapaligiran | Sandbox, git worktree, checkpoint, rollback sa pamamagitan ng init.sh |
| Parehong komento sa review nang dalawang beses | Buong harness | Gawing pagsusuri sa make check, alisin ang teksto sa mga tagubilin |
Mga tungkulin para sa mahabang gawain
| Tungkulin | Ginagawa | Hindi ginagawa |
|---|---|---|
| Tagaplano | Mga feature na may acceptance criteria | Hindi nagsusulat ng code |
| Tagagawa | Nagpapatupad ng isang feature, nagpapatakbo ng test | Hindi nagpapasya kung tapos na |
| Tagasuri | Nagbibigay ng hatol ayon sa rubric na may sanggunian sa file, linya, log | Hindi nakikita ang pangangatwiran ng tagagawa |
| Merge | Nagko-commit kapag review == pass | Code ito, hindi agent |
Badyet para sa autonomous na trabaho
- Layunin — isang pangungusap (halimbawa, gawing passing ang lahat ng feature).
- WIP=1, limitasyon sa oras at pagsubok bawat feature.
- Patuloy na tumataas ang sukatan, agad i-rollback ang regression.
- Migration, imprastraktura, pera — i-escalate sa tao.
- Pagkatapos ng ilang nabigong review — simulan ulit ang feature na may malinis na context.
Checklist bago ilunsad ang agent
- May AGENTS.md: stack, paraan ng paglulunsad, command ng verification, DoD.
- Pumapasa ang make check sa malinis na clone.
- Maaaring ulitin ang kapaligiran: lock file, Docker o devcontainer.
- May access ang agent sa kinakailangang command, at ipinagbabawal o nasa sandbox ang mapanganib na mga command.
- May E2E kahit para sa pangunahing senaryo.
- May PROGRESS.md at panuntunang basahin ito sa simula ng session.
- Naka-status ang mga feature sa listahan, isa lang ang active.
- Ang status na passing ay itinatakda ng script.
- May WHY at FIX ang mga mensahe ng pagsusuri.
- May acceptance criteria at malinaw na saklaw ang gawain.
- Natukoy kung ano ang nangangailangan ng desisyon ng tao.
- Nasukat ang verification gap bago ang mga pagbabago, para may pagkukumparahan.
Mga sukatan ng harness
| Sukatan | Paano kalkulahin |
|---|---|
| Verification gap | Proporsyon ng «tapos» na walang kumpirmasyon ng pagsusuri, sa 10 gawain |
| MTTR | Oras mula pagkasira hanggang maibalik ang gumaganang kalagayan |
| Cold start | Nakasasagot ba ang bagong session ng «nasaan tayo, ano ang susunod» nang walang hula |
| Ablation | Pagbaba kapag na-disable ang isang subsystem sa nakapirming set ng gawain |
Buod
Ang harness ay saradong loop, hindi isang file: tagubilin, kasangkapan, kapaligiran, estado, at feedback. Magsimula sa verification, panatilihing maikli ang AGENTS.md, ibigay ang status na «tapos» sa script, at regular na suriin ang harness. Lahat ng ito ay pinagsasama sa isang totoong proyekto sa kursong harness engineering.
Mga madalas itanong
Ano ang pagkakaiba ng AGENTS.md at CLAUDE.md?
Magkapareho ang layunin: parehong file ng tagubilin para sa agent. Binabasa ng Claude Code ang CLAUDE.md, habang ang AGENTS.md ay karaniwang format para sa maraming agent; maaaring i-reference ng CLAUDE.md ang AGENTS.md.
Ilang linya dapat ang AGENTS.md?
Walang mahigpit na limitasyon, pero dapat maikli ang entry file, mga ilang daang linya pababa, parang talaan ng nilalaman. Ang detalye ay nasa hiwalay na dokumento.
Kailangan ba ng feature_list.json ang maliit na proyekto?
Hindi para sa mga simpleng pagbabago. Nagiging kapaki-pakinabang ito kapag maraming sunod-sunod na feature o maraming session ang ginagawa ng agent.
Saan itatago ang mga lihim na kailangan ng agent?
Sa environment variable o secrets manager, hindi sa file ng tagubilin o sa code. Ang binibigyan ng access ng agent ay ang kapaligiran, hindi ang mga halagang nakasulat sa teksto.
Detalyadong tinatalakay ang paksang ito, may praktis, sa kursong “Harness Engineering: инженерия надёжности AI-агентов”.
- Из чего состоит harness AI-агента: инструкции, инструменты, среда, состояние, обратная связь
- Харнес AI-агента с нуля: AGENTS.md, feature_list.json, verify.sh и автономный цикл