Claude Code SDK + AnyCap:当你需要的不只是代码

Claude Code SDK 非常适合以代码为中心的自动化。了解何时加入 AnyCap 这个 agent CLI,用于网页搜索、媒体生成、发布以及更广泛的代理工作流。

by AnyCap

Claude Code SDK + AnyCap 英雄图

最后更新: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

适用于 Claude Code 的 AnyCap向 Claude Code 添加工具指南