惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
U
Unit 42
H
Help Net Security
博客园_首页
雷峰网
雷峰网
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - 【当耐特】
Recent Announcements
Recent Announcements
Recorded Future
Recorded Future
aimingoo的专栏
aimingoo的专栏
爱范儿
爱范儿
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Cloudflare Blog
S
Security @ Cisco Blogs
M
MIT News - Artificial intelligence
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
Spread Privacy
Spread Privacy
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
K
Kaspersky official blog
MyScale Blog
MyScale Blog
阮一峰的网络日志
阮一峰的网络日志
C
CERT Recently Published Vulnerability Notes
V
Vulnerabilities – Threatpost
WordPress大学
WordPress大学
C
Cisco Blogs
G
Google Developers Blog
N
News and Events Feed by Topic
P
Palo Alto Networks Blog
Apple Machine Learning Research
Apple Machine Learning Research
Schneier on Security
Schneier on Security
博客园 - 聂微东
Security Latest
Security Latest
Security Archives - TechRepublic
Security Archives - TechRepublic
O
OpenAI News
云风的 BLOG
云风的 BLOG
IT之家
IT之家
PCI Perspectives
PCI Perspectives
Microsoft Security Blog
Microsoft Security Blog
NISL@THU
NISL@THU
小众软件
小众软件
Scott Helme
Scott Helme
大猫的无限游戏
大猫的无限游戏
L
LINUX DO - 最新话题
Microsoft Azure Blog
Microsoft Azure Blog
Simon Willison's Weblog
Simon Willison's Weblog
N
News and Events Feed by Topic
F
Fortinet All Blogs
The Last Watchdog
The Last Watchdog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Opus 4.7 vs GPT-5 vs DeepSeek V4-Pro: три агента строят TSS-CLI на Rust
nikicat · 2026-05-08 · via Все публикации подряд на Хабре

Уровень сложностиСредний

Время на прочтение7 мин

Охват и читатели454

Обзор

TL;DR

24 апреля 2026 DeepSeek в режиме preview выкатил V4-Pro — MoE на 1.6T параметров (49B активных), 1M контекста. Появился повод посадить три флагманские модели за один и тот же не самый тривиальный таск и посмотреть, кто как справится. Задание общее, машина одна, час один, всё запускалось параллельно:

Модель

Harness

Reasoning effort

Anthropic Opus 4.7 (1M ctx)

Claude Code

x-high

OpenAI GPT-5

Codex

high

DeepSeek V4-Pro

OpenCode

high (max)

Если коротко: GPT-5 в Codex оказался самым быстрым и единственным, кто полностью реализовал ТЗ; Opus 4.7 в Claude Code — самым аккуратным с точки зрения инженерной культуры (модули, README, тесты, QA-скрипты), но оплаченным горой permission prompts; DeepSeek V4-Pro в OpenCode не уложился в ТЗ ни архитектурно, ни функционально — и, что интереснее, проигнорировал прямую обратную связь от пользователя.

QA: pass / partial / fail по каждому агенту

QA: pass / partial / fail по каждому агенту

Далее — цифры, таблицы и разбор конкретных технических проблем по каждой модели.


Задача

Дано ТЗ: написать на Rust CLI-утилиту dkls23ctl для t-of-n threshold-ECDSA (поверх библиотеки silence-laboratories/dkls23) с p2p-сетью на iroh и mDNS-discovery. Подкоманды: keygen, pubkey, sign, reshare, verify. Никакого выделенного лидера, никакого сервера, key shares хранятся в ./.secrets/<key_id>/<peer_id>.json. Singleton-режим (-t1) должен выдавать обычный ECDSA, а reshare — поддерживать import/export между singleton и (t,n).

ТЗ прицельно неприятное: TSS-криптография не самый ходовой жанр, у dkls23 несколько разных публикаций на crates.io с разными API, а у iroh за последние полгода был не один мажорный релиз, ломающий совместимость.

Что получилось — общая картина

Opus 4.7 (Claude Code)

GPT-5 (Codex)

DeepSeek V4-Pro (OpenCode)

QA-сценариев (16) — pass/partial/fail

12 / 4 / 0

14 / 2 / 0

6 / 2 / 8

Активное время сессии

65 мин

26 мин

95 мин

Вызовов инструментов / вмешательств пользователя

337 / 2

217 / 3

294 / 1

Cargo-тестов

2/2 PASS

2/2 PASS

0

mDNS, как требовало ТЗ

❌ файлы в /tmp

Полная матрица reshare

⚠ часть ветвей с явной ошибкой

❌ висит

«Partial» у Opus и GPT-5 — это не баги, а сознательные отказы реализовать какую-то ветку reshare («не умею, выхожу с ошибкой»); «partial»/«fail» у DeepSeek — реальные провалы.

1. Соответствие ТЗ: GPT-5 единственный закрыл всё

