بنقرة واحدة
self-improvement
API 호출 후 결과 검증 및 오류 자동 수정 패턴. 검색 결과 품질 개선, 파라미터 자동 조정, 자동 재시도 구현 시 참조.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
API 호출 후 결과 검증 및 오류 자동 수정 패턴. 검색 결과 품질 개선, 파라미터 자동 조정, 자동 재시도 구현 시 참조.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف 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 참조.