配置说明

SDK 支持从多种来源加载配置,按优先级从低到高排列:

  1. 默认值 — 内置默认配置
  2. 配置文件 — JSON 文件
  3. 环境变量 — 操作系统环境
  4. 编程覆盖 — 代码中直接传入

基础配置

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

const sdk = new ClaudeCodeSDK({
  llm: {
    provider: 'anthropic',
    apiKey: process.env.ANTHROPIC_API_KEY!,
    model: 'claude-sonnet-4-20250514',
    maxTokens: 8192,
    temperature: 0.7,
  },
  // 权限模式
  permissionMode: 'auto', // 'auto' | 'manual' | 'bypass' | 'plan'
  // 默认启用所有内置工具
  defaultTools: true,
})

ConfigManager

使用 ConfigManager 可以更精细地管理配置:

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

const config = new ConfigManager()

// 从文件加载
config.loadFromFile('./claude-code-sdk.json')

// 从环境变量加载
config.mergeFromEnv()

// 编程更新
config.update({
  llm: { provider: 'vertex', projectId: 'my-project' },
})

// 获取配置
const current = config.getConfig()
console.log(current.llm.provider) // 'vertex'

配置验证

import { sdkConfigSchema } from 'claude-code-sdk-ts/config'

const result = sdkConfigSchema.safeParse(myConfig)
if (!result.success) {
  console.error('配置验证失败:', result.error.issues)
  // [
  //   { path: ['llm', 'apiKey'], message: 'Required' },
  //   { path: ['llm', 'provider'], message: "Expected 'anthropic' | 'bedrock' | 'vertex' | 'foundry'" }
  // ]
}

配置优先级

const config = new ConfigManager()

// 按优先级合并多个来源
config.loadFromSources({
  filePath: './settings.json',  // 低优先级
  env: process.env,             // 中优先级
  cliArgs: {                    // 高优先级
    permissionMode: 'bypass',
  },
})

环境变量对照

环境变量 对应配置项 示例
ANTHROPIC_API_KEY llm.apiKey sk-ant-...
ANTHROPIC_MODEL llm.model claude-sonnet-4-20250514
ANTHROPIC_BASE_URL llm.baseUrl https://api.anthropic.com
AWS_ACCESS_KEY_ID llm.accessKeyId Bedrock 凭证
AWS_SECRET_ACCESS_KEY llm.secretAccessKey Bedrock 凭证
ANTHROPIC_VERTEX_PROJECT_ID llm.projectId Vertex 项目 ID
CLAUDE_CODE_PERMISSION_MODE permissionMode auto/manual/bypass/plan