메시지 기록 처리

메시지 기록 처리 (Process History)

ProcessHistoryhistory processor를 감싸는 캐퍼빌리티예요. history processor는 각 모델 요청 전에 메시지 기록을 받아 (수정된) 보낼 메시지 목록을 반환하는 함수입니다. 오래된 턴을 정리하거나, 민감한 내용을 삭제하거나, 긴 대화를 요약하는 데 사용해요.

출처: 문서

본문

from pydantic_ai import Agent
from pydantic_ai.capabilities import ProcessHistory
from pydantic_ai.messages import ModelMessage


def keep_recent(messages: list[ModelMessage]) -> list[ModelMessage]:
    return messages[-5:]  # (1)


agent = Agent('openai:gpt-5.2', capabilities=[ProcessHistory(keep_recent)])
  • (1) 가장 최근 메시지 다섯 개만 유지합니다. 실제로는 첫 번째 요청도 함께 유지해서 시스템 프롬프트가 살아남게 하고 싶을 거예요 — 완전한 패턴은 Processing Message History를 참고하세요.

프로세서는 sync 또는 async일 수 있고, 선택적으로 첫 인수로 RunContext를 받아 의존성과 런 상태에 접근할 수 있어요. 여러 ProcessHistory 캐퍼빌리티는 등록 순서대로 적용됩니다. 처리된 메시지는 런의 메시지 기록을 대체(replace) 하므로, 원본을 유지해야 한다면 먼저 복사본을 만들어 두세요.

ProcessHistorybefore_model_request 라이프사이클 훅의 가벼운 래퍼예요. 모델 호출을 단락(short-circuit)시키는 것 같은 더 세밀한 제어가 필요하면 그 이벤트에 직접 훅을 걸면 됩니다. 요약 예제와 new_messages()와의 상호작용을 포함한 전체 가이드는 Processing Message History에서 확인하세요.

더 알아보기 (Learn more)