Дайджесты новостей
Концептуальная визуализация дуальной архитектуры памяти Google Elephant-Goldfish с быстрыми и долгосрочными регистрами.

Google Elephant-Goldfish: дуальная модель памяти и итеративного рецензирования для сложных проектов

Каждый разработчик, пытавшийся с помощью нейросетей создать что-то сложнее простой функции-хелпера — например, многостраничное веб-приложение, сложную 3D-сцену на Three.js или комплексную маркетинговую воронку, — сталкивался с феноменом «туннельного зрения» модели.

На первых итерациях всё выглядит превосходно. Но по мере того как контекстное окно забивается историей правок, комментариями и промежуточными версиями, модель начинает страдать когнитивной перегрузкой. Она начинает игнорировать собственные архитектурные ограничения, ломает ранее написанные стили, а на замечания пользователя отвечает поверхностными заплатками. Модель «влюбляется» в собственный сгенерированный код и в упор не замечает грубых визуальных или логических огрехов.

Чтобы преодолеть эту ловушку, исследователи Google разработали элегантный архитектурный паттерн — Elephant-Goldfish Model (EGM), построенный на дуальном разделении контекстной памяти и независимом перекрестном рецензировании.

Механика дуальной памяти: Слон и Золотые рыбки

Название архитектуры метафорично и точно отражает разделение ролей:

  • Агент-«Слон» (The Elephant): Обладает колоссальной памятью. Он удерживает в контексте техническое задание проекта, архитектурные требования, историю предыдущих версий и зависимости компонентов. Задача Слона — синтезировать цельный артефакт (код, разметку, шейдеры) и вносить изменения по результатам замечаний.
  • Агенты-«Золотые рыбки» (The Goldfish): Обладают предельно короткой памятью («памятью как у рыбки»). У них напрочь отсутствует доступ к истории диалога и черновикам. Они получают только свежий скомпилированный артефакт (например, скриншот отрендеренной веб-страницы или финальный бинарник) и оценивают его «с чистого листа».

Когда «рыбка» смотрит на результат, она не знает, сколько часов Слон страдал над версткой этой кнопки. Она видит, что текст не влезает в плашку или контраст шрифта не соответствует стандарту доступности WCAG, и моментально выставляет объективный штраф.

Ранее мы исследовали подходы к разделяемой памяти в экосистеме Hermes, а концепция EGM предлагает диаметрально противоположный, но поразительно эффективный ход: намеренное обнуление памяти ради кристальной чистоты рецензирования.

Пайплайн оркестрации: от генерации к независимой критике

Давай посмотрим, как устроен этот цикл на уровне рабочего кода на Python. Агент-Слон создает артефакт, после чего диспетчер параллельно запускает пулы независимых критиков:

import asyncio
from dataclasses import dataclass
from typing import List, Dict

@dataclass
class ProjectArtifact:
    version: int
    html_markup: str
    css_styles: str
    threejs_script: str
    rendered_screenshot_base64: str

async def run_elephant_architect(brief: str, feedback_history: List[Dict]) -> ProjectArtifact:
    # Агент-слон: удерживает глобальный контекст и генерирует обновленный артефакт
    print("Elephant: синтез новой версии проекта с учетом предыдущих замечаний...")
    await asyncio.sleep(0.5)
    return ProjectArtifact(
        version=len(feedback_history) + 1,
        html_markup="<canvas id='webgl-scene'></canvas>",
        css_styles="body { margin: 0; overflow: hidden; background: #0a0a0c; }",
        threejs_script="// Инициализация Three.js сцены и анимации камеры...",
        rendered_screenshot_base64="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
    )

async def goldfish_art_director(screenshot: str) -> Dict:
    # Золотая рыбка 1: оценка визуального баланса с абсолютно нулевой памятью
    return {
        "critic": "ArtDirector",
        "score": 8.5,
        "critique": "Контраст заголовка недостаточен на фоне частиц. Рекомендуется сместить источник света на (2, 5, 3)."
    }

А вот так выглядит структура возвращаемого отчета рецензентов, передаваемая обратно Слону на следующую итерацию:

{
  "iterationReview": {
    "artifactVersion": 2,
    "status": "NEEDS_REVISION",
    "compositeScore": 7.8,
    "critiques": [
      {
        "domain": "visual_design",
        "issue": "Текст плашки перекрывает элемент управления камерой при разрешении 1920x1080",
        "severity": "HIGH"
      },
      {
        "domain": "code_performance",
        "issue": "Инициализация геометрии происходит внутри цикла render loop вместо init phase",
        "severity": "CRITICAL"
      }
    ]
  }
}

Слон получает структурированную обратную связь, вносит точечные исправления в код и отправляет версию 3 на следующий круг. Цикл повторяется до тех пор, пока интегральная оценка «рыбок» не превысит заданный порог качества (например, 9.0 из 10).

Практическая ценность для реальных проектов

Архитектура EGM наглядно доказывает: качество ИИ-генерации масштабируется не только размером контекстного окна, но и грамотной топологией критики.

Главные преимущества подхода:

  • Устранение галлюцинаций соглашательства: Универсальная модель в длинном диалоге склонна соглашаться с пользователем и пропускать очевидные ошибки. «Рыбка» лишена эмпатии и оценивает только факт.
  • Многоаспектный аудит: Можно запустить пять специализированных «рыбок» одновременно — по юзабилити, безопасности кода, доступности, адаптивности и скорости загрузки.
  • Ограничение бесконечных правок: Четкий численный критерий остановки (compositeScore >= 9.0) предотвращает циклы бесконечного бессмысленного переписывания кода.