Skip to main content

TUI

@tui 装饰器将一个 @llm_chat Agent 包装为完整的 Textual 终端 UI,支持流式输出、工具可视化以及输入处理。

基本用法

运行后即可在终端中获得一个完整的聊天界面。

功能特性

  • 流式显示 — 模型响应逐字符呈现
  • 工具调用卡片 — 每个工具调用都会显示一张可视化卡片,展示名称、参数和结果
  • 专用卡片execute_coderead_filegrepsedecho_into 拥有自定义渲染
  • 中止Ctrl+C 取消当前响应
  • 复制Ctrl+Y 将完整对话记录复制到剪贴板
  • 多列分叉 — 使用 SelfRef 分叉时,子 Agent 会获得各自独立的列

斜杠命令

自定义事件钩子

使用钩子处理自定义事件(例如 PyRepl 流式输出):

装饰器参数

ToolRenderSnapshot

传递给事件钩子,包含当前工具卡片的上下文信息:

键盘快捷键

何时使用 @tui vs 自定义 UI

在以下情况下使用 @tui
  • 你希望快速获得一个可用的聊天界面
  • 内置工具卡片已满足需求
  • 你不需要自定义组件或布局
在以下情况下构建自定义 UI:
  • 你需要对危险操作添加确认弹窗
  • 你想要带有自定义指标的状态栏
  • 你需要非聊天类 UI 元素(文件树、进度条等)
  • 你在构建一个产品,而不仅仅是一个工具
对于自定义 UI,直接消费 ReactOutput 流,并使用 Textual 或其他任意框架进行渲染。