Activación, ejecución y límites de las herramientas que puede utilizar el modelo.
Con un modelo que admite herramientas, ZeroChat puede alternar peticiones al modelo y ejecuciones: el modelo pide una herramienta, recibe su resultado y decide el siguiente paso. La herramienta puede ejecutarse en el navegador, en el servidor local o en un servicio MCP.
Si el proveedor no admite llamadas nativas, como WebLLM, las herramientas se describen en el prompt y el modelo las pide con bloques <tool_call> en el texto. ZeroChat también interpreta esos bloques cuando un proveedor los devuelve como texto en lugar de llamadas nativas.
Activa las herramientas necesarias en Ajustes y revisa sus permisos. El agente no tiene un límite de pasos: sigue mientras el modelo pida herramientas. Se detiene solo si repite la misma llamada 5 veces seguidas o alterna dos llamadas 5 veces sin escribir nada nuevo para ti; en ese caso muestra un aviso y no pide ningún resumen. Para cortarlo antes, usa el botón de detener; las acciones ya realizadas no se deshacen.
Para proyectos largos, el agente puede mantener plan, hitos y decisiones entre chats: consulta Gestión de proyectos.
En Ajustes → Agente, cada herramienta se distingue con un fondo suave, sin marcos anidados. Las descripciones se adaptan al ancho disponible y el interruptor permanece junto a su herramienta.
Todas las herramientas nativas y MCP comparten tarjetas plegables y se agrupan por ejecución. En móvil, el estado aparece debajo del nombre. Los gráficos permanecen abiertos y fuera de los grupos. El subagente también queda fuera, en su propia tarjeta, porque agrupa dentro las llamadas de cada paso debajo de su texto; las capturas MCP pueden mantener su tarjeta abierta para mostrar la imagen.
El cierre automático afecta únicamente a la herramienta que acaba de terminar: respeta los grupos y las ejecuciones anteriores que hayas abierto.
| Herramienta | Uso y límites |
|---|---|
execute_javascript | Cálculos y transformaciones en un entorno aislado del navegador. |
search_web | Búsqueda en DuckDuckGo a través del servidor local o, sin él, de Jina Reader. Puede fallar por bloqueos o límites de DuckDuckGo o de Jina. |
fetch_web_page | Recupera texto e imágenes de páginas públicas; no sustituye un navegador con sesión iniciada. |
download_doc | Descarga un PDF o un documento ofimático (DOCX, XLSX, PPTX, ODT, ODS, ODP) y extrae texto legible, con las limitaciones del lector. |
download_image | Descarga una imagen web (PNG, JPEG, WebP, GIF) de hasta 10 MB y la entrega como entrada multimodal al modelo para su análisis visual. Requiere un modelo con visión. |
render_chart | Presenta datos en gráficos SVG; no valida los datos ni los cálculos. |
list_documents, search_knowledge_base, read_knowledge_chunk, read_knowledge_image | Consulta las ramas RAG activas. |
ask_user | Te plantea una pregunta con entre 2 y 4 opciones cuando necesita una decisión tuya, y termina su turno. Al pulsar una opción se envía como tu siguiente mensaje, junto con lo que hubieras escrito; también puedes responder escribiendo. Solo la última pregunta sin responder admite elegir. |
delegate_task | Encarga una investigación a un subagente de solo lectura con contexto propio; a la conversación solo vuelve su informe. Consulta el apartado 4. |
Casi ninguna web permite que una página la lea desde el navegador (CORS), así que las herramientas web pasan por un intermediario. Con el servidor local ZeroChat conectado, todas usan el servidor local. Sin él, search_web y fetch_web_page usan Jina Reader (r.jina.ai), un servicio público que descarga la página por ti: las URL y consultas pasan por Jina, que sin cuenta admite unas 20 peticiones por minuto y a veces bloquea temporalmente algunos dominios. download_doc y download_image descargan directamente sin intermediario, así que sin servidor local solo funcionan con las webs que admiten CORS. Los documentos ofimáticos y los PDFs se leen localmente en el navegador. Las URL de red local, loopback o de metadatos cloud se bloquean, también cuando se llega a ellas por una redirección. No envíes a estas herramientas URLs privadas o con credenciales.
Las herramientas de archivos, terminal y navegador automatizado necesitan el servidor local. Sus llamadas incorporan autorización y un sello temporal de un solo uso; esto no protege frente a una interfaz comprometida con acceso a la sesión.
execute_javascript ejecuta código mediante un iframe de origen aislado, restricciones de red y un Web Worker. Hay límites de tiempo y de salida; el objetivo es hacer cálculos sin dar al código acceso directo al chat o al disco. No es una barrera de seguridad: está pensado para cálculos del modelo bajo tu supervisión, no para ejecutar código no fiable.
Actívala si necesitas ese procesamiento y puedes revisar lo que hace. El aislamiento no garantiza resultados correctos ni elimina todos los riesgos de recursos. Para comandos del sistema se usan herramientas distintas del servidor local.
Con delegate_task el agente encarga una tarea a un subagente: otra ejecución del mismo modelo, en la misma pestaña, que empieza con el contexto vacío. Si existe un perfil llamado «Subagente», el subagente usa su conexión y su modelo en lugar de los del agente principal, sin preguntar; la tarjeta muestra entonces ese modelo junto al título. El subagente no ve la conversación, solo el encargo que redacta el agente, y trabaja hasta escribir un informe. Ese informe es lo único que vuelve a la conversación; las páginas, ficheros y fragmentos que haya leído no ocupan contexto del agente principal.
Compensa en investigaciones que necesitan muchas lecturas para llegar a una conclusión corta: explorar un proyecto, comparar varias páginas web o recorrer la base de conocimiento. No compensa en consultas de una o dos llamadas, y en total suele gastar más tokens que hacerlo directamente, porque el subagente tiene que reunir de nuevo el contexto que necesita.
El subagente es de solo lectura. Recibe únicamente las herramientas activas que leen: búsqueda web, lectura de páginas y documentos, execute_javascript, las de la base de conocimiento y, del servidor local, read_file, list_directory, search_files y get_diagnostics. Nunca puede escribir ni editar ficheros, ejecutar comandos, usar MCP externos, preguntarte con ask_user ni crear otros subagentes; si pide una herramienta que no tiene, se rechaza sin ejecutarla. Las lecturas fuera del directorio del proyecto piden tu autorización como siempre, dentro de su tarjeta.
Su tarjeta muestra el encargo, el paso en curso, las herramientas que usa y el informe final. El botón de detener también lo detiene a él. Al reabrir la conversación se conservan el encargo y el informe, pero no sus pasos intermedios. Varias delegaciones en la misma respuesta se ejecutan una tras otra. Puedes desactivarlo en Ajustes → Agente.
Las llamadas consecutivas se agrupan en una línea de «Llamadas a herramientas». Durante la ejecución muestra las llamadas en curso; al terminar queda plegada y permite desplegar las tarjetas con estado, argumentos y resultados. Las tarjetas guardadas se restauran al abrir el historial.
Revisa especialmente rutas, comandos y destinos web antes de autorizar. Un estado de ejecución correcta significa que la llamada terminó, no que la tarea del usuario esté bien resuelta. Un error o una cancelación puede dejar efectos parciales: comprueba los archivos o servicios afectados antes de repetir.