Cómo eludir el bloqueo del servidor de Anthropic en clientes de terceros: Análisis técnico
Anthropic ha implementado verificaciones del lado del servidor en las fuentes de las solicitudes a la API. Las solicitudes desde los clientes oficiales Claude Code y Cowork están cubiertas por suscripciones Pro. Herramientas de terceros como OpenClaw se redirigen al modo Uso Extra con facturación por token en la API, lo que dispara los costos de manera significativa. Solicitudes HTTP simples con cabeceras falsificadas no funcionan: el servidor examina el cuerpo de la solicitud.
Objetivo: Hacer que las solicitudes sean indistinguibles de los clientes oficiales manteniendo intacta la funcionalidad de las 17 herramientas de OpenClaw.
Análisis de la estructura de las solicitudes
Las solicitudes a la API de Anthropic son cargas JSON con prompts del sistema, historial de mensajes, metadatos y una lista de herramientas. Las pruebas revelaron:
- Los prompts del sistema y el historial pasan sin problemas.
- Añadir herramientas activa la detección.
Al desglosar las herramientas por grupos, se identificaron los culpables:
- read, edit, write — pasan.
- exec, process — pasan.
- sessions_list, sessions_history, sessions_send — pasan.
- web_search, web_fetch — pasan.
- image, memory_search, memory_get — pasan.
- subagents — bloqueadas.
- session_status — bloqueadas.
El servidor de Anthropic escanea nombres de herramientas ausentes en Claude Code. Solo dos de las 17 herramientas bastan para activar el Uso Extra.
Arquitectura de la cadena de proxies
Solución: Configuración de proxy en dos niveles entre OpenClaw y api.anthropic.com.
- CLIProxyAPI (Go, 23k estrellas en GitHub): Imita las cabeceras de Claude Code (user-agent, cabecera de facturación, client_id). Autenticación OAuth: el proxy genera una URL, inicias sesión vía navegador y el refresh_token se guarda localmente.
- Replace-proxy (Node.js, 133 líneas, sin dependencias): Intercepta JSON en ambas direcciones.
- Saliente: subagents → sub_dispatch, session_status → check_status, OpenClaw → Assistant.
- Entrante: Intercambios inversos línea por línea para streaming.
Cadena: OpenClaw (puerto 8318) → replace-proxy → CLIProxyAPI (8317) → api.anthropic.com.
Replace-proxy se ejecuta como servicio systemd con reinicio automático.
Configuración de Replace-Proxy
El código del proxy es ligero: servidor HTTP que parsea cuerpos, aplica intercambios por regex y amortigua eventos de streaming.
// Fragmento de ejemplo: Manejo de solicitudes salientes
const replaceMap = {
'subagents': 'sub_dispatch',
'session_status': 'check_status',
'OpenClaw': 'Assistant'
};
// JSON.parse(body).tools.forEach(tool => {
// if (replaceMap[tool.name]) tool.name = replaceMap[tool.name];
// });
// Similar para respuestas
El servidor escucha en localhost:8318 y reenvía a CLIProxyAPI:8317.
Configuración de OpenClaw
Añade un proveedor en openclaw.json:
{
"models": {
"providers": {
"custom-proxy": {
"baseUrl": "http://localhost:8318",
"apiKey": "<api-key-from-CLIProxyAPI>",
"api": "anthropic-messages",
"models": [
{"id": "claude-opus-4-6", "contextWindow": 1000000, "maxTokens": 16384},
{"id": "claude-sonnet-4-6", "contextWindow": 200000, "maxTokens": 16384}
]
}
}
}
}
Establécelo como predeterminado:
openclaw config set "agents.defaults.model.primary" "custom-proxy/claude-opus-4-6"
Reinicia OpenClaw. El cambio de modelos funciona en el chat.
Lecciones clave
- Detección basada en herramientas: Anthropic inspecciona nombres de herramientas en el cuerpo JSON. Las únicas de OpenClaw (subagents, session_status) activan Uso Extra.
- Proxy en dos niveles: CLIProxyAPI oculta cabeceras, replace-proxy limpia el contenido.
- Autenticación OAuth: CLIProxyAPI renueva tokens automáticamente; reautenticación al expirar refresh_token.
- Soporte para streaming: Replace-proxy amortigua eventos para intercambios en tiempo real.
- Riesgos: Elude los ToS de Anthropic. Posibles baneos de cuentas; la detección podría evolucionar (patrones de prompts, estructura).
Limitaciones y monitoreo
- No para producción: Uso personal bajo tu propio riesgo.
- Monitoreo: Revisa logs del proxy por errores de intercambio o nuevas detecciones.
- Escalabilidad: Systemd lo mantiene estable, pero actualizaciones de Anthropic podrían requerir ajustes en replace-map.
Las pruebas confirman que funciona en Opus 4.6 y Sonnet 4.6 sin Uso Extra.
— Editorial Team
Aún no hay comentarios.