1. 引言

你是否曾经幻想过,让 AI 像你的得力助手一样,不仅会聊天,还能自动执行你日常工作中那些繁琐、重复但又必不可少的流程?比如自动整理周报、批量处理客户邮件、或者按照特定格式生成项目文档?

传统的 AI 对话只能做到“一问一答”,它记不住你的业务逻辑,更不会主动执行多步骤操作。而 AI Skill 的出现,正是为了解决这个问题——它允许你将一个完整的工作流“教”给 AI,让 AI 能够按照你预设的步骤,自动完成一系列任务。

本文将手把手带你从零开始,编写一个属于自己的 AI Skill。无论你是开发者还是业务人员,都能轻松上手。

下面这张图直观地展示了 AI Skill 的核心架构——Prompt(大脑)、Tools(手脚)和流程逻辑如何协同工作:

📤 输出层

⚙️ AI Skill 核心

👤 用户层

用户输入指令

🧠 Prompt(大脑)
定义角色与行为准则

🛠️ Tools(手脚)
调用外部 API 与数据

🔗 流程逻辑
串联执行步骤

结构化输出
Markdown / JSON / 邮件

2. 什么是 AI Skill?

简单来说,AI Skill 是一套结构化的指令集,它定义了 AI 在特定场景下应该如何思考、如何行动、以及如何与外部工具交互。

你可以把它理解为一个“AI 的 SOP(标准作业程序)”。一个典型的 AI Skill 包含以下几个核心要素:

  • 触发条件:什么情况下启动这个 Skill(例如用户说“帮我写周报”)。
  • 上下文与记忆:Skill 需要知道哪些背景信息(例如你的团队名称、项目列表)。
  • 执行步骤:AI 需要按顺序完成哪些操作(例如:收集数据 → 分析数据 → 生成报告)。
  • 输出格式:最终结果应该以什么形式呈现(例如 Markdown 表格、JSON 数据、或直接发送到某个系统)。

下面这张流程图展示了 AI Skill 与传统 AI 对话的本质区别:

✅ AI Skill 工作流

用户触发 Skill

AI 按 Prompt 思考

需要调用工具?

执行 API 调用
获取实时数据

AI 分析结果

按模板输出
结构化结果

(可选)执行后续操作
如发送邮件

❌ 传统 AI 对话

用户提问

AI 单次回答

无记忆、无工具
无法执行多步骤

3. 准备工作:你需要什么?

在开始编写之前,请确保你具备以下条件:

  1. 一个支持 AI Skill 的平台:目前主流的 AI 应用平台(如 Coze、Dify、或企业自建的 AI Agent 平台)都支持创建自定义 Skill。本文将以一个通用的伪代码和 JSON Schema 为例,你可以轻松迁移到任何平台。
  2. 明确的工作流:想清楚你要自动化哪个流程。建议从一个不超过 5 个步骤的简单流程开始,例如“自动生成会议纪要”。
  3. (可选)API 密钥:如果你的 Skill 需要调用外部服务(如查询数据库、发送邮件),你需要准备好相应的 API 密钥。

下面是搭建 AI Skill 开发环境的完整架构图,帮助你快速理解各组件之间的关系:

🌐 外部服务

📦 核心组件

🖥️ 开发环境准备

AI Skill 平台
(Coze / Dify / 自建)

API 密钥管理
(OpenAI / 数据库 / 邮件)

工作流设计器
(可视化编排)

Prompt 模板
(Markdown 格式)

工具定义
(JSON Schema)

执行逻辑
(状态机 / 流程图)

数据库
(MySQL / PostgreSQL)

邮件服务
(SMTP / SendGrid)

文件存储
(S3 / 本地)

第三方 API
(Slack / 飞书)

4. 第一步:定义 Skill 的“大脑”——Prompt

AI Skill 的核心是一个精心设计的 System Prompt。这个 Prompt 就是 AI 的“大脑”,它告诉 AI 它的角色、目标、以及行为准则。

让我们以“自动生成周报”为例,编写一个基础的 System Prompt:

# 角色
你是一位专业的周报生成助手。

# 目标
根据用户提供的本周工作内容,生成一份结构清晰、重点突出的周报。

# 工作流程
1.  **收集信息**:首先,向用户询问本周完成了哪些主要任务、遇到了哪些问题、以及下周的计划。
2.  **结构化整理**:将收集到的信息按照“本周工作”、“存在问题”、“下周计划”三个板块进行整理。
3.  **格式化输出**:使用 Markdown 格式输出周报,并在每个任务前加上优先级标签(P0/P1/P2)。

# 约束
- 不要编造用户未提及的信息。
- 如果用户提供的信息不足,主动提问,不要猜测。
- 语言风格保持专业、简洁。

关键点:这个 Prompt 定义了 AI 的行为边界执行逻辑。它不再是泛泛的聊天,而是有明确目标的“工作模式”。

下面这张图展示了 System Prompt 在 AI Skill 中的核心地位——它如何控制 AI 的思考和行为:

📝 System Prompt

🎭 角色定义
你是一位专业的周报生成助手

🎯 目标设定
根据工作内容生成结构化周报

📋 工作流程
收集信息 → 整理 → 格式化输出

🚫 约束条件
不编造信息、主动提问

AI 行为边界

AI 输出方向

AI 执行顺序

AI 安全护栏

✅ 最终输出
符合预期的结构化结果

5. 第二步:让 Skill 拥有“手脚”——工具调用

仅仅有 Prompt 还不够,AI 还需要“手脚”去执行实际操作。这就是 工具(Tools) 的作用。

