Tools

Niveles de razonamiento

Qué hace

  • Directiva en línea en cualquier cuerpo entrante: /t <level>, /think:<level> o /thinking <level>.
  • Niveles (alias): off | minimal | low | medium | high | xhigh | adaptive | max
    • minimal → "pensar"
    • low → "pensar intensamente"
    • medium → "pensar más intensamente"
    • high → "ultrathink" (presupuesto máximo)
    • xhigh → "ultrathink+" (modelos GPT-5.2+ y Codex, más esfuerzo de Anthropic Claude Opus 4.7)
    • adaptive → razonamiento adaptativo administrado por el proveedor (compatible con Claude 4.6 en Anthropic/Bedrock, Anthropic Claude Opus 4.7 y el razonamiento dinámico de Google Gemini)
    • max → razonamiento máximo del proveedor (Anthropic Claude Opus 4.7; Ollama asigna esto a su mayor esfuerzo think nativo)
    • x-high, x_high, extra-high, extra high y extra_high se asignan a xhigh.
    • highest se asigna a high.
  • Notas del proveedor:
    • Los menús y selectores de razonamiento dependen del perfil del proveedor. Los Plugin de proveedor declaran el conjunto exacto de niveles para el modelo seleccionado, incluidas etiquetas como el binario on.
    • adaptive, xhigh y max solo se anuncian para perfiles de proveedor/modelo que los admiten. Las directivas escritas para niveles no compatibles se rechazan con las opciones válidas de ese modelo.
    • Los niveles no compatibles almacenados existentes se reasignan según el rango del perfil del proveedor. adaptive retrocede a medium en modelos no adaptativos, mientras que xhigh y max retroceden al mayor nivel compatible distinto de off para el modelo seleccionado.
    • Los modelos Anthropic Claude 4.6 usan adaptive de forma predeterminada cuando no se establece ningún nivel de razonamiento explícito.
    • Anthropic Claude Opus 4.7 no usa razonamiento adaptativo de forma predeterminada. El valor predeterminado de esfuerzo de su API sigue perteneciendo al proveedor, salvo que establezcas explícitamente un nivel de razonamiento.
    • Anthropic Claude Opus 4.7 asigna /think xhigh a razonamiento adaptativo más output_config.effort: "xhigh", porque /think es una directiva de razonamiento y xhigh es el ajuste de esfuerzo de Opus 4.7.
    • Anthropic Claude Opus 4.7 también expone /think max; se asigna a la misma ruta de esfuerzo máximo propiedad del proveedor.
    • Los modelos directos DeepSeek V4 exponen /think xhigh|max; ambos se asignan a reasoning_effort: "max" de DeepSeek, mientras que los niveles inferiores distintos de off se asignan a high.
    • Los modelos DeepSeek V4 enrutados por OpenRouter exponen /think xhigh y envían valores reasoning_effort compatibles con OpenRouter. Las sobrescrituras max almacenadas retroceden a xhigh.
    • Los modelos de Ollama con capacidad de razonamiento exponen /think low|medium|high|max; max se asigna al think: "high" nativo porque la API nativa de Ollama acepta cadenas de esfuerzo low, medium y high.
    • Los modelos GPT de OpenAI asignan /think mediante la compatibilidad de esfuerzo específica del modelo en la Responses API. /think off envía reasoning.effort: "none" solo cuando el modelo de destino lo admite; de lo contrario, OpenClaw omite la carga útil de razonamiento deshabilitado en lugar de enviar un valor no compatible.
    • Las entradas de catálogo personalizadas compatibles con OpenAI pueden optar por /think xhigh estableciendo models.providers.<provider>.models[].compat.supportedReasoningEfforts para incluir "xhigh". Esto usa los mismos metadatos de compatibilidad que asignan las cargas útiles salientes de esfuerzo de razonamiento de OpenAI, por lo que los menús, la validación de sesión, la CLI del agente y llm-task coinciden con el comportamiento de transporte.
    • Las referencias configuradas obsoletas de OpenRouter Hunter Alpha omiten la inyección de razonamiento de proxy porque esa ruta retirada podía devolver texto de respuesta final mediante campos de razonamiento.
    • Google Gemini asigna /think adaptive al razonamiento dinámico propiedad del proveedor de Gemini. Las solicitudes de Gemini 3 omiten un thinkingLevel fijo, mientras que las solicitudes de Gemini 2.5 envían thinkingBudget: -1; los niveles fijos siguen asignándose al thinkingLevel o presupuesto de Gemini más cercano para esa familia de modelos.
    • MiniMax (minimax/*) en la ruta de streaming compatible con Anthropic usa thinking: { type: "disabled" } de forma predeterminada, salvo que establezcas explícitamente el razonamiento en parámetros del modelo o parámetros de la solicitud. Esto evita deltas filtrados de reasoning_content desde el formato de stream no nativo de Anthropic de MiniMax.
    • Z.AI (zai/*) solo admite razonamiento binario (on/off). Cualquier nivel distinto de off se trata como on (asignado a low).
    • Moonshot (moonshot/*) asigna /think off a thinking: { type: "disabled" } y cualquier nivel distinto de off a thinking: { type: "enabled" }. Cuando el razonamiento está habilitado, Moonshot solo acepta tool_choice auto|none; OpenClaw normaliza los valores incompatibles a auto.

Orden de resolución

  1. Directiva en línea en el mensaje (se aplica solo a ese mensaje).
  2. Sobrescritura de sesión (establecida enviando un mensaje que solo contiene la directiva).
  3. Valor predeterminado por agente (agents.list[].thinkingDefault en la configuración).
  4. Valor predeterminado global (agents.defaults.thinkingDefault en la configuración).
  5. Retroceso: valor predeterminado declarado por el proveedor cuando esté disponible; de lo contrario, los modelos con capacidad de razonamiento resuelven a medium o al nivel compatible distinto de off más cercano para ese modelo, y los modelos sin razonamiento permanecen en off.

Establecer un valor predeterminado de sesión

  • Envía un mensaje que sea solo la directiva (se permiten espacios en blanco), por ejemplo, /think:medium o /t high.
  • Eso queda fijado para la sesión actual (por remitente de forma predeterminada); se borra con /think:off o con el restablecimiento por inactividad de la sesión.
  • Se envía una respuesta de confirmación (Thinking level set to high. / Thinking disabled.). Si el nivel no es válido (por ejemplo, /thinking big), el comando se rechaza con una sugerencia y el estado de la sesión queda sin cambios.
  • Envía /think (o /think:) sin argumento para ver el nivel de razonamiento actual.

Aplicación por agente

  • Pi integrado: el nivel resuelto se pasa al runtime del agente Pi en proceso.
  • Backend de Claude CLI: los niveles distintos de off se pasan a Claude Code como --effort cuando se usa claude-cli; consulta backends de CLI.

Modo rápido (/fast)

  • Niveles: on|off.
  • Un mensaje que solo contiene la directiva alterna una sobrescritura de modo rápido de sesión y responde Fast mode enabled. / Fast mode disabled..
  • Envía /fast (o /fast status) sin modo para ver el estado efectivo actual del modo rápido.
  • OpenClaw resuelve el modo rápido en este orden:
    1. /fast on|off en línea o como única directiva
    2. Sobrescritura de sesión
    3. Valor predeterminado por agente (agents.list[].fastModeDefault)
    4. Configuración por modelo: agents.defaults.models["<provider>/<model>"].params.fastMode
    5. Retroceso: off
  • Para openai/*, el modo rápido se asigna al procesamiento prioritario de OpenAI enviando service_tier=priority en solicitudes Responses compatibles.
  • Para openai-codex/*, el modo rápido envía la misma marca service_tier=priority en Codex Responses. OpenClaw mantiene un único interruptor /fast compartido entre ambas rutas de autenticación.
  • Para solicitudes públicas directas anthropic/*, incluido el tráfico autenticado con OAuth enviado a api.anthropic.com, el modo rápido se asigna a los niveles de servicio de Anthropic: /fast on establece service_tier=auto, /fast off establece service_tier=standard_only.
  • Para minimax/* en la ruta compatible con Anthropic, /fast on (o params.fastMode: true) reescribe MiniMax-M2.7 como MiniMax-M2.7-highspeed.
  • Los parámetros de modelo explícitos serviceTier / service_tier de Anthropic sobrescriben el valor predeterminado del modo rápido cuando ambos están establecidos. OpenClaw sigue omitiendo la inyección de nivel de servicio de Anthropic para URL base de proxy que no son de Anthropic.
  • /status muestra Fast solo cuando el modo rápido está habilitado.

Directivas detalladas (/verbose o /v)

  • Niveles: on (mínimo) | full | off (predeterminado).
  • Un mensaje que solo contiene la directiva alterna el modo detallado de sesión y responde Verbose logging enabled. / Verbose logging disabled.; los niveles no válidos devuelven una sugerencia sin cambiar el estado.
  • /verbose off almacena una sobrescritura explícita de sesión; bórrala mediante la interfaz de sesiones eligiendo inherit.
  • La directiva en línea afecta solo a ese mensaje; en los demás casos se aplican los valores predeterminados de sesión/globales.
  • Envía /verbose (o /verbose:) sin argumento para ver el nivel detallado actual.
  • Cuando el modo detallado está activado, los agentes que emiten resultados estructurados de herramientas (Pi, otros agentes JSON) devuelven cada llamada de herramienta como su propio mensaje solo de metadatos, con el prefijo <emoji> <tool-name>: <arg> cuando esté disponible. Estos resúmenes de herramientas se envían en cuanto se inicia cada herramienta (burbujas separadas), no como deltas de streaming.
  • Los resúmenes de fallos de herramientas siguen siendo visibles en modo normal, pero los sufijos de detalle de error sin procesar se ocultan salvo que el modo detallado sea on o full.
  • Cuando el modo detallado es full, las salidas de herramientas también se reenvían después de completarse (burbuja separada, truncada a una longitud segura). Si alternas /verbose on|full|off mientras una ejecución está en curso, las burbujas de herramientas posteriores respetan el nuevo ajuste.
  • agents.defaults.toolProgressDetail controla la forma de los resúmenes de herramientas de /verbose y las líneas de herramientas del borrador de progreso. Usa "explain" (predeterminado) para etiquetas humanas compactas como 🛠️ Exec: checking JS syntax; usa "raw" cuando también quieras anexar el comando/detalle sin procesar para depuración. agents.list[].toolProgressDetail por agente sobrescribe el valor predeterminado.
    • explain: 🛠️ Exec: check JS syntax for /tmp/app.js
    • raw: 🛠️ Exec: check JS syntax for /tmp/app.js, node --check /tmp/app.js

Directivas de traza de Plugin (/trace)

  • Niveles: on | off (predeterminado).
  • Un mensaje que solo contiene la directiva alterna la salida de traza de Plugin de sesión y responde Plugin trace enabled. / Plugin trace disabled..
  • La directiva en línea afecta solo a ese mensaje; en los demás casos se aplican los valores predeterminados de sesión/globales.
  • Envía /trace (o /trace:) sin argumento para ver el nivel de traza actual.
  • /trace es más específico que /verbose: solo expone líneas de traza/depuración propiedad de Plugin, como resúmenes de depuración de Active Memory.
  • Las líneas de traza pueden aparecer en /status y como un mensaje de diagnóstico de seguimiento después de la respuesta normal del asistente.

Visibilidad del razonamiento (/reasoning)

  • Niveles: on|off|stream.
  • Un mensaje que solo contiene la directiva alterna si los bloques de razonamiento se muestran en las respuestas.
  • Cuando está habilitado, el razonamiento se envía como un mensaje separado con el prefijo Reasoning:.
  • stream (solo Telegram): transmite el razonamiento en la burbuja de borrador de Telegram mientras se genera la respuesta y luego envía la respuesta final sin razonamiento.
  • Alias: /reason.
  • Envía /reasoning (o /reasoning:) sin argumento para ver el nivel de razonamiento actual.
  • Orden de resolución: directiva en línea, luego sobrescritura de sesión, luego valor predeterminado por agente (agents.list[].reasoningDefault), luego retroceso (off).

Las etiquetas de razonamiento de modelos locales malformadas se manejan de forma conservadora. Los bloques cerrados <think>...</think> permanecen ocultos en respuestas normales, y el razonamiento no cerrado después de texto ya visible también se oculta. Si una respuesta está completamente envuelta en una sola etiqueta de apertura no cerrada y, de otro modo, se entregaría como texto vacío, OpenClaw elimina la etiqueta de apertura malformada y entrega el texto restante.

Relacionado

  • La documentación del modo elevado se encuentra en Modo elevado.

Heartbeats

  • El cuerpo de la sonda Heartbeat es el prompt de Heartbeat configurado (predeterminado: Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.). Las directivas en línea en un mensaje de Heartbeat se aplican como de costumbre (pero evita cambiar valores predeterminados de sesión desde Heartbeats).
  • La entrega de Heartbeat usa de forma predeterminada solo la carga útil final. Para enviar también el mensaje separado Reasoning: (cuando esté disponible), establece agents.defaults.heartbeat.includeReasoning: true o agents.list[].heartbeat.includeReasoning: true por agente.

Interfaz de chat web

  • El selector de razonamiento del chat web refleja el nivel almacenado de la sesión desde el almacén/configuración de sesiones entrantes cuando se carga la página.
  • Elegir otro nivel escribe la sobrescritura de sesión inmediatamente mediante sessions.patch; no espera al siguiente envío y no es una sobrescritura de un solo uso thinkingOnce.
  • La primera opción siempre es Default (<resolved level>), donde el valor predeterminado resuelto proviene del perfil de razonamiento del proveedor del modelo de sesión activo más la misma lógica de retroceso que usan /status y session_status.
  • El selector usa thinkingLevels devuelto por la fila/valores predeterminados de sesión del Gateway, con thinkingOptions mantenido como una lista de etiquetas heredada. La interfaz del navegador no mantiene su propia lista de regex de proveedores; los Plugin poseen los conjuntos de niveles específicos de cada modelo.
  • /think:<level> sigue funcionando y actualiza el mismo nivel de sesión almacenado, por lo que las directivas de chat y el selector permanecen sincronizados.

Perfiles de proveedor

  • Los plugins de proveedor pueden exponer resolveThinkingProfile(ctx) para definir los niveles admitidos por el modelo y el valor predeterminado.
  • Los plugins de proveedor que hacen proxy de modelos Claude deben reutilizar resolveClaudeThinkingProfile(modelId) de openclaw/plugin-sdk/provider-model-shared para que los catálogos directos de Anthropic y los de proxy permanezcan alineados.
  • Cada nivel de perfil tiene un id canónico almacenado (off, minimal, low, medium, high, xhigh, adaptive o max) y puede incluir un label de visualización. Los proveedores binarios usan { id: "low", label: "on" }.
  • Los plugins de herramientas que necesiten validar una anulación explícita de razonamiento deben usar api.runtime.agent.resolveThinkingPolicy({ provider, model }) más api.runtime.agent.normalizeThinkingLevel(...); no deben mantener sus propias listas de niveles por proveedor/modelo.
  • Los plugins de herramientas con acceso a metadatos configurados de modelos personalizados pueden pasar catalog a resolveThinkingPolicy para que las adhesiones explícitas de compat.supportedReasoningEfforts se reflejen en la validación del lado del plugin.
  • Los puntos de enlace heredados publicados (supportsXHighThinking, isBinaryThinking y resolveDefaultThinkingLevel) permanecen como adaptadores de compatibilidad, pero los nuevos conjuntos de niveles personalizados deben usar resolveThinkingProfile.
  • Las filas y valores predeterminados de Gateway exponen thinkingLevels, thinkingOptions y thinkingDefault para que los clientes de ACP/chat representen los mismos identificadores y etiquetas de perfil que usa la validación en tiempo de ejecución.