惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
AI
AI
博客园 - 三生石上(FineUI控件)
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
雷峰网
雷峰网
NISL@THU
NISL@THU
S
Schneier on Security
T
Threatpost
T
Tenable Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
IT之家
IT之家
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
C
Cybersecurity and Infrastructure Security Agency CISA
P
Privacy & Cybersecurity Law Blog
I
Intezer
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
T
Threat Research - Cisco Blogs
SecWiki News
SecWiki News
AWS News Blog
AWS News Blog
博客园 - Franky
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
V
V2EX
Recorded Future
Recorded Future
Microsoft Security Blog
Microsoft Security Blog
S
Secure Thoughts
Google DeepMind News
Google DeepMind News
MongoDB | Blog
MongoDB | Blog
Apple Machine Learning Research
Apple Machine Learning Research
Project Zero
Project Zero
PCI Perspectives
PCI Perspectives
G
GRAHAM CLULEY
Help Net Security
Help Net Security
Cloudbric
Cloudbric
Recent Announcements
Recent Announcements
V
Visual Studio Blog
Hacker News: Ask HN
Hacker News: Ask HN
N
News and Events Feed by Topic
C
CERT Recently Published Vulnerability Notes
The Cloudflare Blog
Forbes - Security
Forbes - Security
C
Cisco Blogs
O
OpenAI News
www.infosecurity-magazine.com
www.infosecurity-magazine.com

博客园 - iTech

