Community코딩 & 개발github.com

DrunkMan9o/agent-skills

입력된 결정화 공정 매개변수(또는 최적화 요청)를 기반으로, 다중 제약 조건(수율 ≥60%, 순도 ≥99%, 입자 크기 D50∈[10,50]μm, 용출 유사성 인자 f2≥50)을 충족하는 완전한 파레토 프론티어와 예측 품질 지표를 출력하고, 문헌 기준선과 정량적으로 비교합니다.

agent-skills란 무엇인가요?

이 스킬은 약물 결정화 공정의 다목적 최적화를 위한 에이전트 기반 솔루션입니다. 사용자가 결정화 공정 변수(예: 온도, 냉각 속도, 과포화도, 종자량, 교반 속도, 유지 시간)를 입력하거나 최적화를 요청하면, 해석 가능한 결정론적 동역학 모델(디지털 트윈)을 사용하여 6개의 공정 변수를 4개의 품질 지표(수율, 순도, 입자 크기 D50, 용출 유사성 f2)에 매핑합니다. 핵심은 NSGA-II 알고리즘을 사용한 다목적 최적화로, 완전한 파레토 프론티어(80개의 비지배 해 + 무릎점 + 극값)를 생성하고, 가우스 과정 기반 베이지안 최적화로 교차 검증합니다. 또한 5개의 에이전트(문헌, 동역학 모델러, 최적화기, 위험/규제, 검토자)로 구성된 파이프라인을 통해 결과의 신뢰성과 규제 준수성을 자동으로 검증하며, 온도, pH, 냉각 속도 변화에 대한 민감도 분석도 제공합니다. 이 스킬은 Claude Code, Cursor, Codex 등과 같은 AI 코딩 에이전트와 함께 사용하도록 설계되었으며, CLI를 통해 Python 스크립트(`scripts/crystallization.py`)를 호출하여 작동합니다. 사용자는 JSON 형식의 입력을 제공하고, 에이전트는 출력된 JSON 결과를 사람이 읽을 수 있는 최적화 전후 비교 결론으로 해석합니다. 주요 장점은 문헌 기준선과의 정량적 비교, 파레토 프론티어를 통한 최적 절충안 식별, 그리고 모든 단계의 완전한 투명성(추적 가능한 BO 기록, 모델 카드)입니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/DrunkMan9o/agent-skills/tree/HEAD/skills/pharma-crystallization-optimization

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

약물 결정화 공정 다목적 최적화

용도

결정화 공정 최적화 요구사항을 "매개변수 집합 / 최적화 대상 공정"에서 "다중 제약 조건을 충족하고, 재현 가능하며, 정량적 비교가 가능한 최적 공정 솔루션(완전한 파레토 프론티어)을 확보"하는 단계로 전환합니다.

핵심은 **해석 가능한 결정론적 동역학 모델(디지털 트윈)**로, 6개의 공정 변수를 4개의 품질 지표(수율 / 순도 / 입자 크기 D50 / 용출 유사성 인자 f2)에 매핑합니다. 본 SKILL은 다음을 편성합니다: 요구사항 식별 → 계산 코어 호출 → 파레토 프론티어 해석 → 최적화 전후 비교 결론 출력.

핵심 방법(해석 가능한 동역학 커널)

모듈구현문헌 앵커링
용해도 곡선van't Hoff: C*(T)=4.48·exp[8.3/R·(1/293−1/T)]A등급: Biowaiver Monograph 2017 (20℃ 4.48 mg/mL)
핵 생성 속도B = kb·max(σ−0.3,0)⁴ + kb2·G·μ2·f_mixing(교반)1차 고전 이론 + 2차 성장 결합; 임계값 S=4.5 (전빈빈 2015)
성장 속도G = kg·σ^m, m=1.9955 (BCF 나선 전위 성장)A등급: 전빈빈 등, 화학공학 2015 실측
개체군 수지 방정식(PBE)모멘트법 μ0…μ4 순환, 농도-모멘트 완전 결합 물질 수지 보존B등급: Randolph & Larson 모멘트법

