对话交互
前置知识: 阅读本文前建议先了解 核心概念 中的会话与任务部分。
Monstrum 提供流式对话界面,让你与 Bot 实时交互。Bot 可以在对话中调用工具、执行操作,并将结果展示给你。
概述
Monstrum 的对话系统支持两个入口:
- Web 对话:在 Bot 详情页的概览 Tab 直接与 Bot 对话
- IM 渠道:通过 Slack、飞书、Telegram 等外部 IM 平台与 Bot 对话(需配置 Gateway)
两种方式底层使用相同的会话机制,只是消息的入口和出口不同。
Web 对话
开始对话
- 进入 Bot 管理 → 点击某个 Bot → 进入 Bot 详情页
- 在 概览 Tab 底部的对话框中输入消息
- 按回车或点击发送按钮
Bot 会使用配置的 LLM 进行推理并回复。对话支持流式输出——你可以看到 Bot 逐字生成回复。
工具调用展示
当 Bot 在对话中调用工具时,界面会展示:
- 工具名称:显示调用了什么工具(如
web_search、ssh_execute) - 执行结果:工具返回的结果内容
- 你可以展开查看工具调用的详细参数和完整结果
一次对话中,Bot 可能进行多轮工具调用。例如,先搜索信息,再根据搜索结果访问网页,最后总结内容回复你。
新对话
点击 新对话 按钮开始全新会话。新会话会清除当前的对话上下文,Bot 从零开始。
结束会话
点击 结束会话 主动终止当前会话。结束会话时:
- 如果 Bot 开启了自动记忆提取,会从对话中提取重要信息保存为记忆
- 会话历史会被保存(如果开启了会话持久化)
会话生命周期
创建
当第一条消息到达时,平台创建一个新的会话。创建时会:
- 加载 Bot 的记忆(全局记忆 + 当前作用域记忆)
- 加载持久化的对话历史(如果有)
- 构建系统提示词
活跃
每条消息按 FIFO 顺序处理。Bot 在处理消息时会:
- 构建系统提示词(包含资源摘要、记忆、技能等)
- 解析可用工具列表(Pre-LLM 权限过滤)
- 调用 LLM 推理
- 如果 LLM 返回工具调用 → 权限校验 → 执行工具 → 继续推理
- 重复直到 LLM 返回最终文本回复
过期
会话空闲 30 分钟后自动过期。过期时:
- 触发自动记忆提取(如果启用)
- 保存会话历史到数据库
- 释放会话资源
会话持久化
频道级对话支持持久化。下次创建会话时,之前的对话历史会被加载。
当对话积累超过 80 条消息时,平台会自动压缩:LLM 总结旧消息生成摘要,保留最近 50 条消息。摘要以”前情提要”的形式注入到对话开头。
流式响应
Monstrum 支持 SSE(Server-Sent Events)流式响应。Bot 的回复会逐 token 推送到前端,实现实时显示效果。
流式响应包含以下类型的事件:
| 事件类型 | 说明 |
|---|---|
text | 文本片段,逐步构成完整回复 |
tool_start | 工具调用开始 |
tool_result | 工具执行结果 |
done | 响应完成 |
中间工具调用轮次(Bot 调用工具、获取结果、继续推理)的过程会以 tool_start 和 tool_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 先规划再执行