技能是什么
技能是一个文件夹。ALITA 启动时扫描 ~/.alita/skills/,每个子文件夹算一个技能,读到就注册,装进去立刻能用,不用重启。读不进去的会被跳过,界面上不提示——多半是 SKILL.md 的头写坏了,或者跟已有技能重名。文件夹里放一份 SKILL.md。当前版本只执行 SKILL.md 格式的技能;skill.json + handler.js 这种老写法能被识别登记,但不会执行其中的代码。
SKILL.md 怎么写
一份 Markdown,开头是 YAML 头,正文写这个技能怎么做事。适合不需要跑代码、靠说明就能完成的技能。
---
name: 周报整理
description: 把一周的零散记录整理成一份周报
version: 1.0.0
triggers:
- 周报
- 整理本周
---
## 指令
把用户给的内容按「完成、进行中、下周计划」三栏整理。
每条一句话,不加形容词。
## 示例
用户:把这些整理成周报……
输出:完成 / 进行中 / 下周计划 三栏。name、description必填。没有 YAML 头也认:一级标题当名字,首段当说明。version可不写,默认 1.0.0。description可以跨多行。## 指令(也认## 工作流程、## 角色设定)是做事说明;都没有就把整篇正文当说明。## 示例可选。triggers是触发词,都是列表。permissions声明它要用哪些权限——目前只作声明与展示,实际拦得住什么见安全与审批。
关于 skill.json + handler.js
老写法:skill.json 声明参数,handler.js 放代码。当前版本会读到并登记它,但不执行 handler.js。要让技能跑命令,在 SKILL.md 的「## 指令」里写清要执行的命令,由 ALITA 在受限环境里执行。哪一步先问你看审批档位;删掉找不回来的东西、对外发送、花钱这类危险的步骤,任何档位都先问你。
从 GitHub 链接一键装
把链接贴进聊天框,ALITA 先问你装不装,装完回头核对真装上了再报告。认这几种写法:
- 仓库地址:克隆下来,在里面找
SKILL.md。 - 仓库里的子目录地址(带
tree/分支/路径)。 - 单个文件地址(带
blob/分支/路径/skill.json),或 raw 直链。 - 仓库里只有
SKILL.md的,克隆后按格式一装。
装下来的东西放在 ~/.alita/skills/,侧栏「技能」的「我的」里能看到。要卸载,点那一行的「···」,选「卸载」。
npm 与 PyPI 包
这条路装的是 MCP 服务器和命令行工具,不是技能——技能只从代码仓库装。
聊天里说「装个 X」,或直接贴启动命令。ALITA 先到 npm、PyPI 上核对这个名字真的存在,查到不存在的就不装(查询本身失败时会放行,所以它挡的是编出来的名字,不是所有风险)。写法:
npm:包名,或 npm 网站上的包页面地址。npx -y 包名、uvx 包名这样的启动命令,多数是 MCP 服务器,见 接入 MCP 服务器。
发到技能商城
自己写的技能可以发到技能商城。别人在侧栏「技能」页头的「插件」里点「安装」,ALITA 就按编号从商城把整包装进他的电脑。
要发到商城,这个技能得是在 ALITA 里建的:技能页点「新建」,选「自己写一个」,或者选「粘贴导入」,把 SKILL.md 的内容贴进去。这样建的技能,在「我的」里那一行的「···」里有「发布到市场」,点了右边打开「发到技能商城」一栏。直接放进 ~/.alita/skills/ 的文件夹没有这一项。技能内容在商城公开,谁都能看、能装。
盖不盖章你自己选。栏里的开关写着「盖章存证(这次不盖)」,点一下变成「盖章存证(会一起盖)」,就随这次发布一起盖。发上去以后也能补:在「我的」里点开这个技能,详情栏「盖章存证」那一块再点「盖章存证」。盖章会公开你的身份号、技能编号、版本、内容指纹和盖章时间;链上只记这一版的指纹,不记全文。要先在「设置 → 系统」里打开「上链存证」;章每天夜里随当天那批写上链,一般次日早上完成。发了新版,旧版的章不挂到新版上,要的话给新版再盖一个。盖过的可以「撤销章」,撤销后这一版标成「已撤销」,链上那条记录删不掉。
别人在「插件」里看到的卡上,只有作者用自己的身份发布、亲手盖过章的那一版,才写着「作者已盖章」。章证明的是这一版出自谁、有没有被改过,不担保内容安全;装之前,ALITA 还会在本机核对指纹、发布者、权限和危险命令,核不上就不装。
费用
- 技能商城里的插件不收费,只有安装和更新,没有买卖。
- 装来的包,按它自己的许可证用。
各模型服务商与平台的名称、商标归其所有;ALITA 与它们无隶属或合作关系。