CommunityProgramación y desarrollogithub.com

DrunkMan9o/agent-skills

Ingrese un conjunto de parámetros del proceso de cristalización (o solicite una optimización directa) y obtenga el frente de Pareto completo que satisface múltiples restricciones (rendimiento ≥60%, pureza ≥99%, tamaño de partícula D50 ∈[10,50] μm, factor de similitud de disolución f2 ≥50), junto con indicadores de calidad predichos y una comparación cuantitativa con la línea base bibliográfica.

¿Qué es agent-skills?

Esta habilidad para agentes de IA está diseñada para optimizar procesos de cristalización farmacéutica, transformando un conjunto de parámetros o una solicitud de optimización en un conjunto completo de soluciones óptimas, cuantificables y reproducibles. Utiliza un núcleo de **modelo cinético determinista explicable (gemelo digital)** que mapea 6 variables de proceso (temperatura, velocidad de enfriamiento, sobresaturación inicial, cantidad de semilla, velocidad de agitación y tiempo de mantenimiento) en 4 indicadores de calidad (rendimiento, pureza, tamaño de partícula D50 y factor de similitud de disolución f2). El proceso se basa en métodos de optimización multiobjetivo (NSGA-II) combinados con un modelo de proceso Gaussiano (GP) y optimización bayesiana, y está respaldado por un pipeline de cinco agentes especializados (Literatura, Modelador Cinético, Optimizador, Riesgo/Regulatorio y Revisor) para garantizar la robustez y validez de los resultados. La habilidad está completamente autocontenida, no requiere conexión a internet ni APIs externas, y se ejecuta mediante un script de Python (scripts/crystallization.py) que se comunica vía CLI. Es especialmente útil para ingenieros de proceso e investigadores en la industria farmacéutica que buscan acelerar el desarrollo de procesos de cristalización, cumplir con los criterios de bioequivalencia (f2 ≥50) y comparar cuantitativamente sus resultados con la literatura existente.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/DrunkMan9o/agent-skills/tree/HEAD/skills/pharma-crystallization-optimization

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Optimización multiobjetivo de procesos de cristalización farmacéutica

Propósito

Transformar una necesidad de optimización de un proceso de cristalización, desde "tengo un conjunto de parámetros / una etapa a optimizar" hasta "obtener un conjunto de soluciones de proceso óptimas que cumplan múltiples restricciones, sean reproducibles y tengan una comparación cuantitativa con la línea base bibliográfica (frente de Pareto completo)".

El núcleo es un modelo cinético determinista explicable (gemelo digital) que mapea 6 variables de proceso en 4 indicadores de calidad (rendimiento / pureza / tamaño de partícula D50 / factor de similitud de disolución f2). Esta SKILL se encarga de orquestar: identificar la necesidad → invocar el núcleo computacional → interpretar el frente de Pareto → generar conclusiones comparativas antes y después de la optimización.

Método central (núcleo cinético explicable)

MóduloImplementaciónAnclaje bibliográfico
Curva de solubilidadvan't Hoff: C*(T)=4.48·exp[8.3/R·(1/293−1/T)]Nivel A: Biowaiver Monograph 2017 (20°C 4.48 mg/mL)
Velocidad de nucleaciónB = kb·max(σ−0.3,0)⁴ + kb2·G·μ2·f_mixing(agitación)Teoría clásica primaria + acoplamiento de crecimiento secundario; umbral S=4.5 (Tian Binbin 2015)
Velocidad de crecimientoG = kg·σ^m, m=1.9955 (crecimiento por dislocación helicoidal BCF)Nivel A: Tian Binbin et al., Ingeniería Química 2015, medición experimental
Ecuación de balance de población (PBE)Método de momentos μ0…μ4 recursivo, balance de materia totalmente acoplado concentración-momentosNivel B: Randolph & Larson, método de momentos

