Воркеры и 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, приоритизация |
Типы воркеров
- chat — turn-based разговор с полной историей контекста. Воркер получает всю предыдущую переписку и отвечает как собеседник.
- terminal — streaming выполнение с tool events. Воркер работает как терминальная сессия, выполняя инструменты последовательно и транслируя прогресс в реальном времени.
Создание кастомного воркера
Кастомные воркеры описываются в файле 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 и автоматически подбирает наиболее релевантные:
- Trigger match (+2 балла) — прямое вхождение слова-тригера из сообщения
- Keyword match (+1 балл) — семантическая близость по ключевым словам
- Top-5 по сумме баллов injected как
SKILLS_HINTв промпт воркера
Пример
Сообщение: "review the git commit for security"
code-review: trigger"review"найден → +2 баллаgit-manager: keyword"commit"найден → +1 балл- Результат:
code-review(2),git-manager(1) injected в промпт
Формат реестра скилов
{
"name": "code-review",
"triggers": ["review", "audit", "security"],
"keywords": ["vulnerability", "OWASP", "XSS"],
"agents": ["summer"],
"category": ["complex"]
}
triggers— слова, точно указывающие на скил (высокий приоритет)keywords— дополнительные термины для семантической связиagents— какие воркеры могут использовать этот скилcategory— классификация (simple,complex,critical)
Learnings — Память коррекций
Как создаются?
Learnings — это accumulated правила, возникающие из обратной связи:
- Thumbs-down (👎) — автоматически создаётся learning с source
"negative"на основе проблемного ответа - Fix It — повторный запуск задачи генерирует learning с source
"fixit" - Ручные — архитектурные решения и правила, 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...
Как используются?
- Загружаются при старте каждой сессии воркера
- Injected в GSD-промпт Developer (бюджет — 2000 символов)
- Новейшие правила — первыми (приоритет по времени)
- Действуют как иммунная память — ошибки, совершённые однажды, не повторяются в следующих сессиях
Karpathy Loop — Ночное самосовершенствование
Автоматический цикл улучшения скилов, вдохновлённый идеями Андрея Карпатого об iterative self-improvement.
Как работает?
Каждую ночь в 3:00 UTC запускается автоматический pipeline:
- Сбор метрик — считывает
quality-metrics.jsonкаждого проекта - Поиск проблемных скилов — фильтрует скилы с success rate < 80% или количеством negative > positive feedback
- Sage анализ — Haiku генерирует улучшенную версию скила на основе собранных ошибок
- Blind A/B тест — 3 сценария, рандомизированный порядок, dual scoring:
- Eval rules (60% веса) + LLM judge (40% веса)
- Создание PR — если новая версия побеждает (
new_wins > old_wins), создаётся pull request - Отчёт 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
}
]
}
Эти метрики позволяют системе объективно определять, какие скилы требуют улучшения, и отслеживать прогресс после обновлений.