乐于分享
好东西不私藏

从Ollama + Excel例子出发,彻底讲清楚什么是Skill(附代码)

从Ollama + Excel例子出发,彻底讲清楚什么是Skill(附代码)

🤖 一、AI时代真正重要的不是模型,而是Skill

如果你最近接触 AI Agent、Dify、Coze 或 MCP,你可能会反复看到一个词:

👉 Skill(技能)

但大多数人看完还是一头雾水:

  • Skill到底是什么?

  • 是代码吗?

  • 是工具吗?

  • 和Agent有什么关系?

今天我们用一个最简单的例子:本地 Ollama + Python 读取 Excel,彻底讲清楚这个概念。


📊 二、一个最真实的需求场景

假设你现在要做一件事:

👉 “分析桌面的 sales.xlsx,统计销售数据”


❌ 传统做法(没有Skill)

你可能会直接写代码:

df = pd.read_excel("sales.xlsx")
print(df["Sales"].sum())
print(df["Sales"].mean())

⚠️ 问题来了:

  • 每次都要写一遍

  • 流程无法复用

  • AI也无法直接参与


📉 本质问题:

❗你在“重复解决同一个问题”


🧩 三、Skill的出现:把“流程”封装起来

我们把这个过程封装成一个模块:

class ExcelAnalysisSkill:
    def __init__(self, file_path):
        self.file_path = file_path

    def run(self):
        import pandas as pd

        df = pd.read_excel(self.file_path)

        return {
            "total": df["Sales"].sum(),
            "avg": df["Sales"].mean(),
            "max": df["Sales"].max(),
            "min": df["Sales"].min()
        }

📦 一句话理解 Skill:

✔ Skill = 把“做事的方法”封装成一个可重复使用的能力模块


⚙️ 四、Skill到底改变了什么?

我们做一个对比:


❌ 没有Skill:

用户 → 写代码 → 执行 → 得结果

✅ 有Skill:

用户 → 调用Skill → 得结果

📊 直观理解:

Skill让“做事”变成了“调用能力”


🤖 五、加入AI(Ollama)之后发生了什么?

现在系统变成:

用户提问
   ↓
Ollama(理解任务)
   ↓
选择Skill(Excel分析)
   ↓
Python执行Skill
   ↓
返回结果

📊 架构图

┌────────────┐
│   用户      │
└─────┬──────┘
      ↓
┌────────────┐
│   Ollama   │
│(理解问题)  │
└─────┬──────┘
      ↓
┌────────────┐
│   Skill    │
│(执行流程)  │
└─────┬──────┘
      ↓
┌────────────┐
│   结果      │
└────────────┘

🧪 六、最小可运行Agent代码

🟢 Skill部分

class ExcelAnalysisSkill:
    def __init__(self, file_path):
        self.file_path = file_path

    def run(self):
        import pandas as pd

        df = pd.read_excel(self.file_path)

        return {
            "total": df["Sales"].sum(),
            "avg": df["Sales"].mean(),
            "max": df["Sales"].max(),
            "min": df["Sales"].min()
        }

🟡 Agent调度

import requests

def call_llm(user_input):
    res = requests.post(
        "http://localhost:11434/api/generate",
        json={
            "model": "llama3.1",
            "prompt": user_input,
            "stream": False
        }
    )
    return res.json()["response"]


def run_agent(user_input):
    llm_output = call_llm(user_input)

    print("LLM输出:", llm_output)

    if "excel" in llm_output.lower():
        from skill import ExcelAnalysisSkill

        skill = ExcelAnalysisSkill("sales.xlsx")
        return skill.run()

    return llm_output

🧠 七、Skill的本质到底是什么?

很多人会误以为 Skill 是代码,其实不是。

❗Skill的本质是:人类经验流程的结构化表达


它包含三部分:


🟢 1. 规则(什么时候用)

Excel → 用Excel Skill

🟡 2. 流程(怎么做)

读取 → 分析 → 输出

🔵 3. 工具(怎么执行)

  • pandas

  • API

  • 文件系统


🧩 八、Skill vs Tool vs Agent

概念
本质
Tool
一个函数
Skill
一套流程
Agent
会选择Skill的系统

🧠 类比理解:

  • Tool = 锤子

  • Skill = 装修流程

  • Agent = 包工头


🚀 九、为什么Skill是AI时代的关键?

因为它解决了一个核心问题:

❗让AI不再每次从零思考,而是复用经验流程


没有Skill:

每次都要重新想怎么做


有Skill:

直接调用成熟方法


🧠 十、总结一句话

✔ Skill = 人类经验流程的标准化封装 + AI可调用能力模块


🚀 结尾

未来AI的竞争,不是模型参数的竞争,而是:

👉 谁拥有更多可复用的Skill