Loading...
    • Panduan Pengembang
    • Referensi API
    • MCP
    • Sumber daya
    • Catatan Rilis
    Search...
    ⌘K
    Langkah pertama
    Pengenalan ClaudeMulai cepat
    Model & harga
    Ikhtisar modelMemilih modelYang baru di Claude 4.6Panduan migrasiPenghentian modelHarga
    Bangun dengan Claude
    Ikhtisar fiturMenggunakan Messages APIMenangani alasan berhentiPraktik terbaik prompting
    Kemampuan model
    Extended thinkingAdaptive thinkingEffortMode cepat (pratinjau penelitian)Output terstrukturKutipanStreaming MessagesPemrosesan batchDukungan PDFHasil pencarianDukungan multibahasaEmbeddingsVisi
    Alat
    IkhtisarCara mengimplementasikan penggunaan alatAlat pencarian webAlat pengambilan webAlat eksekusi kodeAlat memoriAlat BashAlat penggunaan komputerAlat editor teks
    Infrastruktur alat
    Pencarian alatPemanggilan alat terprogramStreaming alat berbutir halus
    Manajemen konteks
    Jendela konteksPemadatanPengeditan konteksPrompt cachingPenghitungan token
    File & aset
    Files API
    Agent Skills
    IkhtisarMulai cepatPraktik terbaikSkills untuk enterpriseMenggunakan Skills dengan API
    Agent SDK
    IkhtisarMulai cepatTypeScript SDKTypeScript V2 (pratinjau)Python SDKPanduan Migrasi
    Streaming InputStreaming respons secara real-timeMenangani alasan berhentiMenangani IzinPersetujuan pengguna dan inputKontrol eksekusi dengan hooksManajemen SesiCheckpointing fileOutput terstruktur di SDKHosting Agent SDKPenyebaran agen AI yang amanMemodifikasi system promptsMCP di SDKAlat KustomSubagents di SDKSlash Commands di SDKAgent Skills di SDKMelacak Biaya dan PenggunaanDaftar TugasPlugin di SDK
    MCP di API
    Konektor MCPServer MCP jarak jauh
    Claude di platform pihak ketiga
    Amazon BedrockMicrosoft FoundryVertex AI
    Prompt engineering
    IkhtisarPembuat promptGunakan template promptPenyempurna promptJadilah jelas dan langsungGunakan contoh (multishot prompting)Biarkan Claude berpikir (CoT)Gunakan tag XMLBerikan Claude peran (system prompts)Rantai prompt kompleksTips konteks panjangTips extended thinking
    Uji & evaluasi
    Tentukan kriteria kesuksesanKembangkan kasus ujiMenggunakan Alat EvaluasiMengurangi latensi
    Perkuat guardrails
    Kurangi halusinasiTingkatkan konsistensi outputMitigasi jailbreaksStreaming penolakanKurangi kebocoran promptJaga Claude tetap dalam karakter
    Administrasi dan pemantauan
    Ikhtisar Admin APIResidensi dataRuang kerjaUsage and Cost APIClaude Code Analytics APIZero Data Retention
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Panduan

    Plugin dalam SDK

    Muat plugin khusus untuk memperluas Claude Code dengan perintah, agen, keterampilan, dan hook melalui Agent SDK

    Was this page helpful?

    • Apa itu plugin?
    • Memuat plugin
    • Spesifikasi jalur
    • Memverifikasi instalasi plugin
    • Menggunakan perintah plugin
    • Contoh lengkap
    • Referensi struktur plugin
    • Kasus penggunaan umum
    • Pengembangan dan pengujian
    • Ekstensi khusus proyek
    • Sumber plugin ganda
    • Pemecahan masalah
    • Plugin tidak dimuat
    • Perintah tidak tersedia
    • Masalah resolusi jalur
    • Lihat juga

    Plugin memungkinkan Anda memperluas Claude Code dengan fungsionalitas khusus yang dapat dibagikan di seluruh proyek. Melalui Agent SDK, Anda dapat secara terprogram memuat plugin dari direktori lokal untuk menambahkan perintah garis miring khusus, agen, keterampilan, hook, dan server MCP ke sesi agen Anda.

    Apa itu plugin?

    Plugin adalah paket ekstensi Claude Code yang dapat mencakup:

    • Perintah: Perintah garis miring khusus
    • Agen: Subagen khusus untuk tugas-tugas tertentu
    • Keterampilan: Kemampuan yang dipanggil model yang digunakan Claude secara otonom
    • Hook: Penanganan peristiwa yang merespons penggunaan alat dan peristiwa lainnya
    • Server MCP: Integrasi alat eksternal melalui Model Context Protocol

    Untuk informasi lengkap tentang struktur plugin dan cara membuat plugin, lihat Plugin.

    Memuat plugin

    Muat plugin dengan menyediakan jalur sistem file lokal mereka dalam konfigurasi opsi Anda. SDK mendukung pemuatan beberapa plugin dari lokasi berbeda.

    import { query } from "@anthropic-ai/claude-agent-sdk";
    
    for await (const message of query({
      prompt: "Hello",
      options: {
        plugins: [
          { type: "local", path: "./my-plugin" },
          { type: "local", path: "/absolute/path/to/another-plugin" }
        ]
      }
    })) {
      // Plugin commands, agents, and other features are now available
    }

    Spesifikasi jalur

    Jalur plugin dapat berupa:

    • Jalur relatif: Diselesaikan relatif terhadap direktori kerja saat ini Anda (misalnya, "./plugins/my-plugin")
    • Jalur absolut: Jalur sistem file lengkap (misalnya, "/home/user/plugins/my-plugin")

    Jalur harus menunjuk ke direktori root plugin (direktori yang berisi .claude-plugin/plugin.json).

    Memverifikasi instalasi plugin

    Ketika plugin dimuat dengan berhasil, mereka muncul dalam pesan inisialisasi sistem. Anda dapat memverifikasi bahwa plugin Anda tersedia:

    Menggunakan perintah plugin

    Perintah dari plugin secara otomatis diberi namespace dengan nama plugin untuk menghindari konflik. Formatnya adalah plugin-name:command-name.

    Jika Anda memasang plugin melalui CLI (misalnya, /plugin install my-plugin@marketplace), Anda masih dapat menggunakannya di SDK dengan menyediakan jalur instalasinya. Periksa ~/.claude/plugins/ untuk plugin yang dipasang CLI.

    Contoh lengkap

    Berikut adalah contoh lengkap yang mendemonstrasikan pemuatan dan penggunaan plugin:

    Referensi struktur plugin

    Direktori plugin harus berisi file manifes .claude-plugin/plugin.json. Secara opsional dapat mencakup:

    my-plugin/
    ├── .claude-plugin/
    │   └── plugin.json          # Required: plugin manifest
    ├── commands/                 # Custom slash commands
    │   └── custom-cmd.md
    ├── agents/                   # Custom agents
    │   └── specialist.md
    ├── skills/                   # Agent Skills
    │   └── my-skill/
    │       └── SKILL.md
    ├── hooks/                    # Event handlers
    │   └── hooks.json
    └── .mcp.json                # MCP server definitions

    Untuk informasi terperinci tentang membuat plugin, lihat:

    • Plugin - Panduan pengembangan plugin lengkap
    • Referensi Plugin - Spesifikasi teknis dan skema

    Kasus penggunaan umum

    Pengembangan dan pengujian

    Muat plugin selama pengembangan tanpa memasangnya secara global:

    plugins: [
      { type: "local", path: "./dev-plugins/my-plugin" }
    ]

    Ekstensi khusus proyek

    Sertakan plugin di repositori proyek Anda untuk konsistensi di seluruh tim:

    plugins: [
      { type: "local", path: "./project-plugins/team-workflows" }
    ]

    Sumber plugin ganda

    Gabungkan plugin dari lokasi berbeda:

    plugins: [
      { type: "local", path: "./local-plugin" },
      { type: "local", path: "~/.claude/custom-plugins/shared-plugin" }
    ]

    Pemecahan masalah

    Plugin tidak dimuat

    Jika plugin Anda tidak muncul dalam pesan init:

    1. Periksa jalurnya: Pastikan jalur menunjuk ke direktori root plugin (berisi .claude-plugin/)
    2. Validasi plugin.json: Pastikan file manifes Anda memiliki sintaks JSON yang valid
    3. Periksa izin file: Pastikan direktori plugin dapat dibaca

    Perintah tidak tersedia

    Jika perintah plugin tidak berfungsi:

    1. Gunakan namespace: Perintah plugin memerlukan format plugin-name:command-name
    2. Periksa pesan init: Verifikasi bahwa perintah muncul di slash_commands dengan namespace yang benar
    3. Validasi file perintah: Pastikan file markdown perintah berada di direktori commands/

    Masalah resolusi jalur

    Jika jalur relatif tidak berfungsi:

    1. Periksa direktori kerja: Jalur relatif diselesaikan dari direktori kerja saat ini Anda
    2. Gunakan jalur absolut: Untuk keandalan, pertimbangkan menggunakan jalur absolut
    3. Normalkan jalur: Gunakan utilitas jalur untuk membuat jalur dengan benar

    Lihat juga

    • Plugin - Panduan pengembangan plugin lengkap
    • Referensi Plugin - Spesifikasi teknis
    • Perintah Garis Miring - Menggunakan perintah garis miring di SDK
    • Subagen - Bekerja dengan agen khusus
    • Keterampilan - Menggunakan Agent Skills
    import { query } from "@anthropic-ai/claude-agent-sdk";
    
    for await (const message of query({
      prompt: "Hello",
      options: {
        plugins: [{ type: "local", path: "./my-plugin" }]
      }
    })) {
      if (message.type === "system" && message.subtype === "init") {
        // Check loaded plugins
        console.log("Plugins:", message.plugins);
        // Example: [{ name: "my-plugin", path: "./my-plugin" }]
    
        // Check available commands from plugins
        console.log("Commands:", message.slash_commands);
        // Example: ["/help", "/compact", "my-plugin:custom-command"]
      }
    }
    import { query } from "@anthropic-ai/claude-agent-sdk";
    
    // Load a plugin with a custom /greet command
    for await (const message of query({
      prompt: "/my-plugin:greet",  // Use plugin command with namespace
      options: {
        plugins: [{ type: "local", path: "./my-plugin" }]
      }
    })) {
      // Claude executes the custom greeting command from the plugin
      if (message.type === "assistant") {
        console.log(message.content);
      }
    }
    import { query } from "@anthropic-ai/claude-agent-sdk";
    import * as path from "path";
    
    async function runWithPlugin() {
      const pluginPath = path.join(__dirname, "plugins", "my-plugin");
    
      console.log("Loading plugin from:", pluginPath);
    
      for await (const message of query({
        prompt: "What custom commands do you have available?",
        options: {
          plugins: [
            { type: "local", path: pluginPath }
          ],
          maxTurns: 3
        }
      })) {
        if (message.type === "system" && message.subtype === "init") {
          console.log("Loaded plugins:", message.plugins);
          console.log("Available commands:", message.slash_commands);
        }
    
        if (message.type === "assistant") {
          console.log("Assistant:", message.content);
        }
      }
    }
    
    runWithPlugin().catch(console.error);