DSP (Data Structure Protocol) для LLM-агентов: долговременная память в коде | AiManual
AiManual Logo Ai / Manual.
20 Фев 2026 Инструмент

DSP: когда ваш AI-агент наконец запомнит, где лежат файлы проекта

Data Structure Protocol создает версионируемый граф проекта для AI-агентов. Экономит токены, ускоряет поиск, решает проблему контекстного окна.

Проблема, которую все игнорируют

Вы запускаете AI-агента в проект на 500 файлов. Он начинает работать, через 10 минут забывает, какие модули уже видел. Снова и снова читает одни и те же импорты. Тратит 80% токенов на повторение структуры проекта.

Знакомо? Это не баг, это фундаментальный провал архитектуры.

Большинство решений 2024-2025 годов пытались запихнуть больше контекста в промпт. Бесконечный контекст не работает - агент все равно теряется в лабиринте файлов.

Типичная ошибка: каждый запрос к агенту начинается с полного обхода проекта. 2000 токенов на структуру, 3000 на код, и только потом - на решение задачи.

Что такое DSP на самом деле

Data Structure Protocol - это не очередная библиотека для RAG. Это протокол, который превращает структуру вашего проекта в версионируемый граф зависимостей.

Представьте Git, но для понимания проекта AI-агентом. Каждый файл - узел. Импорты, вызовы функций, наследование - ребра. Весь этот граф хранится в формате, который агент может запросить за 100 токенов вместо 5000.

💡
DSP создает индекс один раз, использует его тысячи раз. Как карта метро для проекта - не нужно каждый раз заново исследовать тоннели.

Как это ломает старую модель

До DSP работа выглядела так:

  1. Агент получает задачу "добавить валидацию в UserController"
  2. Он сканирует весь проект, ищет контроллеры
  3. Находит UserController, читает его полностью
  4. Ищет связанные модели, сервисы, валидаторы
  5. К этому моменту контекстное окно уже переполнено

С DSP:

  1. Агент запрашивает у DSP "покажи граф зависимостей UserController"
  2. Получает JSON с путями к файлам и типами связей
  3. Загружает только нужные файлы в нужном порядке
  4. Работает с актуальным контекстом в 3-5 раз меньше

Техническая кухня: что внутри протокола

DSP v2.1 (актуальная версия на февраль 2026) состоит из трех слоев:

Слой Что делает Пример вывода
Структурный анализатор Строит граф файлов и зависимостей {"UserController": ["imports": ["UserService", "AuthMiddleware"]]}
Семантический индекс Добавляет теги и категории к узлам {"type": "controller", "domain": "users", "methods": ["CRUD"]}
Кэш-менеджер Хранит историю изменений графа Диффы между коммитами, hot/cold зоны

Самое интересное - семантический слой. Он понимает не только "файл A импортирует файл B", но и "это контроллер для работы с пользователями, использует JWT аутентификацию, зависит от сервиса нотификаций".

Сравнение с альтернативами: почему не RAG и не Memory OS

Когда я впервые увидел DSP, подумал: "Очередной RAG для кода". Ошибся.

RAG (Retrieval-Augmented Generation) хорош для документации, плох для структуры. Он ищет похожие куски текста, но не понимает архитектуру. Системы долговременной памяти часто страдают той же проблемой - они запоминают контент, но не связи.

Memory OS (о котором мы писали ранее) решает другую задачу - хранение диалогов и состояний. DSP фокусируется исключительно на структуре проекта.

Еще есть подходы вроде Agent Skills - они упаковывают знания в промпты, но не масштабируются до больших проектов.

DSP не заменяет эти системы, а дополняет. Агент с Memory OS помнит диалог, с DSP - помнит структуру проекта. Вместе они дают полную картину.

Практика: как внедрить DSP в свой пайплайн

1 Установка и настройка

DSP работает как отдельный сервис. Не нужно переписывать весь код агента:

# Клонируем репозиторий (актуальный на 2026)
git clone https://github.com/dsp-protocol/dsp-core
cd dsp-core

# Запускаем анализатор для вашего проекта
dsp analyze --project-path /path/to/your/project --output dsp-graph.json

2 Интеграция с агентом

Добавляем DSP-клиент в код агента. Пример для Python:

from dsp_client import DSPClient

class SmartAgent:
    def __init__(self):
        self.dsp = DSPClient(endpoint="http://localhost:8000")
        
    async def understand_project(self):
        # Получаем граф за 1 запрос вместо 100
        project_graph = await self.dsp.get_project_graph()
        
        # Теперь агент знает структуру
        # Может быстро находить зависимости
        user_controller_deps = await self.dsp.get_dependencies(
            "app/controllers/user_controller.py"
        )

3 Использование в реальных задачах

Вот как меняется логика работы агента:

Без DSP: "Найди все места, где используется UserService" → агент grep'ит весь проект, тратит 5000+ токенов.

С DSP: "DSP, покажи обратные зависимости UserService" → получает список из 12 файлов за 200 токенов.

Кому подойдет DSP (а кому нет)

Берите DSP, если:

  • Ваш проект больше 50 файлов
  • Агент работает с кодом дольше 15 минут за сессию
  • Вы платите за токены GPT-4o или Claude 3.7 (а они дорогие)
  • Архитектура сложная - микросервисы, слои, плагины

Не тратьте время, если:

  • Проект из 10 файлов - оверкилл
  • Агент только отвечает на вопросы по документации
  • Используете локальные модели с большим контекстом (но помните про проблемы производительности)
  • Нет ресурсов на поддержку дополнительного сервиса

Подводные камни, о которых молчат

DSP - не серебряная пуля. Вот что бесит на практике:

  1. Ложные зависимости: Анализатор видит импорт, но не понимает, что модуль используется только в тестах. Приходится чистить граф вручную.
  2. Динамические импорты: importlib.import_module() ломает статический анализ. DSP v2.1 пытается угадать, но не всегда точно.
  3. Монолиты: В проектах на 1000+ файлов граф становится огромным. Сам индекс занимает гигабайты.
  4. Обновление: При каждом коммите нужно перестраивать граф. В больших командах это создает гонку.

Решение для пункта 3 - сегментация. Разбиваете проект на домены, строите отдельные графы. Но это уже ручная работа.

Что будет дальше с DSP

На февраль 2026 протокол активно развивается. В roadmap:

  • Интеграция с эпизодической памятью агентов
  • Поддержка больше языков (сейчас лучше всего Python, TypeScript)
  • Инкрементальное обновление графа (только измененные файлы)
  • Предиктивный анализ: "скорее всего, для этой задачи понадобятся эти модули"

Мой прогноз: к концу 2026 DSP станет стандартом де-факто для enterprise AI-агентов. Так же, как Git для контроля версий.

Но есть риск - крупные вендоры (GitHub Copilot, Amazon CodeWhisperer) могут создать закрытые аналоги. И тогда open-source версия останется для энтузиастов.

Стоит ли пробовать сейчас

Да, если у вас есть конкретная боль - агент теряется в проекте, тратит много токенов на навигацию.

Начните с малого: проанализируйте один микросервис. Посмотрите, насколько граф соответствует реальности. Интегрируйте с одним агентом.

Не пытайтесь сразу покрыть всю кодовую базу компании. Это как миграция с SVN на Git - делайте постепенно.

И главное - измеряйте. До DSP: сколько токенов уходит на понимание структуры? После DSP: сколько осталось для реальной работы? Разница вас удивит.

P.S. Если ваш агент все еще страдает от контекстного рота даже с DSP - проверьте, не перегружаете ли вы его деталями. Иногда меньше - действительно лучше.