# Herramientas y Capacidades ## Descripcion General Las herramientas son las acciones que sus agentes pueden tomar durante las conversaciones. Cuando un agente necesita navegar la web, ejecutar un comando, leer un archivo o controlar un dispositivo, usa herramientas. Neotask proporciona un rico conjunto de herramientas integradas que cubren gestion de archivos, ejecucion de codigo, automatizacion de navegador, control de dispositivos, mensajeria, busqueda web y mas. ## Operaciones de Archivos Los agentes pueden leer, escribir y editar archivos en su espacio de trabajo: - **Read** -- Leer contenido de archivos - **Write** -- Crear o sobreescribir archivos - **Edit** -- Hacer ediciones dirigidas a partes especificas de un archivo - **Apply Patch** -- Aplicar diffs unificados multi-hunk para modificaciones complejas de archivos ## Ejecucion de Codigo Los agentes pueden ejecutar comandos shell con aislamiento configurable: - **Ejecucion en Gateway** -- Ejecutar comandos directamente en la maquina que aloja el Gateway - **Ejecucion en sandbox** -- Ejecutar comandos en contenedores Docker aislados con limites de recursos - **Ejecucion en nodo** -- Ejecutar comandos en dispositivos companion conectados (nodos macOS, Linux) ### Caracteristicas de Ejecucion - Tiempos de espera configurables (por defecto 30 minutos) - Gestion de trabajos en segundo plano (listar, consultar, eliminar, limpiar) - Auto-segundo plano para comandos de larga ejecucion - Soporte TTY para programas interactivos - Modo elevado para operaciones privilegiadas (solo host del gateway) ### Flujos de Aprobacion Los comandos sensibles pueden requerir aprobacion del usuario antes de ejecutarse: - **Allowlist** -- Solo se ejecutan comandos pre-aprobados - **Ask** -- Los comandos desconocidos solicitan aprobacion - **Full** -- Sin restricciones ## Automatizacion de Navegador Los agentes controlan un navegador completo basado en Chromium (Chrome, Brave o Edge): ### Acciones - **Navegar** -- Abrir URLs y navegar entre paginas - **Interactuar** -- Hacer clic, escribir, pasar el cursor, arrastrar, seleccionar, llenar formularios - **Capturar** -- Tomar capturas de pantalla, exportar PDFs - **Inspeccionar** -- Instantanea del DOM o arbol de accesibilidad - **Ejecutar** -- Ejecutar JavaScript en el contexto de la pagina - **Cargar** -- Subir archivos a formularios web - **Gestionar** -- Manejar dialogos (alertas, confirmaciones), leer salida de consola ### Perfiles de Navegador Multiples perfiles de navegador aislados para separar cuentas: - Cada perfil tiene sus propias cookies, almacenamiento e historial - Puertos CDP asignados automaticamente para control programatico - Soporte de navegador remoto (conectarse a navegadores en otras maquinas) ## Canvas y A2UI El sistema Agent-to-UI (A2UI) permite a los agentes renderizar contenido visual interactivo en dispositivos conectados: - **Presentar** -- Mostrar paginas web o contenido personalizado en el canvas de un dispositivo - **Navegar** -- Controlar lo que se muestra en la ventana del canvas - **Evaluar** -- Ejecutar JavaScript en el contexto del canvas - **Instantanea** -- Capturar lo que se muestra actualmente - **A2UI Push** -- Enviar actualizaciones de UI estructuradas (payloads JSONL) al canvas - **A2UI Reset** -- Limpiar el estado del canvas El renderizado de canvas esta disponible en macOS (WebKit), iOS (SwiftUI), Android (Jetpack Compose) y web (WebChat). ## Capacidades de Dispositivos Nodo A traves de aplicaciones companion conectadas, los agentes pueden: ### Camara - **Snap** -- Tomar fotos (camara frontal o trasera) - **Clip** -- Grabar clips de video con duracion y FPS configurables ### Pantalla - **Record** -- Capturar grabaciones de pantalla con duracion y calidad configurables ### Ubicacion - **Get** -- Obtener coordenadas GPS con seleccion de precision ### Notificaciones - **Notify** -- Enviar notificaciones nativas del SO con titulo, cuerpo y prioridad ### Comandos del Sistema - **Run** -- Ejecutar comandos shell en el dispositivo nodo - **Which** -- Verificar si un comando esta disponible en el nodo ## Mensajeria Los agentes pueden enviar y gestionar mensajes a traves de canales conectados: - **Send** -- Enviar mensajes a cualquier canal/destinatario conectado - **Edit** -- Editar mensajes enviados previamente - **React** -- Agregar reacciones a mensajes - **Thread** -- Crear hilos y responder dentro de ellos - **Poll** -- Crear encuestas en plataformas soportadas - **Voice** -- Verificar estado del canal de voz (Discord) ## Web - **Search** -- Busqueda web via Brave Search API - **Fetch** -- Recuperar paginas web y convertir HTML a markdown/texto ## Memoria y Contexto - **Memory Search** -- Busqueda de similitud vectorial sobre archivos de memoria del agente - **Memory Get** -- Recuperar archivos de memoria especificos por nombre ## Gestion de Sesiones - **List Sessions** -- Ver sesiones activas entre agentes - **Session History** -- Obtener transcripcion de cualquier sesion - **Send to Session** -- Enviar mensajes a otras sesiones de agentes - **Spawn Sub-Agent** -- Iniciar ejecuciones de sub-agentes aislados - **List Agents** -- Ver agentes disponibles ## Automatizacion - **Cron** -- Crear, editar, ejecutar y gestionar trabajos programados - **Gateway** -- Reiniciar gateway, aplicar cambios de configuracion, ejecutar actualizaciones ## Analisis de Imagenes Los agentes pueden analizar imagenes usando modelos de vision configurados -- describir contenido, extraer texto, identificar objetos y responder preguntas sobre contenido visual. ## Grupos de Herramientas Las herramientas estan organizadas en grupos para facil gestion de permisos: | Grupo | Herramientas | |-------|-------| | **runtime** | exec, bash, process | | **fs** | read, write, edit, apply_patch | | **sessions** | sessions_list, sessions_history, sessions_send, sessions_spawn, session_status | | **memory** | memory_search, memory_get | | **web** | web_search, web_fetch | | **ui** | browser, canvas | | **automation** | cron, gateway | | **messaging** | message | | **nodes** | nodes |