Agent skill 大白话,从零到1,范例解析

Agent skill 从程序员的角度说,skill 就是类似C 语言的.h公共库,或 Java 里的 import 的 公共库。就是常用的函数打包成库,然后在不同的agent里调用被import。对于程序员来说,还不是那一套吗?! 现在就是在agent 环境里,怎样调用md 文件,文件里定义了一些常用库,那么每一个agent里就不用重写一遍了。 让我们来看一个chatGPT生成的实例:

那么先给出我唯给chatGPT的提示词: "可以给出一个简单实例关于agent skills的吗?从markdown 文本到代码。"

回答:

可以的 👍 我给你一个最小可运行示例 ,演示如何把Markdown 形式的 Agent Skills 描述 转成可执行代码。这个模式常用于:LLM Agent、AutoGPT 风格系统、工具调用框架、Skill Registry。

目标流程:

Markdown Skill 描述 → 解析 → 注册为 Skill → Agent 调用执行

一、Step 1:定义 Agent Skill(Markdown)

假设你有一个 skills.md 文件:

bash 复制代码
# Skill: add_numbers

## Description
Add two numbers and return the result.

## Parameters
- a: number
- b: number

## Returns
- result: number

再来一个:

bash 复制代码
# Skill: say_hello

## Description
Say hello to a user.

## Parameters
- name: string

## Returns
- message: string

二、Step 2:目标结构(代码里的 Skill 对象)

我们希望转换成这种 Python 结构:

python 复制代码
{
  "name": "add_numbers",
  "description": "...",
  "params": ["a", "b"],
  "returns": ["result"],
  "func": callable
}

三、Step 3:Skill 注册中心(Agent Skill Registry)

先写一个最小 Skill 框架:

python 复制代码
class Skill:
    def __init__(self, name, description, params, returns, func):
        self.name = name
        self.description = description
        self.params = params
        self.returns = returns
        self.func = func

    def run(self, **kwargs):
        return self.func(**kwargs)


class SkillRegistry:
    def __init__(self):
        self.skills = {}

    def register(self, skill: Skill):
        self.skills[skill.name] = skill

    def call(self, name, **kwargs):
        if name not in self.skills:
            raise ValueError("Skill not found")
        return self.skills[name].run(**kwargs)

四、Step 4:Markdown → Skill 元数据解析

简单版解析器(正则方式):

python 复制代码
import re


def parse_skill_markdown(md_text):
    name = re.search(r"# Skill:\s*(.+)", md_text).group(1)

    desc = re.search(r"## Description\s*(.+?)\n\n", md_text, re.S).group(1).strip()

    params_block = re.search(r"## Parameters\s*(.+?)\n\n", md_text, re.S)
    params = re.findall(r"-\s*(\w+):", params_block.group(1)) if params_block else []

    returns_block = re.search(r"## Returns\s*(.+)", md_text, re.S)
    returns = re.findall(r"-\s*(\w+):", returns_block.group(1)) if returns_block else []

    return {
        "name": name,
        "description": desc,
        "params": params,
        "returns": returns
    }

五、Step 5:给 Skill 绑定真实函数

真实代码实现:

python 复制代码
def add_numbers(a, b):
    return {"result": a + b}


def say_hello(name):
    return {"message": f"Hello {name}!"}

函数映射表:

python 复制代码
FUNCTION_MAP = {
    "add_numbers": add_numbers,
    "say_hello": say_hello
}

六、Step 6:完整加载流程(Markdown → Agent Skill)

python 复制代码
registry = SkillRegistry()

with open("skills.md") as f:
    md_text = f.read()

skill_meta = parse_skill_markdown(md_text)

skill = Skill(
    name=skill_meta["name"],
    description=skill_meta["description"],
    params=skill_meta["params"],
    returns=skill_meta["returns"],
    func=FUNCTION_MAP[skill_meta["name"]]
)

registry.register(skill)

七、Step 7:Agent 调用 Skill

python 复制代码
result = registry.call("add_numbers", a=3, b=5)

print(result)

输出:

bash 复制代码
{'result': 8}

再试:

python 复制代码
registry.call("say_hello", name="Alice")

输出:

bash 复制代码
{'message': 'Hello Alice!'}

八、真实 Agent 系统里的升级版架构

生产系统一般这样:

sql 复制代码
Markdown Skills
      ↓
Parser
      ↓
Skill Schema (JSON)
      ↓
Validator (参数校验)
      ↓
Skill Registry
      ↓
LLM Planner
      ↓
Tool Executor

九、和 LLM Agent 结合(关键思想)

LLM看到的是:

javascript 复制代码
{
  "name": "add_numbers",
  "description": "Add two numbers",
  "parameters": ["a", "b"]
}

然后模型输出:

javascript 复制代码
{
  "tool": "add_numbers",
  "args": { "a": 10, "b": 20 }
}

Agent Runtime 负责:

python 复制代码
registry.call(tool, **args)
相关推荐
林小帅3 小时前
【笔记】OpenClaw 架构浅析
前端·agent
林小帅3 小时前
【笔记】OpenClaw 生态系统的多语言实现对比分析
前端·agent
warm3snow6 小时前
Claude Code 黑客马拉松:5 个获奖项目,没有一个是"纯码农"做的
ai·大模型·llm·agent·skill·mcp
程序员柒叔11 小时前
Dify 流水线知识库(RAG Pipeline)深度分析
agent
马腾化云东12 小时前
Agent开发应知应会(langfuse):Langfuse Score概念详解和实战应用
人工智能·llm·ai编程
Baihai_IDP12 小时前
HackerNews 热榜第一名:AGI 的 A,原来代表的是 Ads(广告)
人工智能·程序员·llm
回家路上绕了弯13 小时前
深入解析Claude Skill:原理、特性与实战应用全指南
后端·agent
吴佳浩14 小时前
OpenClaw Windows 完整安装与本地模型配置教程(实战版)
llm·openai
四月沐歌1 天前
测试火山引擎AgentKit记忆库和踩坑问题记录
agent
量子位1 天前
Nano Banana 2免费上线!超Pro版本100分登顶竞技场,API价格还对半砍了
agent