An enterprise rarely wants "an answer." It wants an answer that sounds like the company: formal for regulators, warm for customers, terse for engineers on call. Claude's default voice is a reasonable general-purpose register, which means it's the wrong register for most branded contexts. The good news is that on Claude, style control is a prompting problem with well-documented levers — and one lever many teams expect to use isn't available at all.
First, a constraint worth knowing
Developers coming from other APIs often reach for sampling parameters like temperature to make output more or less "creative." On the newest Claude models — including Fable 5, Opus 4.8, and Sonnet 5 — non-default temperature, top_p, and top_k are rejected with a 400 error. Style on current Claude is steered through the prompt, not the sampler. That's a simplification, not a loss: prompt-based control is more precise and more portable across the four platforms anyway.
The three prompt levers, in order of power
1. Role. The official best-practices docs note that giving Claude a role via the system prompt — even a single sentence — focuses behavior and tone. "You are a support engineer writing to non-technical customers of a bank" sets formality, vocabulary, and caution in one stroke. See role prompting.
2. Explicit style rules with reasons. Where the role sets defaults, rules set requirements — and Anthropic's documented technique is to explain why each rule exists so Claude can generalize. The docs' own example is exemplary: output "will be read aloud by a text-to-speech engine, so never use ellipses" beats a bare "no ellipses" because it also implies no tables, no ASCII art, and no "see above." Write your style sheet the same way: "our customers are stressed when they contact us, so lead with the resolution, not the apology"; "regulator-facing text must avoid speculation, so state only what the record shows."
3. Examples. Voice is easier to demonstrate than to describe. Three to five on-brand sample outputs, wrapped in <example> tags per the official convention, convey rhythm and word choice that no adjective list captures. This is the heavy artillery for brand voice — details in few-shot examples.
from anthropic import AnthropicBedrockMantle
client = AnthropicBedrockMantle(aws_region="us-east-1")
resp = client.messages.create(
model="anthropic.claude-sonnet-5",
max_tokens=1024,
system=("You are a claims assistant for Acme Insurance. "
"Readers just experienced a loss, so be warm but never "
"chatty; lead with what happens next. Plain words: say "
"'payment', not 'disbursement'. Never promise outcomes, "
"because claims are decided by an adjuster.\n"
"" + BRAND_VOICE_EXAMPLES + " "),
messages=[{"role": "user", "content": customer_message}],
)
Style without sacrificing accuracy
The risk in tone work is that voice instructions quietly override substance. A "reassuring" persona may round uncertainty up to confidence; a "friendly" one may bury the required disclosure in pleasantries. Three defenses:
- Rank your rules. State the hierarchy outright: "Accuracy outranks tone. If being reassuring conflicts with being accurate, be accurate." Claude follows explicit priority orderings better than it resolves silent conflicts.
- Keep facts and voice in separate passes when stakes are high. A two-step chain — one prompt extracts the facts, a second rewrites them in brand voice with an instruction not to add or remove claims — makes style drift auditable. See task decomposition.
- Put tone in your evals. Style regressions are regressions. Include on-voice/off-voice examples in your test set alongside factual checks — prompt regression testing covers the mechanics.
One voice, four platforms
Because tone lives entirely in prompts and model behavior, it transfers unchanged across the Claude API, Amazon Bedrock, Google Vertex AI, Microsoft Foundry, and Claude Platform on AWS. A brand-voice system prompt is also naturally static, which makes it an ideal candidate for prompt caching on every platform.
Where to go next
Tone pairs with length control — register and brevity are usually specified together — and with system prompt design, where your style sheet should live.