Воркери та Intelligence Layer

Arc OS використовує систему воркерів для розподілу задач між спеціалізованими AI-агентами, а Intelligence Layer забезпечує якість їхніх відповідей через чотири модулі: Binary Evals, Context Router, Learnings та Karpathy Loop.


Система воркерів

Кожен воркер — це окремий AI-агент з визначеною роллю, моделлю та набором інструментів. Воркери працюють у рамках проєкту і доступні через Workspace UI або Telegram-команди (/c, /d, /w:worker_id).

Вбудовані воркери

Воркер ID Модель Тип Max Turns Інструменти Призначення
Consultant consultant Sonnet 4.5 chat 10 Read, Glob, Grep, WebSearch, WebFetch, Bash Стратегічний радник, аналіз, Q&A
Developer developer Opus 4.6 terminal 20 Всі Виконання задач, код, деплой
UI/UX Designer ui-designer Sonnet 4.5 chat 8 Read, Glob, Grep, WebFetch Дизайн, UX аудит
Knowledge Archivist archivist Sonnet 4.5 terminal 15 Read, Glob, Grep, Write, Edit Документація, wiki
Sentinel sentinel Sonnet 4.5 chat 5 Read, Glob, Grep, WebSearch, WebFetch Безпека, аудит
Product Owner product-owner Sonnet 4.5 chat 5 Read, Glob, Grep, WebSearch, WebFetch Roadmap, пріоритизація

Типи воркерів

Створення кастомного воркера

Кастомні воркери описуються у файлі config/workers_registry.json. Кожен запис визначає поведінку агента:

{
  "id": "my-worker",
  "label": "My Worker",
  "icon": "🔧",
  "type": "chat",
  "model": "claude-sonnet-4-5",
  "max_turns": 10,
  "tools": ["Read", "Glob", "Grep"],
  "system_prompt": "You are...",
  "focus_dirs": ["src/"],
  "builtin": false
}

Поля конфігурації

Поле Тип Опис
id string Унікальний ідентифікатор воркера, використовується в командах (/w:id)
label string Відображуване ім'я у UI
icon string Emoji-іконка для аватару
type "chat" | "terminal" Режим роботи (див. вище)
model string Claude модель (claude-sonnet-4-5, claude-opus-4-6, claude-haiku-3-5)
max_turns number Максимальна кількість tool-use циклів за одну відповідь
tools "all" | string[] Доступні інструменти. "all" дає повний набір
system_prompt string Inline системний промпт
system_prompt_skill string Шлях до файлу з системним промптом (альтернатива inline)
prompt_style "history" | "gsd" Стиль промптування: history зберігає контекст, gsd — task-oriented
output_format "text" | "stream-json" Формат виводу
focus_dirs string[] Директорії, на які воркер фокусується
log_category string Категорія для логування
builtin boolean true для вбудованих воркерів (не видаляються через UI)

Binary Evals — Валідація відповідей

Що це?

Декларативні правила перевірки якості відповідей воркерів. Кожне правило — детерміністичне (без AI), працює миттєво і не блокує відповідь. Результати мають severity warning або info — вони інформують, а не зупиняють.

6 типів правил

Тип Опис Приклад
string_contains Відповідь містить підрядок "verdict" в code review
string_not_contains Відповідь НЕ містить підрядок Немає --force в output
regex_match Відповідь відповідає regex Містить метрику (disk|RAM|CPU)
regex_not_match Відповідь НЕ відповідає regex Немає credentials в output
max_length Довжина <= значення Відповідь до 5000 символів
min_length Довжина >= значення Відповідь мінімум 1000 символів

Формат файлу evals

Файл розміщується поруч із навичкою: skills/{skill_name}/{skill_name}.evals.json

{
  "version": 1,
  "skill": "code-review",
  "rules": [
    {
      "id": "cr-001",
      "name": "Must return JSON verdict",
      "type": "string_contains",
      "value": "\"verdict\"",
      "severity": "warning"
    }
  ]
}

Кожне правило має унікальний id, людиночитабельний name, один із 6 типів, value для порівняння та severity (warning або info).


Context Router — Автопідбір навичок

Як працює?

При кожному повідомленні Context Router скорить всі навички з skills/_registry.json і автоматично підбирає найрелевантніші:

  1. Trigger match (+2 бали) — пряме входження слова-тригеру з повідомлення
  2. Keyword match (+1 бал) — семантична близькість за ключовими словами
  3. Top-5 за сумою балів injected як SKILLS_HINT у промпт воркера

Приклад

Повідомлення: "review the git commit for security"

Формат реєстру навичок

{
  "name": "code-review",
  "triggers": ["review", "audit", "security"],
  "keywords": ["vulnerability", "OWASP", "XSS"],
  "agents": ["summer"],
  "category": ["complex"]
}

Learnings — Пам'ять корекцій

Як створюються?

Learnings — це accumulated правила, що виникають із зворотного зв'язку:

  1. Thumbs-down (👎) — автоматично створюється learning з source "negative" на основі проблемної відповіді
  2. Fix It — повторний запуск задачі генерує learning з source "fixit"
  3. Ручні — архітектурні рішення та правила, source "manual" або "architecture"

Формат файлу

Файл learnings.md у корені проєкту:

# Learnings
> Auto-generated. Injected into GSD prompt at session start.

## Rules
- [2026-04-03T20:00:00Z] [architecture] Rule text here...
- [2026-04-04T10:00:00Z] [security] Another rule...

Як використовуються?


Karpathy Loop — Нічне самовдосконалення

Автоматичний цикл покращення навичок, натхненний ідеями Андрія Карпаті про iterative self-improvement.

Як працює?

Щоночі о 3:00 UTC запускається автоматичний pipeline:

  1. Збір метрик — зчитує quality-metrics.json кожного проєкту
  2. Пошук проблемних навичок — фільтрує навички з success rate < 80% або кількістю negative > positive feedback
  3. Sage аналіз — Haiku генерує покращену версію навички на основі зібраних помилок
  4. Blind A/B тест — 3 сценарії, рандомізований порядок, dual scoring:
    • Eval rules (60% ваги) + LLM judge (40% ваги)
  5. PR створення — якщо нова версія перемагає (new_wins > old_wins), створюється pull request
  6. Звіт CEO — результати надсилаються в Telegram для фінального рішення

Метрики якості

Кожен проєкт накопичує статистику у quality-metrics.json:

{
  "total_invocations": 42,
  "total_successes": 40,
  "total_feedback_positive": 35,
  "total_feedback_negative": 2,
  "avg_duration_ms": 15000,
  "skills": [
    {
      "name": "code-review",
      "applied_count": 5,
      "success_count": 4
    }
  ]
}

Ці метрики дозволяють системі об'єктивно визначати, які навички потребують покращення, і відстежувати прогрес після оновлень.