本教學展示如何使用 Agent Skills 建立 PowerPoint 簡報。您將學習如何啟用 Skills、提出簡單請求,以及存取生成的檔案。

先決條件

什麼是 Agent Skills?

預先建立的 Agent Skills 使用專門的專業知識擴展 Claude 的功能,用於建立文件、分析資料和處理檔案等任務。Anthropic 在 API 中提供以下預先建立的 Agent Skills:
  • PowerPoint (pptx):建立和編輯簡報
  • Excel (xlsx):建立和分析試算表
  • Word (docx):建立和編輯文件
  • PDF (pdf):生成 PDF 文件
想要建立自訂 Skills? 請參閱 Agent Skills Cookbook,以取得使用領域特定專業知識建立您自己的 Skills 的範例。

步驟 1:列出可用的 Skills

首先,讓我們看看有哪些 Skills 可用。我們將使用 Skills API 列出所有 Anthropic 管理的 Skills:
import anthropic

client = anthropic.Anthropic()

# List Anthropic-managed 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:pptxxlsxdocxpdf 此 API 會傳回每個 Skill 的中繼資料:其名稱和描述。Claude 在啟動時載入此中繼資料,以了解有哪些 Skills 可用。這是漸進式揭露的第一個層級,其中 Claude 發現 Skills 而不會立即載入其完整指示。

步驟 2:建立簡報

現在我們將使用 PowerPoint Skill 建立一份關於可再生能源的簡報。我們使用 Messages API 中的 container 參數指定 Skills:
import anthropic

client = anthropic.Anthropic()

# Create a message with the PowerPoint Skill
response = client.beta.messages.create(
    model="claude-sonnet-4-5-20250929",
    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 所需)
  • Beta 標頭code-execution-2025-08-25skills-2025-10-02
當您提出此請求時,Claude 會自動將您的任務與相關的 Skill 進行比對。由於您要求簡報,Claude 判斷 PowerPoint Skill 是相關的,並載入其完整指示:這是漸進式揭露的第二個層級。然後 Claude 執行 Skill 的程式碼來建立您的簡報。

步驟 3:下載建立的檔案

簡報是在程式碼執行容器中建立的,並儲存為檔案。回應包含具有檔案 ID 的檔案參考。提取檔案 ID 並使用 Files API 下載它:
# Extract file ID from response
file_id = None
for block in response.content:
    if block.type == 'tool_use' and block.name == 'code_execution':
        # File ID is in the tool result
        for result_block in block.content:
            if hasattr(result_block, 'file_id'):
                file_id = result_block.file_id
                break

if file_id:
    # Download the file
    file_content = client.beta.files.download(
        file_id=file_id,
        betas=["files-api-2025-04-14"]
    )

    # Save to disk
    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-sonnet-4-5-20250929",
    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"
    }]
)

建立 Word 文件

response = client.beta.messages.create(
    model="claude-sonnet-4-5-20250929",
    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"
    }]
)

生成 PDF

response = client.beta.messages.create(
    model="claude-sonnet-4-5-20250929",
    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,您可以: