Files
openchamber/packages/docs/content/docs/es/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.9 KiB
Plaintext

---
title: Objetivos de sesión
description: Convierte un prompt en un objetivo hacia el que el agente trabaja automáticamente.
---
# Objetivos de sesión
Un objetivo convierte un solo prompt en una línea de meta. En lugar de empujar al agente con "continúa" tras cada respuesta, defines el objetivo una vez — y OpenChamber mantiene la sesión trabajando hacia él automáticamente, comprobando el progreso con un auditor independiente después de cada turno. Sigue funcionando incluso mientras no estás.
## Iniciar un objetivo
1. Pulsa el botón de diana en el compositor. Se ilumina — el modo objetivo está armado.
2. Escribe tu prompt y envíalo. Ese mensaje se convierte en el objetivo.
Funciona igual en una sesión existente y en un borrador de sesión nueva: arma la diana, escribe el primer mensaje, envía — la nueva sesión arranca con el objetivo ya activo.
### Más formas de iniciar un objetivo
- **Desde una respuesta del agente**: en el diálogo "Start new session from this answer", marca **Ejecutar como objetivo** — la respuesta se entrega como una tarea que la nueva sesión ejecuta hasta completarla (combínalo con **Create worktree** para una ejecución aislada).
- **Desde un plan**: al implementar un plan guardado en una sesión o worktree nuevos, marca **Ejecutar como objetivo** en el diálogo. El objetivo lleva el contenido del plan, así que el auditor juzga el progreso contra el plan real.
- **Según un horario**: marca **Ejecutar como objetivo** en una [tarea programada](/scheduled-tasks/) para que las ejecuciones recurrentes persigan su prompt hasta completarlo.
## Escribe un objetivo autocontenido
El auditor de progreso solo ve tu objetivo y la última respuesta del agente — no el historial del chat. Redacta el mensaje-objetivo de forma que alguien sin el contexto de la conversación entienda cómo es el estado final.
- Bien: "Añade tests para el módulo de exportación y haz que toda la suite pase."
- No tan bien: "Arréglalo" o "Continúa con esa idea."
Para pequeños ajustes contextuales no necesitas un objetivo — envía un mensaje normal.
## Cómo funciona
Cuando el agente se detiene y la sesión queda en silencio un momento, OpenChamber:
1. Pide a un modelo pequeño y barato que audite el último turno contra el objetivo: ¿seguir, hecho o atascado?
2. Si el veredicto es "seguir", envía un prompt de continuación y el agente retoma el trabajo.
3. Si el objetivo se ha logrado de forma verificable, el objetivo se completa y recibes una notificación.
4. Si el agente está realmente atascado (necesita tu intervención), el objetivo se detiene como bloqueado — pero solo después de que el auditor lo diga tres veces seguidas, así que un tropiezo puntual nunca termina el objetivo.
También hay topes de seguridad: un presupuesto de tokens opcional, un límite de continuaciones automáticas y una parada ante errores de turno. Si el contexto de la sesión se compacta a mitad del trabajo, el objetivo simplemente continúa — chocar con la ventana de contexto es prueba de que el trabajo no había terminado.
### Detener y reanudar
- El **botón de detener** aborta el turno en curso y pausa el objetivo — tu "para" explícito siempre gana al bucle.
- **Pausar** en la franja del objetivo hace lo mismo desde el otro lado: pausa el objetivo y detiene el turno en curso.
- Mientras está pausado, chatea con normalidad — el bucle no interfiere.
- **Reanudar** rearma el bucle: en una sesión inactiva el empujón de continuación sale de inmediato; si el agente está trabajando, el bucle se reengancha en su siguiente pausa.
## Observar y gestionar
- La franja sobre el compositor muestra la última nota de progreso, el estado y el uso de tokens, con un botón de pausar/reanudar integrado. Cuando el agente se ha detenido y el objetivo sigue activo, la franja muestra un **Evaluando…** giratorio — es la ventana de silencio y la auditoría en marcha.
- El botón de diana permanece encendido mientras el objetivo corre (azul), se vuelve verde al completarse y rojo cuando está bloqueado o sin presupuesto. Púlsalo para abrir el diálogo del objetivo: edita el objetivo o el presupuesto, o elimínalo. Un objetivo completado es de solo lectura — elimínalo y arma uno nuevo.
- En la barra lateral de sesiones aparece una pequeña diana junto a la fecha de la sesión, coloreada según el estado del objetivo.
## Notificaciones
Mientras un objetivo está activo, las notificaciones por turno de "agente listo" se suprimen — solo harían eco de las continuaciones del propio bucle. Cuando el objetivo se resuelve (completado, bloqueado o presupuesto alcanzado) recibes una única notificación final, en el escritorio y como push móvil. Obedece el mismo ajuste de "notificar al completar"; las solicitudes de permisos, las preguntas y las notificaciones de error siguen funcionando con normalidad.
## Presupuesto de tokens
En **Ajustes → Chat → Objetivo** puedes definir un presupuesto de tokens predeterminado para nuevos objetivos. Al alcanzarlo, el objetivo se detiene como "presupuesto alcanzado" en lugar de gastar más — puedes subir el presupuesto y reanudar desde el diálogo del objetivo.
## Ten en cuenta
- El bucle del objetivo corre en el servidor de OpenChamber, no en tu pestaña del navegador. Cierra la pestaña, bloquea el teléfono — el agente sigue trabajando y recibirás una notificación cuando el objetivo termine. El servidor (app de escritorio o proceso `openchamber`) debe seguir en marcha.
- Los objetivos usan el proveedor y modelo de tu propia sesión, incluidas las llamadas del auditor — nada sale hacia proveedores que no uses ya.
- Un objetivo por sesión a la vez.
## Relacionado
- [Tareas programadas](/scheduled-tasks/) — ejecutar un prompt según un horario; activa allí "Ejecutar como objetivo" para que la ejecución programada persiga su prompt hasta completarlo
- [Notificaciones](/notifications/) — cómo te enteras de un objetivo terminado