/v1/* compatible con OpenAI, la autenticación de portador con secreto compartido se considera acceso de operador de confianza para todo el Gateway.
POST /tools/invoke- Mismo puerto que el Gateway (multiplexación de WS + HTTP):
http://<gateway-host>:<port>/tools/invoke - Tamaño máximo predeterminado del cuerpo de la solicitud: 2 MB
Autenticación
Utiliza la configuración de autenticación del Gateway. Rutas habituales de autenticación HTTP:- autenticación mediante secreto compartido (
gateway.auth.mode="token"o"password"):Authorization: Bearer <token-or-password> - autenticación HTTP de confianza con identidad (
gateway.auth.mode="trusted-proxy"): enrute mediante el proxy configurado con reconocimiento de identidad y permita que este inyecte los encabezados de identidad necesarios - autenticación abierta de entrada privada (
gateway.auth.mode="none"): no se requiere ningún encabezado de autenticación
mode="token"utilizagateway.auth.token(oOPENCLAW_GATEWAY_TOKEN).mode="password"utilizagateway.auth.password(oOPENCLAW_GATEWAY_PASSWORD).mode="trusted-proxy"requiere que la solicitud HTTP proceda de un origen de proxy de confianza configurado; los proxies de bucle invertido del mismo host requierengateway.auth.trustedProxy.allowLoopback = trueexplícito.- Los llamadores internos del mismo host que omiten el proxy pueden utilizar
gateway.auth.password/OPENCLAW_GATEWAY_PASSWORDcomo alternativa directa local. Cualquier evidencia de los encabezadosForwarded,X-Forwarded-*oX-Real-IPmantiene la solicitud en la ruta del proxy de confianza. - Si se configura
gateway.auth.rateLimity se producen demasiados fallos de autenticación, el endpoint devuelve429conRetry-After.
Límite de seguridad (importante)
Trate este endpoint como una superficie de acceso completo de operador para la instancia del Gateway.- Aquí, la autenticación de portador HTTP no es un modelo de ámbitos restringidos por usuario.
- Un token o una contraseña válidos del Gateway para este endpoint deben tratarse como una credencial de propietario u operador.
- En los modos de autenticación mediante secreto compartido (
tokenypassword), el endpoint restablece los valores predeterminados normales de operador completo incluso si el llamador envía un encabezadox-openclaw-scopesmás restringido. - La autenticación mediante secreto compartido también trata las invocaciones directas de herramientas en este endpoint como turnos enviados por el propietario.
- Los modos HTTP de confianza con identidad (autenticación mediante proxy de confianza o
gateway.auth.mode="none"en una entrada privada) respetanx-openclaw-scopescuando está presente y, de lo contrario, recurren al conjunto normal de ámbitos predeterminados del operador. - Mantenga este endpoint únicamente en el bucle invertido, la red de Tailscale o una entrada privada; no lo exponga directamente a la Internet pública.
Cuerpo de la solicitud
tool/name(cadena, obligatorio): nombre de la herramienta que se invocará.nametiene prioridad si se envían ambos.action(cadena, opcional): se combina conargs.actionsi el esquema de la herramienta admite una propiedadactionyargstodavía no ha establecido ninguna.args(objeto, opcional): argumentos específicos de la herramienta.sessionKey(cadena, opcional): clave de la sesión de destino. Si se omite o es"main", el Gateway utiliza la clave de sesión principal configurada (respetasession.mainKeyy el agente predeterminado, oglobalen el ámbito de sesión global).agentId(cadena, opcional): resuelve la clave de sesión de ese agente. Produce un error con400si entra en conflicto con unsessionKeyexplícito que ya está asignado a otro agente.idempotencyKey(cadena, opcional): se utiliza para derivar un identificador estable de llamada a herramienta para la invocación.dryRun(booleano, opcional): reservado para uso futuro; actualmente se ignora.
Comportamiento de políticas y enrutamiento
La disponibilidad de las herramientas se filtra mediante la misma cadena de políticas que utilizan los agentes del Gateway:tools.profile/tools.byProvider.profiletools.allow/tools.byProvider.allowagents.<id>.tools.allow/agents.<id>.tools.byProvider.allow- políticas de grupo (si la clave de sesión corresponde a un grupo o canal)
- política de subagentes (cuando se invoca con una clave de sesión de subagente)
- Las aprobaciones de ejecución son mecanismos de protección para el operador, no un límite de autorización independiente para este endpoint HTTP. Si se puede acceder a una herramienta desde aquí mediante la autenticación del Gateway y la política de herramientas,
/tools/invokeno añade una solicitud adicional de aprobación por llamada. - Si se puede acceder a
execdesde aquí, trátelo como una superficie de shell con capacidad de modificación. Denegarwrite,edit,apply_patcho las herramientas HTTP de escritura en el sistema de archivos no hace que la ejecución del shell sea de solo lectura. - No comparta las credenciales de portador del Gateway con llamadores que no sean de confianza. Si necesita separar distintos límites de confianza, ejecute gateways independientes (preferiblemente con distintos usuarios o hosts del sistema operativo).
cron, gateway y nodes también son exclusivos del propietario: incluso fuera de esta lista de denegación predeterminada, los llamadores que no sean propietarios no pueden invocarlos en esta superficie.
Personalice la lista de denegación general mediante gateway.tools:
gateway.tools.allow es una anulación de exposición, no una ampliación de ámbitos. En los modos HTTP con identidad, cron, gateway y nodes siguen sin estar disponibles para los llamadores sin identidad de propietario o administrador (operator.admin), incluso cuando aparecen en gateway.tools.allow. La autenticación de portador mediante secreto compartido sigue la regla de operador de plena confianza indicada anteriormente.
Para ayudar a que las políticas de grupo resuelvan el contexto, se pueden establecer opcionalmente:
x-openclaw-message-channel: <channel>(ejemplo:slack,telegram)x-openclaw-account-id: <accountId>(cuando existen varias cuentas)x-openclaw-message-to: <target>(destino de entrega para la política de herramientas de mensajería)x-openclaw-thread-id: <threadId>(contexto del hilo para la política de herramientas de mensajería)