
最后更新:2026 年 6 月 4 日
当任务仍然主要围绕代码时,Claude Code SDK 非常适合:CI 检查、代码审查、结构化输出,以及支持 MCP 的自动化。但一旦工作流需要搜索、媒体、发布或其他非代码能力,单靠 Claude Code SDK 就不够了。
这就是 AnyCap 的用武之地。AnyCap 是一个 agent CLI,它把编码代理的能力扩展到代码执行之外,让同一条工作流可以从代码推理,继续走向研究、生成素材并交付结果。
一句话总结
- 代码导向的自动化用 Claude Code SDK
- 工作流需要搜索、媒体、发布或交付时,加入 AnyCap
- 把 Claude Code SDK 当作编码运行时
- 把 AnyCap 当作代码之外的能力层
什么是 Claude Code SDK?
Claude Code SDK 是一个程序化接口,可以让你:
- 从脚本和流水线中非交互式运行 Claude Code
- 控制哪些文件、目录和工具进入上下文
- 解析结构化输出供下游处理
- 在自动化工作流中把 Claude Code 与其他工具串联起来
- 在 Claude Code 的推理能力之上构建自定义 UI
它以 Node.js 包的形式提供:
npm install @anthropic-ai/claude-code
也可以通过 CLI 以非交互模式调用:
claude -p "在这里输入你的提示" --output-format json
SDK 核心概念
非交互模式
最基础的 SDK 用法:给 Claude Code 一个提示,拿到输出,完成。
# CLI 非交互模式
claude -p "审查 src/auth.ts 是否存在安全漏洞" \
--output-format json \
--max-turns 5
// SDK
const { query } = require('@anthropic-ai/claude-code');
const result = await query({
prompt: "审查 src/auth.ts 是否存在安全漏洞",
options: {
maxTurns: 5,
outputFormat: 'json'
}
});
工具配置
控制 Claude Code 在你的 SDK 调用中可以访问哪些工具:
const result = await query({
prompt: "为 src/utils.ts 生成测试套件",
options: {
allowedTools: ['Read', 'Write', 'Bash'],
// 关闭你不需要的工具:
// disallowedTools: ['WebSearch', 'mcp__custom_tool']
}
});
自定义系统提示词
为专业行为覆盖 Claude Code 的默认系统提示词:
const result = await query({
prompt: "重构这个模块",
options: {
systemPrompt: `你是一名专注于函数式编程模式的 TypeScript 专家。
始终优先使用不可变数据结构。错误处理请使用 Result 类型。
绝不要使用 any 或 unknown 类型。`,
}
});
实用的 SDK 模式
1. 在 CI 中自动代码审查
// .github/workflows/code-review.js
const { query } = require('@anthropic-ai/claude-code');
const { execSync } = require('child_process');
const diff = execSync('git diff main...HEAD').toString();
const review = await query({
prompt: `请审查这个 PR diff,关注:安全问题、性能问题、缺失的测试。
以 JSON 输出,键名为 security[]、performance[]、testing[]。
Diff:
${diff}`,
options: {
outputFormat: 'json',
allowedTools: ['Read'], // CI 中只读
maxTurns: 3
}
});
console.log(JSON.parse(review.result));
2. 自动生成文档
const fs = require('fs');
const { query } = require('@anthropic-ai/claude-code');
async function generateDocs(srcPath) {
const result = await query({
prompt: `为 ${srcPath} 中所有导出的函数生成完整的 JSDoc 文档。
添加参数说明、返回类型和使用示例。
将已添加文档的更新文件写回。`,
options: {
allowedTools: ['Read', 'Write'],
cwd: process.cwd()
}
});
return result;
}
3. 带外部能力的多代理工作流
这就是 AnyCap 大显身手的地方。Claude Code 负责代码推理,而 AnyCap 负责那些位于编码运行时之外的任务。
const { query } = require('@anthropic-ai/claude-code');
const { execSync } = require('child_process');
async function buildAndPublishDocs(repoPath) {
// 第 1 步:Claude Code 生成文档
const docsResult = await query({
prompt: "为这个项目生成一份完整的 README,包含安装说明、API 参考和示例",
options: {
cwd: repoPath,
allowedTools: ['Read', 'Write', 'Bash']
}
});
// 第 2 步:AnyCap 生成主视觉图
execSync(`anycap image generate \
--prompt "面向开发者工具的技术架构图,干净极简风格" \
--model nano-banana-2 \
-o ${repoPath}/docs/architecture.png`);
// 第 3 步:AnyCap 将其发布为网页
const pageResult = execSync(`anycap page deploy ${repoPath}/docs/`).toString();
return { docs: docsResult, page: JSON.parse(pageResult) };
}
SDK 身份验证
SDK 使用与 Claude Code 相同的身份验证。设置你的 API 密钥:
export ANTHROPIC_API_KEY=your_key_here
或者在团队环境中使用按环境区分的配置:
const { query } = require('@anthropic-ai/claude-code');
// SDK 会自动读取 ANTHROPIC_API_KEY
// 或显式传入:
process.env.ANTHROPIC_API_KEY = await getSecretFromVault('anthropic-api-key');
输出格式
SDK 支持三种输出格式:
| 格式 | 使用场景 |
|---|---|
text |
默认的人类可读输出 |
json |
程序化处理——包含结果、成本、会话信息 |
stream-json |
面向 UI 和仪表盘的实时输出 |
// JSON 输出包含元数据
{
"result": "这个函数可能存在 SQL 注入漏洞...",
"is_error": false,
"session_id": "sess_xxxx",
"cost_usd": 0.0043,
"num_turns": 2
}
SDK 工作流中的速率限制与成本管理
基于 SDK 的自动化可能比交互式使用更快消耗 token。内置保护措施如下:
const result = await query({
prompt: "...",
options: {
maxTurns: 5, // 限制推理轮次
timeoutMs: 30000, // 长时间任务超时
}
});
// 在生产环境中始终检查成本
if (result.cost_usd > 0.10) {
logger.warn(`高成本会话:$${result.cost_usd}`);
}
对于图片生成、视频制作、网页搜索这类重能力任务,建议卸载给 AnyCap,而不是让 Claude Code 在上下文里直接处理。这样可以让 SDK 成本保持可预测,并避免在非推理任务上触发 Claude 的速率限制。
开始使用
# 安装 SDK
npm install @anthropic-ai/claude-code
# 安装 AnyCap 以扩展能力
curl -fsSL https://anycap.ai/install.sh | sh
# 将 AnyCap skill 添加到 Claude Code
npx -y skills add anycap-ai/anycap -y