최적화 방법(다목적 + 다중 에이전트)

  • 주 출력: NSGA-II 4목표 완전 파레토 프론티어(80개 비지배 해 + 무릎점 + max-f₂/max-yield 극값), 목표 = 수율↑ / 순도↑ / f2↑ / 입도 30μm 근접↑.
  • 보조: 가우스 과정(GP, RBF 커널 + 백색 잡음, 초매개변수는 로그 한계 우도 LML 학습) + 베이지안 최적화(EGO 방식 EI), 스칼라화 참조점 교차 검증.
  • 5 에이전트 파이프라인: Literature(문헌 앵커링 게이트키퍼) → Kinetics Modeler(PBE 솔루션 + 물질 수지 자체 점검) → Optimizer(파레토 프론티어) → Risk/Regulatory(규제 판단 기준 + CQA) → Reviewer(독립 검토, PASS/FAIL 판정).
  • 민감도 분석: 온도 ±1℃ / pH ±0.1 / 냉각 속도 ±10% 교란 하에서의 강건성 판단.

트리거 조건(본 SKILL 로드 시기)

다음 시나리오 중 하나라도 해당되면 트리거됩니다:

  • 사용자가 결정화 공정 매개변수를 제시하고 품질 지표 평가 또는 적합성 여부를 요청
  • 사용자가 결정 공정의 매개변수 "최적화/검색/탐색"을 요청
  • 사용자가 수율/순도/입자 크기 D50/용출 f2 등 품질 목표를 언급하고 결정화와 관련
  • 사용자가 제네릭 의약품과 오리지널 의약품의 용출 유사성(f2) 평가를 요청
  • 사용자가 참조 용출 곡선 또는 문헌 기준선을 제공하고 비교를 요청

트리거 단어: 결정화 공정 최적화, 결정화 매개변수 탐색, 공정 다목적 최적화, 제네릭 의약품 결정화, 입도 윈도우, 용출 f2, 냉각 곡선, 시드 전략, 과포화 제어, 아목시실린 결정화, 파레토 프론티어, 개체군 수지.

입출력 형식

입력

SKILL은 AI가 세션에서 로드한 후 scripts/crystallization.py 실행(표준 입력으로 JSON 전달)을 통해 계산 코어를 구동합니다. CLI 입력 프로토콜:

{
  "mode": "evaluate | optimize | sensitivity | agents | dissolution_plot | explain",
  "params": {                       // evaluate 모드 필수, 6개 공정 변수
    "T_cryst_C": 15,                // 결정화 온도 ℃, [5, 25]
    "r_cool_C_per_min": 0.2,        // 냉각 속도 ℃/min, [0.05, 1.0]
    "S0": 1.8,                      // 초기 과포화도(무차원), [1.2, 2.5]
    "seed_wt_pct": 2,               // 시드량 질량%, [0, 5.0]
    "stir_rpm": 300,                // 교반 속도 rpm, [100, 600]
    "hold_t_min": 120               // 유지 시간 min, [30, 240]
  },
  "seed": 42                        // optimize/agents 모드 선택 사항, 랜덤 시드(기본값 42, 결정적 재현 가능)
}

출력

계산 코어 stdout은 단일 행 JSON을 출력합니다. mode=optimize를 예로 들면 핵심 필드는 다음과 같습니다:

{
  "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": "강건: 세 가지 요인 ± 교란 하에서 f2가 ≥50 유지", ...}},
  "surrogate_cv": {"r2_mean": 0.74, ...},
  "bo_trace": [...],
  "cqa_coverage": {...}
}

AI는 JSON 결과를 사람이 읽을 수 있는 비교 결론으로 해석하며, 형식은 본 파일의 "결과 해석" 섹션을 참조합니다.

실행 단계(표준 워크플로우)

