工具调用

让 Claude 自动调用工具完成任务的完整示例。

读取文件并分析

import { ask } from 'claude-code-sdk-ts'

const result = await ask({
  llm: {
    provider: 'anthropic',
    apiKey: process.env.ANTHROPIC_API_KEY!,
    model: 'claude-sonnet-4-20250514',
  },
  prompt: 'Read package.json and tell me what dependencies this project uses',
  tools: ['FileReadTool'],
})

console.log(result.text)
// This project uses the following dependencies:
// - claude-code-sdk-ts
// - zod
// - ...

执行 Shell 命令

import { ask } from 'claude-code-sdk-ts'

const result = await ask({
  llm: {
    provider: 'anthropic',
    apiKey: process.env.ANTHROPIC_API_KEY!,
    model: 'claude-sonnet-4-20250514',
  },
  prompt: 'Show me the disk usage in the current directory',
  tools: ['BashTool'],
})

console.log(result.text)

搜索代码文件

import { ask } from 'claude-code-sdk-ts'

const result = await ask({
  llm: {
    provider: 'anthropic',
    apiKey: process.env.ANTHROPIC_API_KEY!,
    model: 'claude-sonnet-4-20250514',
  },
  prompt: 'Find all TypeScript files that contain "createTool"',
  tools: ['GlobTool', 'GrepTool'],
})

console.log(result.text)

自定义工具

import { ask } from 'claude-code-sdk-ts'

const result = await ask({
  llm: {
    provider: 'anthropic',
    apiKey: process.env.ANTHROPIC_API_KEY!,
    model: 'claude-sonnet-4-20250514',
  },
  prompt: 'Calculate 15% tip on a $47.50 bill',
  tools: [{
    name: 'calculator',
    description: '执行数学计算',
    schema: {
      type: 'object',
      properties: {
        expression: { type: 'string' },
      },
      required: ['expression'],
    },
  }],
})

console.log(result.text)
// The 15% tip on a $47.50 bill is $7.13