Volver a la app AltLegal AI Manual de uso

Manual de uso

Guía práctica para sacar el máximo provecho de AltLegal AI: chat, proyectos, adjuntos, casos de uso y herramientas del agente.

Visión general

AltLegal AI es la plataforma interna del estudio para trabajo asistido por IA con acceso al corpus legal chileno (BCN), documentos del cliente y el archivo histórico de causas. Tres conceptos básicos:

Flujo de trabajo típico

  1. Decide el contexto. ¿Es una pregunta puntual? Usa Nuevo chat. ¿Es trabajo continuo con un cliente? Crea o abre un Proyecto.
  2. Activa el caso de uso correcto si aplica (ej. pdp-redaccion-politica). Esto carga el prompt y restringe las herramientas a las relevantes.
  3. Adjunta los documentos del turno si necesitas que el agente razone sobre material concreto.
  4. Conversa. El agente puede invocar herramientas (buscar leyes, anonimizar, generar Doc).
  5. Registra el entregable cuando llegues a un draft que quieras conservar (botón "Guardar como entregable" o pidiéndoselo al agente).
  6. Aprueba (admin) y exporta a Google Doc para entregar al cliente.

Chat

El chat es la interfaz principal. Cada sesión tiene su propio contexto (mensajes, adjuntos, configuración del modelo) y queda guardada en Historial.

Crear una sesión

Tres formas:

Click en "Disponible" reusa la sesión existente. Si ya hiciste click en un paso y lo dejaste vacío, volver a clickear no crea una nueva sesión: te lleva a la que ya está abierta. Solo cuando no existe ninguna sesión para ese paso, se crea una.

Retomar y marcar como favorito

Asociar una sesión a un proyecto

Las sesiones que creaste con Nuevo chat caen en el grupo Otras sesiones del Historial — sin proyecto, sin cliente. Si después decides agruparlas bajo un proyecto, no necesitas re-crearlas: las puedes asociar post-hoc sin perder mensajes ni adjuntos.

  1. Abre la sesión que quieres mover (entrarás a la vista de chat).
  2. En la barra superior aparece el botón Asociar a proyecto. Solo se ve cuando la sesión no tiene proyecto asignado.
  3. Click → modal con los proyectos genéricos existentes (filtrables por nombre o cliente).
  4. Selecciona uno (barra lateral roja confirma la elección) y presiona Asociar.
  5. La sesión deja de aparecer en Otras sesiones y queda agrupada bajo el proyecto. El botón Ver proyecto reemplaza al de Asociar.
Restricciones intencionales.
  • Solo proyectos genéricos (sin trayectoria). No se puede mover a un proyecto PDP — eso ensucia la trazabilidad de los pasos.
  • Solo desde la vista del chat, no desde Historial.
  • No se permite crear un proyecto desde aquí; debe existir antes (sección Proyectos → Nuevo proyecto → tipo "Sin trayectoria").
  • La asociación es una sola vez: cambiar de proyecto o desasociar no está soportado hoy.
  • El caso_de_uso_id, mensajes, favorito y adjuntos previos se preservan intactos. Solo cambian matter_id y client_id (este último heredado del proyecto).

Vincular una causa judicial (Seguimiento de Causas — PJUD/JPL)

El módulo de Seguimiento de Causas Judiciales del estudio extrae diariamente la información de causas activas desde el Poder Judicial (PJUD) y los Juzgados de Policía Local (JPL). Cuando le preguntas al agente por una causa concreta (ej. "¿cuál fue la última causa fallada para Porsche en JPL Lo Barnechea?") la respuesta incluye los datos canónicos: Rol, Tribunal, Caratulado, Estado, Fallo, Fechas, Cliente, Actuario y Partes. El número de Rol queda como un link clickeable.

  1. Click en el Rol (aparece subrayado, color rojo del brand).
  2. La sesión se vincula a la causa: cliente_scope, tribunal_scope y un objeto causa_meta con todos los demás campos quedan guardados.
  3. El sidebar derecho cambia automáticamente a la variante "Causa judicial" y muestra todos los datos en bloques (Cliente, Rol, Tribunal, Caratulado, Estado, Fallo, Fechas, Actuario, Partes).
  4. El Rol queda marcado como vinculado (verde) — clickearlo de nuevo no hace nada hasta que cambies de sesión.
Mutuamente excluyente con proyecto/cliente. Una sesión puede estar vinculada a una causa judicial o a un proyecto/cliente, pero no a ambos. Si reasignas una sesión vinculada a causa hacia un proyecto desde el botón Reasignar, los campos causa_meta, cliente_scope y tribunal_scope se limpian.

Inyección automática de artefactos al contexto clave

Cuando una sesión de chat está vinculada a un proyecto PDP y al paso correspondiente, los artefactos aprobados que ese paso declara como inputs_requeridos se inyectan automáticamente al system prompt del agente. El abogado no necesita pegar el contexto entre pasos: la ficha del proyecto, la normativa aplicable, los formularios de levantamiento, el informe diagnóstico — todo lo que el paso N+1 necesita está disponible sin re-cargar.

