con un clic
self-improvement
API 호출 후 결과 검증 및 오류 자동 수정 패턴. 검색 결과 품질 개선, 파라미터 자동 조정, 자동 재시도 구현 시 참조.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
API 호출 후 결과 검증 및 오류 자동 수정 패턴. 검색 결과 품질 개선, 파라미터 자동 조정, 자동 재시도 구현 시 참조.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
BM25 Okapi 알고리즘을 사용하여 법령/판례 API 결과를 관련도 순으로 재랭킹합니다. search_enhance_tools.py와 bm25_search.py 구현 시 참조.
법령/판례 캐시 데이터 관리 시 사용. 캐시 저장/로드, 만료 처리, 지식 그래프 동기화. 성능 최적화 및 API 호출 최소화를 위해 캐싱 구현 시 참조.
법제처 OPEN API를 MCP 프로젝트에 통합할 때 사용. lawSearch.do와 lawService.do 엔드포인트, target 파라미터로 기능 구분. 새로운 API 엔드포인트 통합 시 참조.
도구 실패/API 오류 발생 시 4단계 근본 원인 분석 후 수정. 증상 수정이 아닌 원인 수정. superpowers의 systematic-debugging 기반.
새 도구 개발 또는 버그 수정 시 실패하는 테스트를 먼저 작성하고, 구현 후 통과를 확인. superpowers의 test-driven-development 기반.
도구 개발/개선 완료 선언 전 반드시 실제 API 호출 테스트를 수행하고 증거를 기록할 때 사용. superpowers의 verification-before-completion 기반.
| name | self-improvement |
| description | API 호출 후 결과 검증 및 오류 자동 수정 패턴. 검색 결과 품질 개선, 파라미터 자동 조정, 자동 재시도 구현 시 참조. |
API 호출 후 결과를 검증하고, 오류를 자동으로 수정하는 패턴입니다.
def validate_api_response(response: Dict[str, Any]) -> tuple[bool, Optional[str]]:
"""API 응답 검증"""
if response.get("error"):
return False, f"API 오류: {response['error']}"
if response.get("status") == "000":
if not response.get("law") and not response.get("prec"):
return False, "검색 결과가 없습니다"
return True, None
def retry_with_backoff(
func: Callable[[], Any],
max_retries: int = 3,
backoff_seconds: float = 1.0
) -> Any:
"""백오프를 사용한 자동 재시도"""
for attempt in range(max_retries):
try:
result = func()
is_valid, error_msg = validate_api_response(result)
if is_valid:
return result
# 재시도 로직
except Exception as e:
# 에러 처리
raise ValueError("최대 재시도 횟수 초과")
def improve_search_query(original_query: str, results: Dict[str, Any]) -> str:
"""검색 결과를 분석하여 검색어 개선"""
if not results.get("law") and not results.get("prec"):
# 검색어 변형 시도
if "법" not in original_query:
return f"{original_query}법"
return original_query
def auto_adjust_params(
target: str,
params: Dict[str, Any],
initial_results: Dict[str, Any]
) -> Dict[str, Any]:
"""초기 결과를 분석하여 파라미터 자동 조정"""
adjusted = params.copy()
# 결과가 너무 많으면 display 줄이기
if initial_results.get("totalCount", 0) > 100:
adjusted["display"] = min(adjusted.get("display", 20), 50)
# 결과가 없으면 본문 검색으로 확장
if initial_results.get("totalCount", 0) == 0:
adjusted["search"] = 2 # 본문 검색
return adjusted
API 응답 검증:
python scripts/validate_response.py <response_file.json>
상세 구현 코드는 patterns.md 참조.