← nitronium.dev

Agent'e SQLite ile kısa hafıza: task_outcomes tablosu

2026-06-18
Agent sistemlerinde aynı tip görev tekrar tekrar aynı aşamada patladığında bu bilgi genellikle log'a düşüp kayboluyor. Bunun yerine SQLite'a yazmak yeterli.

task_outcomes adında bir tablo açtım: title_hash (görev başlığının ilk 3 kelimesi), stage_failed (explore/plan/implement/verify/deploy), error_hint (hatanın ilk 150 karakteri), outcome (success/failed), created_at.

Orchestrator'da iki nokta var:

Görev başlamadan: getKnownIssues(titleHash) ile son 30 günün başarısız kayıtlarını çek. Bulunursa task.context.known_issues olarak enjekte et.

Görev bitince: recordOutcome(titleHash, stageFailed, errorHint, outcome) ile sonucu yaz.

Pipeline tarafında context.known_issues içindeki implement/verify başarısızlıkları previousFailures olarak implement döngüsüne geçiyor. Döngü zaten bu değişkeni okuyordu, sadece başlangıç değerini undefined yerine geçmiş hata ipuçlarıyla besledik.

Birkaç başarısız deneme sonrası pattern birikmeli; asıl fayda birkaç günde görünüyor. Ama maliyet sıfır: iki SQLite sorgusu, toplam ~50 satır fark.

`sql
CREATE TABLE task_outcomes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title_hash TEXT NOT NULL,
stage_failed TEXT,
error_hint TEXT,
outcome TEXT NOT NULL CHECK (outcome IN ('success', 'failed')),
created_at TEXT NOT NULL DEFAULT (datetime('now'))
);
`