이 튜토리얼에서는 Agent Skills를 사용하여 PowerPoint 프레젠테이션을 만드는 방법을 보여줍니다. Skills를 활성화하고, 간단한 요청을 만들고, 생성된 파일에 접근하는 방법을 배우게 됩니다.
사전 구축된 Agent Skills는 문서 생성, 데이터 분석, 파일 처리와 같은 작업에 대한 전문 지식으로 Claude의 기능을 확장합니다. Anthropic은 API에서 다음과 같은 사전 구축된 Agent Skills를 제공합니다:
커스텀 Skills를 만들고 싶으신가요? 도메인별 전문 지식을 갖춘 자체 Skills를 구축하는 예제는 Agent Skills Cookbook을 참조하세요.
먼저, 어떤 Skills가 사용 가능한지 확인해 보겠습니다. Skills API를 사용하여 Anthropic이 관리하는 모든 Skills를 나열합니다:
import anthropic
client = anthropic.Anthropic()
# Anthropic이 관리하는 Skills 나열
skills = client.beta.skills.list(
source="anthropic",
betas=["skills-2025-10-02"]
)
for skill in skills.data:
print(f"{skill.id}: {skill.display_title}")다음과 같은 Skills가 표시됩니다: pptx, xlsx, docx, pdf.
이 API는 각 Skill의 메타데이터(이름과 설명)를 반환합니다. Claude는 시작 시 이 메타데이터를 로드하여 어떤 Skills가 사용 가능한지 파악합니다. 이것이 **점진적 공개(progressive disclosure)**의 첫 번째 수준으로, Claude가 전체 지침을 아직 로드하지 않고도 Skills를 발견하는 단계입니다.
이제 PowerPoint Skill을 사용하여 재생 에너지에 대한 프레젠테이션을 만들겠습니다. Messages API에서 container 매개변수를 사용하여 Skills를 지정합니다:
import anthropic
client = anthropic.Anthropic()
# PowerPoint Skill로 메시지 생성
response = client.beta.messages.create(
model="claude-opus-4-6",
max_tokens=4096,
betas=["code-execution-2025-08-25", "skills-2025-10-02"],
container={
"skills": [
{
"type": "anthropic",
"skill_id": "pptx",
"version": "latest"
}
]
},
messages=[{
"role": "user",
"content": "Create a presentation about renewable energy with 5 slides"
}],
tools=[{
"type": "code_execution_20250825",
"name": "code_execution"
}]
)
print(response.content)각 부분이 하는 역할을 살펴보겠습니다:
container.skills: Claude가 사용할 수 있는 Skills를 지정합니다type: "anthropic": Anthropic이 관리하는 Skill임을 나타냅니다skill_id: "pptx": PowerPoint Skill 식별자version: "latest": 가장 최근에 게시된 Skill 버전으로 설정tools: 코드 실행을 활성화합니다 (Skills에 필수)code-execution-2025-08-25 및 skills-2025-10-02이 요청을 보내면 Claude가 자동으로 작업을 관련 Skill에 매칭합니다. 프레젠테이션을 요청했으므로 Claude는 PowerPoint Skill이 관련이 있다고 판단하고 전체 지침을 로드합니다: 이것이 점진적 공개의 두 번째 수준입니다. 그런 다음 Claude는 Skill의 코드를 실행하여 프레젠테이션을 생성합니다.
프레젠테이션은 코드 실행 컨테이너에서 생성되어 파일로 저장되었습니다. 응답에는 파일 ID가 포함된 파일 참조가 있습니다. 파일 ID를 추출하고 Files API를 사용하여 다운로드합니다:
# 응답에서 파일 ID 추출
file_id = None
for block in response.content:
if block.type == 'tool_use' and block.name == 'code_execution':
# 파일 ID는 도구 결과에 있습니다
for result_block in block.content:
if hasattr(result_block, 'file_id'):
file_id = result_block.file_id
break
if file_id:
# 파일 다운로드
file_content = client.beta.files.download(
file_id=file_id,
betas=["files-api-2025-04-14"]
)
# 디스크에 저장
with open("renewable_energy.pptx", "wb") as f:
file_content.write_to_file(f.name)
print(f"Presentation saved to renewable_energy.pptx")생성된 파일 작업에 대한 자세한 내용은 코드 실행 도구 문서를 참조하세요.
Skills로 첫 번째 문서를 만들었으니, 다음 변형들을 시도해 보세요:
response = client.beta.messages.create(
model="claude-opus-4-6",
max_tokens=4096,
betas=["code-execution-2025-08-25", "skills-2025-10-02"],
container={
"skills": [
{
"type": "anthropic",
"skill_id": "xlsx",
"version": "latest"
}
]
},
messages=[{
"role": "user",
"content": "Create a quarterly sales tracking spreadsheet with sample data"
}],
tools=[{
"type": "code_execution_20250825",
"name": "code_execution"
}]
)response = client.beta.messages.create(
model="claude-opus-4-6",
max_tokens=4096,
betas=["code-execution-2025-08-25", "skills-2025-10-02"],
container={
"skills": [
{
"type": "anthropic",
"skill_id": "docx",
"version": "latest"
}
]
},
messages=[{
"role": "user",
"content": "Write a 2-page report on the benefits of renewable energy"
}],
tools=[{
"type": "code_execution_20250825",
"name": "code_execution"
}]
)response = client.beta.messages.create(
model="claude-opus-4-6",
max_tokens=4096,
betas=["code-execution-2025-08-25", "skills-2025-10-02"],
container={
"skills": [
{
"type": "anthropic",
"skill_id": "pdf",
"version": "latest"
}
]
},
messages=[{
"role": "user",
"content": "Generate a PDF invoice template"
}],
tools=[{
"type": "code_execution_20250825",
"name": "code_execution"
}]
)사전 구축된 Agent Skills를 사용해 보았으니, 다음을 할 수 있습니다:
Claude API로 Skills 사용하기
전문 작업을 위한 자체 Skills 업로드하기
효과적인 Skills 작성을 위한 모범 사례 알아보기
Claude Code에서의 Skills에 대해 알아보기
TypeScript와 Python에서 프로그래밍 방식으로 Skills 사용하기
예제 Skills 및 구현 패턴 탐색하기
Was this page helpful?