对话交互
对话界面是智能体的核心使用入口。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 接口进行,请求体包含:
| 参数 | 类型 | 说明 |
|---|---|---|
| conversationId | string | 当前会话 ID |
| content | string | 用户消息文本 |
响应以 NDJSON(Newline Delimited JSON)流式返回,每行一个事件:
{"type": "thinking", "content": "让我分析一下这个问题..."}
{"type": "text", "content": "根据分析结果,"}
{"type": "text", "content": "主要有以下三个方面:"}支持两种事件类型:
thinking:思维推理过程text:正式回复内容
历史对话
在数据分析标签页中,可以查看该智能体的所有历史对话记录,支持:
- 按时间范围筛选
- 查看每个对话的消息列表
- 结合 Trace 进行全链路追踪分析
在可观测性标签页中,可以按对话 ID 查看该对话的完整追踪记录。
对话删除
支持删除单个智能体下的历史对话记录(DELETE /agent/{agentId}/conversation/{conversationId}),删除后该对话的所有消息和追踪数据将一并清除。
调试建议
对话预览区不仅是使用界面,更是重要的调试工具。以下是一些调试建议:
- 左右联动调试:修改左侧的系统提示词或配置后,立即在右侧对话区测试效果
- 观察思维链:通过思维链判断模型是否按预期理解了角色设定
- 测试边界场景:尝试超出智能体能力范围的问题,检查限制条件是否生效
- 验证工具调用:发送需要调用工具的问题,确认 MCP 服务和 Skill 是否正常触发
- 检查知识库效果:提问与知识库文档相关的问题,验证 RAG 检索是否命中正确内容
- 结合可观测性分析:切换到可观测性标签页,通过 Trace 瀑布图分析各阶段耗时