Loop until dry — поиск до исчерпания / home / algorithms / loop-until-dry
algorithmcompletenesssearch

Loop until dry

Для задач с неизвестным размером результата (найти все баги, собрать все блокеры, разметить все edge-cases) — крутить агента до тех пор пока K последовательных итераций не вернут ничего нового.

Когда применять

Паттерн

seen = set()
dry_streak = 0
DRY_THRESHOLD = 2  # сколько пустых итераций до остановки

while dry_streak < DRY_THRESHOLD:
    found = await find_more(seen=seen)
    fresh = [x for x in found if key(x) not in seen]
    
    if not fresh:
        dry_streak += 1
        continue
    
    dry_streak = 0  # reset
    for x in fresh:
        seen.add(key(x))

Подводные камни

Hard cap пример

MAX_ITERS = 20
iters = 0
while dry_streak < 2 and iters < MAX_ITERS:
    iters += 1
    ...

Связано

Metadata
title
Loop until dry — поиск до исчерпания
tags
['algorithm', 'completeness', 'search']
created
2026-06-30