Самое тонкое место — это reshare, потому что у dkls23 за этим стоят пять разных переходов:

  • (1,1) → (t,n)key_import::ecdsa_secret_shares + key_refresh;

  • (t,n) → (t,n) той же команды — обычный key_refresh;

  • (t,n) → (t',n) тот же набор пиров, меняем порог — quorum_change;

  • (t,n) → (t',n') смешанный committee — quorum_change с overlap старого/нового;

  • (t,n) → (1,1)key_export с x25519-ключом.

GPT-5 реализовал все пять переходов, и они работают сквозным сценарием (проверяли (2,3)→(3,4) и сборку обратно в singleton). Opus честно сказал «эти два не делаю, отдаю явную ошибку» — это нормальная инженерная позиция, лучше, чем тихо «сделать вид». DeepSeek не справляется с reshare даже когда параметры не меняются: в логах висит «Reshare: 3 peers running refresh», и так до timeout.

2. Архитектура и качество кода

Opus 4.7

GPT-5

DeepSeek V4-Pro

Файлов исходников

9 (модули cli, commands/, discovery, transport, keyshare, singleton)

1 (main.rs, ~1254 строки)

4 (~940 строк, плотный network.rs)

Транспорт

dkls23 SimpleMessageRelay + тонкий InterceptRelay

свой IrohRelay поверх Sink+Stream

iroh-endpoint есть, но discovery — через файлы

README

да

нет

нет

QA-скрипты

4 (run_all.sh, test_singleton.sh, test_threshold.sh, test_reshare.sh)

0

3 (один сам признаётся в race conditions)

Размер key share для 2-of-3

~единицы KB

~единицы KB

~495 KB (не та сериализация)

Формат pubkey

compressed SEC1 (33 байта / 66 hex)

compressed SEC1

сырые координаты без префикса 04 (64 байта / 128 hex)

GPT-5 пошёл по пути «всё в один файл, побыстрее». Это компромисс: писать один main.rs быстрее, читать — наоборот. Opus честно разнёс по модулям с library/binary split, чтобы интеграционный тест мог дёргать те же сущности, что и CLI.

DeepSeek споткнулся в трёх местах сразу:

  1. Взял другую библиотеку. В ТЗ был silence-laboratories/dkls23. Opus и GPT-5 нашли крейт sl-dkls23 (это та же кодовая база, только опубликованная). DeepSeek взял dkls23-secp256k1 — другой крейт от тех же авторов, multi-curve, с явно phase-by-phase API. В результате DKG пришлось вручную разводить на 4 фазы × N сообщений, reshare — отдельно. Бюджет ошибок схлопнулся.

  2. Отказался от mDNS в пользу /tmp/dkls23ctl/<key>/<peer>.json — пиры пишут себе адреса на диск, а другие пиры этот каталог опрашивают. iroh-endpoint при этом инициализируется, но используется только как QUIC-транспорт по уже найденному loopback-адресу. Прямое нарушение ТЗ (там явно «mDNS» и «localhost AND LAN»).

  3. В main.rs тихая «нормализация» параметров:

    if n == 1 || t == 1 { t = 1; n = 1; }
    

    То есть пользовательские -t и -n молча перезаписываются. И отдельным бонусом — в protocol.rs цикл sign-фазы 1 написан с дублированной отправкой сообщений.

3. Время и итерации

Время на задачу: wall-clock vs активная работа модели

Время на задачу: wall-clock vs активная работа модели

GPT-5 уложился в 26 минут активного времени против 65 у Opus и 95 у DeepSeek. По логам видно, почему:

  • GPT-5: 22 apply_patch, 2 веб-поиска, ноль откатов. Codex держит длинную shell-сессию через пару exec_command + write_stdin, поэтому cargo и логи можно tail-ить, не пересоздавая процесс. 16 миллионов токенов из cache_read против всего 41 тысячи нового output — KV-кэш делает основную работу.

  • Opus 4.7: 211 одиночных Bash, 11 WebFetch в начале сессии (читал документацию iroh и dkls23 подряд), потом аккуратные правки. Тратит время на исследование и чистоту, но получает за это модульный код, README и интеграционный тест.

  • DeepSeek V4-Pro: 34 webfetch (4 с ошибками), 150 bash, 66 edit — и всё равно худший результат. Пауз в работе модели длиннее 30 секунд 69 штук (у GPT-5 — 8). То есть модель часто и подолгу «думает», но это не превращается в продвижение.

Ритм работы: вызовы инструментов по минутам сессии

Ритм работы: вызовы инструментов по минутам сессии

На графике хорошо видно «общую яму» в районе 25–100 минут — это пауза на обед у оператора, она у всех трёх примерно одинаковая. Дальше различия начинаются: GPT-5 заканчивает плотным финалом и уходит, Opus идёт ровно, DeepSeek продолжает ещё долго и редкими тулколлами.

Из чего состоит сессия: распределение вызовов инструментов

Из чего состоит сессия: распределение вызовов инструментов

Ещё одно наблюдение из распределения вызовов: у DeepSeek сильно перекошен сектор fetch/web (34 запроса против 13 у Opus и 2 у GPT-5). Модель много читала документацию, но не превратила это в работающую mDNS-интеграцию.

4. Самый показательный эпизод — отказ DeepSeek реверсировать решение

Где-то в середине сессии DeepSeek единственный из трёх вызвал ask-user tool в OpenCode:

would you accept a simpler networking approach (TCP streams with file-based discovery) that’s more reliable, or do you specifically need iroh QUIC for this tool?

Ответ пользователя был недвусмысленным:

Initial request states clearly that this tool should work on localhost AND LAN, so file-based discovery is a critical flaw. iroh and related libs provide all the required functionality, you just didn’t manage to use it correctly.

Финальный коммит: discovery всё равно через /tmp/dkls23ctl/<key>/<peer>.json. Гипотеза простая — модель не разобралась с mDNS API в iroh, восприняла отрицательный отзыв как «продолжай пытаться» и продолжила пытаться в ту же стену. Это, кажется, более интересный сигнал, чем сам по себе провал по ТЗ: способность принять отрицательный отзыв и развернуться — отдельная компетенция, которую кнопкой не включишь.

5. Налог на интерфейс: Claude Code просит много кликов

Тут стоит честно сказать неприятное про Opus, точнее про harness вокруг него. По задаче Opus почти не дёргал пользователя (2 вмешательства на саму работу). Но по permissions — дёргал постоянно. После сессии в cc/.claude/settings.local.json осело 30 правил «always allow», и большинство из них откровенно бесполезны для будущих запусков:

"Bash(/home/<user>/src/<project>/target/debug/dkls23ctl verify *)",
"Bash(echo \"exits: $?\")",
"Bash(rm -rf .secrets)",
"Bash(pkill -f 'reshare --key-id sk1')",
"Bash(DKLS23CTL_BIN=$(readlink -f ./target/debug/dkls23ctl) bash scripts/test_reshare.sh)"

Абсолютные пути, буквальные строки, конкретные key_id — для следующего запуска всё это бесполезно. Многие промпты вообще не предлагают «всегда разрешать» или дают только one-shot accept — и пользователь дальше прокликивает похожие вариации той же команды. Codex обходится решением на старте сессии (sandbox profile), у OpenCode в этой сессии нуль persistent-правил вообще.

Итог: при формально меньшем «пользовательском участии в задаче» Claude Code требует на порядок больше тактических кликов, и оседающий после этого allow-list — почти бесполезен для повторного использования.

6. Сводная таблица

Аспект

Opus 4.7

GPT-5

DeepSeek V4-Pro

mDNS, как в ТЗ

❌ файловый rendezvous

Полнота reshare

частично (нет committee-change и export)

полная

refresh-only, и тот висит

Структура кода

модульная, идиоматичная

монолит, но плотный

модульная, но кривой network.rs

Тесты

2 + 4 шелл-скрипта + run_all

2, без скриптов

0, скрипты «допускают» race conditions

Документация

README + комментарии

нет

нет

Время

65 мин

26 мин

95 мин

Видимые ошибки

не нашёл

не нашёл

тихий override t/n, дублированная отправка в sign, висящий reshare

Выбор upstream-крейта

sl-dkls23

sl-dkls23

dkls23-secp256k1

Permission UX

30 узких persistent-правил, много промптов посреди сессии

sandbox-профиль, одно решение в начале

0 persistent-правил

7. Что я бы из этого вынес

  • Если важно «работает по ТЗ» и быстро — GPT-5 в Codex выглядит сильнее всех, и 26 минут это серьёзный отрыв.

  • Если важно отдать кому-то на сопровождение — выбор Opus 4.7: модульность, тесты, скрипты, README. С поправкой на permission-нагрузку в Claude Code.

  • DeepSeek V4-Pro в текущем preview на длинногоризонтных инженерных задачах с незнакомым крипто-API проигрывает заметно. Это не «модель плохая» в абсолютном смысле — она довольно дёшево считает токены ($9.74 за всю сессию против $0 видимых для двух других в этих harness) — но связка «выбор не той библиотеки на старте + неспособность откатить решение, когда пользователь явно сказал, что оно неправильное» убила результат. Preview есть preview; будет интересно повторить эксперимент через пару месяцев на стабильной версии.

  • Harness — это часть модели. Один и тот же Opus в другом harness с другой permission-моделью выглядел бы по-другому. Разница «GPT-5 (Codex) vs Opus (Claude Code)» — это не только разница моделей.пока сам себя не похвалишь, никто не похвалит, да, Claude? ;-)

Полные сырые данные, скрипты и интерактивный отчёт с графиками — в репозитории с анализом (там же и tz.txt дословно). Сами реализации лежат отдельно: