AI

Habr AI

Отличие языковой модели LLM от человека

Открыть оригинал ↗ Перевод заголовка: Отличие языковой модели LLM от человека

Языковая модель LLM — это статистическая машина, которая предсказывает последовательности токенов без понимания смысла или внутреннего мира. В отличие от человека, у которой есть модель мира с правилами и образами, LLM работает только с расплывчатыми векторами в латентном пространстве, не обладая инвариантными образами. Человек понимает ситуацию через внутреннюю модель, где образы сопровождаются четкими правилами, а в LLM такие правила отсутствуют — векторы искажаются под воздействием шума.

  • У человека образы и правила мира формируют понимание, которое устойчиво к шуму; у LLM векторы — неустойчивы и подвержены искажениям.
  • Понимание у человека — это степень согласованности внутренней модели с внешним миром, а не бинарное «да/нет».
  • В LLM нет понятий образов и правил мира — всё сводится к предсказанию токенов, что делает его чувствительным к шуму.
  • Сны показывают, что мозг моделирует мир даже без внешней коррекции, что подтверждает гипотезу о предсказательном мозге (predictive coding).
  • В LLM отсутствует модуль анализа и логики, поэтому он не может оценить реальность, как человек — это делает его неспособным к критическому мышлению.

Когда пригодится: при анализе философских вопросов о сознании, при оценке границ между искусственным и человеческим мышлением, при разработке систем, требующих понимания контекста и абстракций, а также при критическом подходе к интерпретации ответов AI.

Я попросил ИИ-агента только описать топологию сети. Он сам взломал мой роутер за одну ночь и помог оформить CVE

Открыть оригинал ↗ Перевод заголовка: Я попросил ИИ-агента только описать топологию сети. Он сам взломал мой роутер за одну ночь и помог оформить CVE

Автор запросил агента описать способы подключения к домашнему роутеру, не ожидая, что он найдёт уязвимость и получит полный доступ к системе. Агент самостоятельно выполнил сканирование портов, выявил уязвимость в веб-интерфейсе, извлек конфигурацию без аутентификации и на основе этого получил административный доступ. Всё это произошло в рамках режима read-only, с единственным разрешённым действием — логин по паролю, полученному из дампа.

  • Агент нашёл уязвимость в веб-интерфейсе роутера: веб-сервер отвечает на GET-запросы без аутентификации, предоставляя полный конфигурационный дамп (включая пароли и WPA2-ключи).
  • Уязвимость является асимметричной: чтение разрешено, запись — отклоняется, что указывает на ошибку проектирования, а не на бэкдор.
  • Агент самостоятельно провёл анализ, классифицировал уязвимость как CWE-306, присвоил CVSS 8.8 и оформил заявку в MITRE CNA-LR.
  • Проверка показала, что роутер уязвим только с LAN-стороны, WAN-управление выключено, но в домашней сети это остаётся рискованным.

Когда пригодится:
— При проверке безопасности собственной сети, особенно роутеров с веб-панелями.
— Для тестирования реакции на уязвимости в домашних системах.
— При разработке политик безопасности IoT-устройств и настройке изоляции.

Почему Алиса AI и ГигаЧат отвечают по-разному и как помочь ИИ понять ваш сайт

Открыть оригинал ↗ Перевод заголовка: Почему Алиса AI и ГигаЧат отвечают по-разному и как помочь ИИ понять ваш сайт

Алиса AI и ГигаЧат при ответах на один и тот же запрос о настройке lifecycle-политики в Object Storage Cloud.ru дают разные, но оба — ошибочные — ответы. Ошибки заключаются в неправильном использовании терминов (теплый/холодный класс хранения), неверных условиях отсчёта и упущении платформенной специфики. Чтобы ИИ корректно передавал информацию, важно упростить структуру страниц, сделать факты явными и единообразными.

  • Убедитесь, что на сайте продукты и сервисы названы одинаково во всех материалах — это предотвращает смешивание характеристик.
  • Добавляйте контекст к цифрам: укажите единицы измерения, регион, продукт и версию, чтобы ИИ не интерпретировал данные неправильно.
  • Поддерживайте один источник истины — обновляйте техническую документацию первым, а затем синхронизируйте с ней блоги и лендинги.
  • Проверяйте доступность страниц для ИИ-краулеров: убедитесь, что они не заблокированы robots.txt, WAF или JavaScript.
  • Регулярно проводите аудит ответов ИИ, сравнивая их с официальной документацией и выявляя неточности.

