# 工具返回格式（高信息密度文本，非 JSON）

> 说明：工具真实执行会产生完整 JSON 结果，仅用于存储/审计；**返回给模型的内容必须是高信息密度文本**。参考项目中的“JSON -> 文本摘要”逻辑，但按 easyagent 需求进一步压缩。

---

## read_file

### type=read
**仅返回 content 原文**（不加标题、不加行号、不加路径）。

返回示例：
```
<文件内容原文>
```

### type=search
返回“命中片段拼接文本”，每个片段用极简头标识（保留行号对定位有价值），不返回其他噪声。

返回示例：
```
[match_1] L10-14 hits:12
<片段内容>

[match_2] L88-92 hits:90,91
<片段内容>
```

### type=extract
返回“抽取片段拼接文本”，每个片段带 label/行号（若有）。

返回示例：
```
[segment_init] L10-20
<片段内容>

[segment_2] L40-45
<片段内容>
```

### error
```
失败: <错误信息>
```

---

## edit_file

成功：
```
已替换 <N> 处: <path>
```

失败：
```
失败: <错误信息>
```

---

## web_search

仅返回搜索摘要文本（来自 search_with_summary 的 summary），不返回 JSON 结果。

返回示例：
```
🔍 搜索查询: xxx
📅 搜索时间: 2025-01-01T12:00:00

📝 AI摘要:
...

---

📊 搜索结果:
1. 标题...
   🔗 URL
   📄 摘要...
```

失败：
```
失败: <错误信息>
```

---

## extract_webpage

### mode=read
返回网页正文为主，保留最小必要标识（URL）。

返回示例：
```
URL: https://example.com/...
<网页正文>
```

### mode=save
返回保存结果的简短确认信息。

成功：
```
已保存: <path> (chars=<N>, bytes=<N>)
```

失败：
```
失败: <错误信息>
```

---

## run_command

仅返回命令输出；如超时/错误则在前缀标注状态。

成功：
```
<stdout/stderr 合并输出>
```

超时：
```
[timeout after <Ns>]
<已捕获输出>
```

失败：
```
[error rc=<code>] <错误信息或输出>
```

---

## read_mediafile

成功（文字提示 + 附加媒体 payload）：
```
已附加图片: <path>
```
或
```
已附加视频: <path>
```

失败：
```
失败: <错误信息>
```

---

## search_workspace

### mode=file
```
命中文件(<N>):
1) <path>
2) <path>
```

### mode=content
```
<path>
- L12: <snippet>
- L30: <snippet>

<path>
- L5: <snippet>
```

失败：
```
失败: <错误信息>
```
