Kopya kâğıdı

AI ajan harness kopya kağıdı: bileşenler, dosyalar, sorunlar ve başlangıç kontrol listesi

Güncellendi: · Skillaria.Top

AI ajanın harness'i beş bileşenden oluşur: talimatlar, araçlar, ortam, durum ve geri bildirim. Asgari dosya seti şunlardır: yönlendirici bir giriş olarak AGENTS.md, kontrol betikleri (make check, verify.sh), ilerleme dosyası ve durumlu bir özellik listesi. Hazır işaretini ajan değil, betik koyar.

AI ajanın harness'inin beş bileşeni

BileşenNedirEserlerBozulma belirtisi
TalimatlarAjanın proje hakkında bilmesi gerekenlerAGENTS.md / CLAUDE.md, skills, docs/, ADRBilinen gelenekleri çiğner
AraçlarAjanın neler yapabildiğishell, testler, linter, tarayıcı, MCP sunucuları"Yapmak istiyor, yapamıyor"
OrtamAjanın nerede çalıştığılock dosyaları, Docker/devcontainer, git worktree, sandbox, init.shOturum ortamı onarmakla başlar
DurumYeniden başlatmayı atlatan şeylerPROGRESS.md, DECISIONS.md, feature_list.json, commit'lerYeni oturum nerede kaldığını bilmiyor
Geri bildirimAjanın hatasını nasıl öğrendiğimake check, E2E, hook'lar, arch-check, değerlendirici"Hazır", ama çalışmıyor

Sıfırdan kurulum sırası: geri bildirim → talimatlar → durum → ortam → araçlar.

Harness dosyaları

DosyaGöreviKural
AGENTS.md / CLAUDE.mdGiriş noktası: proje nedir, nasıl çalıştırılır, nasıl kontrol edilirKısa yönlendirici (yaklaşık 80 satır), "ne zaman okunmalı" koşullu belge bağlantıları
docs/*.mdKonuların ayrıntılarıİhtiyaç anında okunur, tamamı değil
.claude/skills/*/SKILL.mdTekrarlanan süreçler (deploy, inceleme)Görev açıklamasıyla eşleşince yüklenir
PROGRESS.mdDurum, yapılanlar, engeller, sonraki adımlarHer oturumun sonunda güncellenir
DECISIONS.mdKarar, gerekçe, reddedilen seçeneklerYalnızca sonucu değil, yolu da yazın
feature_list.jsonÖzellikler: behavior, verification, stateTam olarak bir özellik active (WIP=1)
scripts/verify.shÖzelliği kontrol edip passing yaparPassing işaretini koyan tek kişi, commit SHA ile
scripts/arch-check.shMimari sınırlarÇıkış kodu 1 + çıktıda WHY ve FIX
scripts/init.shİş başlamadan ortam kontrolüOrtam, temiz git, yeşil make check, aktif özellik
sprint contractKoddan önce özellik sözleşmesiKapsamda / kapsam dışında / açık sorular
.claude/settings.jsonClaude Code izinleri ve hook'larıKontroller olaylarda çalışır, ajanın hafızasında değil

AGENTS.md iskeleti

# Proje: ödeme backend'i (FastAPI, PostgreSQL)

## Çalıştırma
docker compose up -d && ./scripts/init.sh

## Kontrol
make check   # lint, tipler, unit, arch-check
make e2e     # uçtan uca senaryolar

## Definition of Done
- make check ve make e2e — kod 0
- özellik scripts/verify.sh ile passing yapıldı
- PROGRESS.md güncellendi

## MUST
- Veritabanı istekleri yalnızca repository'ler üzerinden
- Gizli bilgiler yalnızca ortam değişkenlerinden

## Belgeler
- docs/payments.md — iş ödeme ve iadelerle ilgiliyse
- docs/migrations.md — veritabanı şeması değişiyorsa

Özellik durumları

DurumAnlamıKim değiştirir
pendingSırada bekliyorPlanlayıcı
activeÜzerinde çalışılıyor (yalnızca bir tane)Başlarken ajan
passingKontrol geçtiYalnızca verify.sh
blockedİnsan kararı gerekiyorAjan, nedeniyle birlikte

Doğrulama seviyeleri

SeviyeNeNe zaman
1Lint, tiplerHer zaman
2Unit ve integration testleriHer zaman
3E2EBirden fazla katman etkilendiğinde; "hazır" demeden önce
4arch-checkYeni katmanlar arası import'lar

"Hazır" deme yetkisi yalnızca en üst seviyeden sonra. Yeşil unit testler hazırlık değildir.

Kuralların mekanizasyonu

SeviyeAraçMaliyet
grep-guardPattern arayan, WHY/FIX mesajı veren betikDakikalar
Linter kuralıimport-linter (Python), dependency-cruiser, eslint-plugin-boundaries (JS/TS)Bir saat
Mimari testKatmanlar bozulunca CI'da düşen testDaha fazla, ama make check içinde görünür
#!/usr/bin/env bash
fail=0
if grep -rn "from app.db" app/services/; then
  echo "WHY: servisler veritabanıyla doğrudan konuşmaz"
  echo "FIX: app/repositories/ içindeki repository'yi kullanın"
  fail=1
fi
exit $fail

Sık sorunlar ve çözümleri