Когда пригодится: при разработке контента для облачных сервисов, где точность технических описаний критична, и при стратегии SEO, ориентированной на ИИ-поисковые ответы.

LLM уверенно врёт про ваш микроконтроллер

Открыть оригинал ↗ Перевод заголовка: LLM уверенно врёт про ваш микроконтроллер

ИИ-модели, несмотря на глубокие знания о семействах микроконтроллеров, часто ошибаются при работе с конкретными платами — они не учитывают физические особенности, такие как пин-распределение, ограничения шин или неприменимые параметры драйверов. Ошибки проявляются как конфликты пинов, неправильное тактирование или отсутствие поддержки периферии, что ведёт к нестабильной работе или полному сбою системы.

  • Скиллы для Claude Code содержат точные данные о плате: пин-карта, особенности драйверов и правила избегания ошибок.
  • Скиллы структурированы в трёх слоях: краткая выжимка (SKILL.md), глубокие справочники (reference/) и рабочие шаблоны (template/).
  • Контекст скилла сохраняется между сессиями и включается в проект, что позволяет избежать повторения ошибок и делает знание частью кода.
  • Скиллы версионируются вместе с проектом, что делает их доступными команде и позволяет быстро обновлять информацию о граблях.
  • Они формируют «API для железа» — фиксируют, какие ресурсы заняты, и предотвращают конфликты при разработке сложных архитектур.

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

Смерть сабагентов в Claude и Codex

Открыть оригинал ↗ Перевод заголовка: Смерть сабагентов в Claude и Codex

Классические сабагенты, которые раньше позволяли модели делегировать задачи на несколько «детей», теперь считаются избыточными в новых версиях Claude и Codex. Их архитектура приводит к перерасходу токенов, из-за чего разработчики всё чаще отключают автоматический спавн и переходят к прямому взаимодействию между прогретыми сессиями.

Практические тезисы:

  • Сабагенты запускаются как отдельные процессы с полным инициализацией, что приводит к тяжелому перезапуску и расходу токенов.
  • Вместо спавна используется межсессионный пиринг — сессии обмениваются данными напрямую, без перезагрузки контекста и поллинга.
  • В Codex и Claude реализованы инструменты для прямого чтения и инъекции в поток сессий, что позволяет передавать данные без генерации токенов.
  • Сабагенты оправданы только в трёх случаях: при изоляции тяжелого вывода, независимом код-ревью и широком параллельном поиске.
  • Для повседневных задач (багфиксы, тесты) лучше использовать одиночные сессии — сабагенты создают избыточные задержки и расходы.

Когда пригодится:
Когда требуется изолированная работа с большими объёмами данных, независимая проверка кода или параллельный поиск гипотез — тогда сабагенты остаются полезными. В остальных случаях предпочтительнее использовать прямой пиринг между прогретыми сессиями.

InfoQ Architecture

Presentation: Architecting the Data Layer for AI Agents: From Transactional Systems to MCP and Semantic Models

Открыть оригинал ↗ Перевод заголовка: Архитектура слоя данных для ИИ-агентов: от транзакционных систем до MCP и семантических моделей

При переходе к ИИ-агентам возникает проблема не отсутствия данных, а их несоответствия требованиям агентов — транзакционные системы и данные-лэйки не оптимизированы под низкую задержку и нестабильные запросы. Решение требует баланса между детерминизмом и неопределённостью, где точность, безопасность и стоимость определяют выбор источника данных и методов обработки.

Ключевые практические тезисы:

  1. Используйте данные из транзакционных систем при записи и выполнении бизнес-правил, а из платформы данных (например, векторной БД) — при обработке истории и семантических запросов.
  2. Внедряйте архитектуру данных-меша с концепцией «данных-продукта»: каждый продукт должен иметь владельца, стабильный интерфейс и SLA, что обеспечивает гибкость и управление.
  3. Связывайте MCP-инструменты с данными-продуктами, чтобы каждый инструмент имел бизнес-смысл и соблюдал семантику.
  4. Применяйте семантические модели (RDF, OWL) для разграничения понятий (например, «активный клиент» в разных отделах), что повышает точность ответов ИИ на 40%.
  5. Организуйте многоуровневую архитектуру данных: от батч-обработки (Spark) до низкозадержки (Postgres/DuckDB), чтобы оптимизировать расход токенов и время ответа.

Когда пригодится:
При разработке корпоративных ИИ-агентов, работающих с большими объёмами транзакционных данных, где требуется высокая точность, безопасность и экономичное использование ресурсов.

Java / Spring