Esto es lo que diferencia trabajar dentro de un proyecto vs en una sesión libre. En un proyecto, abrir el paso 100 (contexto-cliente) ya lleva la ficha-proyecto y la normativa-aplicable aprobadas; abrir el paso 110 (Sección I del informe) lleva además el contexto-cliente; y así sucesivamente.

Solo versiones aprobadas. El motor solo inyecta versiones aprobadas (status=aprobado), no borradores. Si un input declarado no tiene versión aprobada todavía, el paso queda locked en el stepper hasta que el abogado apruebe el draft anterior. Esto garantiza que cada paso se ejecute sobre material validado, no sobre borradores frescos sin revisión.

Sidebar de contexto de sesión

Al lado derecho del chat hay un panel colapsable que muestra todo lo que la app sabe de la sesión actual. Aparece automáticamente al abrir un chat con scope (proyecto, cliente, causa o caso de uso transversal). El estado abierto/cerrado se recuerda por usuario en localStorage.

El contenido cambia según el tipo de sesión (auto-detectado por el backend):

TipoCuándo aplicaQué muestra
Proyecto PDPSesión con matter_id y caso PDPCliente, proyecto, trayectoria, etapa y paso actual; estado de pasos por etapa; documentos adjuntos vs disponibles; artefactos aprobados y borradores; citas; link "Ver proyecto completo"
Causa judicialVinculada vía Rol clickeableCliente, Rol, Tribunal, Caratulado, Estado, Fallo, Fechas, Actuario, Partes y citas
Clienteclient_id sin matter_idCliente + RUT + matters activos asociados
TransversalCaso PDP sin proyecto (pdp-consulta-normativa, pdp-eipd, etc.)Identificador del caso de uso + citas
LibreSin scopeSidebar oculto — la sesión no tiene contexto que mostrar

Acciones disponibles desde el sidebar (variante Proyecto PDP):

Refresco automático. El sidebar derecho se refresca solo tras crear o aprobar un draft — no requiere F5. Cuando el agente invoca submit_artifact, el nuevo borrador aparece en "Borradores pendientes" en el siguiente render; al aprobarlo, salta a la lista de aprobados y el siguiente paso del stepper se desbloquea sin recargar.

Modelo en uso (pill + picker)

Junto al indicador de Contexto en la cabecera del chat aparece un pill con el nombre corto del modelo LLM activo (ej. Sonnet 4.6, 2.5 Pro). El pill cambia de color según el estado:

Click en el pill abre un menú con la cadena de modelos resuelta para el caso de uso. Cada opción incluye:

Al elegir uno distinto, el override aplica al siguiente turno (y todos los siguientes en esa misma sesión). Para volver al preferido, simplemente vuélvelo a elegir desde el menú: el override se limpia. Cambiar de sesión también lo limpia automáticamente.

Cuándo usar el override.
  • Iteración rápida sobre prompts costosos: pasar de Pro a Flash mientras refinas el contenido, y volver al Pro para la versión final.
  • Comparar respuestas entre modelos sobre la misma pregunta — útil para validar calidad antes de declarar un caso de uso "estable".
  • Diagnóstico cuando una respuesta sale rara: cambiar al fallback de la cadena verifica si el problema es del modelo o del prompt.

Dictado por voz

Junto al botón de enviar () hay un botón con ícono de micrófono que permite redactar el mensaje hablando. La transcripción aparece en tiempo real en el cuadro de texto y queda editable: el dictado nunca envía el mensaje por sí solo — tú decides cuándo presionar Enviar.

  1. Posiciona el cursor en el cuadro de chat (si ya hay texto, el dictado se concatena al final).
  2. Click en el botón micrófono. La primera vez el navegador pedirá permiso para usar el micrófono — concede acceso al sitio.
  3. El botón se vuelve rojo y pulsa: estás grabando. Habla con normalidad; las pausas cortas no detienen la captura.
  4. A medida que hablas, las palabras aparecen en el textarea (primero como hipótesis tentativas, luego se confirman).
  5. Click en el micrófono otra vez para detener. Revisa, corrige lo que haga falta y presiona Enviar.

Compatibilidad de navegador

NavegadorSoporteNotas
Chrome (Desktop / Android)Recomendado. Streaming en vivo, español chileno por defecto.
Safari (macOS / iOS)Funciona; usa el motor STT de Apple.
EdgeMismo motor que Chrome.
BraveNoBrave remueve las API keys de Google que requiere el reconocimiento de voz. Aunque apagues los Shields, no funciona. Para dictar, abre la app en Chrome.
FirefoxNoNo implementa la Web Speech API.

Si tu navegador no soporta dictado, el botón de micrófono no aparece: la app lo detecta y oculta el botón automáticamente.

Cómo funciona. El navegador captura el micrófono y transmite el audio en chunks al servicio de transcripción del proveedor (Google STT en Chrome, Apple en Safari) por una conexión cifrada. La transcripción regresa incrementalmente — por eso ves las palabras aparecer en vivo, distinto a apps que primero graban todo y después transcriben. AltLegal AI no almacena el audio: la grabación nunca toca nuestros servidores; solo recibimos el texto final cuando lo envías como mensaje.

