Workery i Intelligence Layer

Arc OS używa systemu workerów do rozdziału zadań między wyspecjalizowane agenty AI, a Intelligence Layer zapewnia jakość ich odpowiedzi przez cztery moduły: Binary Evals, Context Router, Learnings i Karpathy Loop.


System workerów

Każdy worker to osobny agent AI z określoną rolą, modelem i zestawem narzędzi. Workery działają w ramach projektu i są dostępne przez Workspace UI lub komendy Telegram (/c, /d, /w:worker_id).

Wbudowane workery

Worker ID Model Typ Max Turns Narzędzia Przeznaczenie
Consultant consultant Sonnet 4.5 chat 10 Read, Glob, Grep, WebSearch, WebFetch, Bash Doradca strategiczny, analiza, Q&A
Developer developer Opus 4.6 terminal 20 Wszystkie Realizacja zadań, kod, deploy
UI/UX Designer ui-designer Sonnet 4.5 chat 8 Read, Glob, Grep, WebFetch Design, audyt UX
Knowledge Archivist archivist Sonnet 4.5 terminal 15 Read, Glob, Grep, Write, Edit Dokumentacja, wiki
Sentinel sentinel Sonnet 4.5 chat 5 Read, Glob, Grep, WebSearch, WebFetch Bezpieczeństwo, audyt
Product Owner product-owner Sonnet 4.5 chat 5 Read, Glob, Grep, WebSearch, WebFetch Roadmap, priorytetyzacja

Typy workerów

Tworzenie własnego workera

Niestandardowe workery opisuje się w pliku config/workers_registry.json. Każdy wpis definiuje zachowanie agenta:

{
  "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
}

Pola konfiguracji

Pole Typ Opis
id string Unikalny identyfikator workera, używany w komendach (/w:id)
label string Wyświetlana nazwa w UI
icon string Emoji-ikona awatara
type "chat" | "terminal" Tryb pracy (patrz wyżej)
model string Model Claude (claude-sonnet-4-5, claude-opus-4-6, claude-haiku-3-5)
max_turns number Maksymalna liczba cykli tool-use na jedną odpowiedź
tools "all" | string[] Dostępne narzędzia. "all" daje pełny zestaw
system_prompt string Inline system prompt
system_prompt_skill string Ścieżka do pliku z system promptem (alternatywa dla inline)
prompt_style "history" | "gsd" Styl promptowania: history zachowuje kontekst, gsd — task-oriented
output_format "text" | "stream-json" Format wyjścia
focus_dirs string[] Katalogi, na których skupia się worker
log_category string Kategoria do logowania
builtin boolean true dla wbudowanych workerów (nie można ich usunąć przez UI)

Binary Evals — Walidacja odpowiedzi

Czym jest?

Deklaratywne reguły sprawdzania jakości odpowiedzi workerów. Każda reguła jest deterministyczna (bez AI), działa natychmiastowo i nie blokuje odpowiedzi. Wyniki mają severity warning lub info — informują, ale nie zatrzymują.

6 typów reguł

Typ Opis Przykład
string_contains Odpowiedź zawiera podciąg "verdict" w code review
string_not_contains Odpowiedź NIE zawiera podciągu Brak --force w output
regex_match Odpowiedź pasuje do regex Zawiera metrykę (disk|RAM|CPU)
regex_not_match Odpowiedź NIE pasuje do regex Brak credentials w output
max_length Długość <= wartości Odpowiedź do 5000 znaków
min_length Długość >= wartości Odpowiedź minimum 1000 znaków

Format pliku evals

Plik umieszcza się obok skilla: 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"
    }
  ]
}

Każda reguła ma unikalny id, czytelną dla człowieka nazwę name, jeden z 6 typów, value do porównania i severity (warning lub info).


Context Router — Automatyczny dobór skilli

Jak działa?

Przy każdej wiadomości Context Router ocenia wszystkie skille z skills/_registry.json i automatycznie dobiera najbardziej trafne:

  1. Trigger match (+2 punkty) — bezpośrednie wystąpienie słowa-triggera z wiadomości
  2. Keyword match (+1 punkt) — semantyczna bliskość na podstawie słów kluczowych
  3. Top-5 według sumy punktów jest wstrzykiwane jako SKILLS_HINT do promptu workera

Przykład

Wiadomość: "review the git commit for security"

Format rejestru skilli

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

Learnings — Pamięć korekt

Jak powstają?

Learnings to skumulowane reguły wynikające z informacji zwrotnej:

  1. Thumbs-down (👎) — automatycznie tworzy learning ze źródłem "negative" na podstawie problematycznej odpowiedzi
  2. Fix It — ponowne uruchomienie zadania generuje learning ze źródłem "fixit"
  3. Ręczne — decyzje architektoniczne i reguły, źródło "manual" lub "architecture"

Format pliku

Plik learnings.md w katalogu głównym projektu:

# 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...

Jak są używane?


Karpathy Loop — Nocne samodoskonalenie

Automatyczny cykl ulepszania skilli, zainspirowany ideami Andreja Karpathy'ego o iterative self-improvement.

Jak działa?

Co noc o 3:00 UTC uruchamia się automatyczny pipeline:

  1. Zbieranie metryk — odczytuje quality-metrics.json każdego projektu
  2. Wyszukiwanie problematycznych skilli — filtruje skille z success rate < 80% lub liczbą negative > positive feedback
  3. Analiza Sage — Haiku generuje ulepszoną wersję skilla na podstawie zebranych błędów
  4. Ślepy test A/B — 3 scenariusze, losowa kolejność, dual scoring:
    • Reguły Eval (60% wagi) + LLM judge (40% wagi)
  5. Tworzenie PR — jeśli nowa wersja wygrywa (new_wins > old_wins), tworzony jest pull request
  6. Raport CEO — wyniki trafiają na Telegram do ostatecznej decyzji

Metryki jakości

Każdy projekt akumuluje statystyki w 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
    }
  ]
}

Te metryki pozwalają systemowi obiektywnie określać, które skille wymagają poprawy, i śledzić postęp po aktualizacjach.