순서대로 실행하며, 이전 단계 결과가 다음 단계 동작을 결정합니다:

  1. 요구사항 식별: 대상 API와 공정 확인; 사용자가 "단일 매개변수 평가"를 원하는지 "최적 매개변수 검색"을 원하는지 판단.
  2. 기준선 결정: 문헌의 고전적인 공정 기준선(또는 사용자 제공) 읽기; 기본 아목시실린 기준선은 references/tuning-guide.md 참조.
  3. 다목적 최적화(optimize): mode=optimize 호출, 주 출력은 완전한 파레토 프론티어(NSGA-II 80 비지배 해).
  4. 결과 평가(evaluate): 후보 솔루션에 대해 mode=evaluate 호출, checks.all_satisfied 및 PBE 프로세스 양 확인.
  5. 독립 검토: 리뷰어 에이전트가 프론티어의 비지배성과 실현 가능성을 독립적으로 검토하여 PASS/FAIL 발행.
  6. 결론 출력: 파레토 프론티어 + 무릎점/극값 + 4개 지표 전후 비교 + 민감도 분석 결론 + 경계 조건 설명 제공.

의존성

유형의존 항목설명
런타임Python 3 (python3 / python / py 중 하나 사용 가능)계산 코어 실행
수치 라이브러리NumPy 2.5.4GP 가우스 과정 및 NSGA-II 벡터화 연산 (pip install numpy==2.5.4)
핵심 파일scripts/crystallization.py해석 가능 동역학 코어(PBE) + 다목적 최적화 + 5 에이전트, 본 SKILL의 유일한 실행 가능 로직
참조 문서references/install-and-usage.md설치, 등록, 사용 예제
참조 문서references/tuning-guide.md모든 조정 가능 매개변수의 물리적 의미, 값 범위 및 영향
외부 리소스없음자체 포함, 인터넷 연결 또는 외부 API 호출 불필요

계산 코어 호출 방식(CLI)

# evaluate: 단일 매개변수 평가
echo '{"mode":"evaluate","params":{...}}' | python scripts/crystallization.py

# optimize: 완전한 파레토 프론티어(주) + GP-BO 참조점 출력
echo '{"mode":"optimize","seed":42}' | python scripts/crystallization.py

# sensitivity: 민감도 분석(T±1℃/pH±0.1/냉각±10%)
echo '{"mode":"sensitivity","params":{...}}' | python scripts/crystallization.py

# explain: optimize 실행 내용 전체 설명(모델 카드/검색 공간/가중치/제약 조건 완전 투명)
echo '{"mode":"explain"}' | python scripts/crystallization.py

결과 해석

  • pareto.n_pareto → 파레토 프론티어 비지배 해 수; knee_point는 이상점까지의 거리가 가장 작은 절충 해.
  • metrics.f2 >= 50 → 용출 곡선이 오리지널 참조와 "유사" (FDA/CDE 생물학적 동등성 브리징 기준); f2 < 50은 비유사로 간주.
  • agents.reviewer.verdict = PASS → 프론티어 비지배성 + 실현 가능성 + 기준선 비교 모두 독립 검토 통과.
  • sensitivity.robustness.f2_stays_above_50 → 교란 하에서 f2가 여전히 ≥50 유지 여부 (운영 강건성).
  • bo_trace → 64회 평가 각각 기록(매개변수/점수/출처/GP 초매개변수/EI), 최적화 과정 완전 조회 가능.

경계 조건 설명

본 SKILL의 출력은 공정 검색 및 사전 선별 도구이며, 해석 가능한 동역학 커널 기반(GMP 실험 대체 불가). 최종 생물학적 동등성 결론은 실제 실험 및 허가 데이터로 뒷받침되어야 함. 수율 기준: 본 모델의 수율은 물질 수지 기준(석출 고체/조제 고체)이며, 문헌의 "총 수율" 기준과 다름. 자세한 내용은 references/tuning-guide.md 참조.

Individual skills in this repo

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

관련 스킬