Skip to main content

多轮对话

本指南展示如何构建具有流式输出、历史管理和完整轮次生命周期的有状态对话。

History 模式

SimpleLLMFunc 的 Agent 默认无状态——它们不在内部存储对话历史。你传入历史,你拿回更新后的历史。这使得状态管理显式且可测试。
名为 history(或 chat_history)的参数是特殊的——框架用它在轮次之间传递对话状态。

流式响应

每个 output.messages 包含完整的更新后对话。将它传回下一轮即可。

事件感知消费

更丰富的 UX,处理单个事件:

非流式模式

更简单的场景,只需要最终响应:

为什么历史是外部的

这是刻意的设计选择:
  • 可测试 — 你可以快照和重放任何对话状态
  • 灵活存储 — 存在内存、Redis、磁盘、数据库——你的选择
  • 可分叉 — 通过复制历史列表来分支对话
  • 无隐藏状态 — Agent 没有你不控制的记忆
对于需要持久、可自我修改上下文(经验、压缩、分叉)的 Agent,参见 SelfRef

下一步

设计哲学

理解框架为什么这样设计。

上下文模型

了解上下文如何被结构化、变更和编译。