很多团队做 Agent 都会经历同一个阶段:Demo 很快,落地很慢。新需求一来,就要重写 Prompt、重配工具、重测流程;场景一变,之前的能力几乎无法直接复用。看起来 Agent 已经能对话、能执行,但距离稳定交付,还缺一套可沉淀、可复用、可协作的能力组织方式。

这正是 Skills 的价值:用自然语言描述任务能力,并结合可复用的文档与脚本,把能力封装成模块——像插件一样安装、复用、迭代

在 LazyLLM 最新版本(v0.7.5)中,你可以通过 LazyLLM 让自己的 Agent 快速接入 Skills 体系,走向可扩展、可复用、可持续演进的 Agent 开发之旅。本文将用三步实操,带你完成从零到一的接入过程,并用实际任务验证它能带来的提升。


一、什么是Skills

Skills 是一种任务级能力封装机制:用结构化形式描述“一个 Agent 应该怎么完成某类任务”。一个 Skill 通常包含:

  • 操作指令(Instructions):告诉 Agent 如何完成任务(步骤、约束、注意事项)。

  • 可选执行逻辑(Scripts):例如 Python 脚本、工具调用、自动化流程等。

  • 任务上下文约束(References):输入输出格式、依赖资源、边界条件、示例等。

在实际使用中,Skills 体现为一个可按需加载、标准化、可复用的能力包(Capability Package)。相比把流程“藏”在 Prompt 拼接与临时代码里的方式,Skills 的优势在于:

  • 流程清晰、边界明确:执行逻辑模块化,维护与排障更直接。

  • 复用性强:一个定义好的Skill,可在多个 Agent 、多个平台(如 Cursor、Claude Code、Codex 等)复用。

  • 天然支持扩展:通过注册/发现机制动态加载,避免常驻上下文污染。

简而言之,Skills 不是让模型“更聪明”,而是让 Agent 的执行更稳定,让能力更容易复用。

如下表所示,Skills 把“个人经验”变成“团队资产”,把“一次性开发”变成“可复用工程”。

哪些场景最适合先上 Skills?

  • 工具调用:将带固定参数结构、权限约束或稳定输出格式的数据库查询/API请求/检索操作封装为 Skill ,避免每次重复构造调用逻辑。

  • 流程编排:将“解析输入→工具调用→结果校验→格式化输出”等串行任务固化成稳定流程,减少临时 Prompt 拼接。

  • 领域知识封装:把专业术语、边界规则、标准示例集中管理,让 Agent 在垂直任务中更稳、更一致。

  • 跨Agent复用:同一Skill可在多个 Agent、多个平台中调用,实现“一次开发,多处使用”,提升整体交付效率。


二、只需三步,为 LazyLLM Agent 接入Skills

在 LazyLLM v0.7.5 中,把 Skills 接入现有 Agent 不需要重构工程。你只需要三步:

升级版本 → 导入 Skills → Agent 挂载并验证效果

三步完成后,你的 Agent 将具备“按需组合 Skills ”的能力。下面按实操顺序带你跑一遍。

(一)安装最新版LazyLLM

先把 LazyLLM 升级到包含 Skills 能力的版本,在环境中运行命令:

pip install -U lazyllm

然后确认版本是否生效:

python -c "import lazyllm; print(lazyllm.__version__)"

看到输出版本号≥0.7.5,即为更新完成。

(二)导入想要使用的Skills

你可以先从公开仓库挑选可复用的 Skills ,例如:

把目标 Skills 下载并整理到本地目录后,即可通过 LazyLLM CLI 导入到工作空间。新版本已内置 lazyllm skills 命令组,常用命令如下:

推荐上手流程(以 Anthropic Skills 仓库为例):如果你希望导入本地目录中的全部 Skills,只需要三条命令:

lazyllm skills init
lazyllm skills import ./your-skills-path --overwrite
lazyllm skills list

执行后,终端会列出当前工作空间已安装的 Skills 及其描述信息。看到这些结果,就说明 LazyLLM 已经成功识别并加载了这些能力包。

(下载到本地的Anthropic官方Skills目录)

(运行命令输出详情)

