Skip to main content
Anthropic Claude 是一款非常强大的 AI 对话系统,只要输入提示词,就能在短短几秒内生成流畅自然的回复。Claude Messages API 是 Anthropic 官方原生的 API 格式,与 OpenAI 兼容格式(Chat Completion)不同,它采用 Anthropic 自有的请求和响应结构,能够更好地利用 Claude 的独特能力,如多模态内容输入、工具调用、深度思考(Extended Thinking)等高级特性。 本文档主要介绍 Claude Messages API 操作的使用流程,利用它我们可以使用与 Anthropic 官方一致的原生接口来调用 Claude 的对话功能。

申请流程

要使用 Claude Messages API,首先到 Ace Data Cloud 控制台 获取您的 API Token,留作备用。 如果你尚未登录或注册,会自动跳转到登录页面邀请你注册和登录,完成后会自动返回当前页面。 一个 API Token 即可调用平台所有服务,无需为每个服务单独申请。 首次申请会赠送免费额度,可免费体验;额度不足时可在 控制台 充值通用余额。
📘 完整文档:Claude Messages API →

基本使用

Claude Messages API 的请求路径为 /v1/messages,与 Anthropic 官方 API 保持一致。我们至少需要提供三个必填参数:
  • model:选择使用的 Claude 模型。最新旗舰为 claude-fable-5-1(100 万 Token 上下文、最大输出 128K Token);原 claude-fable-5 仍兼容保留。
  • messages:输入的消息数组,每条消息包含 role(角色)和 content(内容),其中 role 支持 userassistant
  • max_tokens:最大输出 token 数,用于限制单次回复的长度。
常用可选参数:
  • system:系统提示词,用于设定模型的行为和角色。
  • temperature:生成随机性,0-1 之间,值越大回复越发散。
  • stream:是否使用流式响应,设为 true 可实现逐字返回效果。
  • stop_sequences:自定义停止序列,模型遇到这些文本时会停止生成。
  • top_p:核采样参数,与 temperature 配合控制生成的随机性。
  • top_k:仅从概率最高的 K 个选项中采样。
  • tools:工具定义,用于让模型调用外部函数。
  • tool_choice:控制模型如何使用提供的工具。
  • cache_control:在请求的最后一个可缓存内容块处自动创建缓存断点;也可写在具体内容块上。

cURL 示例

Python 示例

调用之后,返回结果如下:
返回结果字段说明:
  • id:本次消息的唯一标识符。
  • type:始终为 message
  • role:始终为 assistant
  • content:回复内容数组,每个元素包含 type(如 text)和对应的内容。
  • model:处理请求的模型名称。
  • stop_reason:停止原因。稳定取值包括 end_turnmax_tokensstop_sequencetool_usepause_turn(可把当前 assistant 内容原样回传以继续)、refusalmodel_context_window_exceeded
  • stop_sequence:如果因自定义停止序列而停止,显示匹配的停止序列文本。
  • stop_details:当 stop_reasonrefusal 时,可能包含拒绝类别和说明。
  • usage:token 使用统计。input_tokens 是未缓存输入;cache_creation_input_tokenscache_read_input_tokens 分别是缓存写入与读取;output_tokens 是全部输出 token 数。若返回 output_tokens_details.thinking_tokens,该值是 output_tokens 的子集,计算总量或费用时不要再次相加。该明细没有权威计数时可能为 null 或省略。
  • usage.cache_creation:可选的缓存写入 TTL 明细,包含 ephemeral_5m_input_tokensephemeral_1h_input_tokens。对象存在时,两项之和等于 cache_creation_input_tokens;字段为 null 或省略表示当前响应没有可用的 TTL 拆分,不能按 0 解读。
  • usage.cost:非流式响应可能包含 Ace Data Cloud 记录的额度消耗对象,其中 amount 是本次实际消耗、currency 是计量单位,list_amount 是折扣前金额(如有)。Fable 5.1 的官方缓存读取基价为 0.25/百万Token5分钟与1小时缓存写入基价分别为0.25/百万 Token,5 分钟与 1 小时缓存写入基价分别为 12.50 和 $20/百万 Token;平台实际价格按套餐折扣换算。

系统提示词

Claude Messages API 支持通过 system 字段设定系统提示词,用于定义模型的行为、角色和上下文。

Python 示例

通过设置 system 提示词,可以精确地控制 Claude 的角色和行为方式。

流式响应

该接口也支持流式响应,将 stream 参数设为 true 即可获得逐步返回的效果,非常适合在网页中实现逐字显示。

Python 示例

流式响应以 Server-Sent Events (SSE) 格式返回,每行以 event:data: 为前缀。流式事件类型包括:
  • message_start:消息开始,包含消息的基本信息和模型名称。
  • content_block_start:内容块开始。
  • content_block_delta:内容块增量更新,包含新生成的文本片段。
  • content_block_stop:内容块结束。
  • message_delta:消息级别的增量更新,包含 stop_reason 和最终的 usage 信息。output_tokens_details.thinking_tokens 的权威值只应从最后一个 message_delta.usage 读取,不要跨事件累加。
  • message_stop:消息结束。
输出效果如下:
可以看到,流式响应中 content_block_delta 事件包含了逐步生成的文本内容,通过拼接所有 text_delta 即可获得完整回复。

JavaScript 示例

多轮对话

如果您想要对接多轮对话功能,需要在 messages 数组中交替排列 userassistant 角色的消息,将之前的对话历史一并传入。

Python 示例

返回结果如下:
通过在 messages 中传递完整的对话历史,Claude 可以结合上下文进行准确的回答。

深度思考模型