Buenas prácticas

Errores frecuentes

Mensajes iniciales y de seguimiento

El primer mensaje sienta el tono. Sé específico sobre contexto, objetivo y formato esperado.

Buenos mensajes iniciales

Estoy preparando una EIPD para Empresa Modelo (sector retail, ~5.000
clientes activos). El tratamiento de riesgo es geolocalización por
fidelización. Ayúdame a identificar los riesgos inherentes y proponer
medidas mitigadoras según Ley 21.719.
Necesito redactar la cláusula de transferencia internacional para la
política de privacidad de un cliente que usa AWS (us-east-1). El cliente
ya nos firmó un acuerdo marco. Devuelve 2 alternativas: una conservadora
y otra estándar.

Buenos mensajes de seguimiento

Anti-patrones

Pasos multi-turno

Algunos casos de uso producen entregables muy extensos (Sección III de un Informe PDP, por ejemplo). En lugar de pedirle al agente todo de una vez y obtener una respuesta truncada, la plataforma divide el trabajo en sub-turnos automáticos: el agente ejecuta secuencialmente N prompts internos, acumula los outputs y al final emite un solo entregable consolidado.

Visualmente verás aparecer separadores con ▍ Turno N/total entre los bloques. La sesión queda como un solo mensaje del usuario y un solo mensaje del asistente — los sub-turnos no aparecen como entradas separadas en el historial.

Para entender qué pasos son multi-turno y por qué, mira la guía Consultoría PDP.

Adjuntos

Puedes adjuntar documentos a una sesión para que el agente los considere en su contexto. Hay dos niveles de scope:

ScopeCuándo usarloCómo
Local a la sesión El documento solo importa para esta conversación. Ej.: una entrevista que estás analizando ahora. Ícono de clip junto al composer o drag-and-drop sobre la ventana de chat.
Global / biblioteca El documento es de uso compartido del estudio o se usará en varios proyectos. Documentos en el sidebar → Subir o Importar desde Drive. Luego desde el chat puedes adjuntarlo.
Recomendación: Sube a la biblioteca documentos que vas a reutilizar (políticas internas, reglamentos, guías AEPD). Adjunta inline solo material efímero del turno (entrevistas, formularios borrador). Esto evita inflar la biblioteca con archivos de un solo uso.

Tipos soportados

Token budget

Cada provider tiene un límite de contexto. La pill Contexto en el header del chat muestra cuánto del presupuesto consumen los adjuntos. Si te acercas al límite, el sistema te avisa antes de enviar y puedes desadjuntar lo no esencial.

Proyectos

Un Proyecto (también llamado matter en el código) es un encargo concreto con un cliente. Es el contenedor de todo el trabajo asociado: sesiones de chat, documentos, entregables versionados, y opcionalmente una carpeta Drive.

Diferencia con un chat libre

Chat sueltoProyecto
ClienteSin asignarAsociado a un Cliente registrado
TrayectoriaNo tieneTiene pasos ordenados con estado (locked / available / in-progress / completed)
EntregablesBorradores sueltosVersionados por tipo (mapa_datos v1, v2…)
DriveNo tiene carpetaCarpeta de cliente vinculada para ingestion + export
AuditoríaMínimaSesiones inmutables si produjeron entregables aprobados

Carpeta Drive — recomendación

Cada proyecto debe vincularse a una carpeta Drive del estudio. Recomendamos esta organización:

📁 AltLegal — Clientes
   └─ 📁 Empresa Modelo SA
       ├─ 📁 PDP 2026
       │   ├─ 📁 Insumos del cliente   (entrevistas, contratos, políticas)
       │   ├─ 📁 Entregables           (Mapa, RAT, EIPD, Política, Manual)
       │   └─ 📁 Comunicaciones        (correos, actas)
       └─ 📁 Compliance Laboral 2026
           └─ ...

Una carpeta por proyecto, no compartida entre proyectos del mismo cliente. Esto mantiene los entregables auditables y facilita el sync incremental.

Trayectorias y casos de uso

Cada proyecto sigue una trayectoria (hoy: consultoria-pdp-21719, otras vendrán). La trayectoria es una secuencia ordenada de pasos; cada paso ejecuta un caso de uso específico que produce un entregable.

Empty state — proyecto recién creado

Al abrir un proyecto PDP nuevo (sin sesiones con mensajes ni entregables aprobados), aparece un banner sobre el listado de pasos con un CTA al primer paso disponible. Para Consultoría PDP — Ley 21.719 ese paso es siempre el 10 — Onboarding del Cliente, porque es el único sin inputs requeridos previos.

Click en el botón "Iniciar paso 10" abre directamente la sesión del paso, equivalente a clickear el paso "Disponible" en el stepper. El banner desaparece tan pronto como cualquier paso registra actividad (mensaje en sesión o artefacto aprobado). No vuelve a aparecer en el resto de la vida del proyecto.

