对话交互

前置知识: 阅读本文前建议先了解 核心概念 中的会话与任务部分。

Monstrum 提供流式对话界面,让你与 Bot 实时交互。Bot 可以在对话中调用工具、执行操作,并将结果展示给你。


概述

Monstrum 的对话系统支持两个入口:

  • Web 对话:在 Bot 详情页的概览 Tab 直接与 Bot 对话
  • IM 渠道:通过 Slack、飞书、Telegram 等外部 IM 平台与 Bot 对话(需配置 Gateway)

两种方式底层使用相同的会话机制,只是消息的入口和出口不同。


Web 对话

开始对话

  1. 进入 Bot 管理 → 点击某个 Bot → 进入 Bot 详情页
  2. 概览 Tab 底部的对话框中输入消息
  3. 按回车或点击发送按钮

Bot 会使用配置的 LLM 进行推理并回复。对话支持流式输出——你可以看到 Bot 逐字生成回复。

工具调用展示

当 Bot 在对话中调用工具时,界面会展示:

  • 工具名称:显示调用了什么工具(如 web_searchssh_execute
  • 执行结果:工具返回的结果内容
  • 你可以展开查看工具调用的详细参数和完整结果

一次对话中,Bot 可能进行多轮工具调用。例如,先搜索信息,再根据搜索结果访问网页,最后总结内容回复你。

新对话

点击 新对话 按钮开始全新会话。新会话会清除当前的对话上下文,Bot 从零开始。

结束会话

点击 结束会话 主动终止当前会话。结束会话时:

  • 如果 Bot 开启了自动记忆提取,会从对话中提取重要信息保存为记忆
  • 会话历史会被保存(如果开启了会话持久化)

会话生命周期

创建

当第一条消息到达时,平台创建一个新的会话。创建时会:

  • 加载 Bot 的记忆(全局记忆 + 当前作用域记忆)
  • 加载持久化的对话历史(如果有)
  • 构建系统提示词

活跃

每条消息按 FIFO 顺序处理。Bot 在处理消息时会:

  1. 构建系统提示词(包含资源摘要、记忆、技能等)
  2. 解析可用工具列表(Pre-LLM 权限过滤)
  3. 调用 LLM 推理
  4. 如果 LLM 返回工具调用 → 权限校验 → 执行工具 → 继续推理
  5. 重复直到 LLM 返回最终文本回复

过期

会话空闲 30 分钟后自动过期。过期时:

  • 触发自动记忆提取(如果启用)
  • 保存会话历史到数据库
  • 释放会话资源

会话持久化

频道级对话支持持久化。下次创建会话时,之前的对话历史会被加载。

当对话积累超过 80 条消息时,平台会自动压缩:LLM 总结旧消息生成摘要,保留最近 50 条消息。摘要以”前情提要”的形式注入到对话开头。


流式响应

Monstrum 支持 SSE(Server-Sent Events)流式响应。Bot 的回复会逐 token 推送到前端,实现实时显示效果。

流式响应包含以下类型的事件:

事件类型说明
text文本片段,逐步构成完整回复
tool_start工具调用开始
tool_result工具执行结果
done响应完成

中间工具调用轮次(Bot 调用工具、获取结果、继续推理)的过程会以 tool_starttool_result 事件展示给用户,最终的文本回复逐 token 流式输出。


会话异常处理

Bot 在对话中可能遇到以下异常情况。平台会在对话界面中显示相应的提示:

异常提示处理建议
Token 预算耗尽”Token 预算已耗尽”在 Bot 设置中调整预算或开始新对话
最大迭代次数”已达到最大执行轮次”在 Bot 设置中增加轮次限制
超时”请求超时”重试或调整超时时间
执行错误”处理过程中发生错误”查看数据中心的日志获取详情

IM 渠道对话

通过 Gateway 接入 IM 平台后,用户可以在 Slack、飞书、Telegram 等平台中与 Bot 对话。

消息触发模式

模式说明
智能模式群聊中仅 @Bot 时回复,私聊中回复所有消息
所有消息回复所有消息
仅 @Bot只在被 @mention 时回复

群聊 vs 私聊

  • 私聊:Bot 独立与用户对话,一对一会话
  • 群聊:Bot 能看到群里的消息流,在群聊中被 @mention 时参与对话

群聊模式下,Bot 的系统提示词会自动追加群聊相关指令,帮助 Bot 理解群聊场景。

消息策略

在 Gateway 配置中可以设置:

  • 回复范围:全部 / 仅私聊 / 仅群聊
  • 用户过滤:允许的用户 / 屏蔽的用户
  • 频道过滤:允许的频道 / 屏蔽的频道

详见 Gateway


任务模式

除了会话模式的对话交互,Bot 还支持任务模式——通过 API、定时调度、Bot 间委托或事件触发的单次执行任务。

查看任务

在 Bot 详情页的 执行历史 Tab 可以查看 Bot 的所有任务,包括:

  • 任务状态:等待中 / 运行中 / 已完成 / 失败 / 已取消
  • 任务指令
  • Token 消耗
  • 执行耗时
  • 完成时间

点击任务可查看详情,包括完整的工具调用链和执行结果。

任务回放

在数据中心的任务详情页,可以查看任务的完整执行过程——每一步的推理输出、工具调用、执行结果,按时间线展示。


常见问题

Bot 回复很慢

  • 检查 LLM 提供商的 API 响应速度
  • 如果 Bot 需要调用多个工具,每个工具调用都会增加响应时间
  • 考虑降低 Temperature 或选择更快的模型

对话上下文丢失

  • 会话空闲 30 分钟会自动过期,之后开始新会话
  • 如果开启了会话持久化,历史会在新会话创建时恢复
  • 超过 80 条消息后会触发压缩,早期细节可能在摘要中丢失

Bot 不断循环调用工具

  • 检查最大迭代次数设置,适当降低
  • 检查系统提示词是否引导 Bot 正确终止
  • 考虑使用”计划式”推理模式让 Bot 先规划再执行