NormalizedMessage(规范化消息) 协议

别名: 规范化消息

Provider 抽象里统一的消息形状:`{role: 'system' | 'user' | 'assistant', content: string}`。不管哪家厂商,进到业务代码里的对话都是这个形状;system 在 Anthropic 里要抽到顶层字段,那是 Provider 内部翻译的事。

它是什么

NormalizedMessage(规范化消息)是 Provider 抽象里统一的消息形状:{role: 'system' | 'user' | 'assistant', content: string}。不管哪家厂商,进到业务代码里的对话都是这个形状——system 是 role 的一种,跟在 OpenAI 里一样摆在数组里。

边界在哪

差异被挡在边界之外:Anthropic 要求 system 抽到顶层、content 必须是 block 数组,那是 adapter 内部翻译的事,业务代码不关心;max_tokens 是否必填也由 Provider 各自处理。对上层来说,「发消息拿回答」永远只有一种写法。

注意

它是「最小形状」而非「全量模型」:刻意只保留三段式 role 与字符串 content,工具调用(第 06 章加 tool_calls)等增量后续再扩展。它和厂商协议的 messages 是两层东西:messages 是协议层(OpenAI / Anthropic 各写各的),normalized 是抽象层自己的形状。

相关词条

出现在这些章节