完成导入后,下一步就是把这些 Skills 真正“挂”到 Agent 上,让它们在任务执行中生效。

(三)在 Agent 中挂载 Skills 并启用

在本次更新中,我们尽可能减少了开发者需要改动的代码量。和传入工具集(tools)类似:只需在创建 Agent 时新增 skills 字段,并传入期望可用的 Skills 列表,即可让 Agent 使用传入的技能包。

最小改动示例:把 Skill 名字放进 skills 参数即可;如果希望 Agent 能识别并使用当前工作空间中的 全部Skills,将 skills=True 。

from lazyllm import OnlineModule, ReactAgent, WebModule
llm = OnlineModule(source='glm', model='glm-4.7', api_key='your-glm-api-key')
agent = ReactAgent(
    llm=llm,
    skills=['mcp-builder', 'frontend-design', 'canvas-design'],  # 设置 skills=True 启用所有Skills
    max_retries=20,
    stream=True,
)
w = WebModule(agent, stream=True)
w.start().wait()

我们可以看到:

  • 相比以往需要手动研发/注册工具,使用 Skills 无需创建或注册任何工具,也无需额外对接 MCP

  • Skills 支持人为指定;此处我们选择了与 MCP / 页面设计相关的 Skills 作为演示


三、效果验证:两个任务跑通闭环

运行程序后,我们用两个任务来验证 Skills 是否真正“可用、可复用、可迭代”。

任务一:让 Agent 设计一个 LazyLLM 的官网界面,并给他提供了一个风格示例(Llamaindex官网)。可以看到,Agent 能够自行选择合适的 Skills(例如前端设计相关 Skill),并通过 Skill 学习、网页抓取与 HTML 编写,完成 LazyLLM 初版网页设计并保存至本地工作空间。

(Agent 能够自行选择合适的 Skills(前端设计 Skill ))

(Agent 通过 Skill 学习、网页抓取、html 网页编写,

完成了 LazyLLM 初版网页设计,保存至本地工作空间)

任务二:在已有页面基础上修改风格(更改主题颜色,增加橘色元素)。

(修改主题颜色后的页面)

从这两个任务可以看到,Skills 带来的关键变化不是“回答更长”,而是“执行更稳、更可控”:

  • 能自动选择合适 Skills(减少人工“选工具/写流程”成本)

  • 能基于已有产物做定向改造(具备可迭代性,而不是一次性生成)

  • 不需要从零重建流程(从“临时拼接”升级为“能力组装”)


四、常见坑与避坑清单

为了让大家更无痛地使用 LazyLLM + Skills ,我们整理了一份“官方踩坑清单”:

🗝️建议每次导入后固定执行 lazyllm skills list 做验收,把“路径一致性”作为第一排查项。


五、从“会聊”到“会干活”

到这里,我们已经把 Skills 在 LazyLLM Agent 中的接入闭环完整跑通了:升级版本、导入能力、挂载验证,三步就能把“临时可用”变成“稳定可复用”。

你可以看到,Skills 的价值在于能力工程化,而 LazyLLM 的价值在于把这种能力工程化变成一件低成本、可快速落地的事情。它不是在给 Agent 增加“新魔法”,而是在帮我们把零散的 Prompt、脚本和经验,升级为可组合、可复用、可协作的能力模块。这意味着:

  • 新场景不再从零开始,而是优先复用已有能力

  • 复杂流程不再隐藏在 Prompt 细节里,而是显式可维护

  • Agent 不再是一次性交付,而是可以持续演进的系统

如果你正在做 RAG、Agent、工具调用或流程编排相关工作,强烈建议从一个小场景开始,直接用 LazyLLM 把能力接入 Skills 跑一遍。当你真正跑通一次之后,会很直观地感受到:Agent 的开发方式,已经从“临时拼装”升级成了“能力组装”。

如果你对 LazyLLM + Skills 感兴趣,欢迎关注公众号、Star 项目或加入交流群一起交流。


官方教程🔗

欢迎升级体验 LazyLLM 最新版本,请大家去github上点一个免费的star,支持一下

LazyLLM项目仓库链接🔗:


更多技术内容,欢迎移步gzh “LazyLLM” 讨论!

Logo

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

更多推荐