Método de optimización (multiobjetivo + multiagente)

  • Salida principal: Frente de Pareto completo NSGA-II con 4 objetivos (80 soluciones no dominadas + punto de rodilla + extremos de max-f₂ / max-rendimiento), objetivos = rendimiento↑ / pureza↑ / f2↑ / tamaño de partícula cercano a 30μm↑.
  • Auxiliar: Proceso Gaussiano (GP, kernel RBF + ruido blanco, hiperparámetros aprendidos mediante máxima verosimilitud logarítmica marginal LML) + optimización bayesiana (EI tipo EGO), como punto de referencia escalar para validación cruzada.
  • Pipeline de cinco agentes: Literature (guardián del anclaje bibliográfico) → Kinetics Modeler (solución PBE + autoconsistencia de balance de materia) → Optimizer (frente de Pareto) → Risk/Regulatory (criterios regulatorios + CQA) → Reviewer (revisión independiente, fallo PASS/FAIL).
  • Análisis de sensibilidad: Determinación de robustez bajo perturbaciones de temperatura ±1°C / pH ±0.1 / velocidad de enfriamiento ±10%.

Condiciones de activación (cuándo cargar esta SKILL)

Se activa en cualquiera de los siguientes escenarios:

  • El usuario proporciona parámetros de un proceso de cristalización y solicita una evaluación de los indicadores de calidad o si se cumplen los objetivos.
  • El usuario solicita "optimizar / buscar / encontrar parámetros óptimos" para una etapa de cristalización.
  • El usuario menciona objetivos de calidad como rendimiento / pureza / tamaño de partícula D50 / f2 de disolución y están relacionados con la cristalización.
  • El usuario solicita una evaluación de similitud de disolución (f2) entre un medicamento genérico y el de marca.
  • El usuario proporciona una curva de disolución de referencia o una línea base bibliográfica y solicita una comparación.

Palabras clave de activación: optimización de proceso de cristalización, búsqueda de parámetros de cristalización, optimización multiobjetivo de proceso, cristalización de genéricos, ventana de tamaño de partícula, f2 de disolución, curva de enfriamiento, estrategia de siembra, control de sobresaturación, cristalización de amoxicilina, frente de Pareto, balance de población.

Formato de entrada y salida

Entrada

Después de que la SKILL se cargue en la sesión de la IA, se ejecuta el núcleo computacional mediante la ejecución de scripts/crystallization.py (pasando JSON por entrada estándar). Protocolo de entrada CLI:

{
  "mode": "evaluate | optimize | sensitivity | agents | dissolution_plot | explain",
  "params": {                       // Obligatorio en modo evaluate, 6 variables de proceso
    "T_cryst_C": 15,                // Temperatura de cristalización °C, [5, 25]
    "r_cool_C_per_min": 0.2,        // Velocidad de enfriamiento °C/min, [0.05, 1.0]
    "S0": 1.8,                      // Sobresaturación inicial (adimensional), [1.2, 2.5]
    "seed_wt_pct": 2,               // Cantidad de semilla % masa, [0, 5.0]
    "stir_rpm": 300,                // Velocidad de agitación rpm, [100, 600]
    "hold_t_min": 120               // Tiempo de mantenimiento min, [30, 240]
  },
  "seed": 42                        // Opcional en modo optimize/agents, semilla aleatoria (por defecto 42, determinista y reproducible)
}

Salida

El núcleo computacional imprime en stdout una sola línea JSON. Tomando mode=optimize como ejemplo, los campos principales son:

{
  "params": {"T_cryst_C": 5.9, "r_cool_C_per_min": 0.11, "S0": 1.9, "seed_wt_pct": 4.58, "stir_rpm": 586, "hold_t_min": 238},
  "metrics": {"yield_pct": 67.75, "purity_pct": 99.44, "D50_um": 44.26, "D90_um": 116.0, "f2": 79.13},
  "score": 174.88,
  "pareto": {"n_pareto": 80, "knee_point": {...}, "extremes": {"max_f2": {...}, "max_yield": {...}}, "pareto_front": [...]},
  "agents": {"literature": {...}, "kinetics": {...}, "optimizer": {...}, "risk_regulatory": {...}, "reviewer": {"verdict": "PASS", ...}},
  "sensitivity": {"robustness": {"conclusion": "Robusto: f2 se mantiene ≥50 bajo perturbaciones de tres factores", ...}},
  "surrogate_cv": {"r2_mean": 0.74, ...},
  "bo_trace": [...],
  "cqa_coverage": {...}
}

La IA interpreta el resultado JSON en conclusiones comparativas legibles para humanos, siguiendo el formato de la sección "Interpretación de resultados" de este archivo.

