配置说明
SDK 支持从多种来源加载配置,按优先级从低到高排列:
- 默认值 — 内置默认配置
- 配置文件 — JSON 文件
- 环境变量 — 操作系统环境
- 编程覆盖 — 代码中直接传入
基础配置
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 |