Воркеры и 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 Документация, вики
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
    }
  ]
}

Эти метрики позволяют системе объективно определять, какие скилы требуют улучшения, и отслеживать прогресс после обновлений.