Pasos de ejecución (flujo de trabajo estándar)

Ejecutar en orden; el resultado de cada paso determina la acción del siguiente:

  1. Identificar la necesidad: Confirmar el API objetivo y la etapa del proceso; determinar si el usuario desea "evaluar un conjunto de parámetros" o "buscar parámetros óptimos".
  2. Determinar la línea base: Leer la línea base del proceso clásico de la literatura (o la proporcionada por el usuario); la línea base predeterminada para amoxicilina se encuentra en references/tuning-guide.md.
  3. Optimización multiobjetivo (optimize): Llamar a mode=optimize, la salida principal es el frente de Pareto completo (NSGA-II con 80 soluciones no dominadas).
  4. Evaluación de resultados (evaluate): Para las soluciones candidatas, llamar a mode=evaluate y verificar checks.all_satisfied y las cantidades del proceso PBE.
  5. Revisión independiente: El agente Reviewer revisa de forma independiente la no dominancia y la viabilidad del frente, emitiendo un veredicto PASS/FAIL.
  6. Generar conclusiones: Proporcionar el frente de Pareto + punto de rodilla/puntos extremos + comparación antes/después de los cuatro indicadores + conclusión del análisis de sensibilidad + declaración de límites.

Dependencias

TipoDependenciaDescripción
Entorno de ejecuciónPython 3 (cualquiera disponible: python3 / python / py)Ejecuta el núcleo computacional
Librería numéricaNumPy 2.5.4Operaciones vectorizadas del GP y NSGA-II (pip install numpy==2.5.4)
Archivo centralscripts/crystallization.pyNúcleo cinético explicable (PBE) + optimización multiobjetivo + cinco agentes, única lógica ejecutable de esta SKILL
Documento de referenciareferences/install-and-usage.mdInstalación, registro y ejemplos de uso
Documento de referenciareferences/tuning-guide.mdSignificado físico, rango de valores e impacto de todos los parámetros ajustables
Recursos externosNingunoAutocontenido, no requiere conexión a internet ni APIs externas

Modo de invocación del núcleo computacional (CLI)

# evaluate: Evaluar un conjunto de parámetros
echo '{"mode":"evaluate","params":{...}}' | python scripts/crystallization.py

# optimize: Generar frente de Pareto completo (principal) + punto de referencia GP-BO
echo '{"mode":"optimize","seed":42}' | python scripts/crystallization.py

# sensitivity: Análisis de sensibilidad (T±1°C/pH±0.1/enfriamiento±10%)
echo '{"mode":"sensitivity","params":{...}}' | python scripts/crystallization.py

# explain: Explicación completa de lo que hace optimize (ficha del modelo/espacio de búsqueda/pesos/restricciones totalmente transparente)
echo '{"mode":"explain"}' | python scripts/crystallization.py

Interpretación de resultados

  • pareto.n_pareto → Número de soluciones no dominadas en el frente de Pareto; knee_point es la solución de compromiso con la distancia mínima al punto ideal.
  • metrics.f2 >= 50 → La curva de disolución es "similar" a la del medicamento de marca de referencia (criterio de puente de bioequivalencia FDA/CDE); f2 < 50 se considera no similar.
  • agents.reviewer.verdict = PASS → La no dominancia del frente, la viabilidad y la comparación con la línea base han pasado todas las revisiones independientes.
  • sensitivity.robustness.f2_stays_above_50 → Indica si f2 se mantiene ≥50 bajo perturbaciones (robustez operativa).
  • bo_trace → Registro completo de 64 evaluaciones (parámetros/puntuación/origen/hiperparámetros GP/EI), el proceso de optimización es completamente verificable.

Declaración de límites

La salida de esta SKILL es una herramienta de búsqueda y preselección de procesos, basada en un núcleo cinético explicable (no es un sustituto de experimentos GMP). La conclusión final de bioequivalencia debe estar respaldada por experimentos reales y datos de solicitudes regulatorias. Nota sobre la definición de rendimiento: En este modelo, el rendimiento se calcula con base en el balance de materia (sólido precipitado/sólido en solución), que difiere de la definición de "rendimiento total" en la literatura. Consulte references/tuning-guide.md para más detalles.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills relacionados