AgentSkillsCN

summarizing-webpages

当用户请求总结网页内容、提取网页正文,或将网页内容转换为 Markdown 文档时,可使用此技能。

SKILL.md
--- frontmatter
name: summarizing-webpages
description: Use when the user requests to summarize web pages, extract webpage content, or convert webpage content to markdown documentation

网页内容总结

快速开始

使用 WebFetch 或浏览器工具获取并分析网页内容,然后生成结构化的 markdown 文档。

工具选择快速参考

网站类型推荐工具原因
技术文档、博客WebFetch(优先)静态内容,加载快
X/Twitter浏览器工具需要 JavaScript 渲染
LinkedIn、Facebook浏览器工具需要 JavaScript 渲染
单页应用 (SPA)浏览器工具动态内容加载
需要登录的网站可能无法访问需要认证

通用策略:先尝试 WebFetch,如果返回错误或内容不完整,立即切换到浏览器工具。

工作流

使用 TaskCreate 创建任务清单并跟踪进度:

code
使用 TaskCreate 创建以下任务:
1. 获取网页内容
2. 分析内容结构
3. 提取关键信息
4. 生成 markdown 文档
5. 质量检查

步骤 1:获取网页内容

策略选择

方案 A:静态网页或技术文档(优先尝试)

使用 WebFetch 工具:

code
WebFetch(
  url="[用户提供的URL]",
  prompt="提取完整内容,包括标题、段落、列表、代码示例和表格。保留文档结构和层次关系。"
)

方案 B:动态网页或社交媒体(当方案 A 失败时)

如果 WebFetch 返回错误页面(如"JavaScript is not available")或内容不完整,使用 Playwright 浏览器工具:

code
1. browser_navigate(url="[用户提供的URL]")
2. browser_wait_for(time=3)  # 等待 JavaScript 内容加载
3. browser_snapshot()  # 获取页面快照

社交媒体网站直接使用浏览器工具

  • X/Twitter (x.com)
  • Facebook
  • Instagram
  • LinkedIn
  • 其他需要登录或 JavaScript 渲染的网站

处理流程

  1. 更新任务状态为 in_progress
  2. 先尝试 WebFetch
  3. 如果失败或返回错误页面,切换到浏览器工具
  4. 成功获取内容后,更新任务状态为 completed
  5. 完成后关闭浏览器(browser_close)

步骤 2:分析内容结构

更新任务状态

code
TaskUpdate(taskId="2", status="in_progress")

识别内容类型并确定总结策略:

技术文档

  • 重点:概念、API、代码示例、最佳实践
  • 结构:按功能模块组织

教程/指南

  • 重点:步骤、流程、关键要点
  • 结构:按学习路径组织

文章/博客

  • 重点:主要观点、论据、结论
  • 结构:按主题组织

社交媒体帖子(X/Twitter、LinkedIn 等):

  • 重点:核心观点、具体数据、实践经验、关键建议
  • 结构:按主题和子话题组织
  • 特别注意:互动数据(点赞、转发等)、发布时间

产品/服务页面

  • 重点:功能、优势、价格、使用场景
  • 结构:按类别组织

完成后更新任务状态:

code
TaskUpdate(taskId="2", status="completed")
TaskUpdate(taskId="3", status="in_progress")

步骤 3:提取关键信息

从网页内容中提取:

  • 主标题和副标题层次
  • 核心概念和定义
  • 重要列表和步骤
  • 代码示例(保留完整)
  • 表格数据(保留结构)
  • 关键引用或警告信息
  • 数据统计(如适用)
  • 互动信息(社交媒体)

完成后更新任务状态:

code
TaskUpdate(taskId="3", status="completed")
TaskUpdate(taskId="4", status="in_progress")

步骤 4:生成 markdown 文档

使用下面的标准模板结构化内容,根据内容类型选择合适的模板。

使用 Write 工具创建文档:

python
Write(
  file_path="[文件路径]",
  content="[组织好的内容]"
)