AI Agent 写完代码谁来测?这个开源沙箱把 CI/CD 和多 Agent 协作全包了 7万星的AI交易框架:让大模型模拟投行多空辩论,自动做交易决策 71000颗星的AI交易团队:让大模型模拟投行分工,自动做交易决策 13400颗星的开源项目:输入一句话,AI全自动帮你做短视频 102颗星的沙盒:当AI学会自己写代码、跑测试、做部署 AI 技术日报 - 2026-05-08 29k 星的 PageIndex:不用向量数据库,靠推理就能做 RAG 每天花两小时刷信息?这个开源项目帮你全自动搞定 读源码像读小说?试了 DeepWiki 和 Zread,我再也不想裸读 GitHub 了 Matt Pocock 开源的这套 .claude 技能,为什么让工程师集体上头? Cursor Team Kit:Cursor 官方团队在用的 17 个 AI 工作流 AI 技术日报 - 2026-05-07 AI 技术日报 - 2026-05-06 AI 技术日报 - 2026-05-05 Anthropic CEO 说 12 个月内程序员要失业,我扒完他的底牌,发现事情没那么简单 把工程师的肌肉记忆装进 Claude Code,这个 4300 Star 的项目我后悔没早用 AI 技术日报 - 2026-05-04 AI 技术日报 - 2026-05-03 AI 技术日报 - 2026-05-02 六大 Agent 框架横评:谁支持 Skills?谁能自动创建 Agent?MCP 呢? Wechatsync:一个 Chrome 插件,一键把文章同步到 31 个平台 LangChain 开源了 Open SWE:Stripe、Ramp、Coinbase 内部都在造的编程 Agent Cockpit:把 Claude Code 从终端里搬出来,装进浏览器 Cursor 把自家的 AI Agent 开放了:写几行 TypeScript 就能调 Cursor 干活 AI 技术日报 - 2026-05-01 AI 写代码每次结果都不一样?Archon 用 YAML 工作流把 AI 编程变成流水线 AI 写代码比你快了,但你还是得学编程——只不过学法得换 腾讯的龙虾特工队:4 个 AI Agent 同日更新,全家桶正式成型 Agno 不做更聪明的 Agent,它要把所有 Agent 框架包进同一个操作系统 Hermes Agent 终于有了像样的 Web 界面,而且还支持远程访问 Datawhale 出了一套 29 学科知识地图,把 AI 的底牌全掀了 Hermes Agent 在聊天框里就能用的 20 种高级功能 一份 AGENTS.md 能顶一次模型升级?Augment Code 用数据说了算 NVIDIA 开源了一个「AI 沙箱」,20K Star,让 Agent 跑代码不再裸奔 60ms 冷启动、5MB 内存:腾讯开源的这个沙箱让 Docker 安全隔离像笑话 AI 技术日报 - 2026-04-30 AI 技术日报 - 2026-04-29 AI 技术日报 - 2026-04-28 Goose:Linux 基金会亲儿子,能撼动 Claude Code 和 OpenCode 吗? AI 技术日报 - 2026-04-27 AI 技术日报 - 2026-04-26 Google 把价值20美元/月的东西免费了,102K人已经抢到了 OpenClaw 和 Claude Code 网络搜索配置指南 AI 技术日报 - 2026-04-25 Anthropic 为什么遥遥领先:从 Cat Wu 专访看AI霸主的底层逻辑 Mac 本地跑大模型完全指南:你的苹果电脑就是 AI 工作站 同样 70B 参数,为什么 MoE 只激活 13B 就能打平 Dense? DeepSeek-V4 技术报告里藏着一条线:华为昇腾 NPU 已完成推理验证 DeepSeek-V4 深夜炸场:1M 上下文、384K 输出、双模型,API 定价直接卷到底 MacBook Air 跑大模型实测:Ollama、llama.cpp、LM Studio 谁才是本地推理之王? AI 技术日报 - 2026-04-24 OpenCode:Claude Code 的最佳平替 2026 开源大模型五国杀:Qwen 3.6 vs Gemma 4 vs Llama 4 vs GLM-5.1 vs DeepSeek V4 MCP 与 Skills 的你死我活:Anthropic 的 Agent 生态野心与开发者的站队困境 给 AI Agent 配搜索,国内能用的搜索 API 实测对比 AI 技术日报 - 2026-04-23 CC Switch:49K Star 的 Claude Code 登录绕过神器,还能管 Codex 和 Gemini CLI NVIDIA 开出 32 万美元年薪招 AI Agent 工程师,JD 里藏着这些信号 Cursor 值 600 亿美元?马斯克这次赌的不是技术,是入口 AI 技术日报 - 2026-04-22 别再问 AI 能不能赚钱了:3 个上班族亲测有效的副业方法(2026 最新版) 10 分钟从零搞定 Hermes Agent:飞书微信双通道丝滑上线 AI 技术日报 - 2026-04-21 Anthropic 实战总结:AI Agent 的 3 种工作流模式,选错代价很大 安装 openclaw,hermes 慢的想发疯,fast-mirror-skill 来救了 Claude Routines:你下班睡觉了,Agent 还在为你干活 微信飞书里敲一个斜杠就能干活:Hermes Quick Command 到底多省事 AI 正在疯狂吃电:算力尽头是电力,谁能解这道题? AI 技术日报 - 2026-04-20 3K 行代码造一个越用越聪明的 AI Agent:GenericAgent 登顶 GitHub Trending 高德途途封神机器人半马,背后的 ABot-Claw 到底是什么 人们希望 AI 能干啥?Anthropic 调查:第一名不是赚钱,是变强 AI 时代人们在担心什么?Anthropic 的 13 条焦虑排行榜 OpenAI 官方 Agent SDK 来了:22k Star,支持 100+ 模型,Python 10 行代码上手 AI 技术日报 - 2026-04-19 OpenAgents Workspace:让 Claude Code 和 Codex 在同一个群里干活 Claude 是要干掉整个软件行业吗? Claude 官方推荐多 Agents 设计模式 多 Agent 系统的 5 种协调模式:选错了模式,再强的 Agent 也白搭 AI 技术日报 - 2026-04-18 AI 技术日报 - 2026-04-17 Better-Harness:让AI Agent自己优化自己的革命性框架 OpenClaw Workspace 完全指南:我的AI编程工作流 DeepSeek内蒙草原高薪招聘:AI时代的数字牧民梦,还是营销噱头? 2 核 2G 的阿里云 ECS 能跑 OpenClaw 吗?能,但有点折腾 AI 技术日报 - 2026-04-16 OpenCLI:一个命令行搞定 16+ 内容平台的神器 从零到精通:OpenClaw CLI 命令完全指南 AI 技术日报 - 2026-04-15 AI Agent 如何自我进化?Hermes Agent Self-Evolution 深度解析 AI 技术日报 - 2026-04-14 为什么你的飞书 Bot 总是连不上?OpenClaw Gateway 架构深度解析 OpenClaw 连接飞书的原理:Gateway、Channel 与消息流转 国内安装 Hermes Agent 踩坑全记录:从 GitHub 超时到正常跑起来的每一步 35 万 Star 的 OpenClaw:5 分钟部署你的私人 AI 助手,直连飞书 AI 技术日报 - 2026-04-13 公司用 AI 筛简历,这个开源项目让候选人用 AI 反选公司 为什么 Google ADK 可能是你下一个 Agent 框架——7 个改变游戏规则的特性 Microsoft Agent Framework 深度解析:架构设计与实战落地 AI 技术日报 - 2026-04-11
fast-mirror-skill 技术拆解:一个小而完整的 Claude Skill 是怎么设计的
iTech · 2026-04-22 · via 博客园 - iTech

