🎯 О чём этот конспект: Глубокое погружение в философию и техническое устройство Cody — AI-ассистента от Sourcegraph. Создатели обсуждают, почему чистые LLM-агенты сегодня переоценены, как объединить классические алгоритмы поиска (Chomsky) с нейросетями (Norvig) и почему контекст важнее размера модели.
👤 Кому будет полезно: Вайбкодерам, системным архитекторам и разработчикам, которые хотят понять «под капотом» работу современных AI-инструментов и научиться эффективно использовать контекст в своих промптах.
✨ Что получите: Понимание гибридной архитектуры поиска кода, методику «бинарной упаковки» контекста и инсайты о том, как Sourcegraph планирует автоматизировать сложные цепочки разработки без потери надежности.
1. Гибридная архитектура «Normski»: Соединение Chomsky и Norvig
Контекст: Разработчики Sourcegraph выделяют два подхода к AI: «школа Хомского» (формальные системы, парсеры, компиляторы) и «школа Норвига» (статистические модели, LLM). Проблема современных AI-инструментов в том, что они слишком полагаются на статистику (Norvig), игнорируя точную структуру кода. Это приводит к галлюцинациям и ошибкам в типах данных. Решение — архитектура Normski (Non-agentic Rapid Multisource Code Intelligence), которая использует детерминированные графы для подготовки идеального контекста перед отправкой запроса в LLM.
Выгода: Радикальное снижение ошибок (особенно Type Errors) и ускорение работы за счет отсутствия лишних «размышлений» модели о том, где искать файлы.
Как применить:
- Шаг 1: Использование графа ссылок — Инструмент: Sourcegraph BFG (Big Friendly Graph) — Вместо того чтобы просто делать векторный поиск (RAG), Cody строит граф символов. Он находит определение функции и все места её вызова, упаковывая эти точные данные в контекстное окно.
- Шаг 2: Анализ структуры через парсеры — Инструмент: Tree-sitter — При подготовке промпта Cody разделяет сигнатуру функции, её тело и документацию, чтобы модель понимала иерархию, а не просто видела «плоский текст».
Результат: Модель получает не просто похожие куски кода, а логически связанные компоненты системы.
2. RAG против Агентов: Почему «Fire and Forget» пока не работает
Контекст: Сейчас в индустрии бум «агентов», которые якобы могут сами закрывать тикеты. Спикеры Sourcegraph настроены скептически (bearish) к полностью автономным агентам на базе только трансформеров. Они утверждают, что надежность генерации кода с первой попытки всё еще слишком низка для цепочек из 10+ шагов без участия человека. Вместо этого они фокусируются на «Developer-in-the-loop» — когда AI предлагает точные правки, но человек остается финальным валидатором.
Выгода: Экономия времени на отладке «галлюцинированного» кода, который мог бы нагенерировать автономный агент.
Как применить:
- Шаг 1: Локальное уточнение — Вместо промпта «напиши всё приложение», используйте Cody для решения конкретных ошибок компиляции.
- Шаг 2: Использование контекстных фильтров — В Cody можно явно указать репозитории или файлы через символ
@, чтобы ограничить область «фантазии» AI.
Результат: Предсказуемый результат работы AI, который легко проверить и внедрить в основную ветку.
3. Секрет «Bin Packing»: Как впихнуть невпихуемое в контекстное окно
Контекст: Контекстное окно (Context Window) — это ограниченный ресурс. Даже если у вас 100k токенов, модель лучше всего помнит начало и конец (эффект «Lost in the Middle»). Sourcegraph использует сложную приоритизацию: они не просто кидают файлы в промпт, а занимаются «упаковкой контейнеров» (bin packing).
Выгода: Максимальная релевантность ответов даже при огромных кодовых базах.
Как применить:
- Шаг 1: Рекурсивная суммаризация — Если файл слишком большой, Cody сначала просит маленькую модель суммаризировать его части, и только потом передает суммаризацию в основную модель (GPT-4 или Claude 3).
- Шаг 2: Ранжирование по близости к курсору — Приоритет всегда отдается коду, который находится в том же модуле или импортируется напрямую в текущем файле.
Результат: Модель «видит» архитектуру всей системы, не перегружая окно бесполезными деталями.
4. Open Code Graph: Протокол для обмена контекстом
Контекст: Sourcegraph продвигает идею, что контекст для AI должен поступать не только из Git. Настоящие знания о проекте лежат в логах, PR-описаниях, документации в Notion и Slack. Они разрабатывают протокол Open Code Graph (аналог LSP для AI), чтобы любые инструменты могли отдавать свои данные в Cody.
Выгода: AI сможет отвечать на вопросы типа «Почему мы внедрили это решение?» или «Какие ошибки падали в продакшене вчера?».
Как применить:
- Шаг 1: Подключение внешних источников — В будущем Cody позволит подключать API документации или логов через стандартные коннекторы.
- Шаг 2: Использование Cody Web — Для быстрого анализа чужих репозиториев (например, Open Source библиотек) используйте веб-интерфейс Cody, где можно объединять несколько репо в один чат.
Результат: Единая точка входа для понимания всей экосистемы продукта, а не только кода.
FAQ
В: Чем Cody принципиально отличается от GitHub Copilot? О: Главное отличие в глубине контекста. Copilot в основном видит открытые вкладки. Cody использует полноценный поисковый движок Sourcegraph и граф символов (BFG), что позволяет ему «понимать» зависимости во всем репозитории, даже если файлы закрыты.
В: Какую модель лучше использовать для написания кода внутри Cody? О: Для автодополнения (inline completion) Sourcegraph рекомендует StarCoder или другие быстрые open-source модели. Для чата и сложных архитектурных вопросов — Claude 3 Opus или GPT-4, так как они лучше работают с длинным контекстом.
В: Безопасно ли отдавать свой код в Cody? О: Да, Sourcegraph делает на этом акцент. В отличие от базовых версий других ассистентов, они гарантируют (Zero Retention), что ваш код не будет использован для дообучения глобальных моделей.
В: Что такое BFG в контексте Sourcegraph? О: BFG (Big Friendly Graph) — это внутренний движок, который на лету индексирует локальный код без необходимости сложной настройки системы сборки. Он находит связи между функциями и типами, чтобы передать их в AI.
В: Стоит ли сейчас инвестировать в создание AI-агентов? О: Спикеры советуют быть осторожными. Вместо полной автоматизации лучше инвестировать в «усиление» разработчика (AI-enhanced engineer). Полная замена инженера агентом пока упирается в надежность самих моделей.
Конспект создан на основе видео «Sourcegraph Cody: The Normski Architecture and the Future of AI Agents» канала Latent Space. Все права на оригинальный материал принадлежат авторам. Источник: https://www.youtube.com/watch?v=hKEE3dPuYVk