Agent Skills:把团队里“只会做一遍“的经验,变成 Agent 能反复调用的能力包
刷 GitHub 热榜前十五名里有一串名字让我停了一下openclaw 排第 3ECC 第 8hermes-agent 第 9mattpocock/skills 第 12opencode 第 13。它们干的事各不相同描述里却反复出现同一个词skills。ECC 自己的简介写得最直白说它是 Skills, instincts, memory, security... for Claude Code, Codex, Opencode, Cursor。这不是巧合。2026 年的 Agent 圈正从造一堆专用机器人转向给一个通用机器人外挂能力包。这个能力包就是 Anthropic 在 2025 年底推出来的 Agent Skills。我打算把它讲透它解决什么真问题底层怎么省上下文和 Prompt、MCP 到底差在哪以及一个写 Java 后端的人该怎么把它接进自己的系统。一、Agent Skills 到底是什么Agent Skills 是 Anthropic 提出的一套开放标准。据阿里技术 2026 年 4 月的复盘Claude Skills 最早在 2025 年 10 月 16 日随 Claude 3.7 作为产品内能力推出到 2025 年 12 月 18 日Anthropic 把它开源成跨平台标准规范叫 Agent Skills Specification V1.0托管在 agentskills.io同时放出官方 SDK支持 Python、TypeScript 和 Java。TechCrunch 当时给了一句评价说它是AI 领域的 Dockerfile。到 2026 年 2 月公开可用的 Skills 已经超过 8.5 万个支持该标准的主流平台到了 27 家Cursor 是第一个全面采用它的 AI IDE微软 Azure AI Studio 宣布原生支持GitHub Copilot Workspace 做了实验性支持。理解它最关键的一句话MCP 解决能调什么工具Skills 解决怎么把一件事做对。前者是连接层后者是知识层两者互补。一个 Skill 其实就是由文件组成的最小形态只需要一个 SKILL.md里面分两块开头的 YAML frontmatter必须含 name 和 description和下面的 Markdown 指令。复杂一点的会带上 scripts/可执行的 Python、Bash、JS、references/按需查阅的文档、assets/模板、图标等静态资源。name 最多 64 个字符只能是小写字母、数字和连字符description 最多 1024 字符要写清楚这东西干嘛用、什么时候用。为什么需要它Anthropic 打过一个比方报税这种事你愿意交给一个从第一性原理现推的 300 IQ 数学天才还是一个填过几千份税表的老手大多数人选老手不是因为他更聪明而是他有 accumulated expertise。通用模型今天就像那个数学天才推理能力强但缺你公司那套没人写下来的流程。Skills 干的事就是把老手的经验打包让通用模型变成某个领域的专家。二、渐进式披露为什么塞再多资料也不爆上下文为什么一个文件夹能装很多东西却不把上下文撑爆靠的是渐进式披露progressive disclosure分三级加载。第一级是元数据。Agent 一启动就把所有已安装 Skill 的 name 和 description 预载进系统提示。这部分很轻每个 Skill 只占几十到一百来个 token所以你装几百个 Skill 也不会有感知。第二级是 SKILL.md 正文。只有当模型判断当前任务跟某个 Skill 的 description 匹配时才通过 bash 把整个 SKILL.md 读进上下文。官方建议正文控制在几千 token 以内文档给的上限是不超过 5k token。第三级是 references/ 和 scripts/ 里的东西。这些文件平时躺在文件系统上一个 token 都不占模型觉得需要了才去读某一个或者去跑某一个脚本。脚本这一点很妙当模型执行 scripts/ 里的 Python 时脚本代码本身永远不会进上下文只有运行输出比如校验通过或具体的报错回来。这比让模型现场现编等效代码省 token而且结果是确定性的。三级加载画出来就是下面这条链三、Skills 和 Prompt、MCP 不是一回事很多人第一次见 Skill 会以为不就是高级提示词吗不是。三者分工不同我用一张表摆清楚维度PromptMCPSkills定位模型的一次性指令工具调用的通信协议任务执行的标准能力包作用告诉模型做什么、怎么做的文本定义模型如何安全发现并调用外部工具封装一个完整、可复用、可版本化的任务方案粒度单次对话上下文内的指令工具接口的标准化描述类似给 AI 的 OpenAPI跨会话、跨应用的独立功能单元类似 Docker 镜像可复用性低靠人工复制粘贴中工具可被多个 Prompt 调用高任意支持该标准的 Agent 直接加载更准确地说Skills 不是 Prompt 的替代品而是 Prompt 的容器一个 Skill 里必然包含精心设计的 Prompt外加脚本、依赖声明和测试用例Skills 也不是 MCP 的替代品而是 MCP 的消费者Skill 里的执行脚本会通过 MCP 去碰真实世界的工具。三者协同时是这样一条链Prompt 告诉模型这次要干嘛模型匹配到合适的 SkillSkill 加载后通过内部指令调 MCP 拿工具闭环完成。Anthropic 自己的厨房比喻很贴切MCP 是专业厨房食材、灶具、设备Skills 是菜谱一步步怎么做。没有菜谱用户连上 MCP 也不知道下一步该干什么。四、一个能跑的例子把周报生成固化成 Skill光讲结构太空给一个能落地的例子。假设团队每周要从 git 提交记录生成双周报这个流程完全可以固化成一个 Skill目录长这样weekly_git_report/ ├── SKILL.md ├── scripts/ │ └── fetch_git_commits.py └── references/ └── weekly_report_template.mdSKILL.md 的写法注意 description 要带什么时候用的关键词这是模型自动匹配的依据--- name: weekly_git_report description: 基于近 14 天 git commit 记录生成结构化双周工作周报。当用户要写周报、总结近期工作、或提到 commit/提交记录时使用。 version: 0.1.0 --- # 概述 读取用户所有本地仓库近两周的 commit message按模块归类套用模板生成周报。 # 数据获取 运行 scripts/fetch_git_commits.py 拿到提交列表周报模板见 references/weekly_report_template.md。 # 异常处理 如果一条提交都拿不到直接写明本期无实质提交。scripts/fetch_git_commits.py 是一段确定性代码它负责把脏活干了模型只消费它的输出#!/usr/bin/env python3 import os import subprocess from datetime import datetime, timedelta ROOT os.path.expanduser(~/code) # 所有仓库的父目录 def collect(): since (datetime.now() - timedelta(days14)).strftime(%Y-%m-%d) rows [] for name in os.listdir(ROOT): repo os.path.join(ROOT, name) if not os.path.isdir(os.path.join(repo, .git)): continue try: out subprocess.check_output( [git, -C, repo, log, f--since{since}, --prettyformat:%s], stderrsubprocess.DEVNULL, textTrue, ) rows.extend(out.splitlines()) except subprocess.CalledProcessError: continue return rows if __name__ __main__: commits collect() print(f近 14 天共 {len(commits)} 条提交) for c in commits[:50]: print(f- {c})这个例子的价值不在代码多高明而在它把怎么写周报这件事从某个人脑子里的习惯变成了团队任何人、任何 agent 都能调起的标准能力。新人来了不用口口相传加载这个 Skill 就会了。五、生态版图谁在吃这套标准今天热榜上的 ECC 明说支持 Claude Code、Codex、OpenCode、Cursor 四种后端而它自己就是用 SKILL.md 组织能力的。这意味着你写一份技能描述可以在这几个 agent 之间复用。底下接的模型从 Claude大家口头说的 cc5 那条线、OpenAI 的 Codex 5.6到自托管的 Kimi K3、智谱 GLM-5.2 都能挂前提是那个 harness 支持按 description 自动加载 SKILL.md。前面几篇写过用 vLLM 自托管 Kimi K3 和 GLM-5.2那种部署形态接进开源 harness 跑同一套技能目录2026 年已经能做。顺带一提OpenClaw 自己的 SKILL.md 技能系统其实比 Anthropic 正式标准化还早几个月是这套模式在实践里先被验证过才有后来的开放标准。第三方市场SkillsMP、AgentPowers.ai、Lobehub也已经能下载别人写好的 Skill。六、安全Skill 不是提示词是会被执行的代码Skill 看起来像文档但它会被执行。Anthropic 自己在文档里写得很重把 Skill 当作软件来装只从可信来源取。要审查的不只是 SKILL.md还有 scripts/ 和 assets/ 里所有的文件重点找异常的网络调用、文件访问模式、和声明目的对不上的操作。从外部 URL 拉数据的 Skill 风险尤其高因为拉回来的内容可能夹带恶意指令即便是可信的 Skill如果它的外部依赖后来被改也可能被攻破。工具滥用和数据外泄是两个最实在的后果一个能碰敏感目录的 Skill可能被设计成把数据往外发。这跟我之前写过的提示注入是一体两面一个是骗模型说错话一个是借技能干坏事根子都在模型不区分指令和数据。生产里接 Skill至少要做到只装团队自己写或从官方市场下的上线前人工过一遍 scripts/给脚本执行单独划沙箱目录和命令白名单。七、Java 后端怎么落地自己写一个 Skill 调度器作为后端我更关心怎么把这套机制接进来。Spring AI 2.02026-06 GA配 Spring Boot 4.xJava 21的 ChatClient 已经能把系统指令 用户任务这套玩法封装得很干净。下面这个例子不依赖任何未公开 API思路是扫描技能目录、解析 frontmatter、按任务关键词匹配、把 SKILL.md 正文当 system 提示注入再调模型。模型可以走 OpenAI 兼容端点接 Kimi K3 / GLM-5.2也可以走 Anthropic 绑定接 Claudecc5 线具体 baseUrl 和模型名以官方文档为准。先是实体和加载器public record Skill(String name, String description, String body) {} public final class SkillLoader { public static ListSkill loadAll(Path root) { ListSkill out new ArrayList(); if (!Files.isDirectory(root)) return out; try (var dirs Files.list(root)) { for (Path dir : dirs.filter(Files::isDirectory).toList()) { Path md dir.resolve(SKILL.md); if (Files.exists(md)) out.add(parse(md)); } } catch (IOException e) { throw new IllegalStateException(load skills failed, e); } return out; } // 简化版 frontmatter 解析取 --- 之间的 name / description 与正文 private static Skill parse(Path md) throws IOException { String text Files.readString(md); int start text.indexOf(---) 3; int end text.indexOf(---, start); String fm text.substring(start, end); String name grab(fm, name); String desc grab(fm, description); String body text.substring(end 3).trim(); return new Skill(name, desc, body); } private static String grab(String fm, String key) { for (String line : fm.split(\n)) { if (line.trim().startsWith(key :)) { return line.substring(line.indexOf(:) 1).trim(); } } return ; } }再是调度器用 Spring AI 2.0 的 ChatClient 调模型public class SkillDispatcher { private final ChatClient chatClient; private final ListSkill skills; public SkillDispatcher(ChatClient chatClient, Path skillsRoot) { this.chatClient chatClient; this.skills SkillLoader.loadAll(skillsRoot); } public String run(String task) { Skill skill match(task); // 先按 description 关键词命中 String system (skill null) ? 你是一个严谨的助手。 : skill.body(); return chatClient.prompt() .system(system) .user(task) .call() .content(); } private Skill match(String task) { return skills.stream() .filter(s - s.description().toLowerCase().contains(task.toLowerCase()) || task.toLowerCase().contains(s.name().toLowerCase())) .findFirst() .orElse(null); } }要点就两个技能目录用 git 管版本和代码一起走评审匹配逻辑别搞太复杂先按 description 做关键词命中命中多了再上向量检索。真要上线把脚本执行单独扔进 sandbox 目录命令白名单之外的一律不让跑。八、我踩过的坑以及对 Skills 的判断我们团队踩过的坑列几个给后来人。第一个是 Skill 爆炸。一开始什么都想写成 Skill结果元数据列表本身就变成噪声模型反而匹配不准。我的做法是先问一句这件事是不是会被反复做、且步骤固定不是就别上 Skill写进 CLAUDE.md 当事实就好。第二个是 SKILL.md 写成文档而不是操作步骤。模型需要的是第一步干啥、第二步干啥不是背景科普。你给一篇洋洋洒洒的原理它读完照样不会执行。第三个是脚本白名单。Skill 里的脚本有 bash 权限如果不限死能跑什么agent 就可能越权。我们给脚本执行单独划了沙箱目录和命令白名单。第四个也是最容易被忽略的别在 Skill 里塞外部依赖又不锁版本。一个靠某个 SaaS API 的 Skill对方接口一变你就跟着挂。能本地确定性解决的尽量用 scripts/ 里的代码解决少引外部不确定性。我的判断Skills 把AI 工作流从一道精心设计的填空题变成了可版本、可分享、可组合的能力资产。小团队别急着造市场先把两三个高频流程跑测试套件、发版、生成周报固化成 Skill收益就很明显。新人 onboarding 和 CI 一致性都会好一截。Anthropic 的工程博客也建议从先评估做起拿真实任务跑一遍 agent看它在哪一步掉链子再把掉链子的环节写成 Skill比凭空设计一个 Skill 靠谱得多。九、版本、组合与可移植三个工程属性让 Skill 比把提示词存进备忘录强出一个量级。可移植。Anthropic 的文档明确说同一份 Skill 在 Claude.ai、Claude Code 和 API 上行为一致只要运行环境支持它的依赖。这意味着你为 Claude Code 写的 Skill理论上不用改就能在别的兼容 harness 上跑。可组合。Agent 能同时加载多个 Skill它们应该相互配合而不是假设自己是场上的唯一能力。比如发版Skill 可以顺手引用跑测试Skill 产出的结果而不是各写各的。写 Skill 时要留好这个心眼别把前提假设写死。可版本。Skill 就是个文件夹天然能用 git 管理改了能回滚、能 review、能团队共享。我们把它和源码放在同一个仓库的子目录里PR 里一起审谁改了怎么发版一目了然。这点是把经验真正变成资产的关键否则它又会退回成某个人脑子里的习惯。给团队一个提醒Skill 不是越多越好。元数据列表本身会变成上下文噪声定期清理没人用的 Skill和清理没人维护的代码一样重要。十、收个尾Agent Skills 不性感没有新模型、没有新算法就是用文件夹把领域经验打包。但 2026 年 agent 生态集体往这上面靠说明行业想通了一件事通用模型不缺智商缺的是你公司那点没人写下来的 know-how。明天我打算把团队内部的代码评审 checklist 也拆成一个 Skill顺手接进 opencode 跑。

