| name | time-aware-search |
| description | 企业级时间感知搜索技能。当用户询问包含时间敏感性词汇的问题时(如"最近"、"近年来"、"最新"、"新闻"、"今年"、"上月"等),
自动调用时间工具获取当前准确时间,校准认知后,再调用搜索工具核实信息,防止模型仅依赖训练数据的过时信息导致认知偏差和答非所问。
适用场景:
- 用户询问时效性信息(新闻、政策、股价、天气等)
- 用户问题包含相对时间词汇(最近、最新、当前、现在等)
- 需要确保回答基于最新数据而非训练数据截止时间的场景
核心流程:
1. 检测时间敏感关键词
2. 获取当前准确时间(DateTimeTool)---必须调用,明确用户当前时间
3. 基于当前时间理解用户意图
4. 调用搜索工具核实最新信息(WebSearchTool/TavilySearchTool等搜索工具)
5. 综合时间信息和搜索结果生成准确回答(依据最新时间回答)
|
时间感知搜索技能(Time-Aware Search Skill)
1. 技能概述
本技能旨在解决大语言模型(LLM)因训练数据截止时间限制而导致的时效性认知偏差问题。通过系统化的工作流程,确保模型在处理时效性问题时能够:
- 获取实时时间基准:不依赖训练数据中的时间信息
- 理解相对时间词汇:将"最近"、"今年"等词汇转换为具体时间范围
- 搜索最新信息:基于当前时间获取最新数据
- 生成时效性回答:明确标注信息的时间范围和来源
2. 触发条件(Trigger Conditions)
当用户输入包含以下类型词汇时,必须激活本技能:
2.1 时间敏感关键词
| 类别 | 关键词示例 | 处理策略 |
|---|
| 相对时间 | 最近、最新、当前、现在、目前、现今 | 获取当前时间,计算相对时间范围 |
| 时间段 | 近年来、近几年、近一段时间、 lately | 获取当前时间,推算过去N年/月 |
| 特定时间 | 今年、去年、上月、上周、昨天 | 获取当前时间,确定具体日期范围 |
| 时效性 | 新闻、热点、趋势、行情、股价、天气 | 必须搜索最新信息 |
| 未来时间 | 即将、将要、未来、预测、展望 | 获取当前时间作为基准 |
2.2 高风险场景
以下场景必须使用本技能:
- 询问新闻事件("最近有什么新闻")
- 询问政策法规("最新的税收政策是什么")
- 询问市场数据("最近股市行情如何")
- 询问科技动态("最新的人工智能进展")
- 询问天气信息("今天北京天气怎么样")
3. 标准工作流程(Standard Workflow)
┌─────────────────────────────────────────────────────────────┐
│ 时间感知搜索工作流程 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Step 1: 检测时间敏感词 │
│ - 分析用户输入,匹配关键词列表 │
│ - 评估时间敏感度等级(高/中/低) │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Step 2: 获取当前准确时间(强制) │
│ - 调用 DateTimeTool 获取当前日期时间 (强制,必须) │
│ - 记录时区信息(默认北京时间 UTC+8) │
│ - 格式化时间:YYYY-MM-DD HH:mm:ss │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Step 3: 时间校准与意图理解 │
│ - 将相对时间词汇转换为具体时间范围 │
│ * "最近" → 当前时间前7天至今天 │
│ * "今年" → 当年1月1日至今天 │
│ * "近年来" → 当前时间前3年至今天 │
│ - 确定搜索时间范围 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Step 4: 搜索核实(强制) │
│ - 构建带时间范围的搜索查询 │
│ - 调用 WebSearchTool 或 TavilySearchTool │
│ - 优先选择时间戳在目标范围内的结果 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Step 5: 生成时效性回答 │
│ - 明确标注信息的时间范围 │
│ - 说明数据来源和搜索时间 │
│ - 对于无法核实的信息,明确标注"基于训练数据"或"信息待核实" │
└─────────────────────────────────────────────────────────────┘
4. 工具调用规范
4.1 必须调用的工具
-
DateTimeTool(时间工具)
- 调用时机:检测到时间敏感词后立即调用
- 参数:无(获取当前系统时间)
- 返回值处理:提取日期、时间、星期、时区信息
-
WebSearchTool 或 TavilySearchTool(搜索工具)
4.2 工具调用顺序
严格顺序:DateTimeTool → SearchTool → 生成回答
不允许跳过时间获取步骤直接搜索。
5. 时间词汇映射表
| 用户词汇 | 时间范围计算(基于当前时间T) | 搜索关键词补充 |
|---|
| 现在/当前/目前 | T(精确到小时) | "当前" + 年份 |
| 今天 | T的日期范围(00:00-23:59) | "今日" + 日期 |
| 昨天 | T-1天 | "昨日" + 日期 |
| 最近/近日 | [T-7天, T] | "最近一周" |
| 上周 | 上周一至周日 | "上周" + 日期范围 |
| 上月 | 上月1日至最后一日 | "上月" + 月份 |
| 今年/本年度 | [当年1月1日, T] | "202X年" |
| 去年/上年度 | [去年1月1日, 去年12月31日] | "202X年" |
| 近年来/近几年 | [T-3年, T] | "近3年" + 年份范围 |
| 最新/最近更新 | [T-30天, T] | "最新" + 年份 |
6. 回答原则
- 自然流畅地融入当前时间信息,避免生硬的模板化表述
- 明确标注信息来源和时间,但不必使用固定格式
- 对于无法核实的信息,坦诚说明不确定性
- 避免使用"根据我的训练数据"等表述
7. 异常处理
7.1 时间获取失败
- 重试机制:最多3次
- 降级方案:使用系统提示中的时间信息(如有)
- 用户提示:"时间服务暂时不可用,以下回答基于模型训练数据"
7.2 搜索无结果
- 扩大时间范围重试
- 调整搜索关键词
- 向用户说明:"未找到该时间范围内的相关信息,建议扩大时间范围或调整问题"
7.3 搜索结果冲突
- 优先选择权威来源(政府网站、官方媒体)
- 优先选择时间戳最新的结果
- 如无法判断,向用户呈现多方信息并说明差异