| name | search-history |
| description | 搜索当前会话的对话历史(短期记忆)。使用场景:需要回顾之前的讨论内容或上下文时。 |
search-history
从 ShortTermMemory 检索当前会话的对话记录,支持关键词过滤,自动生成对话摘要和主题提取。
输入参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|
| session_id | string | 是 | — | 会话 ID |
| keyword | string | 否 | "" | 关键词过滤,为空则返回最近消息 |
| limit | integer | 否 | 10 | 返回消息数量 |
返回字段
| 字段 | 类型 | 说明 |
|---|
| success | bool | 是否执行成功 |
| messages | array | 格式化消息列表 |
| messages[].role | string | user / assistant / tool |
| messages[].content | string | 消息内容(最多 400 字) |
| count | integer | 实际返回消息数 |
| summary | string | 对话流程摘要(提问次数、回复次数、最近提问) |
| topics_discussed | array | 提取的教育关键词列表(最多 5 个) |
| keyword_filter | string | 实际使用的关键词过滤(无过滤则为 null) |
内部逻辑
- ShortTermMemory.get_recent_messages(session_id, limit) 获取记录
- 若有 keyword,过滤 content 包含关键词的消息
- 统计 user / assistant 消息数,生成对话摘要
- 简单规则从 user 消息中提取教育关键词(函数/三角/数列等)
使用方
- TutorAgent:回顾当次会话上下文,避免重复讲解
已知限制
- 存在 Bug:内部
new ShortTermMemory(storage_type="memory") 每次创建新实例,在内存模式下无法读取由 AgentLoop 写入的历史(两个实例各自独立)。Redis 模式下正常(共享同一 Redis)。
- 生产环境中若使用内存模式,此 skill 始终返回空历史