---
name: search
description: 使用 DuckDuckGo 进行联网搜索。当用户询问时效性信息、最新新闻、当前事件、实时数据（股价、天气、比分等）或明确要求搜索时自动使用。关键词包括：最新、最近、当前、今天、现在、搜索、查一下、查询。
---

# 联网搜索

使用 DuckDuckGo 搜索获取最新信息。

## 依赖安装

本 skill 依赖 `ddgr` 命令行工具，可通过以下方式安装：

```bash
# 使用 pipx 安装（推荐）
pipx install ddgr

# 或使用包管理器
# Ubuntu/Debian: sudo apt install ddgr
# Arch: sudo pacman -S ddgr
# macOS: brew install ddgr
```

## 使用方法

```bash
search "关键词" [-n 数量] [-t 时间] [-r 地区]
```

### 参数说明

- `-n, --num NUM`: 返回结果数量（1-25，默认 10）
- `-t, --time SPAN`: 时间限制
  - `d` = 最近一天
  - `w` = 最近一周
  - `m` = 最近一月
  - `y` = 最近一年
- `-r, --region REG`: 地区代码
  - `cn-zh` = 中国中文
  - `us-en` = 美国英文（默认）
  - `wt-wt` = 全球

### 使用场景判断

**必须使用搜索的情况：**
1. 用户提到"最新"、"最近"、"当前"、"今天"、"现在"等时效性词汇
2. 询问新闻、事件动态
3. 查询股价、汇率、比赛结果等实时数据
4. 用户明确说"搜索一下"、"查一下"

**示例：**
- "马斯克最近在干什么" → 使用搜索
- "今天比特币价格" → 使用搜索
- "Python 最新版本" → 使用搜索
- "最新的 AI 新闻" → 使用搜索

## 常用命令

```bash
# 基本搜索
search "machine learning" -n 5

# 中文关键词搜索
search "机器学习" -r cn-zh -n 5

# 最新信息（最近一周）
search "OpenAI" -t w -n 5 -r us-en

# 中文最新资讯
search "人工智能" -t w -n 5 -r cn-zh

# 限定站点搜索
search "教程" -w sspai.com -n 5
```

## 结果处理

命令返回 JSON 格式：

```json
{
  "搜索关键词": "...",
  "结果数量": N,
  "时间限制": "...",
  "地区": "...",
  "实际返回": M,
  "结果": [
    {
      "序号": 1,
      "标题": "...",
      "链接": "...",
      "摘要": "..."
    }
  ]
}
```

**处理步骤：**
1. 执行搜索命令获取 JSON 结果
2. 解析 JSON 提取有用信息
3. 用中文整理回答用户
4. 标注信息来源
5. 如果结果为空，尝试调整关键词重新搜索

## 特殊事项与故障排除

### 1. 搜索结果为空

**可能原因：**
- 关键词过于具体或生僻
- DuckDuckGo 临时限制

**解决方案：**
- 尝试更通用的关键词
- 调整时间范围
- 稍后重试

### 2. 中文搜索建议

- 使用 `-r cn-zh` 获取中文优先结果
- 对于中文内容，建议使用时间限制 `-t` 获取最新信息
- 中文摘要可能截断，需要时可引导用户访问原文

### 3. 最佳实践

1. **时效性优先**：对于最新信息，使用 `-t d` 或 `-t w`
2. **结果验证**：检查 `实际返回` 字段，如果为 0 则尝试其他关键词
3. **关键词优化**：
   - 中英文均可，根据内容选择
   - 添加具体限定词（如"2026年"、"最新"、"教程"）
   - 避免过于宽泛的词汇
4. **错误处理**：
   - 如果命令返回错误，检查 `错误` 字段
   - 网络问题可稍后重试
   - 如果持续失败，向用户说明搜索服务暂时不可用

### 4. 与旧版 `ddgs-search` 的区别

| 特性 | 旧版 ddgs-search | 新版 search |
|------|-----------------|-------------|
| 后端 | Python API | 直接 HTTP |
| 中文支持 | 较差 | 良好 |
| 稳定性 | 频繁失败 | 稳定 |
| 时间参数 | `-l d/w/m/y` | `-t d/w/m/y` |
| 新闻类型 | `-t news` | 不支持（用 `-t` 代替） |

**迁移注意：**
- 时间参数从 `-l` 改为 `-t`
- 不再支持 `-t news` 专门的新闻搜索，使用 `-t` 时间限制即可
- 地区参数保持 `-r` 不变

## 调试模式

如需查看详细调试信息，可在脚本中添加 `-d` 参数（需在源码中修改）。

## 脚本位置

- Skill 脚本：`/home/mackintosh/.pi/agent/skills/search/bin/search`
- 系统命令：`ddgs-search` / `search` / `pi-search`（软链接）