相关新闻

【AI自动化测试实战指南】:20年测试架构师亲授5大落地陷阱与避坑清单

【AI自动化测试实战指南】:20年测试架构师亲授5大落地陷阱与避坑清单

更多请点击: https://intelliparadigm.com 第一章:AI自动化测试的认知革命与价值重估 传统自动化测试长期受限于脚本维护成本高、用例覆盖僵化、环境适配滞后等瓶颈。AI的深度融入正推动测试范式从“规则驱动”跃迁至“认知驱动”——模型可理解UI语义、…

2026/7/31 20:20:31阅读更多 →
Koop常见问题解答:解决地理空间数据服务开发中的痛点

Koop常见问题解答:解决地理空间数据服务开发中的痛点

Koop常见问题解答:解决地理空间数据服务开发中的痛点 【免费下载链接】koop Transform, query, and download geospatial data on the web. 项目地址: https://gitcode.com/gh_mirrors/ko/koop Koop是一个强大的JavaScript工具包,用于在Web上转换…

2026/7/31 20:20:31阅读更多 →
skill 使用次数统计

skill 使用次数统计

OpenClaw 对 skill 使用次数 的统计,核心逻辑可以简单概括为:不是靠模型自述统计 模型说“我要使用某个 skill”本身不一定会计数。OpenClaw 统计的是运行时可识别到的实际 skill 使用行为。主要识别两类使用行为 Agent 通过 read 工具读取了某个 skill …

