# PydanticAI > PydanticAI 에이전트를 Kiln에서 실행하는 방법입니다. 설치, 검증한 run_sync 호출, 이름이 바뀐 OpenAIModel 대신 쓰는 OpenAIChatModel, max_tokens를 넣는 위치를 설명합니다. Source: https://kiln.bricksum.com/docs/ko/sdks/pydantic-ai PydanticAI는 모델 객체 위에 에이전트를 만들고, OpenAI 모델은 base URL과 키로 만든 프로바이더를 받습니다. 에이전트 정의에서 그 밖에 바꿀 것은 없습니다. ## 설치 **Python** ```bash pip install pydantic-ai ``` ## 연결 **Python** ```python import os from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIChatModel from pydantic_ai.providers.openai import OpenAIProvider model = OpenAIChatModel( "qwen3-32b", provider=OpenAIProvider( base_url="https://api.bricksum.com/v1", api_key=os.environ["KILN_API_KEY"], # sk-bk-... ), ) agent = Agent(model, system_prompt="Answer briefly.", model_settings={"max_tokens": 800}) print(agent.run_sync("Write a haiku about kilns.").output) ``` ## Kiln에서 다른 점 - **OpenAIModel이 아니라 OpenAIChatModel** PydanticAI에서 클래스 이름이 바뀌었고 예전 가이드에는 아직 OpenAIModel이 남아 있습니다. 아래 안내에 적힌 버전에서는 그 import가 실패하므로 OpenAIProvider와 함께 OpenAIChatModel을 쓰세요. - **max_tokens는 model_settings에** 요청 설정은 모델이 아니라 에이전트가 들고 있습니다. reasoning 토큰도 이 예산에 포함되며, 답변 텍스트가 나오기 전에 예산이 떨어지면 PydanticAI는 빈 결과를 돌려주지 않고 UnexpectedModelBehavior를 냅니다. 여유를 두세요. 예제의 800은 이 모델에서 측정하지 않은 시작값이므로, 실행이 UnexpectedModelBehavior를 내면 늘리세요. base URL, 인증, 모든 엔드포인트가 공유하는 요청 파라미터, 응답 형식, 스트리밍, 에러 코드는 어떤 SDK를 쓰든 같습니다. 이 내용은 [API 레퍼런스](https://kiln.bricksum.com/docs/ko/api-reference)에 한 번만 정리돼 있습니다. 위 호출이 도달하는 엔드포인트는 [Chat completions](https://kiln.bricksum.com/docs/ko/api-reference/chat-completions)입니다. 모델 ID는 API가 지금 서빙 중인 것이어야 합니다. 목록을 조회하는 방법과 원하는 ID가 목록에 없을 때 할 일은 [모델](https://kiln.bricksum.com/docs/ko/models) 페이지에 있습니다. SDK와 무관하게 이 모델이 지원하지 않는 기능은 [OpenAI에서 옮겨오기](https://kiln.bricksum.com/docs/ko/migrating-from-openai) 페이지에 정리돼 있습니다. 참고 이 페이지의 스니펫은 2026-09-21에 pydantic-ai 2.46.0 환경에서 Kiln API로 직접 실행해 확인했습니다. 확인하지 않은 부분: 그 실행은 gpt-oss-120b에서 했습니다. 페이지는 이제 qwen3-32b을 사용하며, 이 모델로는 아직 다시 실행하지 않았습니다. 위 에이전트 실행은 직접 확인했습니다. 타입 지정 출력, 툴, 스트리밍은 Kiln에서 확인하지 않았습니다.