Ejemplo: proyecto PDP completo

Cliente: Empresa Modelo SA. Encargo: cumplimiento Ley 21.719. Trayectoria de 11 pasos:

PasoCaso de usoEntregable
10pdp-onboarding-clienteFicha de levantamiento
20pdp-buscador-normativaListado de normas aplicables
30pdp-asistente-formularioFormulario matriz extraído de entrevista
40pdp-mapa-datosMapa de Datos (9 columnas)
45pdp-generacion-ratRAT (Registro de Actividades de Tratamiento)
50pdp-analisis-riesgosMatriz de riesgos inherentes y residuales
60–110pdp-informe-seccion-i…iv + ensambladoInforme Final ensamblado

Plus tres casos transversales (no parte del flujo lineal): pdp-eipd, pdp-redaccion-politica, pdp-respuesta-brecha, pdp-consulta-normativa. Y para fase post-implementación: pdp-tramitacion-autoridad, pdp-soporte-continuo, pdp-manual-procedimientos-internos.

Estados de un paso. Locked: aún faltan inputs (entregables previos). Available: listo para iniciar. In-progress: tiene una sesión con mensajes pero sin entregable aprobado. Completed: tiene entregable aprobado. El click sobre un paso completado abre la sesión fuente del entregable.

Iterar un paso (v2, v3…) sin perder la versión anterior

Cuando el primer entregable de un paso no satisface y se quiere generar una versión alternativa sin perder la original, cada paso del stepper en la vista de detalle del proyecto tiene un menú kebab () con la opción "Iniciar nueva sesión para iterar este paso". Esto crea una sesión adicional asociada al mismo paso, dejando intacta la sesión y los entregables previos.

El service create_artifact auto-bumpea la versión, así que múltiples sesiones del mismo paso producen distintas versiones del mismo entregable (v1, v2, v3…). Útil cuando:

La vista de artefactos del proyecto muestra todas las versiones; aprobar la última es la convención, pero técnicamente cualquier versión puede ser la aprobada.

Crear un proyecto

  1. En el menú izquierdo, ir a Proyectos (sección TRABAJO).
  2. Click en Nuevo proyecto. Selecciona o crea el cliente, asigna nombre al proyecto, opcional Rol.
  3. Una vez creado, vincula la carpeta Drive con el botón Vincular Drive.
  4. Click en Sincronizar para indexar los archivos existentes en la carpeta como documentos del proyecto.
  5. Empieza la trayectoria desde el paso 10 (siempre disponible inicialmente).

Casos de uso

Un caso de uso es una configuración pre-empaquetada para una tarea recurrente. Define:

Para qué sirven

Sin un caso de uso, el agente es genérico y necesita que le repitas el contexto cada vez. Con un caso de uso bien definido:

Vista general

En el menú izquierdo → Casos de uso. Catálogo filtrable por categoría. Cada tarjeta muestra ícono, nombre, descripción corta y el modelo preferido. Click → crea sesión nueva con ese caso activo.

Pill tier · high en la vista admin. El listado de casos de uso (vista admin) muestra una pill tier · high cuando el caso configura un modelo high-tier (gemini-2.5-pro, claude-opus-4-7, etc.) como primary de su model_chain. Sirve para identificar visualmente los casos analíticos pesados — los que justifican modelos lentos y caros porque la calidad importa más que la latencia.

El modelo default para casos PDP analíticos es gemini-2.5-pro con thinking_budget=8192 tokens, configurado en src/permissions/llm_models_manifest.yaml. Esa combinación da el mejor balance entre razonamiento extendido y latencia tolerable para los pasos del informe diagnóstico (Secciones I–IV) y el ensamblado final.

Ejemplo: pdp-redaccion-politica

Cuando lo abres, el agente ya sabe que su rol es redactor de políticas conforme a Ley 21.719, tiene acceso al Mapa de Datos del proyecto, y puede generar un Google Doc con el draft. No necesitas explicarle el contexto cada vez.

Ejemplo: prompt-builder (Constructor de Prompts)

Es una herramienta de meta-productividad: en vez de redactar manualmente un prompt cada vez que quieres usar otro modelo (Claude, GPT, DeepSeek, o el mismo Gemini con un caso distinto), describes la tarea y el constructor te entrega un bloque listo para copiar y pegar. El prompt resultante incluye instrucciones de anonimización si la tarea procesa documentos del cliente, y usa marcadores tipo {{TEXTO_DEL_CONTRATO}} cuando hay que pegar contenido después.

Flujo: describir → clarificar → copiar. Si la tarea es ambigua sobre cómo vas a entregar el contenido (pegado, archivo adjunto, URL), el constructor hace UNA pregunta breve antes de generar — así el prompt resultante queda coherente con tu modalidad real. Cuando recibas el bloque, usa el botón Copiar que aparece arriba a la derecha del fenced block (no del mensaje completo) para llevar solo el prompt al portapapeles.
Editar prompts admin Configuración → Casos de uso → seleccionar categoría → click en uno → editor completo. Cada cambio crea un snapshot de versión; puedes hacer rollback sin redeploy.

