Modül 4 · Domain 3 — Memory & state (%10-15) · ⏱ 13 dakika

Durable artifact, resume pattern ve GitHub eşlemesi

Durable artifacts, resume pattern, and GitHub mapping

Bu derste neler öğreneceksin

  • Durable artifact tanımının üç kriterini ezberlemek (kalıcı, audit, standart erişim)
  • Agent state'inin GitHub artifact'larına nasıl mapping yapıldığını görmek
  • Resume pattern'inin "repeating steps" ve "diverging from prior decisions" risklerini önlemesini anlamak
  • Actions artifact ile PR description arasındaki kullanım farkını bilmek

Domain 3.2 — agent state’i kalıcı tutma ve devam ettirme. Sınavın “agent yarıda kaldı, ne yapılır” senaryoları bu derste işlenir.

Durable artifact — üç kriter

Bir veri “durable artifact” sayılıyor mu testi:

KriterAçıklamaPozitif örnekNegatif örnek
KalıcıOturum/process bitince kaybolmazRepo dosyası, PR descriptionAgent RAM state
Audit-uygunZaman damgalı, kim/ne kayıtlıCommit, audit logSlack DM (retention belirsiz)
Standart erişimGeliştirici aracında okunabilirActions artifact, issuePrivate gist

Üçü birden olmalı. İkisi varsa yetmez.

GitHub’da durable artifact türleri (Domain 3’e mapping)

VeriGitHub artifactNiye
Karar (decision)PR description, issue, ADR dosyasıMarkdown render + diff + history
İlerleme (progress steps)Commit history, PR commit listesiAtomik adımlar + tarih
Plan dosyasıplan.yaml repo’da + PR description’a kopyaVersionlanır + linklenebilir
Ara çıktı (intermediate output)Actions artifact (upload-artifact)Workflow run’a bağlı, indirilebilir
Custom stateRepo dosyası (.state/agent-state.json)Diff’lenebilir, audit’e dost
Trace (tool çağrı zinciri)Actions artifact JSON (upload-artifact)Büyük, indirilebilir
Yan görüşmelerIssue/PR commentsDiyalog kayıtlı

Resume pattern’i — repeat + diverge engellemek

Domain 3.2 bullet: “Resume agent work without repeating steps or diverging from prior decisions”.

İki risk:

  1. Repeating — agent zaten yapılmış adımı tekrar yapar (örn. tekrar PR açar, tekrar branch oluşturur)
  2. Diverging — agent önceki kararın aksine karar verir (örn. “library X kullanılacak” demişti, şimdi Y kullanır)

Repeat’i engellemek: done-step kaydı

Her tamamlanmış step için kalıcı kayıt:

# .state/agent-progress.yaml (commit'lenir veya Actions artifact)
task_id: "issue-123-fix"
steps_done:
  - id: 1
    completed_at: "2026-05-16T10:23:00Z"
    output_ref: "commit:abc1234"
  - id: 2
    completed_at: "2026-05-16T10:24:30Z"
    output_ref: "commit:def5678"
next_step: 3

Resume’da agent önce bu dosyayı okur, next_step’ten devam eder.

Diverge’i engellemek: decision history

Plan’da alınan kararlar PR description’da kalır:

plan:
  decisions:
    - id: 1
      decision: "Use library X (not Y)"
      reason: "X supports streaming, Y does not"
      timestamp: "2026-05-16T10:00:00Z"

Resume’da agent decisions listesini okur — yeni karar gerekiyorsa explicit override ile yazar:

plan:
  decisions:
    - id: 1
      decision: "Use library X (not Y)"
      ...
    - id: 2  # OVERRIDE
      decision: "Switch to library Y"
      reason: "X has critical bug discovered today"
      overrides: 1
      timestamp: "2026-05-16T14:00:00Z"

Sınavda “resume’da agent eski kararı değiştirebilir mi?” sorusunun cevabı: evet, ama explicit + sebepli (sessiz değişim = diverge).

Actions artifact vs PR description — ne zaman hangisi?

Veri tipiYerNeden
Plan (yapılandırılmış, kısa)PR description (YAML blok)Diff’lenebilir, görünür
Karar gerekçeleriPR description veya ADR dosyasıMarkdown render
Büyük trace/log (10MB+)Actions artifactPR description’a sığmaz
Generated source codeRepo (commit’lenir)Code review akışında
Geçici test outputActions artifact (retention 30 gün)Audit gerekli değil
Compliance kaydıRepo dosyası veya audit logKalıcı + erişilebilir

Pattern: “system of record”

Bir veri için tek bir doğruluk kaynağı belirle. Diğer tool’lar oradan okur, kendi kopyasını tutmaz veya periyodik sync yapar.

GitHub’da typical seçimler:

  • Plan ve kararlar → PR description
  • İlerleme state → repo dosyası (.state/) + Actions artifact (backup)
  • Konfigürasyon → repo dosyası
  • Tarihsel iz → audit log + commit history

Sınavda “tool’lar farklı versiyonlar tutuyor” sorusunda cevap system of record kuralı + tek kaynak.

Anti-pattern: bellek dump

“Agent’ın in-memory state’ini bir blob’a yaz, resume’da geri yükle” — GH-600 perspektifinden anti-pattern:

  • Audit zayıf (blob okunamaz)
  • Diff’lenemez
  • GitHub native değil
  • Recovery zor (corrupt olursa total kayıp)

Doğrusu: structured artifact (YAML/JSON) + repo veya Actions artifact.

Mini quiz — Durable artifact (3 soru)

Durable artifact'in 'üç kriter'i hangisidir?

Resume sırasında 'diverge from prior decisions' risk'ini engellemek için ne yapılır?

10MB'lik agent trace dosyası için doğru yer?

Sırada ne var?

Bir sonraki derste drift detection, stale context önleme, multi-tool continuity — Domain 3.3’ün üç bullet’ı.