
关于
使用 Claude API 或 Anthropic SDK 构建应用。当代码导入 anthropic/@anthropic-ai/sdk/claude_agent_sdk,或用户要求使用 Claude API、Anthropic SDK 或 Agent SDK 时触发。
name: claude-api
description: "使用 Claude API 或 Anthropic SDK 构建应用。触发条件:代码导入 anthropic/@anthropic-ai/sdk/claude_agent_sdk,或用户要求使用 Claude API、Anthropic SDK 或 Agent SDK。不触发条件:代码导入 openai/其他 AI SDK、通用编程或 ML/数据科学任务。"
risk: unknown
source: "https://github.com/anthropics/skills"
date_added: "2026-03-21"
license: 完整条款见 LICENSE.txt
使用 Claude 构建 LLM 驱动的应用
此技能帮助你使用 Claude 构建 LLM 驱动的应用。根据需求选择合适的接口,检测项目语言,然后阅读相关的语言特定文档。
何时使用
- 使用 Claude API、Anthropic SDK 或 Agent SDK 构建时使用。
- 代码导入
anthropic、@anthropic-ai/sdk或相关 Claude SDK 包时使用。 - 不用于与 Claude 集成无关的通用编码工作。
默认设置
除非用户另有要求:
对于 Claude 模型版本,请使用 Claude Opus 4.6,可通过精确模型字符串 claude-opus-4-6 访问。请默认对任何稍微复杂的内容使用自适应思考(thinking: {type: "adaptive"})。最后,对于任何可能涉及长输入、长输出或高 max_tokens 的请求,请默认使用流式传输——它可以防止请求超时。如果不需要处理单个流事件,使用 SDK 的 .get_final_message() / .finalMessage() 辅助方法获取完整响应。
语言检测
在阅读代码示例之前,确定用户使用的语言:
-
查看项目文件推断语言:
*.py、requirements.txt、pyproject.toml、setup.py、Pipfile→ Python — 从python/读取*.ts、*.tsx、package.json、tsconfig.json→ TypeScript — 从typescript/读取*.js、*.jsx(无.ts文件)→ TypeScript — JS 使用相同 SDK,从typescript/读取*.java、pom.xml、build.gradle→ Java — 从java/读取*.kt、*.kts、build.gradle.kts→ Java — Kotlin 使用 Java SDK,从java/读取*.scala、build.sbt→ Java — Scala 使用 Java SDK,从java/读取*.go、go.mod→ Go — 从go/读取*.rb、Gemfile→ Ruby — 从ruby/读取*.cs、*.csproj→ C# — 从csharp/读取*.php、composer.json→ PHP — 从php/读取
-
如果检测到多种语言(例如同时有 Python 和 TypeScript 文件):
- 检查用户当前文件或问题涉及哪种语言
- 如果仍然不明确,询问:"我检测到了 Python 和 TypeScript 文件。你使用哪种语言进行 Claude API 集成?"
-
如果无法推断语言(空项目、无源文件或不支持的语言):
- 使用 AskUserQuestion 提供选项:Python、TypeScript、Java、Go、Ruby、cURL/原始 HTTP、C#、PHP
- 如果 AskUserQuestion 不可用,默认显示 Python 示例并注明:"显示 Python 示例。如需其他语言请告知。"
-
如果检测到不支持的语言(Rust、Swift、C++、Elixir 等):
- 建议使用
curl/中的 cURL/原始 HTTP 示例,并注明可能存在社区 SDK - 提供 Python 或 TypeScript 示例作为参考实现
- 建议使用
-
如果用户需要 cURL/原始 HTTP 示例,从
curl/读取。
语言特定功能支持
| 语言 | Tool Runner | Agent SDK | 备注 |
| ---------- | ----------- | --------- | ------------------------------------- |
| Python | 是(beta) | 是 | 完整支持 — @beta_tool 装饰器 |
| TypeScript | 是(beta) | 是 | 完整支持 — betaZodTool + Zod |
| Java | 是(beta) | 否 | 带注解类的 Beta 工具使用 |
| Go | 是(beta) | 否 | toolrunner 包中的 BetaToolRunner |
| Ruby | 是(beta) | 否 | Beta 中的 BaseTool + tool_runner |
| cURL | 不适用 | 不适用 | 原始 HTTP,无 SDK 功能 |
| C# | 否 | 否 | 官方 SDK |
| PHP | 否 | 否 | 官方 SDK |
应该使用哪个接口?
从简单开始。 默认使用满足需求的最简单层级。单次 API 调用和工作流处理大多数用例——只有当任务确实需要开放式、模型驱动的探索时才使用代理。
| 用例 | 层级 | 推荐接口 | 原因 | | ----------------------------------------------- | --------------- | ------------------------- | --------------------------------------- | | 分类、摘要、提取、问答 | 单次 LLM 调用 | Claude API | 一次请求,一次响应 | | 批处理或嵌入 | 单次 LLM 调用 | Claude API | 批量 API 支持 |