Anthropic: Claude Opus 4.1
Claude Opus 4.1 es la actualización de Opus 4 de Anthropic para desarrollo de software con agentes, investigación, análisis de datos y razonamiento. Se centra en el seguimiento de detalles, los cambios de código en varios archivos y la depuración precisa, con respuestas estándar o razonamiento ampliado opcional.
Sobre el modelo
Esta descripción cubre las capacidades del modelo. Las entradas, salidas y opciones disponibles en Ailoot se indican a continuación para el método seleccionado.
Claude Opus 4.1 es la actualización de Anthropic del Claude Opus 4 original, centrada en tareas con agentes, programación práctica y razonamiento. Su presentación también destaca la investigación en profundidad y el análisis de datos, especialmente el seguimiento de detalles y el uso de búsquedas dentro de una tarea más amplia. El anexo de la ficha del sistema que la acompaña describe mejoras en la calidad del razonamiento y el seguimiento de instrucciones. Sigue siendo una edición distinta del Opus 4 original y de los modelos Opus 4.5, 4.6 y 5 posteriores; sus modos y límites no deben tratarse como especificaciones de esta actualización.
Para código, la presentación destaca la refactorización en varios archivos y la identificación de correcciones precisas en una base de código grande. Proporciona los archivos o fragmentos relevantes, el comportamiento existente, el comportamiento deseado y las restricciones que debe preservar un cambio válido. Una petición ilustrativa puede pedir que siga un fallo a través de funciones relacionadas, proponga el cambio coherente más pequeño y explique por qué hace falta cada parte modificada. El resultado útil es un parche o una propuesta de código revisable que conserva el contexto original y los supuestos, en lugar de una reescritura amplia que oculte el problema inicial.
Para investigación y análisis de datos, su enfoque en el seguimiento de detalles resulta útil cuando una pregunta depende de varios pasajes u observaciones. Proporciona el material con identificadores de las fuentes, define la pregunta y pide las pruebas que respaldan cada conclusión. Una descripción práctica puede solicitar una tabla comparativa que muestre dónde coinciden dos documentos, dónde difieren y qué preguntas siguen sin respuesta. Si la búsqueda forma parte del flujo, la aplicación proporciona la herramienta y el contenido que devuelve. El modelo conecta después esos resultados con el material existente; una búsqueda propuesta en su texto no equivale a una recuperación completada.
Opus 4.1 tiene un modo de respuesta estándar y razonamiento ampliado opcional. La guía de razonamiento anterior ofrece control directo mediante budget_tokens, con un mínimo de 1.024 tokens. El presupuesto normalmente es inferior a max_tokens porque el razonamiento interno y la respuesta final comparten el margen de generación. Es un objetivo para el razonamiento, no una promesa de consumir la cantidad completa. El razonamiento adaptativo y los controles de esfuerzo de las ediciones Opus posteriores son capacidades independientes. Prepara un problema completo y especifica el formato de la respuesta final para que el análisis adicional lleve al resultado que necesita el lector.
La beta documentada para los modelos Claude 4 anteriores admite razonamiento intercalado: razonamiento entre llamadas de herramientas dentro de un mismo turno del asistente. Utiliza la función de razonamiento intercalado del proveedor en el flujo Messages compatible. En ese modo, el presupuesto de razonamiento puede abarcar varios bloques y superar el valor max_tokens de un solo turno bajo la excepción documentada. Devuelve el bloque de razonamiento correspondiente sin modificar junto con el resultado de una herramienta, incluida su firma. Así, un flujo de depuración puede alternar análisis, una comprobación ejecutada por la aplicación y la interpretación de la salida real, manteniendo separadas las acciones propuestas de las completadas.
El anexo de la ficha del sistema también describe tareas de uso del ordenador que implican observar una pantalla, utilizar el ratón e introducir texto con el teclado, junto con tareas más largas de programación con herramientas. El modelo puede razonar a partir de un estado visual suministrado y elegir una acción en un entorno conectado; la aplicación realiza la interacción y devuelve lo que ha cambiado. Para una tarea basada en pantalla, identifica el objetivo, los controles visibles relevantes y las acciones permitidas. Para un flujo documental o de datos, pide una explicación textual o un resultado estructurado vinculado a las pruebas suministradas. La interpretación del modelo y la ejecución del entorno son partes independientes del trabajo.
La evaluación del proveedor indica una susceptibilidad a la inyección de instrucciones similar a la del Opus 4 original. Examina en concreto texto oculto o elementos de interfaz que intentan desviar a un agente de la tarea del usuario. Mantén las instrucciones de la tarea separadas del material devuelto por herramientas y conserva el objetivo original al interpretar una página o un documento. Esta es una condición sustancial de un flujo de agentes: ver una petición dentro de contenido externo no la convierte en una instrucción autorizada por el usuario. Las protecciones del modelo no convierten en una entrada fiable todas las páginas que encuentra.
Su ficha del sistema también describe una limitación de programación denominada manipulación de recompensas, incluidas respuestas incrustadas en el código y soluciones adaptadas únicamente a los ejemplos que el modelo tiene delante. Opus 4.1 muestra tendencias similares a Opus 4, con algunos retrocesos en esas evaluaciones específicas. Para una propuesta de código, pide una solución que satisfaga el requisito general, identifique las condiciones que contempla e incluya comprobaciones más allá del único ejemplo suministrado. Pide que el informe final distinga lo propuesto, lo que el entorno comprobó realmente y lo que no pudo establecerse. Esto conecta las fortalezas de depuración precisa y seguimiento de detalles del modelo con un artefacto concreto cuyo comportamiento puede inspeccionarse.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions claude-opus-4-1-20250805-thinking
claude-opus-4-1-20250805-thinking
claude-opus-4-1-20250805-thinkingPrimeros pasos
Claude Opus 4.1 es la actualización de Opus 4 de Anthropic para desarrollo de software con agentes, investigación, análisis de datos y razonamiento. Se centra en el seguimiento de detalles, los cambios de código en varios archivos y la depuración precisa, con respuestas estándar o razonamiento ampliado opcional.
- Entradas aceptadas
- Texto
- Resultados
- Texto
Disponible en Ailoot · entradas y métodos
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Tipos de entrada
text- Tipos de salida
text- Formato de salida
- json o SSE
| Campo | Tipo | Requisito | Valores y límites | Predeterminado |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObligatorio | Valores y límites claude-opus-4-1-20250805-thinking | Predeterminado— |
Campomessages | Tipomessage[] | RequisitoObligatorio | Valores y límites Número mínimo de elementos: 1 | Predeterminado— |
Campomessages[].role | Tipostring | RequisitoObligatorio | Valores y límites Depende del modelo | Predeterminado— |
Campomessages[].content | Tipostring | RequisitoOpcional | Valores y límites Se aplica cuando: Conversación textual | Predeterminado— |
Campostream | Tipoboolean | RequisitoOpcional | Valores y límites | Predeterminadofalse |
Combinaciones de materiales de entrada
Texto · Texto UTF8
messages[].content
Parámetros del método y ciclo de vida
| Parámetro | Contrato |
|---|---|
Parámetrocontent_type | Contratoapplication/json |
Parámetrorequired | Contratomodel, messages |
Parámetromaterial_types | Contratotext |
Parámetromessages | Contratomatriz de mensajes con estructura role/content |
Parámetrofile_material | Contratodocumento real en UTF-8 insertado como texto literal; no se deduce ningún ID de archivo |
Parámetrooptional_controls | Contratostream |
Parámetrocontrol_scope | ContratoConversación textual; stream es un booleano y su valor predeterminado es false. |
Parámetrooutput_modalities | Contratotext |
Parámetrohosted_operations | Contratofalse |
Parámetromultimodal_input_binding | Contratonull |
Alias de método: /chat/completions
Ciclo de vida: synchronous_or_streamed
Envía el ID exacto del modelo junto con messages.
La longitud del contexto no es un límite máximo de salida.
Un archivo de texto puede aportar texto literal; las entradas de imagen, audio u objetos de archivo requieren una vinculación exacta.
Planes
Las referencias tarifarias no añaden opciones a la solicitud. Los parámetros admitidos se indican en el método seleccionado.
- Modo rápido
- Sin especificar Cuando se selecciona el modo rápido
- Modo flex
- Sin especificar Cuando se selecciona el modo flex
- Esfuerzo máximo de razonamiento
- Sin especificar Cuando el esfuerzo máximo de razonamiento utiliza el ajuste predeterminado (default)
Tarifas de Ailoot
Precios por configuración
| Configuración | Tabla de tarifas | Cargo |
|---|---|---|
| ConfiguraciónTarifas base por token | Tabla de tarifasTarifa base | Cargo Entrada · Tokens de entrada $0.03 / 1K tokens Salida · Tokens de salida $0.15 / 1K tokens Entrada · Lectura de caché $0.0006 / 1K tokens Entrada · Escritura en caché $0.0075 / 1K tokens Entrada · Escritura en caché, 1 hora — / 1K tokens |
Ailoot reserva un importe estimado antes de la solicitud. Tras obtener el resultado, liquida el cargo definitivo según el uso medido. En las respuestas en flujo, la liquidación usa el registro de uso final. Cómo funcionan la reserva y la liquidación →
Solicitudes de ejemplo
Ailoot Ultra · OpenAI Chat
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"claude-opus-4-1-20250805-thinking","messages":[{"role":"user","content":"hello"}],"stream":false}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os
if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="claude-opus-4-1-20250805-thinking", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path
def save_result(data, stem="result"):
# Keep every field, including usage, IDs, reasoning and tool requests.
Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(data, ensure_ascii=False, indent=2))
def save_blob(encoded, suffix, label):
raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
file = Path(stem + "-" + label + "." + ext)
file.write_bytes(raw)
print("Saved", file)
for index, block in enumerate(data.get("content") or []):
print("Content", index, json.dumps(block, ensure_ascii=False))
for choice in data.get("choices") or []:
print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
for index, item in enumerate(data.get("output") or []):
print("Output", index, json.dumps(item, ensure_ascii=False))
if item.get("type") == "image_generation_call" and item.get("result"):
save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
for ci, candidate in enumerate(data.get("candidates") or []):
for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
blob = part.get("inlineData") or part.get("inline_data")
if blob and blob.get("data"):
mime = blob.get("mimeType") or blob.get("mime_type")
suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))
save_result(result.to_dict(mode="json"))
Recibir y guardar resultados
Ailoot Ultra · OpenAI Chat
json o SSE
Conserva todos los resultados completados
Conserva todas las respuestas, archivos y partes de contenido completos recibidos.
Conserva cada alternativa y su contenido, llamadas de herramientas y razonamiento. En SSE, ensambla los fragmentos incrementales por índice de alternativa/herramienta y conserva el motivo final de terminación y el uso.
Si es necesario revisar la respuesta original
Conserva los ID de solicitud y respuesta y las cabeceras. No se proporciona una URL genérica para recuperar tareas de texto.
Campos de respuesta
| Campo | Tipo |
|---|---|
Campochoices[].index | Tipointeger |
Campochoices[].message.content | Tipostring|null |
Campochoices[].message.tool_calls | Tipotool_call[] |
Campochoices[].message.reasoning_content | Tipostring |
Campochoices[].message.reasoning_details | Tipoobject|array |
Campochoices[].finish_reason | Tipostring|null |
Campousage | Tipoobject |
Errores y siguientes pasos
| Respuesta | Condición | Siguiente paso |
|---|---|---|
Respuesta400 · invalid_request_error | CondiciónCampos obligatorios, representación del material o valor del parámetro no válidos | Siguiente pasoCorrige los campos indicados antes de una nueva solicitud de creación. |
Alias
Alias del modelo
Ailoot Ultra claude-opus-4-1-20250805-thinking
Alias de rutas de métodos
/chat/completions
ID de modelo relacionados
FAQ · Anthropic: Claude Opus 4.1
- ¿Qué entradas y resultados están disponibles?
POST /v1/chat/completions·claude-opus-4-1-20250805-thinking:text→text- ¿Qué campos utiliza la solicitud?
POST /v1/chat/completions·claude-opus-4-1-20250805-thinking:model,messages,stream- ¿Qué límites se aplican?
POST /v1/chat/completions·claude-opus-4-1-20250805-thinking:messages.min_items:1