Expand description
§katu_core::message
§职责
定义对话消息类型:内容块、角色特化的消息结构、以及统一的 Message 枚举。
§设计原则
- Provider 无关 — 不绑定任何特定 LLM SDK
- 角色特化 — User / Assistant / ToolResult 各有独立 struct, 编译期禁止非法组合(如 User 消息不可能包含 ToolCall)
- Serde 友好 — 所有类型可序列化/反序列化,便于持久化和网络传输
- 双层 Content —
ContentBlock(文本+图片)用于 User/ToolResult,AssistantBlock(文本+推理+工具调用)用于 Assistant
§对外接口
ContentBlock— 基础内容块(文本、图片)AssistantBlock— Assistant 专用内容块(文本、推理、工具调用)UserContent— 用户内容(纯文本或多模态块)UserMessage,AssistantMessage,ToolResultMessage— 角色特化消息Message— 统一消息枚举
§调用者
katu_core::event— StreamEvent 引用 AssistantMessagekatu_core::request— LlmRequest 持有 Vec- 所有上层 crate 通过
katu_core::message::*使用
Structs§
- Assistant
Message - LLM 回复消息。
- Tool
Result Message - 工具执行结果消息。
- User
Message - 用户消息。
Enums§
- Assistant
Block - Assistant 专用内容块 — 比基础块多了推理和工具调用。
- Content
Block - 基础内容块 — 可出现在 User 消息和 ToolResult 中。
- Message
- 统一消息枚举 — 对话历史中的一条消息。
- User
Content - 用户消息内容 — 支持纯文本快捷方式或多模态内容块。