2026/7/31 20:20:31阅读更多 →
爱奇艺广告文字识别正常------可以继续

爱奇艺广告文字识别正常------可以继续

17:58:15.584 D 当前亮度1 17:58:18.494 D text:51|关闭此广告> 17:58:18.512 D 当前亮度1 17:58:21.069 D text:49|关闭此广告> 17:58:21.094 D 当前亮度1 17:58:24.557 D text:46|关闭此广告> 17:58:24.574 D 当前亮度1 17:58:27.501 D text:43关闭…

2026/7/31 21:29:14阅读更多 →
OSS/BSS系统安全防护实战:数据库透明加密与计费系统数据脱敏落地

OSS/BSS系统安全防护实战:数据库透明加密与计费系统数据脱敏落地

2025年,某运营商省公司的OSS系统在安全扫描中发现:计费数据库中存储了超过200万用户的通话详单、充值记录和账户余额明文数据,且该数据库的备份文件在一次运维操作中被误上传到了开发测试环境的公共存储桶中——直到3周后安全团队做例行扫描才…

2026/7/31 21:29:14阅读更多 →
我早就说过-----------不要搬运大公司的东西---上海王某侵犯《繁花》等四千余部影视著作权获刑

我早就说过-----------不要搬运大公司的东西---上海王某侵犯《繁花》等四千余部影视著作权获刑

