现在使用AI帮我们找一些资料帮我们分析问题的场景多的数不胜数,但是在AI找资料的过程中,我们对AI抓取的内容是不知道,也不可以明确指定范围的,主要是靠模型本身能力去收集,当然也可以增加提示词,加以控制。
当然目前解决方案也有很多:
- 增加更详细的提示词,描述更细致,控制更精细,过程更明确
- 同时也有Tavily Search、SearXNG等搜索智能体,可以更好指定搜索参数,如何处理搜索结果等
- 引用Skills、MCP等丰富大模型能力
了解到这些的时候,想着练习写一个Skills,实现网页内容抓取(其实很多东西都已经实现了,本文就是学习和分享),也了解一下Skills的开发
Skills的项目结构
skill-name/ ├── SKILL.md (唯一必需) │ ├── YAML 格式 (name, description 必须) │ └── Markdown instructions (介绍使用Markdown) └── Bundled Resources (可选的其他内容,和SKILL.md同级) ├── scripts/ - 存放可执行脚本(例如 Python 等) ├── references/ - 存放文档、API说明、领域知识 ├── examples/ - 存放示例文件 ├── evals/ - 存放测试说明 └── assets/ - 准备模板、图标、样板代码。确保格式正确(PPT、Word、图片等)
SKILL.md元数据介绍
元数据字段:
| 字段 | 必填 | 说明 |
|---|---|---|
| name | 是 | Skill 显示名称,默认使用目录名,仅支持小写字母、数字和短横线(最长 64 字符) |
| description | 是 | 技能用途及使用场景,Claude 根据它判断是否自动应用 |
| argument-hint | 否 | 自动补全时显示的参数提示,如 [issue-number]、[filename] [format] |
| disable-model-invocation | 否 | 设为 true 禁止 Claude 自动触发,仅能手动 /name 调用(默认 false) |
| user-invocable | 否 | 设为 false 从 / 菜单隐藏,作为后台增强能力使用(默认 true) |
| allowed-tools | 否 | Skill 激活时 Claude 可无授权使用的工具 |
| model | 否 | Skill 激活时使用的模型 |
| context | 否 | 设为 fork 时在子代理上下文中运行 |
| agent | 否 | 子代理类型(配合 context: fork 使用) |
| hooks | 否 | 技能生命周期钩子配置 |
scripts
Skills采用Prompt + Scripts架构,Scripts必须绑定特定运行时环境
- Skills的实现多采用
Python脚本,也是大模型运行的主要环境 - Node.js Skills:需配置node_modules及package.json
- Bash Scripts:仅需基础Shell环境(但可能依赖系统工具包)
开发案例
Python还不太熟悉,用Node写了一个





