游乐游手机版
首页/AI教程/文章详情

nanobot源码解析第五篇技能系统详解助力AI秒变专家

时间:2026-05-29 17:34
说实话,第一次看到 nanobot 的 Skills 系统,我的第一印象就是:这也太简洁直观了吧?传统的 AI 框架里,要让 Agent 学会一个新工具——比如查询天气、操作 GitHub——通常需要编写复杂的 Python 类、定义 JSON Schema,还要处理各种回调逻辑。但在 nanobo

说实话,第一次看到 nanobot 的 Skills 系统,我的第一印象就是:这也太简洁直观了吧?传统的 AI 框架里,要让 Agent 学会一个新工具——比如查询天气、操作 GitHub——通常需要编写复杂的 Python 类、定义 JSON Schema,还要处理各种回调逻辑。但在 nanobot 中,你只需要创建一个 Markdown 文件。

没错,就是 Markdown。今天我们就来深入解析一下这个系统的设计理念,看看它如何实现“Markdown 即代码”的巧妙机制。

1. 技能的本质:提示词工程

在 nanobot 中,一个技能就是一个文件夹,核心文件是 SKILL.md。内置技能存放在 project_path/nanobot/skills 下,用户自定义的技能则位于 workspace/.nanobot/skills。以 weather 技能为例:路径是 nanobot/skills/weather/SKILL.md,里面的内容并非复杂的 Python 逻辑,而是直接告诉 AI:“想查天气?运行 curl wttr.in/城市名”。

这个设计思路非常巧妙:既然大模型已经能够理解文档、编写代码,那为什么不直接给它一份操作手册,让它自主执行呢?这正是 Skills 系统最核心的哲学——将技能定义为文本,让 AI 通过阅读来掌握能力。

2. 核心机制:渐进式加载

如果把所有技能的详细说明一股脑儿塞进 Prompt,上下文窗口很快就会耗尽。nanobot 采用了渐进式加载策略,分为两个阶段执行。

第一阶段:技能索引

Agent 启动时,SkillsLoader 会扫描所有技能,提取 SKILL.md 顶部的 YAML 元数据(由前后两个 --- 包裹的部分),其中两个字段最为关键:name(技能名称)和 description(技能描述,简要说明技能的功能)。随后,工作区技能和内置技能的元数据会被合并,生成一个技能索引(采用 XML 语法表示),并插入到系统提示词中。主 Agent 在思考时仅能看到这个索引——它知道有哪些技能可用,但看不到具体内容。

第二阶段:按需读取

当用户询问天气问题时,Agent 会从索引中发现 weather 技能,并调用 read_file 工具读取完整的 SKILL.md。读完它便学会了如何用 curl 查询天气,然后立即执行。下面是一段实际运行日志:

nanobot 源码解析(五):Skills 系统——让 AI 秒变专家