fast-mirror-skill 技术拆解:一个小而完整的 Claude Skill 是怎么设计的

上篇文章我讲了 fast-mirror-skill 解决什么问题——国内装包慢到想砸键盘。有读者问:这个 skill 本身是怎么设计的?SKILL.md 写了什么?为什么它能"自动触发"?

今天就来拆开看。不谈虚的,直接看代码、看结构、看决策逻辑。如果你也在琢磨怎么写一个 Claude Skill,这篇能帮你省掉踩坑的时间。

本文提纲

  1. 先看全貌:项目结构
  2. SKILL.md:一个 Skill 的灵魂
  3. 触发机制:怎么让 AI 知道"什么时候该用我"
  4. 镜像脚本:从配置到执行的完整链路
  5. evals:怎么验证 Skill 真的好使
  6. 几个关键设计决策
  7. 如果你想写自己的 Skill

先看全貌:项目结构

fast-mirror-skill 的 GitHub 仓库非常精简,一共就几个文件:

fast-mirror-skill/
├── SKILL.md              # Skill 定义文件(最核心)
├── README.md             # 项目说明
├── demo.jpg              # 演示截图
├── scripts/
│   └── mirror_config.sh  # 镜像配置脚本
└── evals/
    └── evals.json        # 评测用例

没有复杂的项目结构,没有 node_modules,没有构建流程。一个 Claude Skill 的核心就是 SKILL.md——它告诉 AI 这个 skill 做什么、什么时候该用、怎么执行。

这种极简设计不是偷懒,是有意为之。Claude Skill 的本质是一份结构化的指令文档,AI 读取它后就知道该怎么行动。你不需要写代码框架,你需要写的是一份精确、无歧义的操作手册。

SKILL.md:一个 Skill 的灵魂

SKILL.md 分三部分:frontmatter 元数据、触发条件、工作流程。

Frontmatter:注册信息

---
name: fast-mirror-skill
description: Automatically configure and switch to domestic mirror sources...
---

name 是 skill 的标识符,description 是给 AI 的"简历"——AI 会扫描所有已安装 skill 的 description 来决定当前任务要不要激活某个 skill。所以 description 写得好不好,直接决定你的 skill 能不能被正确触发。

fast-mirror-skill 的 description 写得很具体:列出了所有支持的包管理器名称(npm, pip, yarn, brew, apt, gem, cargo, go get, docker),还覆盖了"用户抱怨下载慢"、"用户想用国内镜像"这些自然语言场景。

