当前位置: 首页 > news >正文

Skills 系统——让 AI 秒变专家

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

在 nanobot 中,一个技能就是一个文件夹,核心是里面的SKILL.md

nanobot内置的skills放在project_path/nanobot/skills目录下,用户自定义的skills放在workspace/.nanobot/skills目录下

weather技能为例:

  • 路径nanobot/skills/weather/SKILL.md
  • 内容:它并不包含复杂的 Python 逻辑,而是直接告诉 AI:“如果你想查天气,可以运行curl wttr.in/城市名”。

这种设计非常聪明:既然大模型已经非常擅长理解文档和编写代码,为什么不直接给它一份文档,让它自己去执行命令呢?


2. 核心机制:渐进式加载(Progressive Loading)

如果把所有技能的详细说明都塞进 Prompt,AI 的上下文窗口很快就会爆掉。nanobot 采用了渐进式加载策略:

第一阶段:技能索引

当 Agent 启动时,SkillsLoader会扫描所有技能,提取SKILL.md顶部的 YAML 元数据(前后两个---包裹),其中下面两个字段最重要:

  • name: 技能名
  • description: 技能描述,简要说明技能是做什么的

将workspace与built-in skills所有的元数据进行合并,生成一个技能索引(xml语法),添加到大模型的system prompt中:

(... 系统提示词中的其它内容,身份、角色、记忆等) # Skills The following skills extend your capabilities. To use a skill, read its SKILL.md file using the read_file tool. Skills with available="false" need dependencies installed first - you can try installing them with apt/brew. <skills> <skill available="true"> <name>baoyu-xhs-images</name> <description>Generates Xiaohongshu (Little Red Book) infographic series with 11 visual styles and 8 layouts. Breaks content into 1-10 cartoon-style images optimized for XHS engagement. Use when user mentions "小红书图片", "XHS images", "RedNote infographics", "小红书种草", or wants social media infographics for Chinese platforms.</description> <location>.nanobot/skills/baoyu-xhs-images/SKILL.md</location> </skill> <skill available="true"> <name>memory</name> <description>Two-layer memory system with grep-based recall.</description> <location>/Users/chaoxu.ren/PycharmProjects/nanobot/nanobot/skills/memory/SKILL.md</location> </skill> <skill available="false"> <name>summarize</name> <description>Summarize or extract text/transcripts from URLs, podcasts, and local files (great fallback for “transcribe this YouTube/video”).</description> <location>/Users/chaoxu.ren/PycharmProjects/nanobot/nanobot/skills/summarize/SKILL.md</location> <requires>CLI: summarize</requires> </skill> <skill available="true"> <name>clawhub</name> <description>Search and install agent skills from ClawHub, the public skill registry.</description> <location>/Users/chaoxu.ren/PycharmProjects/nanobot/nanobot/skills/clawhub/SKILL.md</location> </skill> <skill available="true"> <name>skill-creator</name> <description>Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.</description> <location>/Users/chaoxu.ren/PycharmProjects/nanobot/nanobot/skills/skill-creator/SKILL.md</location> </skill> <skill available="false"> <name>github</name> <description>Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.</description> <location>/Users/chaoxu.ren/PycharmProjects/nanobot/nanobot/skills/github/SKILL.md</location> <requires>CLI: gh</requires> </skill> <skill available="false"> <name>tmux</name> <description>Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.</description> <location>/Users/chaoxu.ren/PycharmProjects/nanobot/nanobot/skills/tmux/SKILL.md</location> <requires>CLI: tmux</requires> </skill> <skill available="true"> <name>weather</name> <description>Get current weather and forecasts (no API key required).</description> <location>/Users/chaoxu.ren/PycharmProjects/nanobot/nanobot/skills/weather/SKILL.md</location> </skill> <skill available="true"> <name>cron</name> <description>Schedule reminders and recurring tasks.</description> <location>/Users/chaoxu.ren/PycharmProjects/nanobot/nanobot/skills/cron/SKILL.md</location> </skill> </skills>

第二阶段:按需读取

我们结合代码来梳理skills的加载和运行逻辑

主 Agent 在思考时,只会看到这个索引。如果它发现用户问了天气问题,它会意识到:“哦,我有一个weather技能可以用”。

此时,它会调用read_file工具去读取那个SKILL.md的完整内容。读完之后,它就学会了如何使用curl去查天气,然后立即执行。

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&current_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。

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这种skill帮助写新skill**


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

如果你不想从零开始写,也可以直接从社区获取现成的技能,或者寻找灵感:

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

总结

nanobot 的 Skills 系统再次体现了其“以文档为中心”的设计哲学。它充分信任大模型的理解能力,将复杂的逻辑抽象为简单的文档阅读与命令执行。

http://www.jsqmd.com/news/594186/

相关文章:

  • RTOS学习指南:从理论到实践的完整路径
  • 51单片机入门难点解析与高效学习路径
  • 2025届必备的六大降重复率平台横评
  • STM32L4适配BNO080九轴IMU驱动库设计与低功耗实践
  • SparkFun AMG8833/8853红外热成像库深度解析与嵌入式实践
  • [具身智能-230]:OpenCV常见的“踩坑”有哪些?
  • 二极管特性与19种经典应用电路详解
  • 知识竞赛软件售后服务哪家好?真实用户评价与选购指南
  • 2026届毕业生推荐的六大降重复率平台解析与推荐
  • 计算机网络核心知识点与协议详解
  • 2026年倍速链生产线选型指南:五大实力厂商深度解析 - 2026年企业推荐榜
  • [具身智能-231]:OpenCV的库文件为啥是cv2, 而不是cv?
  • OpenClaw镜像体验:Qwen3.5-9B云端沙盒10分钟快速验证
  • ESP32/ESP8266旋转编码器驱动库:支持加速度响应与复合按键事件
  • OpenClaw+千问3.5-9B数据清洗:Excel表格异常值检测与修复
  • 工作词汇
  • 三线制SPI通信原理与ZYNQ实现方案
  • RT-Thread消息邮箱机制与嵌入式开发实践
  • 高效科研工具链:Web of Science与Endnote关键词导出实战指南
  • 蒙特卡洛方法与科学计算十大经典算法解析
  • 2026年色母机采购指南:精准计量如何定义塑料加工新标杆? - 2026年企业推荐榜
  • RG15雨量计Arduino工业级串口驱动设计
  • 2026年天津婚姻继承服务专业盘点:这5家律所口碑与实力兼具 - 2026年企业推荐榜
  • STM32在油田环境监测系统中的应用与实践
  • 智慧校园系统怎么选?看懂这 5 个核心功能再决定不迟
  • CWW Morse Transmit:嵌入式摩尔斯电码生成与侧音实现
  • Action委托和Func委托
  • 01背包-递推写法-建议序号不对齐
  • 2024常州AI视频号推广全攻略:五大服务商深度测评与避坑指南 - 2026年企业推荐榜
  • 2025届学术党必备的五大降AI率方案横评