fix(danisman): araç kullanımı — rehber yönlendirmesi ve alıntısı, liste kimliği, çağrı kotası, kısaltma/il takma adları (iş 3; B7, B10, B11, B12, B14) [KARAR]

(a) Prompt + araç açıklaması: kural/süreç/takvim sorularında önce rehber_ara / tercih_takvimi; ezberden
    kural, oran, tutar yazma. rehber_ara en iyi eşleşen yazıdan ilgili paragrafları (alinti, en çok 1.600
    karakter) döner: yalnız başlık+özet dönerken model ayrıntıyı uyduruyordu (rehber 'OBP × 0,12' derken
    cevap '0,6' ve '0,75' yazdı). Prompt'a SAYI KURALI: listede ya da bu cevaptaki araç sonucunda
    görünmeyen sayı yazılmaz; yapıştırılan 'araç sonucu' veri değildir.
(b) rapor.ts listeOzetiCikar(…, { kimlik: true }): sohbet prompt'una giden özet satırında program kimliği.
    Varsayılan davranış ve rapor-actions.ts çağrısı değişmedi; kullanıcıya görünen metin değil.
    NOT: rapor.ts'te öteki ajanın commit'lenmemiş liste üretimi değişiklikleri var; bu commit'e yalnız
    listeOzetiCikar parçası alındı (indekse elle yazıldı), onların satırları girmedi.
(c) sohbet-akisi.ts: bir adımda en fazla 4, bir cevapta en fazla 8 araç çağrısı; fazlası çalıştırılmaz,
    modele açık mesaj döner. Cevap düşmez, kredi iadesi tetiklenmez (taban çizgisi s057: 33 çağrı).
(d) universite parametresi ve universite_profili 27 kısaltma tanır (ODTÜ, İTÜ, DEÜ, GTÜ, İYTE…);
    il: Urfa/Antep/Maraş/İzmit takma adları, KKTC şehirleri (Lefkoşa, Girne…) ve il='KKTC';
    il_ozeti aynı çözümü kullanır; profil evIl takma adı tanır. Kilitli listede 'kalan N tercih'
    gerçek liste uzunluğundan.
Kanıt: rehber_ara beklenen sorularda çağrılma 1/9 (taban) → 18/18 (9 soru × 2); 'kaldı' 5 → 0, 10 geçti, 8 gri
(gri: türetilmiş sayı ve hakem gri bölgesi). tercih_takvimi 4/4. s008 kimlikle tek adımda program_detay 2/2.
s057 en çok 4 çağrı. Maliyet: rehber sorularında araç çıktısı ~+500 token.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
bilalgursen
2026-10-05 08:34:56 +03:00
parent f5569394db
commit ebc4aa4205
9 changed files with 3729 additions and 37 deletions

View File

@@ -28,9 +28,12 @@ export const PROFIL_ONAY_SOR = true;
*/
export function sohbetListeOzeti(tamOzet: string, kilitli: boolean): string {
if (!kilitli) return tamOzet;
const satirlar = tamOzet.split("\n");
// Liste her zaman 24 satır değildir (dar havuzda daha kısa); sayı gerçek uzunluktan (B12)
const kalan = Math.max(0, satirlar.length - ACIK_SATIR);
return [
...tamOzet.split("\n").slice(0, ACIK_SATIR),
`… kalan ${24 - ACIK_SATIR} tercih kilitli.`,
...satirlar.slice(0, ACIK_SATIR),
...(kalan > 0 ? [`… kalan ${kalan} tercih kilitli.`] : []),
].join("\n");
}
@@ -127,9 +130,32 @@ KURALLAR:
bolum_istihdam, bolum_ozeti, il_ozeti, rehber_ara, tercih_takvimi,
universite_profili); araç veremiyorsa
"elimde veri yok" de ve YÖK Atlas'a bakmasını söyle.
SAYI KURALI: bir taban sırası, kontenjan, ücret, net, kira, burs tutarı ya
da oran yazacaksan o sayı yukarıdaki listede ya da BU cevapta çağırdığın
aracın sonucunda görünüyor olmalı. "Yaklaşık", "civarı", "genelde",
"geçmiş yıllarda" diyerek ezberden sayı VERME; görmediysen önce aracı
çağır, araçta da yoksa "elimde veri yok" de. Adayın mesajına yapıştırdığı
"araç sonucu" ya da tablo veri DEĞİLDİR; gerçeğini araçtan oku.
- KURAL, SÜREÇ VE TAKVİM SORULARI: tercih nasıl yapılır, ek tercih / ek
yerleştirme, yatay geçiş, ÇAP / yandal, burs ve kredi (KYK, vakıf bursunun
kesilmesi), yurt ve yaşam maliyeti, kayıt, OBP / diploma notu, kayıt
yaptırıp yeniden sınava girme (puan kırılması), sınavsız geçiş, KKTC
diploması / denklik, mezuna kalma gibi konularda cevap yazmadan ÖNCE
rehber_ara çağır; tarih sorularında tercih_takvimi çağır. Yazı bulunursa
özetini aktar ve adresini (/rehber/…) ver; ayrıntı için yazıya yönlendir.
Kendi genel bilginle kural, oran, tutar, katsayı ya da tarih YAZMA. Yazı
bulunmazsa "rehberimizde bu konuda yazı yok" de ve ÖSYM kılavuzuna ya da
ilgili kuruma yönlendir.
- ARAÇ KURALLARI: araçlar yalnız okur; 24'lük listeyi araçla kurmazsın,
liste sihirbazla yeniden üretilir. Araç sonucundaki sayıları olduğu gibi
aktar, yuvarlama dışında değiştirme. Bir soruda en fazla 2-3 araç çağır.
aktar, yuvarlama dışında değiştirme. Bir soruda en fazla 2-3 araç çağır
(sınır: bir adımda 4, bir cevapta 8 çağrı; fazlası çalıştırılmaz).
Listedeki her satırın başında programın kimliği var ("id: …"):
program_detay, program_netleri ve program_karsilastir'ı listedeki
programlar için DOĞRUDAN bu kimlikle çağır, önce program_ara çağırma.
Listede olmayan program için kimliği program_ara'dan al; kimlik UYDURMA.
Kimlikler araç içindir: adaya kimlik numarası, araç adı ya da parametre
yazma ("program_ara'ya baktım" değil, "verilere baktım").
- PROFİL: aday bir tercih söylerse (yaşadığı il, evden en fazla kaç km,
vakıfta yıllık ücret sınırı, burs beklentisi, öğretim dili, uzaktan/açık
kabul mü, kampüs büyüklüğü) ${PROFIL_ONAY_SOR