Foojay

Jakarta Faces, Java Web Framework, Stateless Edition: Marketplace AliFaces

Открыть оригинал ↗ Перевод заголовка: Jakarta Faces, Java Web Framework, Stateless Edition: Marketplace AliFaces

AliFaces представляет собой техническое доказательство концепции, демонстрирующее, как полностью состояние-независимое приложение на базе Jakarta Faces может работать без HttpSession, сохранённого состояния и привязки к узлу. Оно использует современные практики: серверную рендеринг, JWT-идентификацию, CDN-доставку ассетов и распределённые сервисы, не нарушая архитектуру UI.

Ключевые практические тезисы:

  1. Вместо HttpSession и сохранённого состояния AliFaces использует JWT-токены и внешние сервисы (например, Redis) для хранения данных о пользователе и корзине.
  2. Приложение работает на двух независимых узлах — токен пользователя пересылается между ними, сохраняя темы, язык и редиректы.
  3. Веб-страницы генерируются сервером (SSR), что обеспечивает SEO, быструю загрузку и совместимость с современными UI-фреймворками.
  4. Визуальный контент (изображения) доставляется через CDN, что уменьшает размер WAR-файла и повышает производительность.
  5. Архитектура позволяет легко масштабировать приложение и внедрять кэширование без изменений в UI-кодах.

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

Running DuckDB’s JDBC Driver in a GraalVM Native Image

Открыть оригинал ↗ Перевод заголовка: Запуск драйвера DuckDB через Native Image GraalVM

Статья демонстрирует, как успешно запускать драйвер DuckDB для JDBC в формате native image GraalVM без изменений в коде драйвера. Работа возможна благодаря корректировке логики загрузки библиотек и улучшению совместимости между Java и C++ через JNI.

Практические тезисы:

  1. Для работы требуется явное указание класса Class.forName("org.duckdb.DuckDBDriver"), чтобы избежать проблем с ServiceLoader при сборке native image.
  2. Важно использовать правильный путь к библиотеке (например, libduckdb_java.so_osx_universal), соответствующий платформе, и заменять его при сборке для других ОС.
  3. Сборка в GraalVM 25+ автоматически переносит инициализацию классов DuckDBNative на время запуска, что решает проблему с несуществующим путём к библиотеке.
  4. Драйвер теперь может загружать библиотеку напрямую из файловой системы, а не из JAR, что упрощает интеграцию.
  5. Для реальных приложений (например, проверка финансовых данных) native image обеспечивает запуск в 0.95 секунды — на 30% быстрее, чем JVM-версия.

Когда пригодится:
При разработке командных инструментов на Java, где требуется минимальная зависимость от JVM, быстрый старт и отсутствие необходимости установки JDK. Особенно актуально для nightly-задач, скриптов и инструментов аналитики, работающих с CSV, JSON и Parquet.

SQLite Across Every Port: One Contract, One Encrypted File Format

Открыть оригинал ↗ Перевод заголовка: SQLite на всех платформах: один контракт, один зашифрованный формат

Codename One внедрил единый, проверенный контракт для SQLite, работающий на всех платформах — от Android и iOS до JavaScript и Wear OS. Теперь все порты используют одинаковый зашифрованный формат, основанный на SQLCipher 4, что обеспечивает портабельность и безопасность данных. Вместо разнородных поведений на разных платформах теперь реализованы единые правила для выполнения запросов, управления курсорами, транзакциями и шифрования.

Ключевые практические тезисы:

  • Всё поведение SQLite унифицировано: на всех платформах выполняются одинаковые операции с курсорами, транзакциями и бинарными данными.
  • Шифрование реализовано через DatabaseConfig с тремя моделями ключей (пароль, управляемый ключ, прямой ключ), поддерживая разные сценарии использования.
  • JavaScript теперь использует SQLite, компилированный в WebAssembly, без зависимости от устаревшего WebSQL.
  • При миграции старых приложений (Ant) рекомендуется явно указывать db.legacy=true, чтобы избежать сбоев.
  • Новые приложения по умолчанию используют исправленный контракт (db.legacy=false), что устраняет устаревшие ошибки.

Когда пригодится:
При разработке приложений, где требуется безопасное хранение данных на всех платформах, включая веб-версию и смарт-устройства. Особенно актуально для проектов с миграцией старых баз данных, приложениями на JavaScript и смарт-устройствами, где важно поддерживать единое поведение и безопасность.

System Design

InfoQ Architecture

Cloudflare Workers Accept Inbound TCP, with gRPC the First Protocol on Top