工具可以是任何 API 接口,例如:

  • 查询数据库SELECT * FROM tasks WHERE user_id = ?
  • 发送邮件POST /api/send_email
  • 读取文件GET /api/file/read
  • 调用其他 AI 模型:例如调用一个图片生成模型。

在定义 Skill 时,你需要为每个工具提供一个 JSON Schema 描述,让 AI 知道这个工具是干什么的、需要什么参数。

{
  "name": "query_task_list",
  "description": "从项目管理系统中查询用户本周的任务列表",
  "parameters": {
    "type": "object",
    "properties": {
      "user_id": {
        "type": "string",
        "description": "用户的唯一标识"
      },
      "week_start": {
        "type": "string",
        "description": "本周开始日期,格式为 YYYY-MM-DD"
      }
    },
    "required": ["user_id", "week_start"]
  }
}

当 AI 认为需要查询任务时,它会自动生成一个符合此 Schema 的 JSON 请求,平台会负责执行这个请求并将结果返回给 AI。

下面这张图展示了工具调用在 AI Skill 中的完整工作流程——从 AI 决策到工具执行再到结果返回:

🌐 外部 API 🛠️ 工具执行器 🤖 AI 模型 👤 用户 🌐 外部 API 🛠️ 工具执行器 🤖 AI 模型 👤 用户 JSON Schema 确保参数格式正确 平台负责执行 HTTP 请求 帮我写周报 分析用户意图 调用 query_task_list\n参数: {user_id, week_start} GET /api/tasks 返回任务列表 JSON 任务数据 结合用户输入 + 工具数据\n生成周报内容 输出 Markdown 周报

6. 第三步:串联流程——编写 Skill 的逻辑

现在,我们把 Prompt 和 Tools 组合起来,形成一个完整的执行逻辑。这通常通过一个状态机流程图来实现。

一个简单的周报 Skill 流程图如下:

用户输入:帮我写周报

AI 询问本周工作内容

用户提供工作要点

AI 调用 query_task_list 工具

工具返回任务列表

AI 结合用户输入和工具数据,生成周报

输出 Markdown 周报

在代码层面,你可以用类似以下的结构来定义这个流程(伪代码):

# 伪代码示例
class WeeklyReportSkill:
    def __init__(self):
        self.prompt = load_prompt("weekly_report.md")
        self.tools = [QueryTaskListTool(), SendEmailTool()]

    def run(self, user_input):
        # 1. 初始化 AI 上下文
        context = {"role": "system", "content": self.prompt}
        context.append({"role": "user", "content": user_input})

        # 2. 循环执行,直到 AI 输出最终结果
        while True:
            response = ai_chat(context, tools=self.tools)
            if response.has_tool_call():
                # 3. 执行工具调用
                tool_result = execute_tool(response.tool_call)
                context.append({"role": "tool", "content": tool_result})
            else:
                # 4. 输出最终结果
                return response.content

7. 实战:编写一个“会议纪要生成器” Skill

让我们通过一个更具体的例子来巩固知识。假设我们要创建一个“会议纪要生成器” Skill。

目标:用户提供会议录音的文字稿,AI 自动生成结构化的会议纪要。

步骤 1:定义 Prompt

# 角色
你是一位高效的会议记录员。

# 目标
将用户提供的会议录音文字稿,整理成一份包含“会议主题”、“参会人”、“讨论要点”、“待办事项”的会议纪要。

# 工作流程
1.  **提取主题**:从文字稿开头或高频词汇中,推断会议主题。
2.  **识别参会人**:从对话中提取发言人的名字。
3.  **总结讨论要点**:将对话内容归纳为 3-5 个核心要点,每个要点用一句话概括。
4.  **列出待办事项**:识别所有包含“需要做”、“负责”、“跟进”等关键词的句子,整理成待办列表,并明确负责人。
5.  **格式化输出**:使用以下 Markdown 模板输出:

## 会议纪要

**会议主题**:{主题}
**日期**:{日期}
**参会人**:{人名列表}

### 讨论要点
1.  {要点一}
2.  {要点二}

### 待办事项
| 事项 | 负责人 | 截止日期 |
|------|--------|----------|
| {事项} | {人名} | {日期} |

步骤 2:定义工具(可选)

如果这个 Skill 需要自动发送邮件,我们可以定义一个 send_email 工具。

步骤 3:测试与迭代

将一段真实的会议录音文字稿输入给这个 Skill,检查输出结果。你会发现,AI 能够很好地理解上下文,并按照你设定的模板输出。如果结果不理想,只需调整 Prompt 中的描述即可。

8. 进阶技巧:让 Skill 更“聪明”

  • 使用 Few-shot 示例:在 Prompt 中给 AI 提供 1-2 个输入输出的示例,能显著提升其表现。
  • 引入记忆机制:让 Skill 记住上一次对话的上下文,实现多轮交互。例如,周报 Skill 可以记住你上周的周报内容。
  • 错误处理:在 Prompt 中明确告诉 AI,当工具调用失败或信息不足时应该怎么做(例如:“如果查询不到数据,请告知用户并询问是否重试”)。
  • 权限控制:为不同的 Skill 设置不同的访问权限,确保数据安全。

9. 总结

通过本文,你已经学会了如何从零开始构建一个 AI Skill。核心思想就是:用 Prompt 定义 AI 的“大脑”,用 Tools 赋予 AI “手脚”,再用流程逻辑将它们串联起来

现在,你可以尝试分析一下自己日常工作中最耗时、最重复的那个流程,然后动手把它变成一个 AI Skill。当 AI 真正学会你的工作流时,你会发现,效率的提升是指数级的。

下一步,你可以尝试将你的 Skill 发布到团队或社区,让更多人受益。祝你在 AI 自动化的道路上越走越远!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