Documentos

La biblioteca de Documentos es compartida entre todo el estudio por default. Cada documento queda disponible para adjuntar a sesiones de chat o referenciar desde proyectos. Si subes algo confidencial, puedes restringir el acceso (ver Compartir).

Subir a la biblioteca está restringido a administradores. Si necesitas trabajar con un documento propio, súbelo desde una sesión de chat (botón Adjuntar) — queda asociado a esa sesión sin entrar a la biblioteca pública. Si el documento pertenece a un proyecto, súbelo a la carpeta Drive del cliente y la plataforma lo sincronizará. Para que puedas adjuntar documentos a un chat, el admin debe haberte asignado un perfil (Abogado o Paralegal). Sin perfil, el upload de chat devuelve un error pidiendo contactar al admin.

Estrategia para ser efectivo

  1. No subas dos veces el mismo archivo. El sistema deduplica por hash, pero si renombras el PDF, no detecta la duplicación. Antes de subir, busca si ya existe.
  2. Asocia al proyecto cuando corresponda. Si subes un documento dentro de una sesión que pertenece a un proyecto, hereda el matter_id automáticamente. Para uploads aislados, edita el documento y asigna el matter manualmente o usa el filtro "Huérfanos" para encontrarlos.
  3. Anonimiza antes de procesar PII. Si vas a razonar sobre una entrevista con nombres y RUTs, anonimiza primero (ver herramienta). El documento original queda guardado, el anonimizado es uno nuevo que el agente puede ver sin riesgo.
  4. Nombre descriptivo. "Entrevista_Empresa_Modelo_2026-04-15.pdf" es mejor que "doc1.pdf". Facilita la búsqueda y el reconocimiento en el listado.

Evitar duplicar el corpus BCN

No subas leyes que ya están en el corpus BCN. El sistema mantiene actualizada la Ley 21.719, Ley 20.575, Constitución, Código del Trabajo, Código Tributario, etc. Cuando el agente necesita una ley, llama directamente al corpus oficial (BCN/LeyChile). Subir un PDF de la misma ley genera ruido — el agente puede confundir tu copia con la versión oficial.

Excepción: si el documento es una versión anotada por el equipo (con comentarios, marcas, jurisprudencia asociada), nómbralo así explícitamente: Ley-21719-anotada-equipo-AltLegal.pdf.

Próximamente Una vista Buscar en BCN que te permitirá explorar el corpus oficial sin tener que subirlo. Por ahora, si necesitas ver el texto de una ley, puedes usar el agente: "Muéstrame el texto del art. 14 de la Ley 21.719".

Eliminación

Solo administradores pueden eliminar documentos. El sistema usa soft-delete (el archivo va a la papelera de Drive y queda marcado como deleted_at en la base de datos), preservando trazabilidad. Si necesitas borrar un archivo, pide a un admin del estudio. Antes de eliminar, revisa Ver usos… para confirmar que no esté referenciado por una sesión activa o un entregable aprobado.

Filtros útiles

Compartir un documento (acceso restringido)

Por default todo documento subido es visible para cualquier persona del estudio que tenga sesión iniciada. Para documentos confidenciales puedes restringir el acceso a equipos, perfiles o personas específicas. Hay dos puntos donde configurarlo:

Al subir: el modal de upload pregunta "¿Restringir acceso?" antes de mandar el archivo. Marca el toggle y el doc sube ya restringido (solo tú y admins lo ven inicialmente). Luego completas los equipos/perfiles/personas desde el menú ⋯.

Post-upload (o si quieres cambiar permisos después):

  1. En la tabla de Documentos, click en el menú de la fila → Compartir…
  2. Activa el toggle Restringir acceso.
  3. Elige equipos, perfiles (Abogado / Paralegal) y/o personas que tendrán acceso desde los selectores. Cada selección aparece como chip; click en la × del chip para quitar.
  4. Click en Guardar. Aparece un badge 🔒 Restringido junto al nombre del documento.
Cómo combinan los pickers (OR lógico). Cualquier match grants acceso. Un doc compartido con team X + perfil Abogado es accesible a (a) cualquier persona en team X, sin importar su perfil, Y (b) cualquier abogado, sin importar su team. Un paralegal removido de team X pierde acceso al instante. Como propietario, siempre ves tu doc; los administradores ven todo. Si dejas las tres listas vacías con el toggle activo, solo tú y los admins lo verán — la UI te avisa con un warning antes de guardar.
Usuarios sin perfil asignado. Compartir por perfil solo alcanza a usuarios que tienen un perfil definido (Abogado / Paralegal). Quienes no tienen perfil asignado no entran por esa vía — necesitan ser listados como persona individual o ser miembros de un team compartido.

Para dejar de restringir: abre Compartir…, desactiva el toggle, click en Guardar. El documento vuelve a ser visible globalmente y el badge desaparece.

