Files
openchamber/packages/docs/content/docs/pl/session-goals.mdx
T
Bohdan Triapitsyn bb45164ae8 feat: session goals - server-driven goal loop with independent small-model audit (#2148)
Arm the target button in the composer and the next prompt becomes a goal:
the server keeps the session working toward it (idle tick -> small-model
audit -> continuation) until the objective is verifiably complete, blocked,
or out of budget — even with the UI closed.

Server (packages/web/server/lib/session-goal):
- event-driven loop on the global SSE hub; goal state lives in
  session.metadata.openchamber.goal (merge-safe patches, stale-write guard
  by goal id), so it survives restarts and syncs to every client for free
- the small-model audit (objective + last assistant turn only, language
  pinned to the objective) is the sole termination authority; blocked needs
  3 consecutive verdicts, audit outages tolerate one unaudited continuation
  then stop the goal as resumable-blocked
- hard stops: optional token budget, auto-continuation cap (Resume grants a
  fresh allowance), turn errors; user abort pauses the goal instead of
  blocking it, and resuming over an aborted tail nudges immediately
- token accounting as a snapshot of the latest turn (input + cache.read +
  output), goal-relative via a creation baseline and segmented across
  compactions; a compaction summary skips the audit and continues
- continuations reuse the session's own provider/model/agent/variant

UI:
- three-mode target button (arm / disarm / manage dialog), informational
  goal strip with inline pause/resume and an Evaluating indicator, sidebar
  state glyph, objective length counter (2000-char server clamp),
  read-only completed goals
- goal entry points: composer (sessions and drafts), start-new-session-
  from-answer dialog, plan implement dialog (plan content becomes the
  objective), scheduled tasks (Run as goal + budget)
- Settings -> Chat -> Goal: feature toggle + default token budget with
  three-layer parity (web server, client persistence, VS Code bridge);
  VS Code renders goal state but hides the entry points (the loop runs in
  the web server only)

Notifications: per-turn "ready" notifications are suppressed while a goal
is active; settling sends one final notification (desktop, web-push, APNs
generic titles with the session name as body) honoring the completion
toggle. Error/question/permission notifications are untouched.

Docs: user guide (session-goals) in all 9 locales + sidebar entry,
scheduled-tasks cross-reference, server module DOCUMENTATION.md.
2026-07-12 01:23:22 +03:00

74 lines
5.4 KiB
Plaintext

---
title: Cele sesji
description: Zamień prompt w cel, nad którym agent pracuje automatycznie.
---
# Cele sesji
Cel zamienia jeden prompt w linię mety. Zamiast popychać agenta słowem „kontynuuj" po każdej odpowiedzi, ustawiasz cel raz — a OpenChamber automatycznie prowadzi sesję w jego stronę, sprawdzając postęp niezależnym audytorem po każdej turze. Praca trwa nawet pod twoją nieobecność.
## Rozpoczęcie celu
1. Naciśnij przycisk celu (tarczę) w kompozytorze. Zapala się — tryb celu jest uzbrojony.
2. Napisz prompt i wyślij. Ta wiadomość staje się treścią celu.
Działa to tak samo w istniejącej sesji i w szkicu nowej: uzbrój tarczę, napisz pierwszą wiadomość, wyślij — nowa sesja startuje z już aktywnym celem.
### Inne sposoby rozpoczęcia celu
- **Z odpowiedzi agenta**: w oknie „Start new session from this answer" zaznacz **Uruchom jako cel** — odpowiedź zostaje przekazana jako zadanie, które nowa sesja wykonuje do końca (połącz z **Create worktree**, aby uzyskać izolowane uruchomienie).
- **Z planu**: implementując zapisany plan w nowej sesji lub worktree, zaznacz **Uruchom jako cel** w oknie dialogowym. Treścią celu staje się zawartość planu, więc audytor ocenia postęp względem samego planu.
- **Według harmonogramu**: zaznacz **Uruchom jako cel** w [zaplanowanym zadaniu](/scheduled-tasks/), aby cykliczne uruchomienia doprowadzały prompt do końca.
## Formułuj cel samowystarczalnie
Audytor postępu widzi tylko treść celu i ostatnią odpowiedź agenta — bez historii czatu. Sformułuj więc wiadomość-cel tak, aby osoba bez kontekstu rozmowy zrozumiała, jak wygląda stan końcowy.
- Dobrze: „Dodaj testy dla modułu eksportu i doprowadź cały zestaw testów do zielonego stanu."
- Słabiej: „Napraw to" albo „Kontynuuj z tamtym pomysłem."
Do drobnych kontekstowych poleceń cel nie jest potrzebny — wyślij zwykłą wiadomość.
## Jak to działa
Gdy agent się zatrzyma i sesja na chwilę ucichnie, OpenChamber:
1. Prosi mały, tani model o audyt ostatniej tury względem celu: kontynuować, gotowe czy utknięto?
2. Jeśli werdykt to „kontynuować", wysyła prompt kontynuacji i agent wraca do pracy.
3. Jeśli cel jest weryfikowalnie osiągnięty, cel się kończy, a ty dostajesz powiadomienie.
4. Jeśli agent naprawdę utknął (potrzebuje twojego udziału), cel zatrzymuje się jako zablokowany — ale dopiero gdy audytor powie to trzy razy z rzędu, więc jednorazowa przeszkoda nigdy nie kończy celu.
Są też twarde bezpieczniki: opcjonalny budżet tokenów, limit automatycznych kontynuacji i stop przy błędzie tury. Jeśli kontekst sesji zostanie skompaktowany w trakcie pracy, cel po prostu trwa dalej — uderzenie w okno kontekstu to dowód, że praca nie była skończona.
### Zatrzymywanie i wznawianie
- **Przycisk stop** przerywa bieżącą turę i wstrzymuje cel — twoje wyraźne „stop" zawsze wygrywa z pętlą.
- **Wstrzymaj** na pasku celu robi to samo z drugiej strony: wstrzymuje cel i zatrzymuje bieżącą turę.
- Podczas wstrzymania rozmawiaj normalnie — pętla nie przeszkadza.
- **Wznów** ponownie uzbraja pętlę: w bezczynnej sesji zachęta do kontynuacji wychodzi natychmiast; jeśli agent akurat pracuje, pętla po cichu podłącza się przy jego następnej przerwie.
## Podgląd i zarządzanie
- Pasek nad kompozytorem pokazuje ostatnią notatkę postępu, status i zużycie tokenów, wraz z przyciskiem wstrzymaj/wznów. Gdy agent się zatrzymał, a cel jest aktywny, pasek pokazuje wirujące **Ocenianie…** — to okno ciszy i trwający audyt.
- Przycisk-tarcza świeci, póki cel działa (niebieski), zielenieje po ukończeniu, a czerwienieje przy zablokowaniu lub wyczerpaniu budżetu. Naciśnij go, aby otworzyć okno celu: edytuj treść lub budżet albo usuń cel. Ukończony cel jest tylko do odczytu — usuń go, a potem uzbrój nowy.
- W panelu bocznym sesji obok daty sesji pojawia się mała tarcza w kolorze stanu celu.
## Powiadomienia
Póki cel jest aktywny, powiadomienia „agent gotowy" po każdej turze są wyciszone — powtarzałyby tylko kontynuacje samej pętli. Gdy cel się rozstrzygnie (ukończony, zablokowany lub budżet wyczerpany), dostajesz zamiast tego jedno końcowe powiadomienie — na desktopie i jako push mobilny. Respektuje to samo ustawienie „powiadamiaj o ukończeniu"; prośby o uprawnienia, pytania i powiadomienia o błędach działają jak zwykle.
## Budżet tokenów
W **Ustawienia → Czat → Cel** możesz ustawić domyślny budżet tokenów dla nowych celów. Po osiągnięciu budżetu cel zatrzymuje się jako „budżet wyczerpany" zamiast wydawać więcej — możesz podnieść budżet i wznowić z okna celu.
## Miej na uwadze
- Pętla celu działa na serwerze OpenChamber, nie w karcie przeglądarki. Zamknij kartę, zablokuj telefon — agent pracuje dalej, a gdy cel się rozstrzygnie, dostaniesz powiadomienie. Serwer (aplikacja desktopowa lub proces `openchamber`) musi pozostać uruchomiony.
- Cele używają dostawcy i modelu twojej własnej sesji, łącznie z wywołaniami audytora — nic nie trafia do dostawców, których już nie używasz.
- Jeden cel na sesję naraz.
## Powiązane
- [Zaplanowane zadania](/scheduled-tasks/) — uruchamianie promptu według harmonogramu; włącz tam „Uruchom jako cel", aby zaplanowane uruchomienie doprowadziło prompt do końca
- [Powiadomienia](/notifications/) — jak dowiadujesz się o ukończonym celu