Atomic Agent Skills开发教程:5分钟写出第一个Markdown技能,附18个内置起步技能清单
【免费下载链接】atomic-agentAtomic Agent is a local-first AI agent. Runs open-weight models on your own machine via llama.cpp.项目地址: https://gitcode.com/gh_mirrors/at/atomic-agent
Atomic Agent是一个本地优先(local-first)的 AI Agent,通过 llama.cpp 在你自己的电脑上运行开源权重模型。它的Skills(技能)系统把任务"操作手册"写成一个 Markdown 文件加可选脚本——本文带你 5 分钟写出第一个自定义技能,并附完整清单:18 个开箱即用的内置起步技能。
什么是 Skills:给本地AI智能体的"技能手册"
可以把每个 Skill 理解为一本小手册:
- Markdown 正文:告诉 Agent「遇到某类任务时,该用什么工具、按什么步骤做」;
- YAML 前置信息(frontmatter):声明技能名称、用途、版本;
- 可选脚本:放在
scripts/目录,仅在用户明确批准后才会执行。
官方文档 SKILLS.md 中特别强调了它的**渐进式加载(progressive loading)**设计:稳定提示词前缀里只包含每个技能的name: description,只有当 Agent 调用skill.view查看某个技能后,正文才会进入提示词——这样 KV 缓存每个会话只失效一次,本地小模型也能跑得又快又省。实现可参考 src/prompt/stable-prefix.ts。
SKILL.md 文件结构一览
一个技能的目录长这样:
<技能名>/ SKILL.md # 必需:YAML frontmatter + Markdown 正文 scripts/ # 可选:shell / node 脚本 references/ # 可选:供 Agent 阅读的静态资料SKILL.md的头部是 YAML,字段如下(摘自 SKILLS.md):
--- name: check-gmail-inbox # 必需,kebab-case,且必须与文件夹同名 description: "Check Gmail inbox" # 必需,约 200 字符以内 version: 0.1.0 # 必需,建议 SemVer requires_tools: # 信息性字段:该技能会用到哪些工具 - os.http.request requires_scripts: # 只有列出的脚本才允许执行 - fetch-headers.sh dangerous: false # 标记为高风险技能(给人看的) ---⚠️新手最常踩的坑:文件必须以
---开头,缺少 frontmatter 块的技能会在加载时被直接丢弃,不会出现在技能列表里。这一点在 starter-skills/skill-creator/SKILL.md 中被标注为 "Critical"。
5分钟写出你的第一个Markdown技能
以「查天气」为例,全程不需要任何 API Key。
第 1 步:创建技能目录
全局技能放在~/.atomic-agent/skills/,也可以放在项目内.atomic-agent/skills/(同名时项目级优先,方便随仓库提交)。
mkdir -p ~/.atomic-agent/skills/my-weather第 2 步:编写 SKILL.md
复制下面这份最小可用模板并保存为~/.atomic-agent/skills/my-weather/SKILL.md(模板同样来自 skill-creator 技能):
--- name: my-weather description: 查询城市当前天气,使用 wttr.in 的 HTTP 接口,无需密钥。 version: 1.0.0 requires_tools: - os.http.request requires_scripts: [] dangerous: false --- # my-weather 用 `os.http.request` GET 请求 `https://wttr.in/<城市>?format=3` 获取一行天气文本, 把结果原样汇报给用户。失败时可退回 `os.shell.run` 执行 `curl`。第 3 步:验证技能已注册
atomic-agent skill list只要列表里出现my-weather即为成功。如果目录有问题,命令会打印WARN:行提示你。
第 4 步:让 Agent 用起来
之后在对话里说"帮我查下上海天气",Agent 会先看到技能描述、调用skill.view加载正文,再按手册执行os.http.request。官方自带的 wttr-weather 技能 就是一个可直接参考的"零依赖"范例。
技能管理:最常用的 CLI 命令清单
| 命令 | 作用 |
|---|---|
atomic-agent skill list | 列出已安装技能(项目级 + 全局级)及启用状态 |
atomic-agent skill show <name> | 打印某个技能的SKILL.md内容 |
atomic-agent skill install <path> | 从本地文件夹安装技能 |
atomic-agent skill uninstall <name> | 卸载全局技能 |
atomic-agent skill disable <name> | 隐藏技能但不删文件 |
atomic-agent skill enable <name> | 重新启用已禁用的技能 |
atomic-agent skill search <query> | 搜索社区技能仓库 |
技能来源支持本地文件夹、GitHub tap(owner/repo[/path])以及 ClawHub 注册表(@owner/slug),完整说明见 SKILLS.md。
18个内置起步技能完整清单
Atomic Agent 首次启动会自动安装以下 18 个起步技能,升级时还会自动刷新(清单源自 starter-skills/README.md):
| # | 技能 | 用途 | 外部依赖 |
|---|---|---|---|
| 1 | wttr-weather | 查询天气与预报 | 无 |
| 2 | currency | 汇率查询与货币换算 | 无 |
| 3 | skill-creator | 创建 / 编辑 SKILL.md | 无 |
| 4 | verify-work | 汇报前实际运行验证产出 | 无 |
| 5 | github | 仓库 / Issue / PR / Actions | ghCLI 已登录 |
| 6 | gog-workspace | Gmail、日历、Drive、Docs 等 | gogCLI + OAuth |
| 7 | apple-calendar | 读取 / 创建 macOS 日历事件 | macOS +icalBuddy |
| 8 | apple-notes | 管理 Apple 备忘录 | macOS +memo |
| 9 | apple-reminders | 管理 Apple 提醒事项 | macOS +remindctl |
| 10 | obsidian | 读写搜索 Obsidian 笔记库 | OBSIDIAN_VAULT_PATH |
| 11 | notion | 读写 Notion 页面与数据库 | NOTION_API_KEY |
| 12 | PDF 合并 / 拆分 / 提取 / OCR | qpdf/poppler | |
| 13 | xlsx | 创建编辑 Excel 工作簿 | python3+openpyxl |
| 14 | pandoc | 文档格式互转(md/docx/html/epub) | pandoc |
| 15 | ffmpeg | 音视频转换 / 裁剪 / 转 GIF | ffmpeg |
| 16 | imagemagick | 图片缩放 / 裁剪 / 格式转换 | imagemagick |
| 17 | audio-transcribe | 本地语音转文字,无需 API Key | 本地whisper |
| 18 | docker | 容器 / 镜像 / Compose 管理 | docker已运行 |
💡 前 4 个零依赖技能装上即用,非常适合先跑通再扩展。
进阶:给技能附加脚本,并管好安全边界
需要跑复杂逻辑时,把脚本放进scripts/目录,并在 frontmatter 的requires_scripts中列明——只有列出的脚本才允许执行,任何scripts/之外的路径都会被拒绝。扩展名决定运行方式:.ts/.js/.mjs/.cjs走 Node,.sh走 Bash,其余按可执行文件直接运行。
执行前,脚本调用会经过审批门(approval gate),向你展示技能名、脚本路径和参数预览,确认后才运行(机制见 skill 相关说明)。两条硬性边界:
- 技能是数据 + 脚本,不是插件,不能动态注册新工具或加载原生模块;
- 不要在技能里写密钥,也不要教 Agent 绕过审批或 HTTP 白名单。
这套本地优先的智能体循环本身也很能打——在同一本地模型(qwen-3.6-35b-a3b)下,Atomic Agent 在 GAIA Level 1 公开验证集上取得 69.8% 准确率,领先对比对象 11.3 个百分点:
常见问题(FAQ)
Q:技能名字和文件夹名不一致会怎样?name必须与所在文件夹同名(kebab-case),不一致属于无效格式,加载时会被跳过。
Q:项目级技能和全局技能同名?项目级(.atomic-agent/skills/<name>/)始终优先,全局技能作为回退——这正是"随仓库提交技能"的设计意图。
Q:改完 SKILL.md 为什么没生效?重启 Agent 或刷新技能注册表,再用atomic-agent skill list验证。
Q:想学官方技能怎么写?最快的方式是读内置技能源码,推荐从 skill-creator 和 wttr-weather 两个入手,前者是"教你写技能的技能",后者是最小化的真实示例。
📌小结:Atomic Agent 的 Skills 就是"Markdown + 可选脚本"的本地技能手册,零依赖、渐进加载、脚本需审批。5 分钟即可上手你的第一个技能,18 个内置起步技能则覆盖天气、汇率、PDF、Excel、音视频、Docker 等高频场景——把技能当作可版本化的资产,让本地 AI 智能体随你的工作流一起成长。
【免费下载链接】atomic-agentAtomic Agent is a local-first AI agent. Runs open-weight models on your own machine via llama.cpp.项目地址: https://gitcode.com/gh_mirrors/at/atomic-agent
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考