SorunBileşenÇözüm
CLAUDE.md'deki kural uygulanmıyorTalimatlarDosyayı kısaltın, kuralı kontrole veya hook'a dönüştürün
Ajan testleri çalıştıramıyorAraçlarKomuta izin verin, bağımlılıkları image'a ekleyin
Farklı makinelerde farklı davranışOrtamLock dosyaları, Docker/devcontainer, sabit runtime sürümleri
Oturumlar arası unutkanlıkDurumPROGRESS.md, session handoff, oturum başında okuma
Üç özellik başlatıldı, hiçbiri bitmediDurumfeature_list.json içinde WIP=1
"Hazır", ama çalışmıyorGeri bildirimDoD, E2E, verify.sh, bağımsız değerlendirici
Testler yeşil, özellik bozukGeri bildirimGerçek veritabanı ve yapılandırmayla E2E
Ajan kötü desenleri kopyalıyorGeri bildirimİlk günden arch-check
Ajanın ne yaptığı anlaşılmıyorDurumKüçük commit'ler, PROGRESS.md ve DECISIONS.md raporu
Ajan gece ortamı bozduOrtamSandbox, git worktree, checkpoint'ler, init.sh ile geri dönüş
Aynı yorum incelemede iki kez geldiTüm harnessmake check içinde kontrole çevirin, metni talimatlardan çıkarın

Uzun görevlerdeki roller

RolYaparYapmaz
PlanlayıcıKabul kriterleriyle özelliklerKod yazmaz
ÜreticiBir özelliği uygular, testleri çalıştırırHazır olup olmadığına karar vermez
DeğerlendiriciRubrikle hüküm verir, dosya, satır, log atfıylaÜreticinin gerekçelerini görmez
Mergereview == pass olunca commitBu bir koddur, ajan değil

Özerk çalışma bütçesi

  • Hedef tek cümle olsun (örneğin tüm özellikleri passing yapmak).
  • WIP=1, özellik başına süre ve deneme sınırı.
  • Ölçüt yalnızca artsın, gerileme anında geri alma.
  • Migration'lar, altyapı, para: insana eskalasyon.
  • Birkaç başarısız incelemeden sonra özellik temiz context ile yeniden başlatılır.

Ajan başlatma kontrol listesi

  1. AGENTS.md var: stack, çalıştırma, kontrol komutu, DoD.
  2. make check temiz bir klonda geçiyor.
  3. Ortam tekrarlanabilir: lock dosyaları, Docker veya devcontainer.
  4. Ajanın gerekli komutlara erişimi var, tehlikeli olanlar kapalı veya sandbox'ta.
  5. En azından ana senaryo için bir E2E var.
  6. PROGRESS.md var ve oturum başında okunması kuralı konmuş.
  7. Özellikler durumlarıyla listede, aktif olan yalnızca bir tane.
  8. Passing işaretini betik koyuyor.
  9. Kontrol mesajlarında WHY ve FIX var.
  10. İş kabul kriterleri ve kapsam sınırlarıyla yazılmış.
  11. İnsan kararı gerektiren konular belirlenmiş.
  12. Değişikliklerden önce verification gap ölçülmüş, karşılaştırma için.

Harness metrikleri

MetrikNasıl hesaplanır
Verification gap10 görevde "hazır" denip kontrolle doğrulanmayanların oranı
MTTRBozulmadan çalışır duruma dönüşe kadar geçen süre
Soğuk başlangıçYeni oturum "neredeyiz, sırada ne var" sorularını tahmin etmeden yanıtlayabiliyor mu
AblationSabit görev kümesinde bir bileşen kapatıldığında düşüş

Özet

Harness bir dosya değil, bir döngüdür: talimatlar, araçlar, ortam, durum ve geri bildirim. Kontrolle başlayın, AGENTS.md'yi kısa tutun, hazır işaretini betiğe bırakın ve harness'i düzenli olarak gözden geçirin. Bütün bunlar gerçek bir proje üzerinde, tek bir harness içinde birleştirilerek uygulamalı bir kursta öğretilmektedir.

Sık sorulan sorular

AGENTS.md ile CLAUDE.md arasındaki fark nedir?

Amaç aynıdır: ajan için talimat dosyası. CLAUDE.md'yi Claude Code okur, AGENTS.md ise birçok ajanın ortak formatıdır. CLAUDE.md içine yalnızca <code>@AGENTS.md</code> yazarak ikisini bağlayabilirsiniz.

AGENTS.md kaç satır olmalı?

Kesin bir sınır yok, ama giriş dosyasını bir içindekiler gibi kısa tutun; yaklaşık yüz satır civarı. Ayrıntılar ayrı belgelere taşınır.

Küçük bir projede feature_list.json gerekir mi?

Tek seferlik küçük değişiklikler için gerekmez. Ajan art arda birçok özellik üzerinde ya da birçok oturumda çalışıyorsa değeri ortaya çıkar.

Ajanın erişmesi gereken gizli bilgileri nerede tutmalıyım?

Ortam değişkenlerinde veya bir secrets yöneticisinde; talimat dosyalarında ve kodda değil. Ajana ortama erişim verin, değerleri metinde vermeyin.

Bu konuyu videoyla öğrenin

Bu konu “Harness Engineering: AI Ajanları İçin Güvenilirlik Mühendisliği” kursunda uygulamalı olarak ayrıntılı işleniyor.

Kursa git