Claude Skills 和 Prompts、Projects、MCP、Subagents 的区别
Anthropic 官方专门写了一篇文章来解释。看完之后你会发现,这几个概念不仅不重复,反而各有分工,组合起来才能发挥完整的 AI 能力。
Anthropic 官方专门写了一篇文章来解释。看完之后你会发现,这几个概念不仅不重复,反而各有分工,组合起来才能发挥完整的 AI 能力。
本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 Agent Skills 的发展简史 Agent Skills 的出现,其实是 AI 能力组织方式自然演进的结果。 早期的大模型应用主要靠提示词工程,把任务规则、流程说明、输出格式全部写进 System Prompt。这种方式简单直接,但提示词越写越长,上下文窗口被大量占用,关键指令容易被淹没,而且很难在不同项目之间复用。 随后 Function Calling 和工具调用逐渐普及,模型开始能够调用搜索、代码执行、数据库查询等外部能力。但这更多解决的是"能不能调用工具"的问题,还没有很好地回答"应该按什么流程、遵循什么标准、产出什么格式"的问题。 2025 年 10 月,Anthropic 在 Claude Code 中首次推出 Agent Skills 能力,把可复用的任务流程封装成以 SKILL.md 为核心的文件夹结构。 同年 12 月 18 日,Anthropic 将 Agent Skills 规范作为开放标准发布,并开源官方技能库,随后 OpenAI Codex、GitHub Copilot、VS Code、Cursor 等产品陆续跟进支持。 到 2026 年,Agent Skills 已经从单一产品的功能扩展为跨平台的能力封装格式,公开可用的 Skills 数量逼近百万级,累计安装约 2.8 亿次。 从技术演进看,Agent Skills 标志着 AI 应用开发从"手搓提示词"走向"标准化技能工程"。它把专业知识、执行流程、脚本工具和验收标准打包在一起,让 Agent 不再只是会聊天,而是能稳定完成具体工作。 一个 Skill 长什么样 最简单的 Skill 只需要一个文件: my-skill/ └── SKILL.md 完整结构可以包含这些目录: my-skill/ ├── SKILL.md # 必需:元数据 + 指令 ├── scripts/ # 可选:可执行脚本 ├── references/ # 可选:参考文档 ├── assets/ # 可选:模板、资源 └── ... 核心文件 SKILL.md 的结构 SKILL.md 由两部分组成:YAML Frontmatter(元数据) 和 Markdown 正文(指令),用 --- 分隔。 ...
本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 简介 uv是一款开源的Python包安装工具,GitHub star高达56k,以性能极快著称,具有以下特性(官方英文原文): 🚀 A single tool to replace pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv, and more. ⚡️ 10-100x faster than pip. 🗂️ Provides comprehensive project management, with a universal lockfile. ❇️ Runs scripts, with support for inline dependency metadata. 🐍 Installs and manages Python versions. 🛠️ Runs and installs tools published as Python packages. 🔩 Includes a pip-compatible interface for a performance boost with a familiar CLI. 🏢 Supports Cargo-style workspaces for scalable projects. 💾 Disk-space efficient, with a global cache for dependency deduplication. ⏬ Installable without Rust or Python via curl or pip. 🖥️ Supports macOS, Linux, and Windows. 在Python MCP SDK的介绍中,也出现了We recommend using uv to manage your Python projects的字样,说明uv已经是一款实用性极强的工具。 ...
本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 if if语句是最常见的控制流: >>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: ... x = 0 ... print('Negative changed to zero') ... elif x == 0: ... print('Zero') ... elif x == 1: ... print('Single') ... else: ... print('More') ... More for for语句用来遍历: ## Create a sample collection users = {'Hans': 'active', 'Éléonore': 'inactive', '景太郎': 'active'} ## Strategy: Iterate over a copy for user, status in users.copy().items(): if status == 'inactive': del users[user] ## Strategy: Create a new collection active_users = {} for user, status in users.items(): if status == 'active': active_users[user] = status range range函数生成数字序列: ...
本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 开篇 个人而言,Python是写起来最顺手、看起来最喜欢的编程语言,也是实际工作中使用最多的编程语言。从Python入门,到完全使用Java,再回归Python,编程语言本质上是工具,与Excel、XMind无异。对于测试开发来说,要学习的东西很多,Python是可以作为基础技术深入学习的。第1次通过菜鸟教程学习Python,第2次阅读《流畅的Python》学习Python,第3次跟着官网学习Python。该系列文章参考的是Python3.13版本官方教程,期望学习者具有一定编程基础。 Python解释器 终端使用uv安装Python3.13: uv python install 3.13 查看安装位置: which python3.13 进入Python解释器: $ python3.13 Python 3.13 (default, April 4 2023, 09:25:04) [GCC 10.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> 计算器 平时我们基本不会这样来写Python,但是可以当做计算器来用: >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # division always returns a floating-point number 1.6 >>> 17 / 3 # classic division returns a float 5.666666666666667 >>> >>> 17 // 3 # floor division discards the fractional part 5 >>> 17 % 3 # the % operator returns the remainder of the division 2 >>> 5 * 3 + 2 # floored quotient * divisor + remainder 17 >>> 5 ** 2 # 5 squared 25 >>> 2 ** 7 # 2 to the power of 7 128 >>> width = 20 >>> height = 5 * 9 >>> width * height 900 >>> 4 * 3.75 - 1 14.0 >>> tax = 12.5 / 100 >>> price = 100.50 >>> price * tax 12.5625 >>> price + _ # In interactive mode, the last printed expression is assigned to the variable _ 113.0625 >>> round(_, 2) 113.06 Python也很适合用来学习算法,比如最简单的冒泡排序: ...
本文是Python进阶系列专题的最后一篇文章了,学习一下Python并发编程。懂得并发编程,就算是真正进阶了。
从概念上来说,我们都知道多进程和多线程,而协程其实是在单线程中实现多并发。从句法上看,协程与生成器类似,都是定义体中包含yield关键字的函数。区别在于协程的yield通常出现在表达式的右边:datum = yield。这一下就让初学者瞬间觉得yield关键字不香了,本来以为yield就是简简单单的暂停执行顺手返回个值,结果还能放右边?
with语句会设置一个临时的上下文,交给上下文管理器对象控制,并且负责清理上下文。
本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 Python生成器是什么 一句话解释:包含了yield关键字的函数就是生成器,它的返回值是一个生成器对象。我简单画了个示意图: yield相当于return。 函数遇到yield就暂停,保存当前信息,返回yield的值。 在下次执行next()时,从当前位置继续执行。 比较有意思的事情是,曾经有人建议生成器函数不应该使用def,而应该发明一个新的关键字比如gen,但是Python之父Guido并没有同意这样做。 生成器函数的工作原理 先通过一个简单示例来说明生成器的行为: ## 定义一个生成器 >>> def gen_123(): ... yield 1 ... yield 2 ... yield 3 ... ## 生成器本身是个函数 >>> gen_123 <function gen_123 at 0x0000019F60710790> ## 返回值是生成器对象 >>> gen_123() <generator object gen_123 at 0x0000019F606AC040> ## 生成器也是迭代器 >>> for i in gen_123(): ... print(i) ... 1 2 3 ## 验证生成器也是迭代器,定义迭代器g >>> g = gen_123() ## 可以通过next()获取yield生成的下一个元素 >>> next(g) 1 >>> next(g) 2 >>> next(g) 3 >>> next(g) Traceback (most recent call last): File "<input>", line 1, in <module> StopIteration 生成器的原理就是: 生成器函数会创建一个生成器对象。 把生成器传给next()函数时,生成器函数会执行函数定义体中的下一个yield语句,返回产出的值,并在当前位置暂停。 函数的定义体返回时,外层的生成器对象会抛出StopIteration异常 yield关键字一般是和for循环搭配使用的,在for循环中会隐式调用next()函数。 ...
什么是迭代?迭代是指按需一次获取一个数据。是否可以迭代,可以通过是否可以使用for循环取值来进行简单的判断。更准确的判断是使用iter()函数,这是一个Python内置函数。