Text
Claude Haiku 5.5
Claude Haiku 5.5 Messages 参考:参数、思考、强制工具调用、缓存用量、beta 功能、流式输出与响应处理。
通过 POST https://api.seedrouter.ai/v1/messages 使用 claude-haiku-5-5。模型接受文本、图片与文档,返回文本或工具调用请求。模型页列出了当前 token 费率。
以下契约依据 Anthropic 的模型专属文档,核查日期为 2026 年 10 月 9 日。官方能力上限与端到端验证是两回事:字段被接受,并不能证明其预期效果已经生效。使用高级选项前,请查看下方兼容性结果。
快速开始
curl https://api.seedrouter.ai/v1/messages \
-H "x-api-key: $SEEDROUTER_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-haiku-5-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Classify this request as billing, technical or account: I was charged twice. Return only the label."}]
}'import os
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["SEEDROUTER_API_KEY"],
base_url="https://api.seedrouter.ai",
)
message = client.messages.create(
model="claude-haiku-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Summarize the purpose of a database index."}],
)
for block in message.content:
if block.type == "text":
print(block.text)import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
apiKey: process.env.SEEDROUTER_API_KEY,
baseURL: 'https://api.seedrouter.ai',
});
const message = await client.messages.create({
model: 'claude-haiku-5-5',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Summarize the purpose of a database index.' }],
});
for (const block of message.content) {
if (block.type === 'text') console.log(block.text);
}API 密钥请保存在服务端。按 type 选择响应块,响应可能以思考或工具调用开头。
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
"os"
"time"
)
func main() {
body, err := json.Marshal(map[string]any{
"model": "claude-haiku-5-5",
"max_tokens": 1024,
"messages": []map[string]string{
{"role": "user", "content": "Summarize the purpose of a database index."},
},
})
if err != nil { panic(err) }
req, err := http.NewRequest("POST", "https://api.seedrouter.ai/v1/messages", bytes.NewReader(body))
if err != nil { panic(err) }
req.Header.Set("x-api-key", os.Getenv("SEEDROUTER_API_KEY"))
req.Header.Set("anthropic-version", "2023-06-01")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{Timeout: 2 * time.Minute}
res, err := client.Do(req)
if err != nil { panic(err) }
defer res.Body.Close()
data, err := io.ReadAll(res.Body)
if err != nil { panic(err) }
if res.StatusCode >= 400 { panic(fmt.Sprintf("HTTP %d: %s", res.StatusCode, data)) }
fmt.Println(string(data))
}请求参数
原生契约共有 25 个顶层字段。可选不等于可为 null:只有明确提到 null 的行才接受它。按照文本模型参数策略,未知字段与不支持的采样字段在转发前会被丢弃。支持字段若取值无效,会在生成前返回 invalid_request_error。
| 字段 | 必填 | 契约 |
|---|---|---|
model | 是 | claude-haiku-5-5。 |
max_tokens | 是 | 整数 0–128000,包含思考。API 无默认值,在线体验的初始值为 8192。 |
messages | 是 | 1–100000 条消息,每条包含角色及字符串或内容块数组。见下方对话规则。 |
system | 否 | 字符串或文本块数组,不能为 null。 |
thinking | 否 | 默认为 adaptive,也可用 disabled。不支持手动预算或 between_tools 模式。 |
output_config | 否 | 对象,包含 effort、format 与可选的 beta task_budget。 |
stop_sequences | 否 | 停止字符串数组。 |
stream | 否 | 布尔值,默认为 false。 |
temperature | 否 | 请省略。这里会丢弃它,官方兼容值为 1。 |
top_p | 否 | 请省略。这里会丢弃它,官方兼容值为 0.99。 |
top_k | 否 | 不支持,会被丢弃。 |
tools | 否 | 客户端工具或官方服务端工具声明的数组。 |
tool_choice | 否 | auto、none、any 或指定名称的 tool,支持强制工具调用。 |
metadata | 否 | 对象;可选的 user_id 为最多 512 个字符的字符串或 null。 |
cache_control | 否 | null 或 {"type":"ephemeral","ttl":"5m"};TTL 也接受 1h,默认 TTL 为 5m。 |
container | 否 | null、容器 ID 字符串,或包含可选 ID 与最多 20 个技能的对象。 |
context_management | 否 | null 或包含官方上下文编辑项的对象,需要相应 beta 请求头。 |
mcp_servers | 否 | 最多 20 个 URL 服务器的数组,需要匹配的 MCP beta 请求头。 |
service_tier | 否 | auto 或 standard_only。Haiku 没有 Priority Tier 容量。 |
inference_geo | 否 | global、us 或 null。省略时使用账户默认值,判断区域前请检查返回的用量。 |
diagnostics | 否 | null 或对象;previous_message_id 为 null 或最多 256 个字符的字符串。 |
compaction | 否 | null 或 {"type":"summarize","instructions":"..."}。指令可选、可为 null,最多 16384 个字符。 |
fallbacks | 否 | null 或带对应 beta 的 default。Haiku 没有自动回退模型,显式列表无效。 |
fallback_credit_token | 否 | null、token 字符串或 {token,mode}。API 必须验证资格与有效性,不能假定任意模型都是符合资格的目标。 |
speed | 否 | standard 或 null。不支持快速模式。 |
在线体验提供支持字段的控件,包括用于嵌套结构的 JSON 控件。表单省略采样参数和固定的标准速度,模型 ID 固定为本页模型。请用 JSON 请求预览检查提交的请求体。
思考与努力程度
默认使用 medium 努力程度的自适应思考,不返回思考文本。努力程度接受 low、medium、high、xhigh、max,或用 null 使用默认值。
{
"thinking": {"type": "adaptive", "display": "summarized"},
"output_config": {"effort": "medium"}
}关闭思考时,使用 {"type":"disabled"} 搭配 low、medium 或 high 努力程度。disabled 模式不得包含 display 或 block_binding。enabled、budget_tokens、between_tools,以及在 xhigh/max 下关闭思考均无效。
自适应 display 接受 omitted、summarized 或 null。通用 beta 值 updates 需要 thinking-display-updates-2026-08-18;Anthropic 目前未确认 Haiku 可提供可读的进度更新,因此不要依赖该输出。
可选的 thinking.block_binding 需要 thinking-binding-controls-2026-08-01。它可为 null 或对象,对象中的 prefix_mismatch_behavior 为 error、drop_block 或 null。重放历史时,请保持此前对话轮次与完整思考块不变。思考签名绑定于生成它的账户或与之关联的账户。
output_config.task_budget 为 null 或 { "type": "tokens", "total": 20000 },可选的 remaining 为整数或 null。需要 task-budgets-2026-03-13,total 至少为 20000。这里不对 remaining 添加额外范围限制。
工具与结构化输出
客户端工具名称必须由 1–128 个字母、数字、下划线或连字符组成,且 input_schema 必须包含 type: "object"。使用 tool_choice: {"type":"any"} 或 {"type":"tool","name":"lookup"} 强制调用已声明的工具。在自适应思考模式下,强制工具响应直接从工具调用开始,不包含思考块。
disable_parallel_tool_use 是 auto、any 和 tool 选择的可选布尔字段,不属于 none。返回工具结果时使用原始 tool_use_id。在线体验显示调用,但不会执行你的客户端工具。
{
"tools": [{
"name": "lookup",
"description": "Look up a product by SKU.",
"input_schema": {
"type": "object",
"properties": {"sku": {"type": "string"}},
"required": ["sku"],
"additionalProperties": false
}
}],
"tool_choice": {"type": "tool", "name": "lookup"}
}结构化响应使用 output_config.format: {"type":"json_schema","schema":{...}}。遵循 Anthropic 支持的 JSON Schema 子集,包括对象上的 additionalProperties: false。结构有效不能保证字段值符合事实。严格工具与结构化输出有覆盖整个 schema 的限制,详见官方结构化输出参考。
计算机使用需要 computer_toolset_20260801,旧版计算机工具无效。浏览器使用有自己的 browser_toolset_20260801。声明工具并不能验证完整的服务端工具会话可用。使用前请阅读工具官方指南与 beta 要求。
对话与上下文管理
不支持普通的 assistant 预填充。暂停的服务端工具续接有所不同:按 Messages 协议重新发送完整的 assistant 块。
含内容的 system 消息可出现在 user 消息或暂停的服务端工具结果之后,其后必须跟随 assistant 消息,或它本身为最后一条消息。连续 system 消息按同一组评估。不得在客户端工具调用与必需的结果之间插入 system 消息。
空内容的 system 消息只能通过 mid-conversation-output-config-2026-07-01 修改 output_config.effort,它可出现在任意位置。关闭思考时,它不能改变实际生效的努力程度。system 的 clear_at 在使用 mid-conversation-system-clear-at-2026-08-21 时接受 never、next_user_message 或 null;仅对当前轮次生效的消息只允许文本,不能包含输出配置或块缓存。
上下文编辑项包括:
| 编辑项 | Beta | 主要约束 |
|---|---|---|
clear_tool_uses_20250919 | context-management-2025-06-27 | 触发数量至少为 1,保留数量至少为 0。 |
clear_thinking_20251015 | context-management-2025-06-27 | 保留全部或至少一轮思考。组合编辑时,放在工具调用清除之前。 |
compact_20260112 | compact-2026-01-12 | 输入 token 触发阈值至少为 50000,默认为 150000。 |
按需 compaction 需要 compact-2026-09-04,不能与 context_management、stop_sequences、输出格式、强制工具或 task_budget.remaining 组合。带签名的压缩块也不能与 task_budget.remaining 或阈值压缩组合。继续对话时保留返回的块与签名。
图片、PDF 与请求大小
图片支持通过 URL、base64 或文件引用提供 JPEG、PNG、GIF 和 WebP。PDF 支持 URL、base64 或文件引用。文件引用需要相关 Files API beta 与有效的文件访问权限。文本文档可使用 text 或 content 来源。
原生请求大小上限为 32 MB。官方图片限制为最多 600 张图片,每张 base64 编码数据最多 10 MB,任一边最多 8000 像素;包含大量图片的请求可能有更严格的平台专属限制。PDF 必须未加密,在该模型上下文大小下最多 600 页。API 仍需负责检查远程文件,本地结构检查无法证明 URL 的实际内容。
在线体验在提交 URL 前先上传附件。对话 JSON 也支持原生媒体内容块。完整媒体大小与上下文窗口边界测试,与小型示例请求的验证不同。
提示缓存与计费
Haiku 的可缓存提示词最低为 512 token。更短的提示词即使带有缓存标记,也可能运行而不创建缓存项。最多使用 4 个缓存断点,自动顶层缓存控制会占用一个位置。有效期较长的缓存前缀应放在有效期较短的前缀之前。
max_tokens: 0 请求只预热缓存,不生成回答。不能同时使用 stream: true、结构化输出或强制工具调用。缓存准备与复用缓存的请求之间,思考和努力程度设置应保持一致。
读取 usage.input_tokens、output_tokens、cache_creation_input_tokens、cache_read_input_tokens 以及 cache_creation 下的 5m/1h 明细。思考计入输出 token,返回的思考 token 明细不是需要再次累加的额外费用。当前费率见价格区块,进一步说明见价格指南。
响应、流式输出与错误
完整响应包含 id、type: "message"、role: "assistant"、model、content、stop_reason、stop_sequence 和 usage。返回时保留可选的 container、diagnostics、context_management、stop_details 与 input_transformations。
处理 end_turn、max_tokens、stop_sequence、tool_use、pause_turn、compaction、refusal 与 model_context_window_exceeded。达到限制而停止或拒绝回答不等于 HTTP 错误。切勿假定第一个内容块必然是文本。
流式输出使用 Messages SSE 事件:message_start、content_block_start、content_block_delta、content_block_stop、message_delta 与 message_stop。同时处理 ping 与 error 事件,保留后续轮次需要的思考签名与工具块。
错误使用 Anthropic 格式:
{"type":"error","error":{"type":"invalid_request_error","message":"max_tokens must be an integer from 0 to 128000."}}返回错误的请求不收费。共用错误类型见错误处理。
OpenAI 兼容格式
同一 ID 也可用于 /v1/chat/completions 与 /v1/responses。使用各自的原生字段:Chat 使用 messages,Responses 使用 input。原生 Claude 选项属于 Messages,不应完整照搬到 OpenAI 格式的请求体。
curl https://api.seedrouter.ai/v1/chat/completions \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"claude-haiku-5-5","max_tokens":256,"messages":[{"role":"user","content":"Reply with OK."}]}'curl https://api.seedrouter.ai/v1/responses \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"claude-haiku-5-5","max_output_tokens":256,"input":"Reply with OK."}'兼容性结果
于 2026 年 10 月 9 日在开发环境核查。这些检查确认的是特定请求的实际行为,不代表所有官方限制或生产部署均已验证。
| 能力 | 实测结果 |
|---|---|
| 原生 Messages 与 SSE | 文本响应与完整事件序列已验证。 |
| 分类 | 返回 Billing,输入 41 token,输出 5 token。 |
| 结构化 JSON 与客户端工具 | JSON 值、auto/none/指定名称/any 选择、严格工具参数与工具结果续接已验证。 |
| 图片与 PDF | base64 测试样本返回了预期图片颜色与 PDF 标记,完整媒体边界未测试。 |
| 缓存预热 | max_tokens: 0 未返回生成文本,输出 token 为零。 |
| 5 分钟与 1 小时缓存 | 两种 TTL 的创建用量与后续缓存命中用量均已验证。 |
| 停止序列 | 返回指定停止原因,并在排除的后缀之前停止。 |
| 思考与努力程度 | 5 个努力程度值均被接受。部分明确关闭思考的请求仍返回了思考块,仅被接受不代表努力程度行为已验证。 |
| 系统指令与逐消息努力程度 | 结果不一致,较大预算的逐消息测试仍返回无关文本。上线前请测试自己的实际对话。 |
| 按需压缩 | 返回带签名的压缩块与 stop_reason: compaction。完整重放与计费验证仍未完成。 |
| 元数据与推理区域 | metadata.user_id 返回权限错误,显式区域设置返回账户类型限制。 |
| MCP | 当前 MCP beta 返回凭证限制,完整 MCP 会话未验证。 |
| OpenAI Chat 与 Responses | 基础请求与显式 max/none 推理请求返回预期回答,推理语义未独立确认。 |
| 其他 beta 字段 | 任务预算、绑定控制与回退 default 被接受,完整功能语义尚未确认。 |
1 小时缓存写入与压缩计费尚未通过发布验收。最大上下文与输出运行、另行收费的托管工具、Files API 访问及回退额度兑换均未测试。请保持官方请求结构,不要仅凭成功状态推断支持情况。