Cambios de acceso no afectan adjuntos ya activos. Si un documento ya estaba adjuntado a una sesión cuando le quitas acceso a alguien, esa sesión sigue teniendo acceso al doc en su contexto. La restricción solo bloquea nuevos adjuntos y herramientas que crean artefactos derivados (anonimización, extracción). Comportamiento intencional: las conversaciones en curso no se interrumpen. Si necesitas forzar la salida de una sesión, pídele al admin que detache el documento manualmente.

Próximamente Contador "Esto será visible para N personas" que resuelve equipos y perfiles a sus miembros reales antes de guardar.

Permisos visibles en la app

El estudio configuró un sistema de equipos, perfiles y políticas que decide qué puede ver y usar cada persona. Lo que esto significa para ti como usuario final:

Si crees que te falta acceso a algo que necesitas, contacta a un administrador del estudio (en Configuración → Equipos y permisos puede revisar y ajustar tus políticas, o usar la pestaña Políticas por usuario para depurar exactamente qué tienes y qué no).

Baseline universal — equipo "General". Todo usuario autenticado es miembro automático de un equipo llamado General con políticas baseline. Si te falta acceso a algo que crees deberías tener, primero pregúntale al admin si la restricción viene de General (transversal a todo el estudio) o de un equipo específico al que perteneces. La pestaña Políticas por usuario te muestra exactamente la mezcla efectiva.

Notificaciones nuevo

La app te avisa cuando hay movimiento relevante en tu workspace: sesiones creadas en proyectos que te interesan, artefactos aprobados, archivos compartidos contigo, cambios en equipos a los que perteneces. La campana vive como primera opción en la sección CUENTA del sidebar con un badge accent que cuenta las no-leídas (se muestra 99+ si superas 99).

El polling de no-leídas corre cada 45 segundos en segundo plano. Cuando otra persona dispara un evento que te concierne, el badge se actualiza solo — no necesitas recargar la página. Click en la campana abre la bandeja con todas las notificaciones, las no-leídas resaltadas con fondo accent.

No recibes notificaciones de tus propios actos. El sistema excluye al actor del fan-out — si tú apruebas un artefacto, los demás se enteran, pero a ti no te llega notificación. Esto evita ruido innecesario en tu propia bandeja.

Eventos cubiertos hoy

El sistema cubre tres familias de eventos. La primera familia (matter) solo dispara notificaciones si el proyecto está marcado como favorito (toggle ⭐ en el header del proyecto):

Movimiento en un proyecto favorito

Cambios en equipos

Documentos compartidos

Bandeja y marcado masivo

La vista de detalle permite filtrar por Todas o No leídas con el toggle del encabezado. Cada fila tiene un checkbox: seleccionar varias y luego presionar Marcar N como leídas aplica la acción en bloque. El botón Marcar todas como leídas hace lo mismo sobre las no-leídas sin necesidad de seleccionarlas (pide confirmación). Click en el cuerpo de una notificación la marca como leída automáticamente y navega al recurso relacionado (sesión, proyecto, documento, configuración).

El timestamp es relativo en español (hace 5 min, hace 2 h, hace 3 d); pasado un mes la fecha pasa a formato local.

Pendientes próximas iteraciones. Hoy el polling es de 45s — todavía no hay push real-time vía WebSocket/SSE. La audiencia de un proyecto favorito incluye a todo el workspace (no permite hacer follow individual por usuario). Las notificaciones por email o Slack son parte del backlog. Ver Sistema de notificaciones por usuario en docs/next-phases.md para el roadmap completo.

Herramientas del agente

Lo siguiente es la lista completa de herramientas (tools) que el agente puede invocar. La mayoría se activan automáticamente cuando el caso de uso lo permite y el contexto lo requiere; tú no las llamas directamente, pero entender qué hacen te ayuda a redactar mejores prompts.

Búsqueda y referencias

search_laws Buscar en leyes

Consulta el corpus BCN local. Soporta lookup por número (Ley 21.719), por artículo (Art. 14), o búsqueda semántica por contenido.

"¿Qué dice el art. 14 de la Ley 21.719 sobre transferencias internacionales?"
acquire_norma Adquirir norma

Si una ley citada por el cliente o por el contexto no está en el corpus local, el agente la trae desde la BCN y la indexa para uso futuro. Solo aplica a leyes (no DFL/DS por ahora).

"Necesito ver la Ley 19.628 (la antigua de protección de datos)" → si no está cargada, la descarga.
discover_sectoral_norms Descubrir normativa sectorial

Identifica normativa específica del sector económico del cliente (telco, salud, banca, retail). Útil al inicio de un proyecto.

"El cliente es una clínica privada. ¿Qué normativa sectorial aplica además de la Ley 21.719?"
fetch_url Descargar URL externa

Trae el contenido de una URL pública (BCN, AEPD, sitios oficiales) cuando se necesita verificar texto en su fuente.

"Verifica este link al sitio de la Agencia Española de Protección de Datos: https://www.aepd.es/..."
search_documents Buscar en documentos

Búsqueda semántica + por palabras clave en el corpus de documentos del estudio (causas judiciales). Solo causas, no PDP.

