问题所在
你有一些 LIA 猜不到的习惯。你的每周回顾总是按同样的顺序,你的会议纪要有固定的格式,你更喜欢用表格而不是一段文字来看天气。每次都重新跟她解释很麻烦,结果也一次一个样。
我想要什么
我希望这种做事的诀窍只需写一次,用人能读懂的格式,并让 LIA 在适用时使用它。这就是 skill(技能):一个 SKILL.md 文件,采用其他助手也在使用的开放格式 agentskills.io,包含名称、描述和指令。它还可以附带参考文档、模板和脚本。根据类型不同,一个 skill 可以:
- 给出专家指令,比如用于撰写一封正式信函;
- 描述一种方法,由 LIA 用她自己的工具来执行;
- 固定一个计划模板,比如一份汇集日程、任务、天气和邮件的晨间简报;
- 运行一个小脚本,生成一个交互式小组件(一张地图、一份月历)或一张图片(一个二维码、一张图表)。小组件会一直附在它的消息上,页面重新加载后还能再次打开。
它是怎么进行的
LIA 一开始只读取你的 skills 的名称和描述。当你的请求与其中一个相符时,她才加载它的指令,需要的话再加载它的文件:一个很大的 skill 在用不到时不花任何成本。一个声明为固定的计划模板,在与你的请求相符时会直接执行,LIA 不必构建计划,这样更快,成本也更低。如果它安排的某一步要用到你没有连接的服务,这一步会被直接跳过。回答上的一个徽章会告诉你用了哪个 skill。
要创建一个,最简单的办法就是直接提出来:「创建一个显示二维码的 skill」。LIA 会问你几个问题,选择合适的类型,编写并检查这个 skill,然后在一张卡片上把它提供给你,附上名称、描述和文件。没有你的点击,什么都不会被安装。你也可以让她修改你的某个 skill:她会重读整个包并完整地重新生成,让描述、脚本和文档保持一致,然后给你看哪些会被替换、添加和删除。
只想用一次的游戏、测验或计算器不需要 skill:直接让 LIA 做,页面会在对话中运行。
脚本,在密封罩下
默认情况下,skill 的脚本在一个一次性容器中运行,为这次调用而创建,用完立即销毁:没有网络,没有特殊权限,内存和时间都有限制,里面也没有任何 LIA 的东西,既没有她的代码,也没有你的凭据。如果这个容器无法启动,脚本就不会运行:不存在退回到保护更弱模式的路径。需要下载软件包的命令要写明它想访问的网站;之后它会通过唯一的一个中转,只访问这些网站,并且要在你或管理员授权之后。它生成的文件会回到你的图库中,前提是核实过它们的内容确实与类型相符。
别人写的 skills
在设置中,你可以在公共库 skills.sh 中搜索,或者读取一个 GitHub 地址。你在安装之前会先阅读一个 skill:它的来源、确切版本、它的每一个文件,以及已发布的审计结论。被判定风险过高的 skill 会被拒绝,而被安装的正是你读过的那个版本。
来自库、网址或插件的 skill 是在别处写成的,LIA 也把它当作这样的内容来对待。它的指令单独运行,带着它自己的文件和你附上的文件,无法访问你的邮箱、日程或连接器。它不会显示从网上加载的图片或小组件,也不会触发任何计划模板。相反,你从自己的文件导入的 skill 会使用你连接的数据:只保留那些你清楚来源的。
局限
- 没有版本历史:被替换的 skill 无法找回,所以在你点击之前,卡片会详细列出改动。
- LIA 自带的 skills,以及来自库或插件的 skills,无法通过聊天修改:前者由管理员维护,后者跟随它们的来源。
- skills 的数量和大小受你的实例限制。