上海王某侵犯《繁花》等四千余部影视著作权获刑一、案件概况(上海三中院 2026-07-28 终审裁定)澎湃新闻自2022 年起,王某伙同境外人员运营境外盗版视频网站及 App,未取得任何著作权人许可,传播国内影视剧、赛事等视听作…

2026/7/31 21:29:14阅读更多 →
终极指南:3个简单技巧让Android投屏性能提升300%

终极指南:3个简单技巧让Android投屏性能提升300%

终极指南:3个简单技巧让Android投屏性能提升300% 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 还在为Android设备投屏卡顿、延迟高而烦恼吗?scrcpy作为一款强大的…

2026/7/31 21:29:13阅读更多 →
适合非商科背景EMBA推荐,民营创始人择校指南

适合非商科背景EMBA推荐,民营创始人择校指南

一、开篇导语很多民营企业家、企业创始人深耕技术、生产、销售、互联网等领域,无系统商科学习经历,企业发展到规模化、出海转型、数字化升级阶段后,普遍面临战略模糊、财务风控薄弱、组织管理低效、国际运营经验不足等问题。选择适配的EMBA&a…

2026/7/31 21:29:13阅读更多 →
一个完整预测项目的落地之道:从数据到价值的实战拆解

一个完整预测项目的落地之道:从数据到价值的实战拆解

这是我们这个系列的最后一讲。前面七篇,我们从思想基石聊到具体算法,从经典统计聊到深度学习,从模型评估聊到不确定性。在收官的这一篇里,我想跳出算法细节,站在项目全景的视角,完整拆解一个预测项目从零到…

2026/7/31 21:27:13阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/31 20:44:05阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/31 17:41:43阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/31 20:44:05阅读更多 →
物理复制比逻辑复制好在哪?数据库复制原理详解

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…

2026/7/31 0:00:40阅读更多 →
BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:00:41阅读更多 →
有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…

2026/7/31 0:00:41阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/31 0:49:33阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/31 5:08:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/31 16:02:17阅读更多 →