"¿Qué argumentos hemos usado cuando el demandado alega caso fortuito?"

Causas judiciales

Estas tools son para el módulo de Seguimiento de Causas Judiciales (PJUD/JPL) y no se usan en proyectos PDP.

query_cases Listar causas con filtros

Devuelve un listado de causas filtrable por Rol, tribunal, cliente, fecha, estado o caratulado. Soporta combinaciones (ej. tribunal + rango de fechas) y devuelve resúmenes para que el agente decida qué causa explorar en detalle.

"Lista las causas de Porsche en JPL Lo Barnechea falladas durante 2025."
get_case_detail Detalle completo de una causa

Trae la ficha canónica de una causa por su Rol: caratulado, tribunal, estado actual, fallo si lo hay, fechas, partes, actuario y cliente asociado. Es la fuente de verdad cuando se necesita mostrar todos los datos al usuario.

"Dame el detalle completo del Rol C-1234-2024 del 24° JCS Santiago."
get_case_timeline Línea temporal de trámites

Devuelve la cronología de trámites/movimientos de una causa: cada actuación, su fecha, el actor que la presentó y el resultado. Útil para rastrear evolución procesal y detectar plazos críticos.

"Muéstrame la timeline de la causa C-456-2024. ¿Cuándo notificaron la demanda?"
get_document_text Texto completo de un documento

Recupera el texto íntegro de un documento procesal específico (demanda, contestación, sentencia, escrito) asociado a una causa. El agente lo usa cuando necesita citar literal o analizar argumentos.

"Tráeme el texto completo de la sentencia de la causa Rol C-789-2023."
get_case_amounts Montos demandados / sentenciados

Devuelve los montos económicos vinculados a una causa: demandado, sentenciado, costas. Datos extraídos por LLM y validados; útiles para análisis cuantitativo y estimación de exposición.

"¿Cuánto se demandó vs cuánto se falló en la causa C-321-2023?"
court_statistics Estadísticas agregadas por tribunal

Computa estadísticas agregadas por tribunal: cantidad de causas, distribución por tipo, tasas de sentencia favorable/desfavorable, montos promedio. Soporta filtros por cliente y rango de fechas.

"¿Cuántas causas tenemos en JPL Las Condes y cuál es la tasa de sentencias favorables al cliente en 2025?"

Estado del proyecto y clientes

list_clients Listar clientes

Devuelve todos los clientes registrados (nombre, RUT, sector). Útil cuando el agente necesita confirmar a qué cliente se refiere.

"¿Qué clientes del sector retail tenemos?"
list_client_matters Listar proyectos del cliente

Lista los proyectos activos de un cliente específico, con su trayectoria y estado.

"¿Qué proyectos tiene activos Empresa Modelo?"
get_matter_status Estado del proyecto

Resumen del avance: qué pasos están completados, cuál es el siguiente disponible, qué entregables hay.

"¿En qué etapa va el proyecto PDP de Empresa Modelo?"

Producción de entregables PDP

extract_structured_form Extraer formulario estructurado

Toma una entrevista no estructurada (transcripción, notas) y la convierte en el Formulario Matriz con datos por categoría (tratamientos, sistemas, transferencias, etc.).

"Extrae el formulario matriz de la entrevista que adjunté."
build_data_map_table Construir Mapa de Datos

Genera el Mapa de Datos consolidado (9 columnas: tratamiento, base, finalidad, datos, titulares, plazos, terceros, transferencias, sistemas).

"Genera el Mapa de Datos a partir del formulario matriz aprobado."
build_rat_table Construir RAT

Convierte el Mapa de Datos en el Registro de Actividades de Tratamiento exigido por la ley.

"Genera el RAT a partir del Mapa de Datos."
risk_matrix_compute Calcular matriz de riesgos

Aplica la metodología AEPD para calcular riesgos inherentes y residuales sobre los tratamientos identificados. Devuelve probabilidad × impacto y propone mitigaciones.

"Calcula la matriz de riesgos para los tratamientos del Mapa de Datos."
assemble_chapter_document Ensamblar capítulos

Toma capítulos generados por separado (secciones I, II, III, IV) y los ensambla en un solo documento con tabla de contenidos.

"Ensambla el Informe Final con las cuatro secciones aprobadas."

Lifecycle de entregables

submit_artifact Registrar entregable

Registra el resultado del paso actual como un entregable en estado borrador. Auto-incrementa la versión si ya existe uno del mismo tipo en el proyecto. Esta es la herramienta clave del flujo PDP.

"Registra esto como el Mapa de Datos del proyecto."
Auto-retry si el modelo "se olvida" de invocar la tool. Si el modelo produce el entregable pero no llama a submit_artifact, el agent loop dispara automáticamente un retry con tool_config mode=ANY, que fuerza la invocación de la tool en la siguiente iteración. Solo aplica al primer turn de la sesión — turnos posteriores no se re-intentan, porque suelen ser ajustes sobre un draft ya registrado.
Refresh inmediato del sidebar. Cuando el modelo invoca submit_artifact, el sidebar derecho refresca automáticamente para mostrar el nuevo borrador en "Borradores pendientes". No necesitas recargar la página ni cambiar de sesión para verlo aparecer.
generate_google_doc Generar Google Doc

