OpenHands v1.16.0 вышла 27 августа в 18:19:22 UTC, заменив встроенный каталог навыков агента с режимом «всё включено» на явный allow-list. Pull request, стоящий за этим изменением, необычно откровенно описывает и цифры, и логику.
Состояние, которое он заменил
Дословно из PR: "The whole @openhands/extensions catalog is baked into the bundle at build time and merged into agent_context.skills for every conversation, with disabled_skills as the only escape hatch." И о последствиях: "All-on-with-a-deny-list means every catalog addition is on by default for everyone, which is how @rbren ended up opted into javadoc and bitbucket skills."
Новый стандарт по умолчанию
"59 catalog skills render, 11 on, 48 off." В качестве примера регрессии указан add-javadoc — "the skill from the issue report — is among the 48." enabled_skills описан как "an allow-list over the bundled catalog only, defaulting to the 11 entries the catalog flags defaultEnabled."
Названная причина — конфликт в промпте
"The cost isn't disk — it's ~60 skill bodies and 60 trigger sets competing in every system prompt." Это аргумент про бюджет контекста. В PR не сказано прямо: каталог в режиме all-on означает также, что каждый навык, добавленный вендором или зависимостью, становится активной возможностью в каждом разговоре без явного согласия оператора — именно таким путём, согласно исследованиям об agent-skill-poisoning, которые распространяются в этом месяце, происходит внедрение.
Что неверно в распространённой трактовке
Три вещи. Это оформлено как "Features" и размещено между изменением закрепления боковой панели и ссылкой на файловый ящик, хотя по сути широко используемый open-source кодирующий агент признал, что его каталог навыков был по умолчанию с опцией отказа, и откатил это решение.
Охват изменений будут завышать. Allow-list распространяется только на встроенный каталог; навыки, обнаруженные во время работы из .agents/skills/, остаются активными с момента появления и по-прежнему регулируются deny-list. Фраза "OpenHands now requires skills to be allow-listed" была бы неверной.
И сама цифра не означает число на уже развернутых инсталляциях. Одноразовая миграция сохраняет прежнее поведение: рабочее пространство, где в deny-list уже указан навык из каталога, "keeps everything else on." Значение 11 из 59 по умолчанию относится к новым рабочим пространствам, а не ретроактивно к уже установленной базе. Важна и дата — PR был объединён 24 августа в 18:53 UTC, за три дня до того, как его получили пользователи; релиз — это событие, видимое пользователю.
