跳到主要内容
非官方简体中文翻译,内容版权归 Mastra 所有,遵循 Apache-2.0 许可。

Anthropic logoAnthropic

Access 17 Anthropic models through Mastra's model router. Authentication is handled automatically using the ANTHROPIC_API_KEY environment variable.

Learn more in the Anthropic documentation.

.env
ANTHROPIC_API_KEY=your-api-key
src/mastra/agents/my-agent.ts
import { Agent } from "@mastra/core/agent";

const agent = new Agent({
id: "my-agent",
name: "My Agent",
instructions: "You are a helpful assistant",
model: "anthropic/claude-fable-5"
});

// Generate a response
const response = await agent.generate("Hello!");

// Stream a response
const stream = await agent.stream("Tell me a story");
for await (const chunk of stream) {
console.log(chunk);
}

Models
Models的直接链接

ModelContextToolsReasoningImageAudioVideoInput $/1MOutput $/1M
anthropic/claude-fable-51.0M$10$50
anthropic/claude-fable-5-11.0M$10$50
anthropic/claude-haiku-4-5200K$1$5
anthropic/claude-haiku-4-5-20251001200K$1$5
anthropic/claude-haiku-5-51.0M$0.10$0.50
anthropic/claude-opus-4-5200K$5$25
anthropic/claude-opus-4-5-20251101200K$5$25
anthropic/claude-opus-4-61.0M$5$25
anthropic/claude-opus-4-71.0M$5$25
anthropic/claude-opus-4-81.0M$5$25
anthropic/claude-opus-51.0M$5$25
anthropic/claude-opus-5-51.0M$4$20
anthropic/claude-sonnet-4-5200K$3$15
anthropic/claude-sonnet-4-5-20250929200K$3$15
anthropic/claude-sonnet-4-61.0M$3$15
anthropic/claude-sonnet-51.0M$2$10
anthropic/claude-sonnet-5-51.0M$2$10
17 available models

Model availability, capabilities, context windows, and pricing are sourced from models.dev and may change.

Advanced configuration
Advanced configuration的直接链接

Custom headers
Custom headers的直接链接

src/mastra/agents/my-agent.ts
const agent = new Agent({
id: "custom-agent",
name: "custom-agent",
model: {
id: "anthropic/claude-fable-5",
apiKey: process.env.ANTHROPIC_API_KEY,
headers: {
"X-Custom-Header": "value"
}
}
});

Dynamic model selection
Dynamic model selection的直接链接

src/mastra/agents/my-agent.ts
const agent = new Agent({
id: "dynamic-agent",
name: "Dynamic Agent",
model: ({ requestContext }) => {
const useAdvanced = requestContext.task === "complex";
return useAdvanced
? "anthropic/claude-sonnet-5-5"
: "anthropic/claude-fable-5";
}
});

Provider Options
Provider Options的直接链接

Anthropic supports the following provider-specific options via the providerOptions parameter:

const response = await agent.generate("Hello!", {
providerOptions: {
anthropic: {
// See available options in the table below
}
}
});

Available Options
Available Options的直接链接

sendReasoning?:

boolean | undefined

structuredOutputMode?:

"outputFormat" | "jsonTool" | "auto" | undefined

thinking?:

{ type: "adaptive"; display?: "omitted" | "summarized" | undefined; } | { type: "enabled"; budgetTokens?: number | undefined; } | { type: "disabled"; } | undefined

disableParallelToolUse?:

boolean | undefined

cacheControl?:

{ type: "ephemeral"; ttl?: "5m" | "1h" | undefined; } | undefined

metadata?:

{ userId?: string | undefined; } | undefined

mcpServers?:

{ type: "url"; name: string; url: string; authorizationToken?: string | null | undefined; toolConfiguration?: { enabled?: boolean | null | undefined; allowedTools?: string[] | null | undefined; } | null | undefined; }[] | undefined

container?:

{ id?: string | undefined; skills?: { type: "anthropic" | "custom"; skillId: string; version?: string | undefined; }[] | undefined; } | undefined

toolStreaming?:

boolean | undefined

effort?:

"low" | "medium" | "high" | "xhigh" | "max" | undefined

taskBudget?:

{ type: "tokens"; total: number; remaining?: number | undefined; } | undefined

speed?:

"fast" | "standard" | undefined

inferenceGeo?:

"us" | "global" | undefined

fallbacks?:

"default" | { model: string; max_tokens?: number | undefined; thinking?: Record<string, unknown> | undefined; output_config?: Record<string, unknown> | undefined; speed?: "fast" | "standard" | undefined; }[] | undefined

anthropicBeta?:

string[] | undefined

contextManagement?:

{ edits: ({ type: "clear_tool_uses_20250919"; trigger?: { type: "input_tokens"; value: number; } | { type: "tool_uses"; value: number; } | undefined; keep?: { type: "tool_uses"; value: number; } | undefined; clearAtLeast?: { ...; } | undefined; clearToolInputs?: boolean | undefined; excludeTools?: string[] | undefin...