Skip to content

对话交互

对话界面是智能体的核心使用入口。Snail AI 在智能体详情页的编辑标签中内置了完整的对话预览区,支持流式文本输出、思维链展示和多轮对话管理。

对话界面布局

对话预览区位于智能体详情页的右侧,占据半屏宽度。整体自上而下分为三个区域:

区域说明
标题栏显示"预览与调试"标题
对话内容区展示对话消息列表或欢迎界面
输入区消息输入框和发送按钮

欢迎界面

当尚未发送任何消息时,对话区域显示欢迎界面,包含:

  • 智能体头像和名称:展示当前智能体的头像(或名称首字母占位)和名称
  • 智能体描述:展示对该智能体功能的概括说明
  • 预设问题按钮:以圆角标签形式展示已配置的预设问题,点击即可一键发送

TIP

预设问题前带有表情图标引导,点击后直接发送该问题并开始对话,无需手动输入。


流式文本输出

Snail AI 的对话采用 SSE 流式传输,模型生成的文本会实时逐字展示,而非等待全部生成完毕再一次性显示。

流式交互细节

  • 用户消息:蓝色背景气泡,靠右对齐
  • 助手消息:灰色背景区域,靠左对齐,宽度自适应
  • 生成中状态:显示旋转加载图标和"思考中..."文字提示
  • 自动滚动:新内容生成时对话区域自动滚动到底部,120ms 轮询确保滚动跟随

Markdown 渲染

助手回复支持完整的 Markdown 渲染,包括:

  • 标题(H1 ~ H4)
  • 有序 / 无序列表
  • 代码块(含语法高亮背景)
  • 行内代码
  • 表格
  • 引用块
  • 链接和图片
  • 分割线

系统会自动修复非标准 Markdown 格式(如 ###标题 自动补空格为 ### 标题)。


思维链展示

当模型返回思维推理过程(Thinking / Reasoning)时,系统会在助手回复上方以 可折叠面板 的形式展示。

显示逻辑

状态行为
生成中思维链面板默认展开,内容实时追加,面板自动滚动到底部
生成完成思维链面板默认折叠,用户可点击标题行手动展开查看
无思维链不显示面板,直接展示最终回复内容

面板样式

思维链面板采用暖色调(浅黄色背景、橙色边框),与正式回复内容形成视觉区分:

  • 标题行:灯泡图标 + "思考过程" 文字
  • 生成中时标题行显示旋转加载图标
  • 内容区支持 Markdown 渲染
  • 最大高度 300px,超出后内部滚动

TIP

思维链对于理解模型决策逻辑、调试提示词效果非常有价值。在调优系统提示词时,建议关注思维链中的推理路径是否符合预期。


工具调用可视化

当智能体调用 MCP 工具或 Skill 技能时,对话界面会展示工具调用的过程信息。结合可观测性(Observability)标签页的 Trace 瀑布图,可以完整追踪每次工具调用的细节:

  • 调用了哪个工具
  • 传入了什么参数
  • 返回了什么结果
  • 各阶段耗时

消息输入

对话输入区位于界面底部,采用卡片样式设计:

输入框

  • 支持多行输入,高度自适应(1 ~ 4 行)
  • Enter 键直接发送消息
  • 无边框、无背景的简洁风格

发送按钮

  • 圆形发送按钮位于输入区右下角
  • 无输入时按钮为灰色禁用态
  • 有输入内容时按钮变为主题色高亮
  • 发送中(等待回复时)按钮禁用,防止重复提交

底部提示

输入区下方显示免责声明提示文字,告知用户 AI 生成内容的局限性。


对话管理

每次进入智能体详情页时,系统会自动创建一个新的对话会话(Conversation),生成唯一的 conversationId

会话机制

  • 每个对话会话拥有唯一 UUID
  • 同一会话内的消息共享上下文
  • 切换到其他智能体或返回列表后,对话记录保留在后端
  • 重新进入同一智能体会开启新的会话

对话 API

对话通过 POST /agent/{agentId}/chat 接口进行,请求体包含:

参数类型说明
conversationIdstring当前会话 ID
contentstring用户消息文本

响应以 NDJSON(Newline Delimited JSON)流式返回,每行一个事件:

json
{"type": "thinking", "content": "让我分析一下这个问题..."}
{"type": "text", "content": "根据分析结果,"}
{"type": "text", "content": "主要有以下三个方面:"}

支持两种事件类型:

  • thinking:思维推理过程
  • text:正式回复内容

历史对话

在数据分析标签页中,可以查看该智能体的所有历史对话记录,支持:

  • 按时间范围筛选
  • 查看每个对话的消息列表
  • 结合 Trace 进行全链路追踪分析

在可观测性标签页中,可以按对话 ID 查看该对话的完整追踪记录。

对话删除

支持删除单个智能体下的历史对话记录(DELETE /agent/{agentId}/conversation/{conversationId}),删除后该对话的所有消息和追踪数据将一并清除。


调试建议

对话预览区不仅是使用界面,更是重要的调试工具。以下是一些调试建议:

  1. 左右联动调试:修改左侧的系统提示词或配置后,立即在右侧对话区测试效果
  2. 观察思维链:通过思维链判断模型是否按预期理解了角色设定
  3. 测试边界场景:尝试超出智能体能力范围的问题,检查限制条件是否生效
  4. 验证工具调用:发送需要调用工具的问题,确认 MCP 服务和 Skill 是否正常触发
  5. 检查知识库效果:提问与知识库文档相关的问题,验证 RAG 检索是否命中正确内容
  6. 结合可观测性分析:切换到可观测性标签页,通过 Trace 瀑布图分析各阶段耗时

下一步

Apache 2.0 Licensed