Skip to main content

Module message

Module message 

Source
Expand description

§katu_core::message

§职责

定义对话消息类型:内容块、角色特化的消息结构、以及统一的 Message 枚举。

§设计原则

  • Provider 无关 — 不绑定任何特定 LLM SDK
  • 角色特化 — User / Assistant / ToolResult 各有独立 struct, 编译期禁止非法组合(如 User 消息不可能包含 ToolCall)
  • Serde 友好 — 所有类型可序列化/反序列化,便于持久化和网络传输
  • 双层 ContentContentBlock(文本+图片)用于 User/ToolResult, AssistantBlock(文本+推理+工具调用)用于 Assistant

§对外接口

  • ContentBlock — 基础内容块(文本、图片)
  • AssistantBlock — Assistant 专用内容块(文本、推理、工具调用)
  • UserContent — 用户内容(纯文本或多模态块)
  • UserMessage, AssistantMessage, ToolResultMessage — 角色特化消息
  • Message — 统一消息枚举

§调用者

  • katu_core::event — StreamEvent 引用 AssistantMessage
  • katu_core::request — LlmRequest 持有 Vec
  • 所有上层 crate 通过 katu_core::message::* 使用

Structs§

AssistantMessage
LLM 回复消息。
ToolResultMessage
工具执行结果消息。
UserMessage
用户消息。

Enums§

AssistantBlock
Assistant 专用内容块 — 比基础块多了推理和工具调用。
ContentBlock
基础内容块 — 可出现在 User 消息和 ToolResult 中。
Message
统一消息枚举 — 对话历史中的一条消息。
UserContent
用户消息内容 — 支持纯文本快捷方式或多模态内容块。