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.
74 lines
5.4 KiB
Plaintext
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
|