AI 返回的一个事件。 AI 的回复不是一次性返回的,而是一个个事件: TextDelta("让我") → TextDelta("算一下") → ToolUse("add", "2,2") → Usage(...) → Stop 这就像看直播一样,内容一点一点出来,而不是等全部完成才显示。 这叫做"流式传输"(Streaming),让用户能更快看到 AI 在干什么。 对应源码: conversation.rs:23-32
| 157 | |
| 158 | @dataclass(frozen=True) |
| 159 | class AssistantEvent: |
| 160 | """ |
| 161 | AI 返回的一个事件。 |
| 162 | |
| 163 | AI 的回复不是一次性返回的,而是一个个事件: |
| 164 | TextDelta("让我") → TextDelta("算一下") → ToolUse("add", "2,2") → Usage(...) → Stop |
| 165 | |
| 166 | 这就像看直播一样,内容一点一点出来,而不是等全部完成才显示。 |
| 167 | 这叫做"流式传输"(Streaming),让用户能更快看到 AI 在干什么。 |
| 168 | |
| 169 | 对应源码: conversation.rs:23-32 |
| 170 | """ |
| 171 | event_type: str # "text_delta" | "tool_use" | "usage" | "message_stop" |
| 172 | text: str = "" |
| 173 | tool_id: str = "" |
| 174 | tool_name: str = "" |
| 175 | tool_input: str = "" |
| 176 | usage: Optional[TokenUsage] = None |
| 177 | |
| 178 | |
| 179 | class ApiClient(Protocol): |