Открыть оригинал ↗ Перевод заголовка: Cloudflare Workers принимают входящие TCP-соединения, gRPC — первый протокол на этом уровне

Cloudflare Workers теперь поддерживают входящие TCP-соединения, что позволяет им работать с любыми TCP-протоколами. Впервые на этой основе реализовано подключение к gRPC, что открывает возможности для полноценной двусторонней коммуникации между клиентом и сервером.

  • Входящий TCP-сокет можно обрабатывать в Worker’е через connect(socket), где разрешено напрямую читать и писать данные, передавать сокет другому Worker или Durable Object.
  • Сокет может быть передан в контейнер через getTcpPort(), где реализован полный двусторонний поток, например, через Go-сервер gRPC или Python-socketserver.
  • Поддержка gRPC в Workers ограничена: доступна только для униарных и серверных потоков, а не для двусторонних потоков, так как веб-платформа не предоставляет поддержки фреймов HTTP/2.
  • Реализация gRPC в Workers происходит через gRPC-web, а не напрямую, что означает промежуточную трансляцию.

Когда пригодится: при интеграции мобильных приложений (через grpc-swift-2, grpc-kotlin), работе с существующими gRPC-серверами и расширении архитектуры на уровне edge-сети с возможностью политик и фильтрации на уровне JavaScript.

Javarevisited Newsletter

I've Read 20+ Microservices Books: Here Are My Top 10 Recommendations

Открыть оригинал ↗ Перевод заголовка: Мой выбор из 20+ книг о микросервисах: топ-10 рекомендаций

После прочтения более 20 книг о микросервисах автор отобрал 10 наиболее ценных для понимания архитектуры и паттернов распределённых систем. Книги обеспечивают глубокое понимание концепций, реальных примеров и операционных аспектов, что курсовые материалы часто не дают.

Практические тезисы:

  1. Для новичков — Microservices: Up and Running предлагает пошаговое введение в основы.
  2. Building Microservices (Сэм Ньюман) — фундаментальный текст по проектированию микросервисов и их границ.
  3. Microservices Patterns (Чриз Ричардсон) — практическое руководство по паттернам, таким как сага, циркуит-брейкер и CQRS.
  4. Production-Ready Microservices (Сюзан Фоллер) — фокус на операционных аспектах: мониторинг, отказоустойчивость, масштабирование.
  5. Domain-Driven Design (Эрик Эванс) — ключевые идеи, лежащие в основе структурированного проектирования микросервисов.

Когда пригодится:
— При подготовке к системному проектированию или интервью.
— При миграции старых монолитов в микросервисы.
— При разработке распределённых систем с событийной архитектурой.
— Для тех, кто стремится к роли архитектора или технического лидера.

# Пример команды для запуска микросервиса с Docker и Spring Boot
docker build -t microservice-app:latest .
docker run -p 8080:8080 microservice-app:latest

Coding / Algorithms

Java67

Top 10 Algorithms books Every Programmer Should Read in 2026

Открыть оригинал ↗ Перевод заголовка: Топ-10 книг по алгоритмам, которые каждый программист должен прочитать в 2026 году

Алгоритмы являются универсальными и не зависят от языка программирования — они формируют фундаментальные навыки, необходимые для решения задач и написания качествного кода. Многие опытные разработчики хорошо владеют языками, но не понимают основ алгоритмов и структур данных, что проявляется при решении задач на сортировку или графы. Эти навыки критичны не только для собеседований, но и для понимания работы современных приложений, таких как рекомендации в Netflix или поиск друзей в Facebook.

Практические тезисы:

  • Для начинающих рекомендуется начать с Grokking Algorithms — книги с простыми объяснениями и реальными примерами, особенно для Python-разработчиков.
  • Algorithms от Robert Sedgewick и Kevin Wayne — идеален для Java-разработчиков, так как примеры написаны на Java и включают визуализацию.
  • Introduction to Algorithms (CLRS) — классический учебник, но требует глубоких знаний и лучше использовать как справочник после базового изучения.
  • The Algorithm Design Manual — помогает понять практическое применение алгоритмов через реальные "истории" и примеры.
  • Algorithm Design by Kleinberg & Tardos — подходит для разработчиков с базовыми знаниями, фокусируется на проектировании алгоритмов.

Когда пригодится:
Когда нужно улучшить способность решать задачи, анализировать сложные структуры данных и разрабатывать эффективные решения, особенно при подготовке к собеседованию или работе с системами, использующими машинное обучение и графы.