人类学技能如何改变 Agents 工具--以及如何为 Milvus 构建自定义技能以快速启动 RAG
工具的使用是 Agents 工作的重要组成部分。Agents 需要选择正确的工具,决定何时调用它,并正确格式化输入。这在纸面上听起来简单明了,但一旦开始构建实际系统,就会发现很多边缘情况和故障模式。
许多团队使用 MCP 风格的工具定义来组织这些工作,但 MCP 有一些粗糙的边缘。该模型必须同时对所有工具进行推理,而且没有太多的结构来指导其决策。此外,每个工具定义都必须放在上下文窗口中。其中有些工具非常庞大--GitHub 的 MCP 约有 26k 标记--这在代理开始实际工作之前就已经占用了上下文。
Anthropic 引入了技能来改善这种情况。技能更小、更集中、更容易按需加载。你可以将领域逻辑、工作流或脚本打包成紧凑的单元,让 Agents 只在需要时才调入,而不是将所有内容都倒入上下文。
在这篇文章中,我将介绍人类技能的工作原理,然后在克劳德代码中构建一个简单的技能,将自然语言转化为由 Milvus 支持的知识库--无需额外布线即可快速设置 RAG。
什么是人类技能?
人类技能(或称 Agents 技能)就是将指令、脚本和参考文件捆绑在一起的文件夹,Agents 需要这些文件来处理特定任务。将它们视为小型、自足的能力包。一项技能可以定义如何生成报告、运行分析或遵循特定的工作流程或规则集。
关键在于技能是模块化的,可以按需加载。Agents 不需要在上下文窗口中塞入大量的工具定义,而只需调入所需的技能。这样既能降低上下文的使用率,又能为模型提供明确的指导,使其了解存在哪些工具、何时调用以及如何执行每个步骤。
这种格式非常简单,因此已经得到了许多开发者工具的支持,或者很容易在它们之间进行调整--如 Claude Code、Cursor、VS Code 扩展、GitHub 集成、Codex 风格的设置等等。
一个技能遵循一致的文件夹结构:
skill-name/
├── SKILL.md # Required: Skill instructions and metadata
├── scripts/ # Optional: helper scripts
├── templates/ # Optional: document templates
└── resources/ # Optional: reference materials
1. SKILL.md (核心文件)
这是 Agents 的执行指南--告诉代理应该如何准确执行任务的文件。它定义了技能的元数据(如名称、描述和触发关键字)、执行流程和默认设置。在此文件中,您应清楚地描述
技能应在何时运行:例如,当用户输入包含 "用 Python 处理 CSV 文件 "这样的短语时触发技能。
任务应如何执行:按顺序列出执行步骤,例如:解释用户请求 → 调用
scripts/目录中的预处理脚本 → 生成所需的代码 → 使用templates/中的模板格式化输出。规则和约束:指定编码约定、输出格式和错误处理方式等细节。
2. scripts/ (执行脚本)
该目录包含 Python、Shell 或 Node.js 等语言预编写的脚本。Agents 可以直接调用这些脚本,而不是在运行时重复生成相同的代码。典型的例子包括create_collection.py 和check_env.py 。
3. templates/ (文档模板)
可重复使用的模板文件,代理可利用它们生成定制内容。常见的例子包括报告模板或配置模板。
4. resources/ (参考资料)
Agents 在执行过程中可以查阅的参考文档,如 API 文档、技术规范或最佳实践指南。
总体而言,这种结构反映了向新队友移交工作的方式:SKILL.md 解释工作,scripts/ 提供即用工具,templates/ 定义标准格式,resources/ 提供背景信息。有了所有这些,Agent 就能可靠地执行任务,并将猜测减少到最低限度。
实践教程:为 Milvus 驱动的 RAG 系统创建自定义技能
在本节中,我们将介绍如何创建一个自定义 Skill,它可以设置一个 Milvus Collections,并通过简单的自然语言指令组装一个完整的 RAG 管道。我们的目标是跳过所有常规的设置工作--无需手动设计 Schema、无需索引配置、无需模板代码。你只需告诉 Agents 你想要什么,Agents 就会为你处理 Milvus 的所有工作。
设计概述
先决条件
| 组件 | 要求 |
|---|---|
| CLI | claude-code |
| 模型 | GLM 4.7、OpenAI |
| 容器 | Docker |
| Milvus | 2.6.8 |
| 模型配置平台 | CC-Switch |
| 软件包管理器 | npm |
| 开发语言 | Python |
步骤 1:环境设置
安装 claude-code
npm install -g @anthropic-ai/claude-code
安装 CC-Switch
注:CC-Switch 是一个模型切换工具,可在本地运行人工智能模型时轻松切换不同的模型 API。
项目库:https://github.com/farion1231/cc-switch
选择 Claude 并添加 API 密钥
查看当前状态
部署并启动 Milvus-Standalone
# Download docker-compose.yml
wget https://github.com/milvus-io/milvus/releases/download/v2.6.8/milvus-standalone-docker-compose.yml -O docker-compose.yml
# Start Milvus (check port mapping: 19530:19530)
docker-compose up -d
# Verify that the services are running
docker ps | grep milvus
# You should see three containers: milvus-standalone, milvus-etcd, milvus-minio
配置 OpenAI API 密钥
# Add this to ~/.bashrc or ~/.zshrc
OPENAI_API_KEY=your_openai_api_key_here
第 2 步:为 Milvus 创建自定义技能
创建目录结构
cd ~/.claude/skills/
mkdir -p milvus-skills/example milvus-skills/scripts
初始化 SKILL.md
注:SKILL.md 可作为 Agents 的执行指南。它定义了技能的作用和触发方式。
name: milvus-collection-builder
description: Create Milvus collections using natural language, supporting both RAG and text search scenarios
编写核心脚本
| 脚本类型 | 文件名 | 目的 |
|---|---|---|
| 环境检查 | check_env.py | 检查 Python 版本、所需依赖和 Milvus 连接。 |
| 意图解析 | intent_parser.py | 将 "建立 RAG 数据库 "之类的请求转换为结构化的意图,例如scene=rag |
| 创建 Collections | milvus_builder.py | 生成 Collections Schema 和索引配置的核心生成器 |
| 数据摄取 | insert_milvus_data.py | 加载文档、分块、生成嵌入并将数据写入 Milvus |
| 示例 1 | basic_text_search.py | 演示如何创建文档搜索系统 |
| 示例 2 | rag_knowledge_base.py | 演示如何建立一个完整的 RAG 知识库 |
这些脚本展示了如何将以 Milvus 为重点的技能转化为实用的东西:一个可运行的文档搜索系统和一个智能问答(RAG)设置。
步骤 3:启用技能并运行测试
用自然语言描述请求
"I want to build an RAG system."
创建 RAG 系统
插入样本数据
运行查询
总结
在本教程中,我们使用自定义技能构建了一个由 Milvus 驱动的 RAG 系统。我们的目的不仅仅是展示调用 Milvus 的另一种方法,而是要展示技能如何将通常需要多步骤、重配置的设置变成可以重复使用和迭代的东西。无需手动定义 Schema、调整索引或拼接工作流代码,技能就能处理大部分模板,让你专注于 RAG 中真正重要的部分。
这仅仅是个开始。一个完整的 RAG 流水线有很多活动部件:预处理、分块、混合搜索设置、Rerankers、评估等等。所有这些都可以打包成独立的 Skills,并根据您的使用情况进行组合。如果你的团队对向量维度、索引参数、提示模板或检索逻辑有内部标准,那么技能就是对这些知识进行编码并使其可重复的简洁方法。
对于新开发人员来说,这降低了入门门槛--不需要在开始运行之前学习 Milvus 的每一个细节。对于有经验的团队来说,这可以减少重复设置,并有助于保持项目在不同环境下的一致性。技能不能取代深思熟虑的系统设计,但它们能消除许多不必要的摩擦。
完整的实现可在开源软件库中找到,您还可以在技能市场中探索更多社区构建的示例。
敬请期待!
我们还在努力推出涵盖常见 RAG 模式和生产最佳实践的 Milvus 和 Zilliz Cloud 官方技能。如果您有希望得到支持的想法或特定工作流程,请加入我们的Slack 频道,与我们的工程师交流。如果您希望得到自己设置的指导,可以随时预约Milvus Office Hours会议。
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word



