Receber por email
← Voltar para o catálogo

claude-agent-sdk

This skill provides comprehensive knowledge for working with the Anthropic Claude Agent SDK. It should be used when building autonomous AI agents, creating multi-step reasoning workflows, orchestrating specialized subagents, integrating custom tools and MCP servers, or implementing production-ready agentic systems with Claude Code's capabilities. Use when building coding agents, SRE systems, secur

15estrelas
Atualizado há 11 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add jackspace/ClaudeSkillz

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/claude-agent-sdk/svg)](https://www.skillteca.com.br/skills/claude-agent-sdk)

Skills relacionadas

Ver todas de Automação →

Alerta por categoria

Receba novas skills de Automação toda segunda

1 email curto, só com as skills novas de Automação. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Claude Agent SDK

Status: Production Ready Last Updated: 2025-10-25 Dependencies: @anthropic-ai/claude-agent-sdk, zod Latest Versions: @anthropic-ai/claude-agent-sdk@0.1.0+, zod@3.23.0+

Quick Start (5 Minutes)

1. Install SDK

npm install @anthropic-ai/claude-agent-sdk zod

Why these packages:

  • @anthropic-ai/claude-agent-sdk - Main Agent SDK
  • zod - Type-safe schema validation for tools

2. Set API Key

export ANTHROPIC_API_KEY="sk-ant-..."

CRITICAL:

  • API key required for all agent operations
  • Never commit API keys to version control
  • Use environment variables

3. Basic Query

import { query } from "@anthropic-ai/claude-agent-sdk";

const response = query({
  prompt: "Analyze the codebase and suggest improvements",
  options: {
    model: "claude-sonnet-4-5",
    workingDirectory: process.cwd(),
    allowedTools: ["Read", "Grep", "Glob"]
  }
});

for await (const message of response) {
  if (message.type === 'assistant') {
    console.log(message.content);
  }
}

The Complete Claude Agent SDK Reference

Table of Contents

  1. [Core Query API](#core-query-api)
  2. [Tool Integration](#tool-integration-built-in--custom)
  3. [MCP Servers](#mcp-servers-model-context-protocol)
  4. [Subagent Orchestration](#subagent-orchestration)
  5. [Session Management](#session-management)
  6. [Permission Control](#permission-control)
  7. [Filesystem Settings](#filesystem-settings)
  8. [Message Types & Streaming](#message-types--streaming)
  9. [Error Handling](#error-handling)
  10. [Known Issues](#known-issues-prevention)

Core Query API

The query() Function

The primary interface for interacting with Claude Code CLI programmatically.

import { query } from "@anthropic-ai/claude-agent-sdk";

const response = query({
  prompt: string | AsyncIterable<SDKUserMessage>,
  options?: Options
});

// Response is AsyncGenerator<SDKMessage, void>
for await (const message of response) {
  // Process streaming messages
}

Basic Options

const response = query({
  prompt: "Review this code for bugs",
  options: {
    model: "claude-sonnet-4-5",        // or "haiku", "opus"
    workingDirectory: "/path/to/project",
    systemPrompt: "You are a security-focused code reviewer.",
    allowedTools: ["Read", "Grep", "Glob"],
    disallowedTools: ["Write", "Edit", "Bash"],
    permissionMode: "default"           // or "acceptEdits", "bypassPermissions"
  }
});

Model Selection

| Model | ID | Best For | Speed | Capability | |-------|-----|----------|-------|------------| | Haiku | "haiku" | Fast tasks, monitoring | Fastest | Basic | | Sonnet | "sonnet" or "claude-sonnet-4-5" | Balanced | Medium | High | | Opus | "opus" | Complex reasoning | Slowest | Highest | | Inherit | "inherit" | Use parent model | - | - |

Default: "sonnet" if not specified

System Prompts

const response = query({
  prompt: "Implement user authentication",
  options: {
    systemPrompt: `You are an expert backend developer.

Follow these principles:
- Always use TypeScript with strict types
- Implement comprehensive error handling
- Add detailed logging for debugging
- Write unit tests for all functions
- Follow OWASP security guidelines`
  }
});

CRITICAL:

  • System prompt sets agent behavior for entire session
  • Should be clear and specific
  • Can be 1-10k tokens (affects context window)

Working Directory

const response = query({
  prompt: "Refactor the user service",
  options: {
    workingDirectory: "/Users/dev/projects/my-app",
    // Agent operates within this directory
    // Relative paths resolved from here
  }
});

Best Practices:

  • Use absolute paths for clarity
  • Agent stays within this directory scope
  • Critical for multi-project environments

Tool Integration (Built-in + Custom)

Built-in Tools

The SDK provides access to Claude Code's built-in tools:

| Tool | Description | Use Case | |------|-------------|----------| | Read | Read file contents | Code analysis | | Write | Create new files | Generate code | | Edit | Modify existing files | Refactoring | | Bash | Execute shell commands | Run tests, git | | Grep | Search file contents | Find patterns | | Glob | Find files by pattern | File discovery | | WebSearch | Search the web | Research | | WebFetch | Fetch URL content | Documentation | | Task | Delegate to subagent | Orchestration |

Allowing/Disallowing Tools

// Whitelist approach (recommended)
const response = query({
  prompt: "Analyze code but don't modify anything",
  options: {
    allowedTools: ["Read", "Grep", "Glob"]
    // ONLY these tools can be used
  }
});

// Blacklist approach
const response = query({
  prompt: "Review and fix issues",
  options: {
    disallowedTools: ["Bash"]
    // Everything except Bash allowed
  }
});

// Combination (allowedTools takes precedence)
const response = query({
  prompt: "Safe code review",
  options: {
    allowedTools: ["Read", "Grep", "Glob", "Edit"],
    disallowedTools: ["Edit"]  // Edit still blocked (allowedTools overridden)
  }
});

CRITICAL:

  • allowedTools = whitelist (only these tools)
  • disallowedTools = blacklist (everything except these)
  • If both specified, allowedTools wins

Custom Tool Execution Monitoring

const response = query({
  prompt: "Implement feature X",
  options: {
    allowedTools: ["Read", "Write", "Edit", "Bash"]
  }
});

for await (const message of response) {
  if (message.type === 'tool_call') {
    console.log(`Tool requested: ${message.tool_name}`);
    console.log(`Input:`, message.input);
  } else if (message.type === 'tool_result') {
    console.log(`Tool ${message.tool_name} completed`);
  }
}

MCP Servers (Model Context Protocol)

Overview

MCP servers extend agent capabilities with custom tools. The SDK supports:

  • In-process servers (createSdkMcpServer) - Run in same process
  • External servers (stdio, HTTP, SSE) - Separate processes

Creating In-Process MCP Servers

import { createSdkMcpServer, tool } from "@anthropic-ai/claude-agent-sdk";
import { z } from "zod";

const weatherServer = createSdkMcpServer({
  name: "weather-service",
  version: "1.0.0",
  tools: [
    tool(
      "get_weather",
      "Get current weather for a location",
      {
        location: z.string().describe("City name or coordinates"),
        units: z.enum(["celsius", "fahrenheit"]).default("celsius")
      },
      async (args) => {
        // Tool implementation
        const response = await fetch(
          `https://api.weather.com/v1/current?location=${args.location}&units=${args.units}`
        );
        const data = await response.json();

        return {
          content: [{
            type: "text",
            text: `Temperature: ${data.temp}° ${args.units}
Conditions: ${data.conditions}
Humidity: ${data.humidity}%`
          }]
        };
      }
    )
  ]
});

// Use in query
const response = query({
  prompt: "What's the weather in San Francisco?",
  options: {
    mcpServers: {
      "weather-service": weatherServer
    },
    allowedTools: ["mcp__weather-service__get_weather"]
  }
});

Tool Definition Pattern

tool(
  name: string,                    // Tool identifier
  description: string,             // What the tool does
  inputSchema: ZodSchema,          // Input validation
  handler: async (args) => Result // Implementation
)

Input Schema Options:

// Simple object schema
{
  email: z.string().email(),
  limit: z.number().min(1).max(100).default(10),
  enabled: z.boolean().optional()
}

// Complex nested schema
{
  user: z.object({
    name: z.string(),
    age: z.number().min(0)
  }),
  filters: z.array(z.string()).optional()
}

// Enum types
{
  status: z.enum(["pending", "active", "completed"]),
  pr
Compartilhar X LinkedIn