From 346b3bfc613cdbbb79ab133b972e942717a46b61 Mon Sep 17 00:00:00 2001 From: Dmitry Dementiev Date: Tue, 6 Oct 2026 17:14:41 +0300 Subject: [PATCH] =?UTF-8?q?feat(opencode):=20=D1=80=D0=B5=D0=B2=D1=8C?= =?UTF-8?q?=D1=8E=D0=B5=D1=80=20=D1=80=D0=B0=D0=B7=D1=80=D0=B5=D1=88=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B9=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BA=D0=BB=D1=8E?= =?UTF-8?q?=D1=87=D1=91=D0=BD=20=D0=BD=D0=B0=20Jev=20=D1=81=D0=BE=20=D0=B2?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D1=8B=D0=BC=20=D0=BC=D0=BD=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Зачем: Jev (System One) решает за ~0.6 с против 4 с у чат-модели, но на тонком контексте занижает confidence (0.6 < 0.7) и эскалировал даже тривиальные команды. - Что: model=opencode/jev-1.13-free (ключ OPENCODE_API_KEY из ~/.env.secrets, нужен export); escalationReviewer=deepseek/deepseek-flash для неуверенных решений; actorProfiles для safe-build/safe-plan. - Проверка: прогон printf → allow (low, 0.97), аудит пишется; fail-closed при отсутствии ключа подтверждён (эскалация, не allow). --- .../opencode/permission-reviewer.jsonc | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/opencode/.config/opencode/permission-reviewer.jsonc b/opencode/.config/opencode/permission-reviewer.jsonc index d599f46..9a16757 100644 --- a/opencode/.config/opencode/permission-reviewer.jsonc +++ b/opencode/.config/opencode/permission-reviewer.jsonc @@ -1,10 +1,20 @@ { - // Модель-ревьюер разрешений. Провайдеры: deepseek, opencode-go. - // Если модель не поддерживает structured output (например opencode-go/deepseek-v4-flash), - // переключить outputFormat на "text". - "model": "deepseek/deepseek-flash", - "outputFormat": "json_schema", - "variant": "none", + // Модель-ревьюер разрешений. Jev (System One) через OpenCode Zen: + // ключ OPENCODE_API_KEY читается из окружения процесса opencode (~/.env.secrets). + // Платный вариант без временного окна: opencode/jev-1.13 + "model": "opencode/jev-1.13-free", // Ниже порога уверенности решение уходит человеку - "confidenceThreshold": 0.7 + "confidenceThreshold": 0.7, + // Сложные/неуверенные решения Jev получают второе мнение чат-модели + // вместо эскалации к человеку + "escalationReviewer": { + "model": "deepseek/deepseek-flash", + "variant": "none", + "outputFormat": "json_schema" + }, + // Профили наших агентов: снимает "actor identity partial" у ревьюера + "actorProfiles": { + "safe-build": "workspace", + "safe-plan": "read-only" + } }