메인 콘텐츠로 건너뛰기
실행 훅(Execution Hooks)은 CrewAI 에이전트의 런타임 동작을 세밀하게 제어할 수 있게 해줍니다. 크루 실행 전후에 실행되는 킥오프 훅과 달리, 실행 훅은 에이전트 실행 중 특정 작업을 가로채서 동작을 수정하고, 안전성 검사를 구현하며, 포괄적인 모니터링을 추가할 수 있습니다.

실행 훅의 유형

CrewAI는 두 가지 주요 범주의 실행 훅을 제공합니다:

1. LLM 호출 훅

언어 모델 상호작용을 제어하고 모니터링합니다:
  • LLM 호출 전: 프롬프트 수정, 입력 검증, 승인 게이트 구현
  • LLM 호출 후: 응답 변환, 출력 정제, 대화 기록 업데이트
사용 사례:
  • 반복 제한
  • 비용 추적 및 토큰 사용량 모니터링
  • 응답 정제 및 콘텐츠 필터링
  • LLM 호출에 대한 사람의 승인
  • 안전 가이드라인 또는 컨텍스트 추가
  • 디버그 로깅 및 요청/응답 검사
LLM 훅 문서 보기 →

2. 도구 호출 훅

도구 실행을 제어하고 모니터링합니다:
  • 도구 호출 전: 입력 수정, 매개변수 검증, 위험한 작업 차단
  • 도구 호출 후: 결과 변환, 출력 정제, 실행 세부사항 로깅
사용 사례:
  • 파괴적인 작업에 대한 안전 가드레일
  • 민감한 작업에 대한 사람의 승인
  • 입력 검증 및 정제
  • 결과 캐싱 및 속도 제한
  • 도구 사용 분석
  • 디버그 로깅 및 모니터링
도구 훅 문서 보기 →

훅 등록 방법

1. 데코레이터 기반 훅 (권장)

훅을 등록하는 가장 깔끔하고 파이썬스러운 방법:

2. 크루 범위 훅

특정 크루 인스턴스에만 훅을 적용합니다:

훅 실행 흐름

LLM 호출 흐름

도구 호출 흐름

훅 컨텍스트 객체

LLMCallHookContext

LLM 실행 상태에 대한 액세스를 제공합니다:

ToolCallHookContext

도구 실행 상태에 대한 액세스를 제공합니다:

일반적인 패턴

안전 및 검증

사람의 개입

모니터링 및 분석

훅 관리

모든 훅 지우기

특정 훅 유형 지우기

모범 사례

1. 훅을 집중적으로 유지

각 훅은 단일하고 명확한 책임을 가져야 합니다.

2. 오류를 우아하게 처리

3. 컨텍스트를 제자리에서 수정

4. 타입 힌트 사용

5. 테스트에서 정리

어떤 훅을 사용해야 할까요

LLM 훅을 사용하는 경우:

  • 반복 제한 구현
  • 프롬프트에 컨텍스트 또는 안전 가이드라인 추가
  • 토큰 사용량 및 비용 추적
  • 응답 정제 또는 변환
  • LLM 호출에 대한 승인 게이트 구현
  • 프롬프트/응답 상호작용 디버깅

도구 훅을 사용하는 경우:

  • 위험하거나 파괴적인 작업 차단
  • 실행 전 도구 입력 검증
  • 민감한 작업에 대한 승인 게이트 구현
  • 도구 결과 캐싱
  • 도구 사용 및 성능 추적
  • 도구 출력 정제
  • 도구 호출 속도 제한

둘 다 사용하는 경우:

모든 에이전트 작업을 모니터링해야 하는 포괄적인 관찰성, 안전 또는 승인 시스템을 구축하는 경우.

관련 문서

결론

실행 훅은 에이전트 런타임 동작에 대한 강력한 제어를 제공합니다. 이를 사용하여 안전 가드레일, 승인 워크플로우, 포괄적인 모니터링 및 사용자 정의 비즈니스 로직을 구현하세요. 적절한 오류 처리, 타입 안전성 및 성능 고려사항과 결합하면, 훅을 통해 프로덕션 준비가 된 안전하고 관찰 가능한 에이전트 시스템을 구축할 수 있습니다.