Skip to main content
并非每个智能体交互都是对话。有时智能体正在执行一个多步骤计划,而展示进度的最佳方式是一个实时更新的待办事项列表。深度智能体待办事项列表模式直接从智能体状态中读取todos数组,并在智能体执行计划的过程中以当前状态渲染每个项目。这是一个基于您用于对话的相同useStream钩子构建的进度仪表板。它表明智能体状态可以驱动任何 UI,而不仅仅是消息气泡。

工作原理

深度智能体在您选择 @[TodoListMiddleware]时可以暴露一个**todos状态**通道。该中间件添加了write_todos工具,并在智能体执行计划的过程中持久化任务进度。随着智能体的执行,它将每个待办事项的状态从"pending"更新为"in_progress"再到"completed"。@[useStream]钩子通过stream.values.todos暴露此状态,您的 UI 反应式地渲染它。
任务规划是可选的。如果没有 @[TodoListMiddleware],stream.values.todos不存在。参见任务规划。
流程如下:
  1. 用户提交请求
  2. 智能体创建计划并在其状态中填充todos
  3. 智能体开始执行每个待办事项的状态从pending → in_progress → completed
  4. stream.values.todos随着智能体的进度实时更新
  5. 您的 UI 重新渲染带有当前状态的待办事项列表

设置useStream

在智能体上启用 @[TodoListMiddleware]。 :::python
::: :::js
::: 然后指向useStream该智能体,并从stream.values读取todos。
代码示例使用 useStream<typeof myAgent> 进行类型安全的流状态管理。请参考 Python 或 JavaScript 后端的类型推断说明。

构建TodoList组件

待办事项列表使用状态图标、颜色编码和反映当前状态的视觉样式渲染每个项目:

进度条

一个视觉进度条为用户提供了一个整体完成的概览:

单个待办事项

每个项目都获得一个状态图标、颜色编码文本和对已完成任务的删除线样式:
in_progress图标使用animate-pulse来吸引对当前活动任务的注意力。

计算进度

直接从待办事项数组中派生进度指标:
这些值随着智能体修改其状态而反应式更新,使进度条和计数器保持同步。

与聊天消息结合

待办事项列表与常规聊天界面协同工作。一个实用的布局显示待办事项列表作为持久侧边栏或标题面板,聊天消息在下方:
仅在todos.length > 0时显示待办事项列表。在智能体创建其计划之前,没有内容要显示。显示空组件会浪费空间。

用例

待办事项列表模式适用于任何智能体执行结构化计划的场景:
  • 项目规划:智能体将项目分解为任务并按顺序处理它们
  • 研究工作流:每个研究问题都成为一个待办事项,智能体进行调查并完成
  • 数据处理:摄取、验证、转换和导出等步骤各自获得一个待办事项
  • 引导流程:智能体逐步引导设置,在配置服务时勾选每个步骤
  • 报告生成:报告的各个部分成为待办事项:收集数据、分析趋势、撰写摘要、格式化输出

处理空和加载状态

在智能体创建其计划之前处理初始状态:

最佳实践

  • 突出显示待办事项列表。它是基于计划的智能体的主要进度指示器。不要将其隐藏在折叠之下。
  • 动画状态转换。平滑的转换使智能体感觉更响应。使用 CSS 转换背景颜色、文本装饰和不透明度。
  • 仅突出显示一个in_progress项目。智能体通常一次处理一个任务。如果多个项目显示为in_progress,UI 会变得嘈杂。考虑仅脉冲第一个。
  • 折叠或淡化已完成项目。随着列表的增长,已完成项目变得不太相关。减少它们的视觉权重,以便用户专注于仍在进行的事情。
  • 显示进度百分比。像”67% 完成”这样的单个数字即使从房间另一边也能立即理解。
  • 保持待办事项列表同步。由于stream.values反应式更新,待办事项列表会自动保持最新。不要添加手动轮询或刷新逻辑。

相关LangChain指南

待办事项列表模式是 LangChain 方法在渲染结构化智能体状态方面的专业化。这些指南涵盖了与基于计划的智能体配合得很好的相关技术:

Structured output

使用自定义 UI 组件而不是纯文本渲染任何结构化智能体状态——不仅仅是待办事项。

Join & rejoin streams

在页面重新加载或标签切换后重新连接到正在运行的计划,而不会丢失进度。

Message queues

在智能体仍在处理其当前计划时排队后续任务。

Human-in-the-Loop

当智能体需要用户批准或输入时暂停和恢复计划执行。

官方原文:src/oss/deepagents/frontend/todo-list.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。
Last modified on November 3, 2026