# 错误修复:LLM 总结中缺少网页链接信息
**修复时间**:2025-12-04
**错误级别**:Medium
## 问题详情
### 错误现象
```
## 来源
[1] Search Results: 没有保存信息来源链接
```
### 问题类型
- 类型:功能缺陷
- 影响功能:web_search 工具的信息溯源能力
- 用户体验:用户无法追溯到原始信息来源
## 解决方案
### 根本原因
1. **LLM 截断问题**:LLM 在生成长内容时可能在最后的来源部分被截断
2. **来源引用不明确**:原来的提示词虽然要求标注来源,但格式不够明确
3. **输出格式问题**:来源信息的格式不够清晰,容易被忽略或截断
### 修改文件
- `src/services/summarizer.ts`:改进搜索总结提示词和内容格式
- `src/tools/web-search.ts`:优化最终输出格式,确保来源链接完整显示
### 代码变更
#### 1. 改进搜索总结提示词
```typescript
// 修改前
const SEARCH_SUMMARY_PROMPT = `以下是多个网页搜索结果的内容。请综合这些信息,提供一个全面而简洁的总结。
要求:
1. 整合所有来源的关键信息
2. 标注信息来源(使用序号对应)
3. 如果存在矛盾信息,请指出
4. 保持客观,不添加个人观点
搜索结果:
{content}
请提供综合总结:`;
// 修改后
const SEARCH_SUMMARY_PROMPT = `以下是多个网页搜索结果的内容。请综合这些信息,提供一个全面而简洁的总结。
重要要求:
1. 整合所有来源的关键信息
2. 在总结中使用【来源编号】来引用不同的信息来源
3. 如果存在矛盾信息,请指出并说明不同来源的观点
4. 保持客观,不添加个人观点
5. 每个来源的格式为:【编号】标题
6. 确保总结内容包含所有重要信息,不要在最后单独列出来源
搜索结果:
{content}
请提供综合总结:`;
```
#### 2. 改进搜索结果格式化
```typescript
// 修改前
const formattedContent = results
.map((r, i) => `[${i + 1}] ${r.title}\nURL: ${r.url}\n${r.content}`)
.join('\n\n---\n\n');
// 修改后
const formattedContent = results
.map((r, i) => `【来源${i + 1}】${r.title}\n链接:${r.url}\n内容:${r.content}`)
.join('\n\n---\n\n');
```
#### 3. 优化最终输出格式
```typescript
// 修改前
const sources = searchResponse.results
.map((r, i) => `[${i + 1}] ${r.title}: ${r.url}`)
.join('\n');
return `## 搜索结果总结
${summaryResponse.summary}
## 来源
${sources}`;
// 修改后
const sources = searchResponse.results
.map((r, i) => `[${i + 1}] **${r.title}**\n 链接:${r.url}`)
.join('\n\n');
return `## 搜索结果总结
${summaryResponse.summary}
---
## 信息来源
${sources}`;
```
## 技术改进
### 1. 明确的来源引用格式
- 使用 `【来源1】`、`【来源2】` 等明确的引用格式
- 在 LLM 总结内部就包含来源引用,而不依赖最后单独列出
- 使用更醒目的中文括号格式
### 2. 强化的输出格式
- 使用 Markdown 粗体标题突出网页标题
- 使用缩进格式显示链接,提高可读性
- 添加分隔线使来源部分更醒目
### 3. 多重保障机制
- **总结内引用**:LLM 总结内部包含来源引用
- **独立来源部分**:在总结后强制包含完整的来源列表
- **清晰格式**:使用一致的格式确保信息完整性
## 预期效果
### 修复前
```
## 来源
[1] Search Results: 没有保存信息来源链接
```
### 修复后
```
## 搜索结果总结
《中华人民共和国治安管理处罚法》是一部旨在维护社会治安秩序的重要法律【来源1】【来源2】...
---
## 信息来源
[1] **维基百科 - 治安管理处罚法**
链接:https://zh.wikipedia.org/wiki/治安管理处罚法
[2] **百度百科 - 治安管理处罚法**
链接:https://baike.baidu.com/item/治安管理处罚法
```
## 验证结果
- [x] 代码检查通过(`npm run typecheck`)
- [x] LLM 总结测试通过,正确包含来源引用
- [x] 来源引用格式清晰明确
- [x] 最终输出格式改进,来源信息完整显示
## 最佳实践
### 1. 信息溯源设计原则
- **双重保障**:总结内部引用 + 独立来源列表
- **格式统一**:使用一致的引用格式
- **信息完整**:确保包含标题、链接、关键信息
### 2. LLM 提示词优化
- **明确要求**:使用"重要要求"强调关键点
- **具体格式**:明确指定引用格式
- **避免截断**:不要在最后单独列出来源
### 3. 用户体验考虑
- **可读性**:使用 Markdown 格式提高可读性
- **可点击性**:确保链接格式正确,便于点击
- **可验证性**:提供足够的信息便于用户验证
## 注意事项
- 需要确保 LLM 模型支持中文标点符号(【】)
- 定期测试不同类型搜索结果的来源显示效果
- 根据用户反馈持续优化引用格式和内容组织