Creación de Aplicaciones Potenciadas por LLM con Claude
Este skill te ayuda a construir aplicaciones potenciadas por LLM con Claude. Elige la superficie adecuada según tus necesidades, detecta el lenguaje del proyecto y luego lee la documentación específica para ese lenguaje.
Antes de Empezar
Escanea el archivo objetivo (o, si no hay archivo objetivo, el prompt y el proyecto) en busca de marcadores de proveedores no-Anthropic: import openai, from openai, langchain_openai, OpenI(, gpt-4, gpt-5, nombres de archivo como agent-openai.py o *-generic.py, o cualquier instrucción explícita para mantener el código neutral en cuanto al proveedor. Si encuentras alguno, detente y dile al usuario que este skill produce código del SDK de Claude/Anthropic; pregúntale si desea cambiar el archivo a Claude o si prefiere una implementación que no sea de Claude. No edites un archivo no-Anthropic con llamadas al SDK de Anthropic. (Excepción: el subcomando prompt-audit no es interactivo y no se detiene aquí; registra los marcadores de proveedores no-Anthropic en las suposiciones declaradas de su informe y nunca propone cambiar un archivo no-Anthropic al SDK de Anthropic.)
Requisito de Salida
Cuando el usuario te pida añadir, modificar o implementar una función de Claude, tu código debe llamar a Claude a través de uno de los siguientes:
- El SDK oficial de Anthropic para el lenguaje del proyecto (
anthropic,@anthropic-ai/sdk,com.anthropic.*, etc.). Esta es la opción predeterminada siempre que exista un SDK compatible para el proyecto. - HTTP directo (
curl,requests,fetch,httpx, etc.) – solo cuando el usuario pida explícitamente cURL/REST/HTTP directo, el proyecto sea un proyecto de shell/cURL, o el lenguaje no tenga un SDK oficial.
Nunca mezcles los dos: no uses requests/fetch en un proyecto de Python o TypeScript solo porque parezca más ligero. Nunca recurras a adaptadores compatibles con OpenAI.
Nunca adivines el uso del SDK. Los nombres de funciones, nombres de clases, espacios de nombres, firmas de métodos y rutas de importación deben provenir de documentación explícita, ya sea de los archivos {lang}/ de este skill o de los repositorios oficiales del SDK o enlaces de documentación listados en shared/live-sources.md. Si el enlace que necesitas no está documentado explícitamente en los archivos del skill, obtén mediante WebFetch el repositorio del SDK relevante de shared/live-sources.md antes de escribir código. No infieras APIs de Ruby/Java/Go/PHP/C# a partir de formas de cURL o del SDK de otro lenguaje.
Si WebFetch o el acceso al repositorio fallan (restricciones de red, tiempos de espera, clonación bloqueada): no sigas reintentando; escribe código a partir de los patrones y las tablas de espacios de nombres/paquetes en el archivo {lang}/, ejecuta el compilador o intérprete en él, e itera en función de la salida de errores. Para los SDKs estáticamente tipados (C#, Java, Go), un bucle de compilación y corrección basado en errores locales llega a código funcional más rápido que la investigación de red bloqueada.
Valores Predeterminados
A menos que el usuario solicite lo contrario:
Para la versión del modelo Claude, usa Claude Opus 5.5, al que puedes acceder mediante la cadena de modelo exacta claude-opus-5-5. Por defecto, usa pensamiento adaptativo (thinking: {type: "adaptive"}) para cualquier cosa remotamente complicada. Y finalmente, por defecto, usa streaming para cualquier solicitud que pueda implicar entrada larga, salida larga o max_tokens alto; esto evita superar los tiempos de espera de la solicitud. Usa el asistente .get_final_message() / .finalMessage() del SDK para obtener la respuesta completa si no necesitas manejar eventos de flujo individuales. Cuando una solicitud de streaming define herramientas del usuario (cliente), establece eager_input_streaming: true en cada una de esas herramientas para que las entradas grandes de herramientas (contenido de archivos, código, documentos) se transmitan a medida que se generan, en lugar de llegar en una sola ráfaga después de que el servidor termine de almacenarlas en búfer; el cliente entonces posee la validación: los analizadores tolerantes de los SDKs pueden devolver una entrada silenciosamente truncada en lugar de lanzar una excepción, así que valida cada entrada de herramienta analizada contra su esquema antes de ejecutarla (los asistentes de ejecución tipados como betaZodTool / @beta_tool tipado hacen esto; las herramientas de esquema JSON betaTool() y los bucles manuales deben validarse a sí mismos), trata un fallo como JSON no válido (error de herramienta INVALID_JSON cuando mantienes el bloque, vuelve a emitir en caso contrario), verifica las razones de parada max_tokens / refusal antes de ejecutar herramientas, y captura solo el error JSON del SDK, nunca sus errores de API tipados: patrón en shared/tool-use-concepts.md -> Transmisión entusiasta de entrada. Déjalo desactivado para solicitudes sin streaming, para herramientas del servidor y cuando la solicitud pase a través de un proxy o una implementación de modelo Bedrock más antigua que rechace el campo.
Advertencia: Deriva de la API – Tu Prioridad de Entrenamiento Puede Estar Desactualizada
Varias formas comunes de la API de Claude cambiaron entre 2025 y 2026. Si recuerdas un patrón del entrenamiento, verifícalo contra los archivos {lang}/ de este skill antes de escribir; las filas siguientes son los puntos de deriva más frecuentes:
| Área | Prioridad desactualizada | API actual |
|---|---|---|
| Pensamiento extendido | thinking: {type: "enabled", budget_tokens: N} | En modelos Claude 4.6+: thinking: {type: "adaptive"}. budget_tokens está obsoleto en Opus 4.6 / Sonnet 4.6 y rechazado con un 400 en Fable 5/5.1 / Sonnet 5.5 / Sonnet 5 / Opus 5.5 / 5 / 4.8 / 4.7. Los modelos anteriores a 4.6 todavía usan budget_tokens. |
| Tipo de herramienta de búsqueda web / extracción web | web_search_20250305, web_fetch_20250910 | web_search_20260209, web_fetch_20260209 (filtrado dinámico) en Opus 5.5/5/4.8/4.7/4.6, Sonnet 5.5, Sonnet 5 y Sonnet 4.6. Los modelos más antiguos mantienen las variantes básicas; en Vertex AI solo está disponible la variante básica web_search_20250305 (la extracción web no está en Vertex): consulta la QR de Herramientas del Servidor a continuación. |
| Nombres de parámetros en PHP | Nombres wire en snake_case como argumentos nombrados (max_tokens) | Los argumentos nombrados de nivel superior están en camelCase (maxTokens). Las claves de array anidado varían según la característica (por ejemplo, 'taskBudget', 'skillID', 'mcp_server_name'): copia la clave exacta del ejemplo documentado; no hagas una conversión masiva. |
| Credenciales de Agentes Gestionados | Mantener secretos del lado del host mediante herramientas personalizadas (la única opción antes de que se lanzaran las bóvedas) | Credenciales de environment_variable de la bóveda: almacenadas por Anthropic, sustituidas en la salida, nunca visibles en el entorno aislado (shared/managed-agents-tools.md -> Bóvedas). Las herramientas personalizadas del lado del host siguen siendo la alternativa para entornos aislados autogestionados. |
| API de Archivos/Skills | client.beta.files.* / client.beta.skills.* con cabeceras beta files-api-2025-04-14 / skills-2025-10-02 | Fuera de beta: client.files.* / client.skills.*, sin cabecera beta. En los SDKs actuales, client.beta.files / client.beta.skills tienen cambios de forma disruptivos con respecto a versiones anteriores, coincidiendo con los espacios de nombres estables: migra según shared/live-sources.md -> Guía de API de Archivos / Skills. |
Los archivos {lang}/ de este skill tienen autoridad sobre los patrones recordados.
Subcomandos
Si la Solicitud del Usuario al final de este prompt es una cadena de subcomando simple (sin prosa), busca en cada tabla de Subcomandos de este documento, incluyendo cualquier sección añadida a continuación, y sigue la columna de Acción correspondiente directamente. Esto permite a los usuarios invocar flujos específicos mediante /claude-api <subcomando>. Si ninguna tabla del documento coincide, trata la solicitud como prosa normal.
| Subcomando | Acción |
|---|---|
migrate | Migrar código existente de la API de Claude a un modelo más nuevo. Lee shared/model-migration.md inmediatamente y síguelo en orden: Paso 0 (confirmar alcance: pregunta qué archivos/directorios antes de cualquier edición), Paso 1 (clasificar cada archivo), luego la sección de cambios disruptivos por destino. No resumas la guía; ejecútala. Si el usuario no nombró un modelo de destino, pregunta a qué modelo migrar en el mismo turno que la pregunta de alcance. Después de aplicar los cambios por destino, audita el texto del prompt, las descripciones de herramientas y el código de solicitud dentro del alcance contra shared/prompt-audit.md; la redacción de prompts escrita para el modelo fuente es parte de cada migración y no se anuncia a sí misma. |
prompt-audit | Auditar prompts, descripciones de herramientas, skills y archivos de configuración de agentes existentes (CLAUDE.md, archivos de reglas, comandos, subagentes) en busca de patrones anticuados ("cruft"): texto escrito para modelos más antiguos e instrucciones que el repositorio ha superado o que se contradicen entre sí. Lee shared/prompt-audit.md inmediatamente y síguelo en orden: Paso 0 (establecer alcance y modelo de destino a partir de la solicitud y el repositorio: indica las suposiciones en el informe, no te detengas a preguntar), inventario, procedencia, luego el escaneo de patrones. Produce ambos entregables en su totalidad: el informe de auditoría (hallazgos con archivo:línea, patrón, por qué está obsoleto, confianza) y un diff propuesto, sin pausar para confirmación; aplica ediciones solo si la solicitud lo pidió explícitamente. No resumas la guía; ejecútala. |
upgrade | Actualizar la dependencia del SDK de Anthropic del proyecto a través de una versión principal: actualmente el SDK de Python, anthropic 0.x -> 1.x. Las palabras siguientes pueden nombrar el idioma y/o un alcance (upgrade python, upgrade python sdk src/). Lee python/claude-api/sdk-upgrade.md inmediatamente y síguelo en orden: Paso 0 (confirmar alcance, luego establecer las versiones actual y destino: debe existir un 1.x publicado antes de que escribas un pin), el inventario del Paso 1, cada sección numerada, luego la verificación y el informe. No resumas la guía; ejecútala. Si el idioma detectado o nombrado no tiene sdk-upgrade.md en este skill, di que aún no hay una guía de actualización de versión principal empaquetada para ese SDK y señala al usuario al CHANGELOG de ese SDK (repositorios en shared/live-sources.md); no improvises una a partir de la guía de Python. Esto no es una migración de modelo: para mover código a un modelo de Claude más nuevo, usa migrate. |
cost-optimize | Reducir el costo de ejecución del código existente de la API de Claude sin sacrificar la calidad de la salida. Lee shared/cost-optimization.md inmediatamente y síguelo en orden: Paso 0 (establecer alcance, listón de calidad y línea base), el perfil de tokens (medido a través de la API de Administración de Uso y Costos cuando el usuario tiene una clave de API de Administración, de los registros response.usage de la propia aplicación cuando los tiene [pregunta], o estimado del código en caso contrario), luego una lista corta de palancas clasificadas por ahorro (cotizadas en dólares, % de la factura o cubos relativos según cuál de esas fuentes de datos tengas), ganancias gratuitas (caching, higiene de tokens de entrada, higiene de bucles, higiene de tokens de salida, lote) antes de las compensaciones (presupuestos, esfuerzo, elección de modelo, multimodelo); cualquier palanca que gane un lugar se convierte en su propio diff (propuesto por defecto, aplicado y medido contra la evaluación que cubre el tráfico que toca cuando el usuario lo pide y lo aprueba), y "no se recomiendan cambios" es un resultado válido. Dos reglas permanentes: cada ejecución que ejercita el modelo gasta dinero real, así que obtén primero la aprobación del usuario; y cuando falte contexto para una palanca, trabaja de forma interactiva con el usuario: este flujo de trabajo no está destinado a realizar la auditoría de una sola vez. No resumas la guía; ejecútala; presentar el perfil y el plan clasificado al usuario es parte de su ejecución. |
build-eval | Ayudar al usuario a construir un conjunto de evaluación para su aplicación impulsada por Claude. Lee shared/evals/build-eval.md inmediatamente y ejecuta su entrevista: Paso 0 (qué se está evaluando), Paso 1 (obtener los prompts: evaluación existente / transcripciones / sintetizados), Paso 2 (método de calificación), Paso 3 (script ejecutable + costo medido). Obtén la aprobación explícita del usuario sobre las entradas, el método de calificación y el costo antes de producir la evaluación. |
preserved-thinking-migration | Hacer que una integración existente sea compatible con el pensamiento preservado: la verificación que mantiene un bloque de pensamiento válido solo en la conversación que lo produjo. Lee shared/preserved-thinking-migration.md inmediatamente y síguelo en orden: Paso 0 (alcance, clases de tráfico, plataforma y modelo, estado de aplicación, listón de calidad, línea base), Paso 0.5 (probar que la verificación se está ejecutando con la autoprueba de tres solicitudes), Paso 1 (capturar cuerpos de solicitud, diferenciar pares consecutivos con shared/preserved-thinking-migration/prefix_diff.py, escanear el código en busca de las causas, nombrar cada edición y si es deliberada), Paso 2 (reproducir un segmento de prueba con prefix_mismatch_behavior: "drop_block" bajo la cabecera thinking-binding-controls-2026-08-01, contar nuevos bloques eliminados por conversación, leer el encabezado de diagnóstico cuando esté presente), Paso 3 (una causa por diff en orden de razonamiento perdido: propuesto por defecto, aplicado cuando el usuario lo pide, luego volver a medir, mantener o revertir; el protocolo de tres brazos cuando existe una evaluación), la sección de cambio de modelo (en shared/preserved-thinking-migration/causes.md, con la tabla de causas y la lista de conservación) cuando el arnés enruta entre modelos, Paso 4 (el perfil de ruptura y los cambios). Dos reglas permanentes: cada reproducción gasta dinero real, así que obtén primero la aprobación del usuario para el presupuesto de medición; y "no se recomiendan cambios" (el segmento reprodujo pensamiento y no se eliminó nada) es un resultado válido. Las causas que tienen una forma de solo anexión solo bajo una beta más nueva (conservación de cola y compactación en segundo plano: compact-2026-09-04; cambios de herramienta con el mismo nombre: inline-tools-2026-09-15) se miden y deciden, no se reescriben, cuando esa beta no está disponible. Para el por qué (la verificación de tres pasos, la tabla de ediciones de solo anexión) se enlaza a shared/model-migration.md -> Cambio disruptivo 3; no resumas la guía; ejecútala. |
hillclimb | Mejorar iterativamente la aplicación del usuario contra una evaluación existente. Lee shared/evals/eval-hillclimb.md inmediatamente y síguelo: Paso 0 (confirmar que existe una evaluación ejecutable; si no, redirigir a build-eval), Paso 1 (qué cambiar / qué está fuera de límites), Paso 2 (presupuesto + condición de parada a partir del costo medido por ejecución), obtener la aprobación del plan, luego el bucle de leer->proponer->aplicar->ejecutar->registrar con estado en disco y una división de entrenamiento/validación/prueba. |
Detección de Lenguaje
Antes de leer ejemplos de código, determina en qué lenguaje está trabajando el usuario (excepción: para el subcomando prompt-audit, salta los pasos de preguntar de esta sección: la auditoría no es interactiva y su inventario es independiente del lenguaje; cuando no se pueda inferir ningún lenguaje, procede sin preguntar y declara la suposición en el informe):
-
Observa los archivos del proyecto para inferir el lenguaje:
*.py,requirements.txt,pyproject.toml,setup.py,Pipfile-> Python – lee depython/*.ts,*.tsx,packag...
(...truncado para traducción...)