概览
MyrmAgent 提供了集成在侧边栏中的完整会话历史管理系统,无需跳转到单独页面。所有对话的搜索、整理和导出都可以在一个地方完成。全文搜索 (Cmd+K)
在应用任意位置按 ⌘+K(macOS)或 Ctrl+K(Windows/Linux)打开全局搜索对话框。- 即时结果:防抖搜索调用后端
/chats/searchAPI - 时间范围过滤:可限定为今天、本周、本月或本季度
- 片段高亮:搜索结果中匹配的文本自动高亮
- 点击跳转:选中结果直接导航到对应会话,并高亮匹配的消息
日期分组
对话按时间自动分组:
每个分组可以折叠/展开,折叠状态通过
localStorage 跨会话持久化。
置顶与拖拽排序
- 置顶对话到侧边栏顶部,方便快速访问
- 拖拽排序置顶项,使用 DnD-Kit SortableContext 实现
- 使用数字快捷键快速跳转到置顶会话
批量操作
进入批量模式可同时选择多个对话:- 从侧边栏标题切换批量模式
- 逐一选择或使用「全选」
- 批量导出:选中对话后点击「导出」,选择格式(Markdown / JSON / HTML),所有对话将打包为 ZIP 下载
- 批量删除:删除的项目进入回收站(软删除,可恢复)
批量导出特性
导出对话
右键任意对话即可导出为四种格式:- Markdown — 格式化的
.md文件 - HTML — 可直接分享的样式化 HTML 页面;对话里的链接只有指向
http(s)、mailto、tel或相对地址时才可点击,其余(例如javascript:链接)只显示文字,浅色与深色主题下的文字对比度均不低于 4.5:1 - JSON — 用于编程处理的结构化数据
- 复制到剪贴板 — 快速粘贴到任意位置
导出包含的诊断信息
导出文件自动包含以下元数据,便于调试和复现工作流:工具参数中的敏感信息(API Key、密码、Token 等)会自动脱敏为
***,确保安全分享。打印对话
右键菜单中还提供「打印」选项,可将当前对话以专业排版打印或导出为 PDF。采用隐藏 iframe 方式调用浏览器原生打印,不会被弹窗拦截器阻断。分享对话
通过右键菜单「分享」即可创建只读分享链接:分享链接为只读模式,接收方无法编辑对话内容。链接过期后自动失效;分享之后新增的消息也会显示在页面上,撤回链接无法收回他人已保存的副本。
项目文件夹
将对话整理到带颜色标签的命名项目中:- 通过右键菜单在项目间移动对话
- 筛选侧边栏仅显示特定项目的会话
- 项目归属跨会话持久化
回收站与恢复
不小心删除了对话?会话回收站面板提供:- 软删除的对话保留用于恢复
- 一键还原已删除的会话
- 确认后可永久删除
来源过滤
按来源渠道过滤对话 — Web UI、Telegram、Discord、微信等 26 个平台。无限滚动
侧边栏使用基于IntersectionObserver 的无限滚动,没有翻页按钮。向下滚动时会话自动加载。
更多功能
消息编辑与重新生成
编辑任何历史消息并重新发送,MyrmAgent 确保前后端完全一致:- 原子截断 — 编辑的消息之后的所有消息在发送前从数据库删除,Agent 永远不会看到过时的上下文
- 版本保留 — 重新生成的回复存储为同级版本(
is_active标志);使用消息旁的左右箭头切换版本 - 智能重新生成 — 四种预设模式(重试 / 更简洁 / 更详细 / 更有创意)加自定义指令。指令以
[Regeneration guidance: ...]注入 Agent 上下文,直接引导新回复 - Complaint-Up 自动升级 — 无自定义指令的纯重试被解读为隐式”不满意”信号,系统自动升到下一个模型不同的路由档位(SIMPLE→STANDARD→REASONING),无需手动切换模型即可获得更高质量回复;未配置更强模型时沿用原模型重试
- 撤销最后一轮 — 一键删除最后一组用户+助手消息对
流式中途纠偏(Busy Input)
当 Agent 正在生成回复时,按 Enter 发送消息将作为纠偏重定向 — 立即中断当前生成,无需等待完成:
重定向模式的核心优势:
- 零浪费 Token — 发现方向错误即刻停止(每次节省 200–1800 tokens)
- 上下文一致 — 已输出的部分 AI 回复作为 AIMessage 保留,LLM 看到的上下文与你看到的一致
- 提示词缓存友好 — 保留的部分文本维持消息前缀,提高下一次调用的缓存命中率
- 零学习成本 — 默认 Enter 行为,无需特殊快捷键
延迟持久化与孤儿会话物理自愈 (Lazy Session Persistence & Self-Purge)
在日常高频使用中,误按回车立即 Esc 取消、网络意外中断或短时试探性提问极为普遍。传统 Agent 框架在收到用户首条消息瞬间就向数据库插入记录并创建磁盘沙箱目录,导致历史列表迅速被大量无回复的空壳会话(Orphan Sessions)污染。 MyrmAgent 引入了 首条 Assistant 消息到达前延迟持久化机制(Lazy Session Persistence Until First Assistant) 与 沙箱目录延迟物化(Lazy Workspace Materialization):- 草稿态隔离:用户发送首条消息时,服务端仅在内存中维护轻量草稿对象
PendingSessionDraft,数据库与倒排索引处于 0 写入状态; - 活跃内容鉴别与原子提交:系统精确过滤心跳与控制事件,一旦检测到首个活跃内容块(文本、思考流或工具执行步骤),通过
asyncio.Lock提交屏障幂等落盘; - 取消零写入保证:在模型首字或首个工具调用前中断生成,草稿自动丢弃,磁盘工作区与数据库 0 残留,侧边栏保持绝对干净;
- 工具调用草稿保护:首轮即使模型仅调用工具而未生成可见文本,系统亦能自动识别并补提持久化,确保副反应工具执行结果完整留存;
- Doctor 孤儿会话自愈:针对早期遗留的空壳会话,系统 Doctor 诊断流内置
OrphanSessionDiagnostic探针,并提供PURGE_ORPHAN_SESSIONS一键修复动作,支持 Dry-run 预演与物理级联清理(同步擦除 DB 记录、消息表、FTS5 索引与沙箱文件夹)。
与竞品对比
多数竞品(如 Hermes Agent)使用独立的/history 页面,功能与侧边栏重复。MyrmAgent 遵循 ChatGPT、Claude 和 Gemini 的设计模式 — 侧边栏集成历史,同时提供独立页面方案缺少的 16 项额外功能。
思考过程与流式输出
模型在给答案前往往会先思考几十秒。Myrm 把这段过程做成消息的一部分,而不是让你盯着一个静止骨架。看到思考过程
- 思考开始时,助手气泡上方出现「思考中 Ns」与实时推理文本;
- 答案开始后,思考卡延迟 1 秒自动收起为一行摘要,随时可以再展开;
- 刷新或重新打开会话后,已落库的思考内容仍可回看。
三种显示模式
在「设置 → 个性化 → 思考展示」中选择:停止思考
思考阶段卡片上有「停止思考」按钮:提前结束推理,直接用已知信息作答。若后端 10 秒内无响应,按钮会自动恢复可点,不会卡在「收敛中」。token 数
思考卡显示的是服务端返回的真实reasoning_tokens;只有当供应商未返回时才显示带 ≈ 的估算值。
说明:正文是否逐字出现取决于模型/网关是否支持增量输出;Myrm 不做「伪流式」回放来掩盖真实卡顿。