Crea un Google Doc nativo en la carpeta del cliente con el contenido especificado (Markdown se convierte a formato Doc nativo: títulos, tablas, listas, links auto-detectados a BCN).

"Genera el Google Doc del Mapa de Datos en la carpeta del cliente."

Anonimizar (DLP)

anonymize_with_dlp Anonimizar documento PII

Invoca la Cloud Function dlp-anonymizer sobre un documento de la biblioteca. Reemplaza identidades (nombres, RUTs y otros datos según el modo) por placeholders consistentes preservando trazabilidad. El documento original queda intacto; el resultado es un nuevo documento en la biblioteca.

Acepta el parámetro pipeline_mode con valores MINIMAL, BALANCED o CLEAN. Si no lo indicas, usa el default del tenant (hoy BALANCED).

"Anonimiza la entrevista que subí antes de procesarla."
"Anonimiza este contrato en modo CLEAN — va al regulador."
"Aplica MINIMAL al acta y guárdala en la carpeta del proyecto."

Cuándo usarla

Modos de pipeline

El parámetro pipeline_mode tiene tres valores: MINIMAL, BALANCED y CLEAN. Los detectores son acumulativos: todo lo que se redacta en MINIMAL también se redacta en BALANCED y CLEAN. Default: CLEAN.

DetectorMINIMALBALANCEDCLEAN
Nombres de personas
Nombres de empresas (con sufijo legal)
Alias entre comillas ("en adelante…")
Firmas en MAYÚSCULAS
RUT chileno
Tarjetas de crédito
Cuentas bancarias
Teléfonos
Emails
Direcciones
Fechas
Nacionalidad
Estado civil
Profesión

Cómo elegir el modo

El modo es una decisión semántica sobre quién leerá el output y qué se le permite saber, no una palanca de costo o velocidad. Los tres tiers usan la misma pipeline y tienen el mismo costo por llamada.

  1. ¿El documento anonimizado saldrá de la organización? (regulador, auditor, contraparte, autoridad pública, terceros)
    CLEAN. Sin excepciones. La narrativa de comparecencia (nacionalidad, estado civil, profesión, fechas, direcciones) se elimina porque el riesgo de re-identificación combinada no es trivial.
  2. ¿Lo consumirá un LLM, una pipeline de embeddings, o un agente interno que necesita razonar sobre la estructura del documento sin saber quiénes son las partes?
    BALANCED. Identidades y canales directos de contacto se redactan, pero la estructura narrativa (fechas, estado civil, profesión, nacionalidad) se preserva para que el modelo pueda razonar sobre tipologías, plazos y roles. Default recomendado para el flujo PDP "asistente de formulario".
  3. ¿Quedará dentro del equipo que ya conoce a las partes (el abogado que redactó el documento y su equipo directo), y la redacción solo busca limpiar identificadores y credenciales antes de almacenar o indexar?
    MINIMAL. Nombres + RUT + tarjetas + cuentas bancarias se redactan; el resto pasa para que el lector humano conserve contexto operacional completo.

Atajos de decisión

Pregunta: "¿Podría este output aparecer en una captura de pantalla pegada en un canal con colaboradores externos?"

RespuestaModo
Sí, sin problemaCLEAN
Sí, pero solo dentro de @altlegal.clBALANCED
Sí, pero solo dentro del equipo del documentoMINIMAL

Ejemplos concretos (PDP)

Regla de reclasificación. Un output producido en un tier más permisivo (MINIMAL / BALANCED) no debe redistribuirse a una audiencia que habría requerido CLEAN. Si la audiencia se amplía, re-anonimiza el documento original con el modo más estricto en lugar de reusar el output más permisivo.

En la duda, usa CLEAN. Elegir un tier más permisivo del que la audiencia justifica es un incidente de sobre-divulgación; elegir uno más estricto del necesario es, en el peor caso, inconveniente.

Idempotencia

Si anonimizas el mismo documento dos veces con el mismo modo, no se procesa de nuevo: el sistema reusa el resultado anterior. Si pides un modo distinto (ej. CLEAN sobre algo ya anonimizado en modo BALANCED), sí lo reprocesa con la nueva configuración.

Adopción de huérfanos

Si subiste el original sin asignar a un proyecto (huérfano), pero luego lo anonimizas desde dentro de una sesión que sí pertenece a un proyecto, el sistema "adopta" automáticamente el matter del original y mueve los archivos a la carpeta correcta del cliente. No tienes que hacer manualmente la asignación.

La anonimización no es perfecta. Antes de compartir cualquier output con terceros, revisa manualmente. El sistema captura nombres y RUTs estándar pero puede pasar por alto formas no canónicas (siglas, apodos, nombres de archivos en URLs, etc.).

¿Falta algo o algo está desactualizado? Avisa al equipo de tecnología (tecnologia@altlegal.cl) o abre un ticket en el chat #IA-team.