文件路径建议

  • 优先使用 scratchpad 目录:适合临时总结文档
  • 使用描述性名称(如:x_article_summary.mdtutorial_summary.md
  • 包含来源标识
  • 使用中文或英文,保持一致

完成后更新任务状态:

code
TaskUpdate(taskId="4", status="completed")
TaskUpdate(taskId="5", status="in_progress")

步骤 5:质量检查

使用 Read 工具读取生成的文档进行验证:

验证输出文档:

  • 标题层次正确(# ## ### 使用得当)
  • 代码块有语言标识
  • 列表格式一致
  • 表格结构完整
  • 包含原始 URL 引用
  • 包含作者信息(如适用)
  • 包含生成日期
  • 无明显内容遗漏
  • markdown 语法正确

完成后更新任务状态:

code
TaskUpdate(taskId="5", status="completed")

输出模板

技术文档模板

markdown
# [文档标题]

## 概述
[简要说明文档主题和目的,1-2 段]

## 核心概念

### [概念 1]
[说明]

### [概念 2]
[说明]

## 主要功能/模块

### [功能 1]
**说明**:[简要描述]

**使用方法**:
```[language]
[代码示例]

要点

  • 要点 1
  • 要点 2

[功能 2]

[同上结构]

最佳实践

[实践 1]

[详细说明]

[实践 2]

[详细说明]

注意事项

  • 警告或限制 1
  • 警告或限制 2

相关资源


原始来源:[原始 URL] 总结日期:[生成日期]

code

### 教程/指南模板

```markdown
# [教程标题]

## 简介
[教程目标和适用人群]

## 前置要求
- 要求 1
- 要求 2

## 步骤

### 步骤 1:[步骤名称]
[详细说明]

```[language]
[相关代码]

关键点

  • 关键点 1
  • 关键点 2

步骤 2:[步骤名称]

[同上结构]

常见问题

Q: [问题] A: [回答]

总结

[学习要点回顾]

下一步

[后续学习建议]


原始来源:[原始 URL] 总结日期:[生成日期]

code

### 文章/博客模板

```markdown
# [文章标题]

## 核心观点
[主要论点总结,1-2 段]

## 主要内容

### [主题 1]
**要点**:
- 要点 1
- 要点 2

**详细说明**:
[展开说明]

### [主题 2]
[同上结构]

## 关键引用
> [重要引用或观点]

## 数据/案例
[相关数据、图表说明或案例研究]

## 结论
[作者结论或建议]

## 个人见解(如适用)
[总结者的评论或分析]

---
**原始来源**:[原始 URL]
**总结日期**:[生成日期]

社交媒体帖子模板(X/Twitter、LinkedIn 等)

markdown
# [帖子标题/主题]

## 核心观点
[主要论点总结,1-2 段,提炼作者想表达的核心思想]

## 主要内容

### [主题 1]
**要点**:
- 要点 1
- 要点 2

**详细说明**:
[展开说明]

### [主题 2]
[同上结构,按内容的逻辑层次组织]

## [其他相关章节]
根据内容添加相关章节,例如:
- 实践建议
- 关键数据
- 核心思想
- 下一步计划
- 技术实现

## 数据统计(如适用)
- **发布时间**:[日期时间]
- **互动数据**:
  - 浏览量:[数字]
  - 点赞:[数字]
  - 转发:[数字]
  - 评论:[数字]
  - 书签:[数字]

---
**原始来源**:[原始 URL]
**作者**:[作者名] (@[用户名])
**总结日期**:[生成日期]

内容类型处理指南

处理长文档

如果内容超过 10,000 字:

  1. 创建执行摘要部分
  2. 使用折叠详情(<details> 标签)
  3. 分层组织,突出最重要内容
  4. 提供目录(TOC)

示例:

markdown
## 目录
- [概述](#概述)
- [核心概念](#核心概念)
- [详细功能](#详细功能)

<details>
<summary>详细内容(点击展开)</summary>

[详细内容]

</details>

处理多语言内容

如果网页包含多种语言:

  • 保持原语言用于专业术语
  • 技术名词使用英文
  • 说明使用中文
  • 代码注释保持原样

处理代码密集型内容

对于技术文档:

  • 保留所有代码示例
  • 添加语言标识符
  • 包含必要的上下文说明
  • 保持代码格式和缩进
markdown
使用 pdfplumber 提取文本:

```python
import pdfplumber

with pdfplumber.open("file.pdf") as pdf:
    text = pdf.pages[0].extract_text()
    print(text)

此代码打开 PDF 文件并提取第一页的文本内容。

code

### 处理表格数据

保留 markdown 表格格式:

```markdown
| 功能 | 描述 | 支持版本 |
|------|------|----------|
| 功能A | 说明A | v1.0+ |
| 功能B | 说明B | v2.0+ |

对于复杂表格,考虑:

  • 拆分为多个简单表格
  • 使用列表代替
  • 添加说明文字

特殊元素处理

警告和提示框

使用 markdown 引用和强调:

markdown
> ⚠️ **警告**:此操作不可逆,请谨慎使用。

> 💡 **提示**:使用快捷键可以提高效率。

> ℹ️ **注意**:此功能仅在企业版中可用。

图片和图表

对于图片:

markdown
![图片描述](原始URL)

**说明**:[图片内容的文字描述]

对于图表数据,提取为:

  • 表格格式
  • 列表格式
  • 文字描述

质量标准

生成的文档应该:

结构清晰

  • 标题层次分明
  • 逻辑组织合理
  • 易于导航

内容完整

  • 保留关键信息
  • 不遗漏重要细节
  • 代码示例完整

格式规范

  • markdown 语法正确
  • 代码块有语言标识
  • 列表和表格格式统一

可读性好

  • 段落长度适中
  • 使用恰当的强调
  • 避免冗长句子

示例

示例 1:技术教程

输入

code
用户:"帮我总结这个网页的主要内容 https://example.com/tutorial"

处理流程

  1. ✅ 使用 TaskCreate 创建 5 个任务
  2. ✅ 使用 WebFetch 获取网页内容(静态网页)
  3. ✅ 识别为教程类型
  4. ✅ 提取步骤、代码示例、关键点
  5. ✅ 使用教程模板组织
  6. ✅ 生成 markdown 文档到 scratchpad 目录
  7. ✅ 进行质量检查

输出: 生成的文档包含:

  • 清晰的步骤说明
  • 完整的代码示例
  • 关键点提炼
  • 原始来源链接

示例 2:X/Twitter 长文章

输入

code
用户:"帮我总结这篇文章的内容 https://x.com/user/status/123456"

处理流程

  1. ✅ 使用 TaskCreate 创建 5 个任务
  2. ✅ 识别为社交媒体网站,直接使用浏览器工具
  3. ✅ browser_navigate 导航到 URL
  4. ✅ browser_wait_for 等待 3 秒让内容加载
  5. ✅ browser_snapshot 获取页面内容
  6. ✅ 识别为社交媒体帖子类型
  7. ✅ 提取核心观点、主要内容、数据统计
  8. ✅ 使用社交媒体帖子模板组织
  9. ✅ 生成 markdown 文档到 scratchpad 目录
  10. ✅ 进行质量检查
  11. ✅ browser_close 关闭浏览器

输出: 生成的文档包含:

  • 核心观点总结
  • 按主题组织的详细内容
  • 互动数据统计
  • 作者信息和原始来源链接

常见问题处理

WebFetch 返回 "JavaScript is not available" 错误页面

  • 这表示网页需要 JavaScript 渲染
  • 立即切换到浏览器工具(browser_navigate + browser_wait_for + browser_snapshot)
  • 常见于社交媒体、单页应用(SPA)、动态网站

网页无法访问

  • 告知用户具体错误
  • 建议检查 URL 正确性
  • 如果是需要登录的页面,说明限制
  • 提供替代方案(如果有缓存内容)

内容过于简短或不完整

  • 确认是否获取完整内容
  • 检查是否需要 JavaScript 渲染(切换到浏览器工具)
  • 对于需要滚动加载的长内容,可能需要多次 browser_snapshot
  • 提供现有内容的最佳总结

浏览器加载超时或失败

  • 增加等待时间(browser_wait_for 增加到 5-10 秒)
  • 检查网络连接
  • 尝试刷新页面

内容语言不匹配

  • 保持原语言的专业术语
  • 使用中文进行说明
  • 双语对照重要概念

格式混乱

  • 重新组织内容结构
  • 统一格式风格
  • 确保 markdown 语法正确

使用浏览器工具后忘记关闭

  • 总是在完成后调用 browser_close
  • 避免资源占用