AI documentation you can talk to, for every repo
DeepWiki — это инструмент для индексации кода репозиториев, позволяющий "общаться" с их документацией через AI. Сервис использует Devin для анализа кода и предоставляет интерфейс для вопросов о любом проекте. Пользователи могут добавлять как публичные, так и приватные репозитории, получая мгновенные ответы по их структуре и функционалу. Это упрощает понимание сложных кодовых баз и ускоряет онбординг новых разработчиков.
На платформе уже доступны популярные репозитории, включая Microsoft VS Code (170k звёзд), Hugging Face Transformers (143k), LangChain (106k), SQLite (7.7k) и многие другие. DeepWiki позиционируется как решение для быстрого погружения в любой код без необходимости изучения документации вручную.
Комментарии (77)
- Пользователи жалуются на качество автогенерируемой документации: она устаревшая, путает детали реализации с пользовательским API и содержит ошибки.
- Некоторые участники считают, что если проект и так плохо документирован, то LLM-инструменты не спасут ситуацию, а другие указывают, что даже при наличии хорошей документации LLM может давать неверные сводки.
- Обсуждается, что вместо попыток «автоматически документировать» код, лучше встроить LLM в IDE/editor и дать разработчику возможность взаимодействовать с LLM в процессе написания кода.
- Поднимается вопрос о том, что если проект не имеет достойной документации, то LLM не сможет помочь, и что вместо этого лучше встроить LLM в IDE/editor и дать разработчику возможность взаимодействовать с LLM в процессе написания кода.
Syntax highlighting is a waste of an information channel (2020) 🔥 Горячее
Синтаксическое выделение цветом полезно, но недоиспользует возможности цвета как канала информации. Цвет может нести гораздо больше информации, чем просто выделение синтаксиса. Например, можно использовать разные цвета, чтобы показать уровень вложенности скобок, что улучшает читаемость кода.
Другой пример — выделение импортов: можно подсвечивать идентификаторы, импортированные из других файлов, что помогает быстро понять зависимости. Также можно выделять аргументы функций иначе, чем локальные переменные, или использовать цвет для указания типов данных, даже если язык этого не требует.
Ещё одна идея — выделение функций, которые вызывают исключения, или функций, которые были изменены в последнее время. Это превращает подсветку из чисто декоративной функции в мощный инструмент для анализа кода и отладки.
Однако реализация таких функций сложна, так как требует доступа к AST и глубокого понимания кода, а не только лексического анализа. Кроме того, могут возникать конфликты, когда один элемент нужно выделить двумя разными способами одновременно. Нужно тщательно проектировать систему, чтобы избежать визуального хаоса.
В итоге, хотя современные IDE уже предоставляют некоторые из этих функций, мы далеки от полноценного использования цвета как информационного канала. Расширение этих возможностей может значительно улучшить читаемость и понимание кода.
Комментарии (134)
- Обсуждение показало, что большинство участников считают современные редакторы кода не используют цвет как информационный канал, а лишь как декоративный элемент.
- Участники подчеркнули, что вместо того, чтобы использовать цвет для передачи дополнительной информации, редакторы ограничиваются лишь базовой подсветкой синтаксиса.
- Некоторые участники упомянули, что такие вещи как подсветка потока данных, подсветка переменных и подсветка ошибок уже реализованы в таких IDE как IntelliJ IDEA, но не используются в других редакторах.
- Были также упомянуты такие вещи как подсветка важных частей кода, подсветка области видимости и подсветка неиспользуемого кода.
- Несколько участников выразили мнение, что цветовая схема должна быть более гибкой и адаптивной, чтобы отражать структуру и смысл кода, а не только его синтаксическую категорию.
CodeMender: an AI agent for code security
Google DeepMind представила CodeMender — ИИ-агента для повышения безопасности кода. Он использует новейшие модели Gemini для автоматического обнаружения и исправления уязвимостей в программном обеспечении. Система способна анализировать код в реальном времени, предлагая исправления ещё до попадания ошибок в продакшен.
CodeMender интегрируется в процесс разработки, снижая риски кибератак и ускоряя выпуск надёжных приложений. Это часть более широкой стратегии Google по внедрению ИИ в инструменты для программистов, что может значительно сократить затраты на аудит и повысить общую устойчивость цифровой инфраструктуры.
Комментарии (26)
- Опасения по поводу потенциальной гонки вооружений между ИИ, создающим уязвимости в библиотеках, и ИИ, пытающимся их обнаружить и исправить.
- Критика подхода к анонсам ИИ-инструментов (например, CodeMender), которые представлены как готовые продукты, но фактически находятся на стадии исследования и недоступны широкой публике.
- Скептицизм относительно недостатка технических деталей и излишней помпезности в анонсах, а также скрытности вокруг обучения и возможностей ИИ.
- Оптимизм в отношении того, что автоматизированное тестирование и исправление уязвимостей может сделать защиту проще, чем атаку, в будущем с широким внедрением ИИ.
- Обсуждение практических проблем безопасности, включая неравенство в навыках атакующих и защищающихся, и необходимость проверки происхождения инструментов в ненадежных средах.
Show HN: Toolbrew – Free little tools without signups or ads
Библиотека toolbrew предлагает набор чистых и полезных инструментов для разработчиков, фокусируясь на удобстве использования и минималистичном дизайне. Включает утилиты для работы с текстом, данными, кодом и веб-разработкой, такие как конвертеры, генераторы и анализаторы. Все инструменты открыты для модификации и интеграции в проекты.
Особенность — отсутствие лишних зависимостей и простота внедрения, что ускоряет рабочий процесс. Например, можно быстро форматировать JSON, шифровать строки или проверять валидность кода. Практический вывод: снижает потребность в поиске разрозненных сервисов, экономя время.
Комментарии (53)
- Пользователи обсуждают полезные онлайн-инструменты (CyberChef, easyinvoicepdf, cobalt.tools, simonwillison.net) и делятся своими проектами.
- Поднимаются вопросы безопасности и доверия к сторонним инструментам, а также желание видеть больше информации об их надежности.
- Предлагаются идеи для новых функций: улучшение мобильного интерфейса, добавление поиска, агрегатора инструментов, генератора QR-кодов без трекеров.
- Обсуждаются конкретные технические нужды: мерж PDF, проверка ссылок, генерация SSH-ключей, сетевые утилиты.
- Отмечается проблема с YouTube-загрузчиком и predatory-моделями монетизации некоторых сервисов (например, QR-кодов).
Getting AI to work in complex codebases 🔥 Горячее 💬 Длинная дискуссия
Метод FCA (Function Calling Abstraction) предлагает новый подход к инженерии контекста для ИИ-агентов, работающих с кодом. Вместо передачи полного кода функции в контекст, он использует абстрактные описания её поведения, что значительно сокращает объём передаваемых данных. Это позволяет агентам точнее понимать предназначение функций без перегрузки контекста избыточной информацией.
Ключевое преимущество — повышение эффективности обработки запросов и снижение затрат на вычисления, так как модель фокусируется на семантике, а не на синтаксисе. Метод особенно полезен в больших проектах, где количество функций может быть огромным. Практический результат — ускорение разработки и улучшение качества генерируемого кода за счёт более релевантного контекста.
Комментарии (370)
- Участники обсуждают эффективность подхода "исследование -> план -> реализация" для работы с ИИ в больших кодовых базах, отмечая рост производительности, но и сложности управления контекстом.
- Поднимаются вопросы о надежности ИИ: необходимость почти идеальной точности генерации кода, проблемы с галлюцинациями и сложность верификации поведения без чтения каждой строки.
- Критикуется масштабируемость подхода: управление контекстом становится сложным при больших объемах, а стоимость использования мощных моделей (например, Opus) может быть высокой.
- Отмечается сдвиг роли инженера: от написания кода к определению спецификаций и верификации поведения, что требует новых навыков и вызывает сопротивление у некоторых разработчиков.
- Обсуждаются технические детали и инструменты: важность компрессии контекста, использования AST для анализа кода, необходимость ведения логов промптов и стилистического единообразия кода.
SWE-Bench Pro
SWE-Bench Pro — это новый бенчмарк для оценки способности ИИ-агентов решать сложные и долгосрочные задачи в разработке ПО. Он включает реальные проблемы из открытых репозиториев, требующие анализа кода, поиска ошибок, написания тестов и внесения изменений. Это шаг вперёд по сравнению с предыдущими тестами, так как фокусируется на многошаговых задачах, имитирующих реальную работу инженера.
Проект демонстрирует, что современные модели, такие как GPT-4, справляются лишь с частью заданий, подчёркивая пробелы в понимании контекста и планировании действий. Это указывает на необходимость дальнейшего улучшения агентов для автономной работы над сложными проектами. Практический вывод: хотя ИИ уже полезен в рутине, до полной автономии в разработке ещё далеко.
Комментарии (26)
- Критика названия "SWE-Bench Pro" как потенциально нарушающего чужой товарный знак и вводящего в заблуждение относительно превосходства.
- Сомнения в эффективности защиты тестового набора копилфт-лицензией для предотвращения обучения на нём ИИ-моделей, учитывая игнорирование лицензий в индустрии.
- Вопросы к репрезентативности бенчмарка: отсутствие в тестировании самых современных и крупных моделей, доверие к приватному датасету и проблема "загрязнения" публичного.
- Обсуждение ключевых проблем бенчмарков для ИИ-кодеров: сложность создания "чистых" задач, которые модель не видела ранее, и уязвимость к "читтингу" через анализ скрытых частей репозитория.
- Замечание о стиле README репозитория (обилие эмодзи) как возможном признаке генерации LLM, что подрывает доверие.
My new Git utility `what-changed-twice` needs a new name
Разработана утилита для Git, которая показывает изменения между двумя коммитами, исключая изменения, общие для обоих. Она помогает анализировать, какие именно правки были внесены в двух разных версиях, убирая пересекающиеся модификации. Это полезно при сравнении веток или при отслеживании вклада разных разработчиков.
Автор ищет новое название для инструмента, так как текущее what-changed-twice кажется ему слишком длинным и неудобным. Он открыт для предложений, которые лучше отражают суть утилиты — сравнение изменений с исключением общих частей.
Комментарии (37)
- Обсуждаются варианты названия для утилиты, анализирующей файлы, измененные более одного раза в коммитах (например,
what-changed-twice,git-delta,git squash-report). - Предлагаются альтернативные инструменты с похожей функциональностью, такие как
git absorb, который автоматически вносит изменения в предыдущие коммиты. - Упоминается алгоритм "gather" как потенциальная аналогия для процесса группировки изменений.
- Отмечается практическая польза утилиты для изоляции часто изменяемых файлов и упрощения ребейза.
- Подчеркивается, что подобные утилиты можно реализовать как отдельные исполняемые файлы в PATH с префиксом
git-для интеграции с Git.
DeepWiki: Understand Any Codebase
DeepWiki — сервис от создателей Devin, который мгновенно превращает любой GitHub-репозиторий в интерактивную вики.
Просто замените github.com на deepwiki.com и задавайте вопросы без чтения кода.
8 практических приёмов
-
Разведка репозитория
За 2 минуты получаю архитектуру, ключевые модули и точки расширения. -
Контекст для агентов
Копирую сводку в Claude/Cursor, чтобы сразу писать релевантный код. -
Быстрый старт
ГенерируюREADME-инструкции по запуску без ручного изученияdocker-compose.yml. -
Поиск «кухонных» деталей
Уточняю, где хранятся env-переменные, какие скриптыnpm runдоступны и т.д. -
Сравнение форков
Загружаю две вики и спрашиваю: «Что добавлено в форке X по сравнению с оригиналом?» -
Онбординг новичков
Раздаю ссылку на вики вместо 30-минутных экскурсий по коду. -
Проверка зависимостей
Запрашиваю список уязвимых пакетов и актуальные версии. -
Документация API
Прошу сгенерировать примеры вызовов REST-endpoints прямо из кода.
Ограничения
- Публичные репозитории работают сразу.
- Приватные — через GitHub OAuth с нужными правами.
- Нет поддержки SVN и Mercurial.
DeepWiki экономит часы при изучении чужого кода и делает LLM-агентов значительно точнее.
Комментарии (36)
- DeepWiki вызывает противоречивые ощущения: кто-то хвалит автодиаграммы и «глубокие» ответы, кто-то ругает за неточности и «AI-slop».
- Пользователи LibreOffice, PureLB и других проектов жалуются на ложную документацию и баг-репорты, которые тратят время мейнтейнеров.
- Некоторые считают, что диаграммы слишком абстрактны и не привязаны к реальному коду.
- Появились попытки сделать open-source/локальные аналоги, но официального способа «выключить» DeepWiki для своего репозитория пока нет.