fix: 联网搜索强制注入当前日期(system prompt + 工具层双保险)
This commit is contained in:
@@ -255,8 +255,10 @@ export async function handleWebSearch(params: { query: string; max_results?: num
|
|||||||
return { success: false, error: '未找到搜索结果,请尝试其他关键词' };
|
return { success: false, error: '未找到搜索结果,请尝试其他关键词' };
|
||||||
}
|
}
|
||||||
|
|
||||||
// 构建格式化的搜索结果
|
// 构建格式化的搜索结果(附带当前日期)
|
||||||
const formatted = results.map((r, i) =>
|
const now = new Date();
|
||||||
|
const dateStr = `${now.getFullYear()}年${now.getMonth() + 1}月${now.getDate()}日`;
|
||||||
|
const formatted = `[当前日期: ${dateStr}(搜索时的实时日期)]\n\n` + results.map((r, i) =>
|
||||||
`[${i + 1}] ${r.title}\n URL: ${r.url}\n ${r.snippet}`
|
`[${i + 1}] ${r.title}\n URL: ${r.url}\n ${r.snippet}`
|
||||||
).join('\n\n');
|
).join('\n\n');
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ const AGENT_SYSTEM_PROMPT = `你是一个具备工具调用能力的 AI 助手
|
|||||||
|
|
||||||
1. 直接调用工具,不要写"我来帮你搜索"然后结束。有工具就调用,调用完根据结果继续下一步。
|
1. 直接调用工具,不要写"我来帮你搜索"然后结束。有工具就调用,调用完根据结果继续下一步。
|
||||||
2. 多步任务必须逐步完成:搜到结果 → 给出答案。如果需要详情再抓取,但抓取失败时直接用搜索结果回答,不要卡在抓取上。
|
2. 多步任务必须逐步完成:搜到结果 → 给出答案。如果需要详情再抓取,但抓取失败时直接用搜索结果回答,不要卡在抓取上。
|
||||||
3. 需要最新信息(版本号、新闻、日期等)时,必须先用工具获取,不要凭记忆猜测。
|
3. 需要最新信息(版本号、新闻、日期等)时,必须先用工具获取,不要凭记忆猜测。每次联网搜索前必须确认当前日期,搜索结果会附带搜索时的日期,以该日期为准校准你的认知。
|
||||||
4. 工具出错时分析原因并换方法重试,最多重试 2 次。同一 URL 连续失败 2 次后不要再尝试,换其他方式。
|
4. 工具出错时分析原因并换方法重试,最多重试 2 次。同一 URL 连续失败 2 次后不要再尝试,换其他方式。
|
||||||
5. 不要重复调用相同参数的同一工具。
|
5. 不要重复调用相同参数的同一工具。
|
||||||
6. web_search 结果中的标题、URL、snippet 已经包含关键信息,不要忽视它们。
|
6. web_search 结果中的标题、URL、snippet 已经包含关键信息,不要忽视它们。
|
||||||
@@ -88,7 +88,8 @@ const TOOL_USAGE_GUIDE = `【工具链规则(强制执行)】
|
|||||||
11. 管理记忆:可以用 memory_replace 更新已有记忆(子串匹配 old_text),用 memory_remove 删除不再需要的记忆。
|
11. 管理记忆:可以用 memory_replace 更新已有记忆(子串匹配 old_text),用 memory_remove 删除不再需要的记忆。
|
||||||
12. 查看技能:可以用 skill_list 列出所有可用技能,用 skill_view 查看特定技能的详细工具链。
|
12. 查看技能:可以用 skill_list 列出所有可用技能,用 skill_view 查看特定技能的详细工具链。
|
||||||
13. 【严禁猜 URL】绝对不要猜测或编造 URL 路径(如 https://example.com/docs/install)。所有 URL 必须从搜索结果中获取。如果你猜了一个 URL 并得到 404 错误,不要继续猜其他路径,应该回到搜索结果中找正确的链接。
|
13. 【严禁猜 URL】绝对不要猜测或编造 URL 路径(如 https://example.com/docs/install)。所有 URL 必须从搜索结果中获取。如果你猜了一个 URL 并得到 404 错误,不要继续猜其他路径,应该回到搜索结果中找正确的链接。
|
||||||
14. 搜索结果来源:搜索结果中每条都带有标题、URL 和摘要。摘要已经包含关键信息,优先从摘要中提取答案。不要忽视来自知乎、CSDN、博客园等中文来源的结果,它们通常包含有效的技术信息。`;
|
14. 搜索结果来源:搜索结果中每条都带有标题、URL 和摘要。摘要已经包含关键信息,优先从摘要中提取答案。不要忽视来自知乎、CSDN、博客园等中文来源的结果,它们通常包含有效的技术信息。
|
||||||
|
15. 【联网前确认日期】每次调用 web_search 之前,必须先确认当前日期。搜索结果会自动附带搜索时的日期,看到结果后请核对该日期与你认知是否一致。如果你的认知与搜索结果中的日期不符,以搜索结果中的日期为准。回答涉及时间的信息时,必须引用该日期以确保时效性。`;
|
||||||
|
|
||||||
/** 工具名白名单:用于文本解析兜底时过滤非法工具名 */
|
/** 工具名白名单:用于文本解析兜底时过滤非法工具名 */
|
||||||
const VALID_TOOL_NAMES = new Set([
|
const VALID_TOOL_NAMES = new Set([
|
||||||
|
|||||||
Reference in New Issue
Block a user