2026-03-17 15:06:44.196 | INFO | nanobot.agent.loop:_process_message:357 - Processing message from cli:user: 上海今天天气
2026-03-17 15:14:27.222 | INFO | nanobot.agent.loop:_run_agent_loop:230 - Tool call: list_dir({"path": "/Users/chaoxu.ren/PycharmProjects/nanobot/nanobot/skills/weather"})
2026-03-17 15:18:53.296 | INFO | nanobot.agent.loop:_run_agent_loop:230 - Tool call: read_file({"path": "/Users/chaoxu.ren/PycharmProjects/nanobot/nanobot/skills/weather/SKILL.md"})
2026-03-17 15:22:42.715 | INFO | nanobot.agent.loop:_run_agent_loop:230 - Tool call: exec({"command": "curl -s "wttr.in/Shanghai?format=3""})
2026-03-17 15:27:02.195 | INFO | nanobot.agent.loop:_run_agent_loop:230 - Tool call: exec({"command": "curl -s "https://api.open-meteo.com/v1/forecast?latitude=31.23&longitude=121.47¤t_weather=true""})
2026-03-17 15:36:59.862 | INFO | nanobot.agent.loop:_process_message:449 - Response to cli:user: 上海今天的天气目前气温约为 10.6°C,天气状况显示为小雨(WMO 代码 61)。风速约为 10.8 km/h。

看到了吧?Agent 先列出天气技能目录,然后读取 SKILL.md,再执行两个 curl 命令获取数据,最后整理回答。整个过程既清晰又高效。

3. 技能的“门槛”:依赖检查

有些技能需要特定的运行环境——比如 github 技能需要安装 gh 命令行工具。nanobot 在元数据中定义了相关依赖:

# SKILL.md 顶部
metadata: {"nanobot":{"requires":{"bins":["curl"]}}}

SkillsLoader 会在加载前自动检查系统路径中是否包含 curl。如果缺失,该技能会被标记为“不可用”,并明确告知 AI 缺少什么依赖。这种自愈式的设计极大降低了配置错误的概率。当然,某些 Agent 也可以自行执行命令去安装依赖,但框架至少保证了错误不会莫名其妙地发生。

4. skills 的这种设计真的很高级

  1. 极低的学习成本:任何会写 Markdown 和简单脚本的人,都能为 nanobot 开发新技能。
  2. 极致的灵活性:你随时可以在 ~/.nanobot/workspace/skills 下新建文件夹,放入一个 SKILL.md,Agent 瞬间就获得了新能力,无需重启。
  3. 跨语言能力:由于技能本质上是通过指令教导 AI 运行命令,因此你可以教它执行 Python、Node.js、Go 甚至一段复杂的 Shell 脚本。大语言模型本身与语言无关,只要它会写命令,什么都能做。

5. 开发者视角:如何创造一个新技能?

如果你希望让 nanobot 掌握某项新本领,只需三步:

  1. skills 目录下创建一个文件夹。
  2. 编写一个 SKILL.md,在顶部写好 namedescription
  3. 在正文部分用 Markdown 告诉 AI 如何操作——最好附带代码示例。

⚠️ 如果不确定怎么写,可以利用内置的 skill-creator 技能辅助生成新技能,形成“技能写技能”的闭环。

6. 获取和分享技能:Skills 社区与资源

如果想从零开始,社区里已经有不少现成的技能可供参考:

  • ClawHub:主要的公开 Agent 技能注册中心,支持自然语言搜索,可以轻松为 Agent 查找并安装各种实用工具。
  • SkillsMP:一个技能市场平台,提供丰富的技能供选择和使用。
  • GitHub:GitHub 上有很多开源技能项目,可以根据需求自行选用。

总结

nanobot 的 Skills 系统再次体现了其“以文档为中心”的设计哲学。它充分信任大模型的理解能力,将复杂的逻辑抽象为简单的文档阅读与命令执行。开发者不需要成为框架专家,只要会写 Markdown 和脚本,就能扩展 Agent 的能力。这种极简但强大的思路,值得很多工具链学习借鉴。

来源:https://juejin.cn/post/7618022596126834688
上一篇OpenClaw AI浏览器控制 像真人一样自动化操作 下一篇AI轻松生成大班优质课教案PPT 提升课堂互动参与感
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
GPT Workspace通过GPT-5强化Google Workspace,文档表格邮件创作效率与智能化提升
AI教程 · 2026-05-29

GPT Workspace通过GPT-5强化Google Workspace,文档表格邮件创作效率与智能化提升

GPT Workspace 产品介绍:GPT-5 如何增强 Google Workspace 工作效率 如果你每天都在使用 Google Workspace 进行文档撰写、表格处理、邮件沟通和演示制作,一定深有体会:大量重复性的办公任务耗费了宝贵的时间。现在,GPT Workspace 将 GPT-

AI助手提升年终总结与周报效率的精准营销策略
AI教程 · 2026-05-29

AI助手提升年终总结与周报效率的精准营销策略

适合需求:在信息爆炸的时代,企业所承受的竞争压力几乎覆盖了所有维度,其中营销领域尤为令人困扰。无论是撰写年终总结还是生成周报,精准的营销策略已成为不可或缺的需求——没有谁愿意在庞杂的数据中迷失方向。当我们复盘营销活动时,总会思考:过去哪些数字营销策略真正发挥了效果?哪些内容营销策略有待改进?然而实际

Afri Studio 非洲创意工作室
AI教程 · 2026-05-29

Afri Studio 非洲创意工作室

Afri Studio是什么先来聊聊Afri Studio——它是Afri AI团队推出的一款AI媒体创作工作室,目标很明确:把原本高高在上的智能技术拉下神坛,让普通用户也能轻松生成高质量的文本、图像、音频等内容。换句话说,这是一个面向内容创作者、博主、营销人员、艺术家的“AI工具箱”,帮你高效搞定

Geniea专注Midjourney提示词优化提升创意生成效率
AI教程 · 2026-05-29

Geniea专注Midjourney提示词优化提升创意生成效率

Geniea产品详解:Midjourney提示优化工具Geniea是一款专注于Midjourney提示词优化的智能平台,致力于帮助创作者快速生成高质量且富有创意的提示方案。无论您需要电影镜头、食品摄影还是汽车广告等场景的提示词,只需输入简单指令,系统便会自动输出优化后的提示文本,大幅提升创作效率。提

幼儿园大班毕业典礼方案PPT AI轻松制作精彩回顾
AI教程 · 2026-05-29

幼儿园大班毕业典礼方案PPT AI轻松制作精彩回顾

使用情景 每年毕业季来临之际,幼儿园大班毕业典礼的筹备工作,总是牵动着众多老师、家长和孩子们的心弦。这不仅仅是一场简单的活动,更是孩子们人生中首个重要的成长仪式,标志着他们告别幼儿时光、迈向新阶段的里程碑。对于家长而言,这也是一次充满感怀的“毕业”,意味着一段陪伴旅程的暂时落幕。 如何让这场典礼既温