Claude 的 thinking 与 thinking summary 是两个不同概念:模型可以进行内部推理,但 API 不会返回原始思维链。需要展示推理过程时,API 返回的是经过处理的摘要。 当前模型建议使用 adaptive thinking,并通过 output_config.effort 控制总体推理投入:
响应中的 thinking 块形如:
  • display: "summarized" 返回可读的思考摘要;它不是原始思维链。
  • display: "omitted" 返回 thinking: "",但仍保留 opaque signature 以支持后续对话。
  • Fable 5.1、Fable 5、Opus 5、Sonnet 5、Opus 4.8 和 Opus 4.7 的 display 默认值为 omitted;Opus 4.6、Sonnet 4.6 及更早支持 thinking 的模型默认使用 summarized
  • Display 只影响返回内容和流式延迟,不关闭推理,也不减少 thinking token 的计费。
  • 是否默认启用 thinking 与 display 默认值是两个独立问题。Opus 5、Sonnet 5 默认启用 adaptive thinking;对 Opus 5,省略 thinking 等同于 adaptive,省略 output_config.effort 等同于 high。Opus 4.8、4.7 和 4.6 需要显式启用。
  • Thinking 与最终正文共同占用 max_tokens 输出预算。预算过小时,thinking 可能占用大部分额度,使正文为空或被截断;请提高 max_tokens,或使用 low / medium effort 控制推理投入。
  • 对允许关闭 thinking 的模型,可传 thinking: {"type":"disabled"};disabled 仅能与 lowmediumhigh 搭配,xhigh / max 会返回 400。
  • budget_tokens 仅用于仍支持固定思考预算的旧模型。新模型应使用 thinking.type=adaptiveoutput_config.effort;Fable 5.1 的 thinking 始终开启,不能显式关闭。
  • 多轮对话和工具调用时,应将 assistant 返回的完整 thinking 块及 signature 原样传回;不要修改或自行生成 signature。
  • 部分兼容路由无法无损处理 redacted_thinking 或显式关闭 thinking,此时会返回参数错误,而不会静默丢弃或改变请求语义。
流式请求中,summarized 会产生 thinking_deltaomitted 不产生 thinking_delta,只保留 thinking 块生命周期和 signature_delta

视觉模型

Claude 支持多模态输入,可以同时处理文本和图像。在 Messages API 中,通过将 content 设为数组格式,并传入图像内容块即可使用视觉能力。

使用 Base64 编码图像

使用 URL 图像

cURL 示例

支持的图片格式包括:image/jpegimage/pngimage/gifimage/webp

文档与 PDF

PDF 使用 document 内容块,支持 Base64 与 URL 两种稳定来源。Base64 来源必须使用 application/pdf
URL 来源写作 {"type":"url","url":"https://example.com/report.pdf"}document 还支持 text/plain 与由 text/image 块组成的 content 来源;可选字段包括 titlecontextcitations。Files API 的 file_id 来源属于独立 beta 功能,不在本接口的稳定契约内。

提示缓存

顶层 cache_control 会自动把缓存断点放在最后一个可缓存块上:
需要精确控制位置时,也可把同样的 cache_control 写在 text、image、document、tool_use、tool_result 内容块或工具定义上。ttl 支持 5m(默认)与 1h;请通过 usage.cache_creation_input_tokensusage.cache_read_input_tokens 判断缓存写入与命中。 当响应提供 usage.cache_creation 时,ephemeral_5m_input_tokens + ephemeral_1h_input_tokens = cache_creation_input_tokens。若 cache_creationnull 或省略,表示只有缓存写入总量、没有权威 TTL 拆分;此时不要将任一 bucket 当作已知的 0,计费和总量仍以 aggregate 字段为准。 返回结果示例:

工具调用(Tool Use)

Claude Messages API 原生支持工具调用功能,允许模型在需要时调用您预定义的工具/函数。

Python 示例

当模型决定调用工具时,返回结果中 content 会包含 tool_use 类型的内容块:
注意 stop_reasontool_use,表示模型需要调用工具。收到该结果后,您需要执行工具函数并将结果以 tool_result 的形式回传给模型:
模型会基于工具返回的结果,生成最终的自然语言回复。

与 Chat Completion API 的区别

Ace Data Cloud 同时提供两种 Claude API 格式,两者的主要区别如下: Messages API 的 usage.input_tokens 仅表示未缓存输入,cache_read_input_tokenscache_creation_input_tokens 是独立计费分桶;三者会分别按对应价格计算。 如果您的系统已经对接了 OpenAI 格式的 API,可以使用 Chat Completion API 来无缝切换。如果您需要使用 Claude 的全部原生能力,建议使用 Messages API。

错误处理

公开接口的错误响应使用 Ace Data Cloud 平台 envelope:error.code 是稳定错误码,error.message 是说明,trace_id 用于排查请求。常见 HTTP 状态包括:
  • 400:请求参数或协议内容无效。
  • 401:授权令牌无效、缺失或过期。
  • 403:禁止访问、余额不足或配额受限。
  • 404:API 或模型不存在。
  • 413:请求体过大。
  • 429:请求过多。
  • 500 / 503 / 504:服务错误、暂时不可用或处理超时。

错误响应示例

该错误结构是 Ace Data Cloud 的运行时契约,不等同于 Anthropic 官方错误 envelope;请按 HTTP 状态与 error.code 处理。

结论

通过本文档,您已经了解了如何使用 Claude Messages API 以 Anthropic 原生格式调用 Claude 的对话功能。Messages API 支持基本对话、系统提示词、流式响应、多轮对话、深度思考、视觉理解、PDF、提示缓存和工具调用等丰富功能。如有任何问题,请随时联系我们的技术支持团队。