触发条件:When to Use

SKILL.md 里有一个专门的 When to Use 章节:

## When to Use

Trigger this skill when:
- User runs or wants to run any package installation command
- User complains about slow download speeds or installation timeouts
- User explicitly mentions switching to Chinese/domestic mirror sources
- User wants to accelerate package installations
- User is setting up a new environment or installing project dependencies

这五条触发条件覆盖了三类场景:
1. 显式命令:用户直接运行 npm install 之类的命令
2. 隐式意图:用户说"太慢了"、"超时了",AI 应该联想到镜像加速
3. 环境搭建:用户在配置新环境时,大概率需要镜像加速

注意这里不是用正则匹配,而是用自然语言描述。因为 AI 的理解能力足够强,你只需要把意图讲清楚。

触发机制:怎么让 AI 知道"什么时候该用我"

很多人第一次写 Skill 的时候,会纠结一个问题:AI 是怎么决定用不用我的 skill 的?

答案是两阶段匹配

第一阶段:description 粗筛。 AI 拿到用户输入后,先扫描所有已安装 skill 的 description,找到可能相关的。这就是为什么 description 要包含关键词——不是给搜索引擎看的,是给 AI 的语义匹配看的。

第二阶段:When to Use 精筛。 AI 读取候选 skill 的 SKILL.md 全文,根据 When to Use 部分判断当前场景是否匹配。

所以写 Skill 的一个关键原则:description 覆盖广,When to Use 覆盖准。

fast-mirror-skill 在这一点上做得不错。它的 description 提到了所有包管理器名称,确保粗筛不会漏掉;When to Use 则精确描述了五类触发场景,避免误触发。

镜像脚本:从配置到执行的完整链路

SKILL.md 里的 Workflow 部分定义了四步操作:

Step 1: 检测包管理器 → Step 2: 生成配置脚本 → Step 3: 加载脚本 → Step 4: 执行安装

检测:怎么知道用户需要什么

检测逻辑很简单——分析用户的命令和环境:

- Look for explicit commands (npm install, pip install, brew install, etc.)
- Check for package.json, requirements.txt, Gemfile, go.mod, Cargo.toml
- Ask the user if needed

三层检测:直接从命令提取 → 从项目文件推断 → 实在判断不了就问用户。这种防御性的设计思路值得学习——先尝试自动推断,推断不了再问,而不是一上来就问。

脚本:结构化的配置方法

scripts/mirror_config.sh 是整个 skill 的执行核心。它不是一个巨大的 if-else,而是把每个包管理器的配置封装成独立函数:

configure_nodejs() { ... }   # npm, yarn, pnpm
configure_python() { ... }   # pip, pip3
configure_homebrew() { ... } # brew
configure_apt() { ... }      # apt
configure_gem() { ... }      # gem
configure_cargo() { ... }    # cargo
configure_go() { ... }       # go modules
configure_docker() { ... }   # docker registry

然后一个统一的入口函数:

configure_mirrors() {
    local package_managers=("$@")
    for pm in "${package_managers[@]}"; do
        case "$pm" in
            npm|yarn|pnpm|node|nodejs) configure_nodejs ;;
            pip|python) configure_python ;;
            brew|homebrew) configure_homebrew ;;
            # ... 其他包管理器
        esac
    done
}

这种设计有几个好处:

  1. 只配置需要的:用户装 pip 包就只切 pip 镜像,不会动 npm
  2. 安全检查:每个函数都先检查命令是否存在(command -v npm),不会在没装 npm 的机器上做无意义操作
  3. 别名支持npm|yarn|pnpm|node|nodejs 都映射到同一个函数,用户说"配置 node 镜像"也能正确处理
  4. 可逆:脚本最后提醒用户哪些是临时生效、哪些是永久生效

一个细节:Docker 为什么不自动配置

看 Docker 那段代码:

configure_docker() {
    if command -v docker &> /dev/null; then
        print_warning "Docker mirror configuration requires sudo..."
        print_warning "Please run the following commands manually:"
        # ... 打印手动命令
    fi
}

它没有像 npm/pip 那样直接执行配置,而是只打印提示。原因是 Docker 配置需要 sudo 权限和重启守护进程,自动执行可能影响正在运行的容器。这个判断体现了安全意识——能自动的就自动,有风险的就提示。

evals:怎么验证 Skill 真的好使

evals/evals.json 定义了三个评测用例:

{
  "id": 1,
  "prompt": "I need to install a new Node.js project but npm install is extremely slow...",
  "expected_output": "The skill should detect npm is being used, generate a mirror switch script..."
}

每个 eval 包含:
- prompt:模拟用户的真实输入
- expected_output:描述期望的行为
- files:需要提供的测试文件(这里为空)

这三个 eval 分别覆盖了 npm、pip、Homebrew 三个最常见的场景。eval 的价值不在于数量多,而在于场景的代表性——这三个场景能验证核心流程:检测 → 配置 → 执行。

如果你要给自己的 Skill 写 evals,建议覆盖至少三种场景:
1. 标准场景:最常见的使用方式
2. 模糊输入:用户没有明确说用什么工具,需要 AI 推断
3. 边界场景:比如系统没装目标工具、网络已经很快等

几个关键设计决策

1. 为什么是 Skill 而不是 CLI 工具

fast-mirror-skill 完全可以做成一个独立的命令行工具——fast-mirror npmfast-mirror pip 之类的。但它选择了 Claude Skill 的形式,原因在于:

  • 零安装成本:用户不需要额外安装任何东西,Skill 随 AI Agent 加载
  • 自然语言交互:用户说"npm 太慢了"就行,不需要记命令
  • 上下文感知:AI 知道用户在做什么项目,能主动判断是否需要配置镜像

2. 为什么镜像源选这些

包管理器 镜像源 选择理由
npm 淘宝 npmmirror 国内最大,同步延迟 < 10 分钟
pip 清华 TUNA 教育网出口,稳定性和速度兼顾
Homebrew 清华 TUNA 官方推荐的中国区镜像
cargo 中科大 USTC Rust 社区默认推荐的国内源
go goproxy.cn 七牛云维护,Go 官方代理列表收录
Docker 中科大 USTC 老牌镜像,可用性稳定

选择标准就两条:同步延迟低 + 长期维护有保障。没有选阿里云镜像不是因为不好,而是同类型选一个就够了,减少用户的选择焦虑。

3. 为什么 apt 不自动切换

configure_apt() 只打印了提示链接,没有自动修改 /etc/apt/sources.list。原因很简单——改 sources.list 风险太高:

  • 不同发行版(Ubuntu/Debian/Kali)路径和格式不同
  • 改坏了系统更新直接挂掉
  • 需要 sudo 权限

对于这种高风险操作,"告诉用户怎么做但让他自己来"是最负责任的方式。

如果你想写自己的 Skill

fast-mirror-skill 的结构其实就是一个 Claude Skill 的标准模板。你要写自己的 Skill,照着这个结构来:

  1. 创建 SKILL.md:frontmatter 写 name 和 description,正文写 When to Use 和 Workflow
  2. description 要具体:列出关键词、列出触发场景,不要写泛泛的"帮助用户加速"
  3. When to Use 要覆盖隐式意图:不只是"用户说 X",还要包括"用户遇到 Y 问题"这种间接场景
  4. 脚本要安全:先检查环境再操作,高风险操作只提示不自动执行
  5. 写几个 evals:不需要多,但要有代表性

完整的项目代码在这里:github.com/itech001/fast-mirror-skill


作者: itech001
来源: 公众号:AI人工智能时代
主页: https://www.theaiera.cn,每日分享最前沿的AI新闻和技术。

本文首发于 AI人工智能时代,转载请注明出处。