claude-api

工程开发 已审计 @anthropics
信任分
94/100
兼容 Agent
1
许可证
Complete terms in LICENSE.txt
速查档案 只列事实:领域、Agent、信任分、作者、原文章节。装与不装请看下方作者解读。
领域
工程开发
兼容 Agent
Claude Code
信任分
94 / 100 · 已通过审计
作者 / 版本 / 许可
@anthropics · Complete terms in LICENSE.txt
安装命令数
1 条

需要注意: 未限定 allowed-tools,默认拥有全部工具权限。

想读作者英文原文? ↓ 滚到正文区切换 · 在 GitHub 查看 ↗

解读由编辑根据原文凝练而成,命令、链接、术语均与作者原文一致;想看完整论述请切到右侧

设计思路

这是一份「写 Claude API 代码时该怎么做、最容易踩什么坑」的可执行指南。作者把它做成 skill 而不是文档,是因为 LLM 在写 API 代码时反复犯一类错误:拿过期的模型 ID、用废弃参数、在 streaming/非 streaming 之间没区分清楚 max_tokens 默认值。skill 的开头给了一组强制默认值当前模型清单(缓存日期 2026-04-15),用来覆盖训练数据里可能过时的认知。

关键默认值(直接遵循作者原文)

  • max_tokens 默认:非 streaming → ~16000(避开 SDK HTTP 超时);streaming → ~64000(不怕超时,给模型空间)。除非分类任务(~256)、成本上限或刻意短输出,否则不要往低调。
  • 128K 输出:Opus 4.6 / 4.7 支持 max_tokens 到 128K,但 SDK 必须用 streaming(.stream() + .get_final_message() / .finalMessage())才能避超时。
  • 结构化输出:用 output_config: {format: {...}}不要再用废弃的 output_format 参数。
  • 工具调用 JSON:4.6 / 4.7 系列在 tool call input 里可能产出不同的 Unicode 或正斜杠转义——一律用 json.loads() / JSON.parse() 解,不要做原始字符串匹配。
  • 不要复刻 SDK 已有的能力:用 stream.finalMessage() 而不是用 new Promise().on() 事件;用 Anthropic.RateLimitError 这种类型化异常而不是匹配错误字符串;直接用 Anthropic.MessageParam / Anthropic.Tool / Anthropic.Message 等 SDK 类型,不要自己重造同名 interface。

文档与 Webfetch 的边界

skill 内含 Reading Guide / When to Use WebFetch / Common Pitfalls 等子章节——遇到没把握的字段先查 Anthropic 文档,再写代码;自动化批处理的代码生成场景里,提供 output_config 等结构化能力可以避免文本解析。

报告 / 文档型产出

作者顺手提了一句很值钱的事实——code execution sandbox 自带 python-docxpython-pptxmatplotlibpillowpypdf,做「报告」「文档」「图表」类需求时,直接生成 DOCX/PDF 通过 Files API 返回,比拼 stdout 文本好得多。

适合谁

  • 用 Anthropic SDK 写应用 / agent 框架的工程师
  • 把现有代码迁移到 Opus 4.7 / Sonnet 4.6 的人
  • 写技术评测、需要 streaming 大输出的研究者

何时不该用

  • 你只是想用 Claude 聊天——claude.ai 直接用就行
  • 用其他厂商 API(OpenAI / Gemini)——参数名和默认值不一样

配套

mcp-builder(构建 MCP server)、subagent-driven-development(多 agent 协作)一起用,能少踩 80% 的 SDK 误用坑。