chore(agents): usage-opt (Sonnet + throttle) + консервативный рефактор промтов #889
5 changed files with 27 additions and 8 deletions
|
|
@ -332,6 +332,17 @@ Forgejo UI (`workflow_dispatch`).
|
|||
3. **Реальный потолок — usage-лимиты подписки** (Max 5h/weekly), не деньги-за-тик. Упёрся в
|
||||
лимит → удлини интервалы латентных окон ИЛИ `pause-bots`, когда не работаешь.
|
||||
|
||||
### Usage-limit awareness (weekly cap) — критично для /loop окон
|
||||
Claude имеет ДВА лимита: 5h-rolling (сам сбрасывается каждые ~5ч) + **недельный cap** (накопительный, НЕ откатывается до weekly-reset). Автономные /loop окна — паттерн, выжигающий НЕДЕЛЬНЫЙ счётчик: каждая 5h-сессия откатывается, но недельная сумма растёт и «вдруг» вырубает в середине недели до сброса.
|
||||
**Правила экономии недельного бюджета:**
|
||||
- НЕ держать все окна (analyst/backend/reviewer/qa/frontend) параллельно 24/7 — запускать под текущую нагрузку очереди.
|
||||
- **Idle-backoff:** если pickup-query пуст N тиков подряд (≈3) → увеличить /loop-интервал ×2; при дальнейшей пустоте → **остановить loop** (не спиннить пустое окно на дефолтном интервале — горит бюджет впустую). Перезапустить, когда появится работа.
|
||||
- Пустая очередь + нет fixup-PR → выходить из loop, а не крутиться вхолостую.
|
||||
- Тяжёлые batch-прогоны — вне пиковых часов (≈5–11 PT) при возможности.
|
||||
- Перед длинной автономной сессией глянуть Settings → Usage (оба счётчика + дата weekly-reset).
|
||||
- **Окна — на Sonnet, не Opus** (`start-bot.ps1` уже запускает с `--model sonnet`). Opus — только main-оркестратору. Sonnet-пул отдельный, недельный All-models (Opus) пул так не горит.
|
||||
- **Context-hygiene (forgejo-MCP результаты = ~47% расхода, остаются в контексте):** `/compact` после всплеска forgejo-вызовов (много PR/issue/label за тик); `/clear` между независимыми issue в loop — флашит накопившиеся MCP-результаты, иначе каждый тик дороже при контексте >150k.
|
||||
|
||||
## Error escalation
|
||||
|
||||
| Ошибка | Действие |
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ name: auto-code-reviewer
|
|||
description: "[DRAFT — autonomous loop only] Code reviewer + merge authority в режиме /loop 2m. Читает PR diff, выносит verdict, мерджит APPROVE. НЕ для invoke через Task tool — для запуска как persona в standalone Claude Code window."
|
||||
status: draft
|
||||
created_at: 2026-05-27
|
||||
model: opus
|
||||
model: sonnet
|
||||
tools: Read, Glob, Grep, Bash, mcp__obsidian__obsidian_simple_search, mcp__obsidian__obsidian_get_file_contents, mcp__postgres-gendesign__list_objects, mcp__postgres-gendesign__get_object_details, mcp__postgres-gendesign__explain_query, mcp__postgres-gendesign__analyze_query_indexes
|
||||
---
|
||||
|
||||
|
|
@ -12,11 +12,11 @@ tools: Read, Glob, Grep, Bash, mcp__obsidian__obsidian_simple_search, mcp__obsid
|
|||
> **DRAFT.** Эта persona НЕ для Task-tool spawn. Только как `--append-system-prompt`
|
||||
> для standalone окна с `/loop 2m`.
|
||||
>
|
||||
> **Модель = модель окна.** Frontmatter `model: opus` действует ТОЛЬКО при Task-spawn (запрещён).
|
||||
> В standalone `/loop`-окне модель = модель окна. Reviewer держит merge-authority и всю
|
||||
> judgment-нагрузку → запускай это окно в Opus 4.8 осознанно.
|
||||
> **Модель = модель окна.** Frontmatter `model: sonnet` действует ТОЛЬКО при Task-spawn (запрещён).
|
||||
> В standalone `/loop`-окне модель = модель окна (`start-bot.ps1` запускает с `--model sonnet`).
|
||||
> Reviewer работает на Sonnet (экономия Opus-пула); для критичных PR есть deep-code-reviewer (Opus, вручную).
|
||||
|
||||
> **Forgejo API → `mcp__forgejo__*` tools** (primary; полный mapping в [[_autonomous_pickup]] § «Forgejo операции»). curl — только fallback. Запуск окна: `scripts/start-bot.ps1 reviewer` (в Opus 4.8).
|
||||
> **Forgejo API → `mcp__forgejo__*` tools** (primary; полный mapping в [[_autonomous_pickup]] § «Forgejo операции»). curl — только fallback. Запуск окна: `scripts/start-bot.ps1 reviewer` (Sonnet — Opus-пул не горит).
|
||||
|
||||
## Role
|
||||
|
||||
|
|
|
|||
|
|
@ -104,6 +104,13 @@ Action по типу:
|
|||
|
||||
Только `prod_down` тригерит global pause — иначе flaky тест убил бы весь pipeline.
|
||||
|
||||
### Non-UI-testable issue в status/qa (terminal — anti-stuck)
|
||||
Если issue в `status/qa` — backend/data/scraper/db-фикс БЕЗ UI-поверхности (нет user golden-path для Playwright):
|
||||
1. Сначала попробуй верифицировать доступным каналом по scope-таблице (API curl / postgres MCP — health + sample query / проверка эффекта фикса в БД).
|
||||
2. Верифицировано → `+status/done -status/qa` + close + коммент «verified via <канал> (API/SQL), no UI surface».
|
||||
3. Не верифицируемо headless вообще (чистый рефактор/тех-долг/CI-covered) → `+status/done -status/qa` + close + коммент «no UI surface — covered by unit/CI tests, no headless smoke applicable».
|
||||
**НЕ оставлять такие issue в status/qa на кэш-цикле** — давать терминал, иначе копятся бесконечно.
|
||||
|
||||
## Cost-saving
|
||||
|
||||
- Playwright sessions долгие — НЕ запускать смок если кешируем (issue был status/qa в прошлом тике и реально не изменился)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ name: auto-resolver
|
|||
description: "[DRAFT — autonomous loop only] Human-proxy resolver в режиме /loop 15m. Снимает блокеры issues с label needs-human, используя capabilities, которых нет у headless-ботов (dev-IP, куки/сессии, SSH на прод, прямой доступ к БД). НЕ для invoke через Task tool — для запуска как persona в standalone Claude Code window НА МАШИНЕ ПОЛЬЗОВАТЕЛЯ."
|
||||
status: draft
|
||||
created_at: 2026-05-30
|
||||
model: opus
|
||||
model: sonnet
|
||||
tools: Read, Write, Edit, Glob, Grep, Bash, mcp__obsidian__obsidian_simple_search, mcp__obsidian__obsidian_get_file_contents, mcp__postgres-gendesign__execute_sql, mcp__postgres-gendesign__list_objects, mcp__postgres-gendesign__get_object_details, mcp__postgres-tradein__execute_sql, mcp__postgres-tradein__list_objects, mcp__postgres-tradein__get_object_details, mcp__playwright__browser_navigate, mcp__playwright__browser_snapshot, mcp__playwright__browser_evaluate, mcp__playwright__browser_click, mcp__playwright__browser_type, mcp__playwright__browser_close
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -70,7 +70,8 @@ Write-Host "OK bot=$bot" -ForegroundColor Green
|
|||
Write-Host "OK identity + tokens + forgejo-bot remote" -ForegroundColor Green
|
||||
Write-Host "OK per-role MCP (--strict-mcp-config): $mcpConfig" -ForegroundColor Green
|
||||
Write-Host ""
|
||||
Write-Host "В окне Claude (Opus 4.8 для reviewer): /work-as-$Role -> затем /loop" -ForegroundColor Cyan
|
||||
Write-Host "В окне Claude (Sonnet — экономия недельного Opus-пула): /work-as-$Role -> затем /loop" -ForegroundColor Cyan
|
||||
|
||||
# --strict-mcp-config: грузим ТОЛЬКО серверы этой роли (игнорируем .mcp.json + ~/.claude.json)
|
||||
claude --strict-mcp-config --mcp-config "$mcpConfig"
|
||||
# --model sonnet: loop-роли на Sonnet (отдельный пул); Opus оставляем main-оркестратору
|
||||
claude --model sonnet --strict-mcp-config --mcp-config "$mcpConfig"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue