← 最新论文
💻 computer science

Authoring Agent Skills: A Software-Engineering Approach

本文主张通过定义其结构、将其与其他行为机制进行区分,并建立一个由评估驱动的创建与使用流程,将软件工程原则应用于智能体技能(Agent Skills)——即大型语言模型智能体的可重用程序性知识——的编写。

原作者: Giuseppe Destefanis

发布于 2026-07-29
📖 1 分钟阅读☕ 轻松阅读

原作者: Giuseppe Destefanis

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你刚刚邀请了一个超级聪明、速度极快的机器人助手进入你的房间,帮你在树上盖一个树屋。这个机器人精通木材、钉子和物理学知识,但它并不了解你的个人风格。它不知道你总是把栏杆涂成蓝色,也不知道你有一个关于绝不使用短于两英寸的钉子的古怪规则。如果你想让机器人完全按照你的喜好来建造树屋,你就必须告诉它。但如果你每次寻求帮助时都要解释每一个微小的细节,你会精疲力竭,机器人也可能会感到困惑。

这就是“AI Agent(AI 智能体)”的世界——能够为我们完成任务的聪明计算机程序。为了让它们真正发挥作用,开发者正在赋予它们“技能(Skills)”。把“技能”想象成不是一种魔法咒语,而是一个小型的说明书或工具包,你把它递给机器人。这是一个文件,上面写着:“嘿,当你看到像这样的任务时,这是我希望你执行它的确切方式。”一个核心问题是:我们该如何编写这些手册,才能让机器人真正遵循它们?如果我们写得不好,机器人可能会忽略它们或者做错工作。如果我们写得好,机器人就会成为你特定方式的真正专家。

你即将阅读的这篇由 Giuseppe Destefanis 撰写的论文认为,编写这些“技能”不应被视为编写随笔或诗歌。相反,应该将其视为软件工程。就像程序员构建一个可靠的应用程式一样,拥有清晰的规则、整洁的代码和安全检查,我们也应该以同样的严谨态度来构建 AI 技能。论文指出,技能实际上是一个伪装成软件的组件。它有一个“接口”(一个告诉用户它能做什么的标签)和一个“实现”(实际的指令)。作者提出,我们应该使用构建计算机程序时所使用的同样严格的规则——比如保持简单、分离“做什么”与“怎么做”,以及仔细测试它们——以确保我们的 AI 智能体不会脱轨。

作为“数字瑞士军刀”的“技能”

想象你有一个巨大的、神奇的背包,可以装下任何东西。在里面,你有一个专门存放“制作发行说明(Release Notes)”的口袋。这个口袋不仅仅是一张纸,它是一个完整的工具包。它外面有一个标签,上面写着:“当你需要为游戏的新版本编写变更摘要时,请使用我。”这个标签就是接口。机器人观察标签,发现一个匹配的任务,然后决定打开这个口袋。

在口袋里,你不是随便乱丢一堆杂乱的笔记。你有一个清晰的、循序渐进的配方(主体),可能还有一些额外的工具,比如一个能自动统计变更数量的脚本,或者一份关于发行说明应该如何呈现的风格指南。这就是实现。论文称之为“技能”,并坚持认为整个工具包是一个软件人工制品(Software Artifact)。这是一个高级说法,意味着它是一件技术产品,需要像开发视频游戏或网站一样进行构建、测试和维护。

作者认为,如果你把技能当作随手写的便条,它就会失败。如果你把它当作软件对待,它就能奏效。以下是该论文拆解的构建这些数字工具包的规则:

1. “单一职责”原则

想象一把瑞士军刀。如果你试图做一个集螺丝刀、开罐器、锯子、牙刷和比萨切割器于一体的工具,它在每项功能上都会表现得很糟糕。论文指出,一个技能应该专注于做好一件事。如果一个技能试图涵盖“所有与编程相关的事务”,机器人可能会对何时使用它感到困惑。但如果技能明确为“根据 Pull Request 起草发行说明”,机器人就会准确知道何时去抓取它。论文建议,专注的技能更容易被 AI 选中。

2. “分阶段加载”技巧

想象你有一个拥有百万册书籍的图书馆。如果你试图同时阅读所有的书来寻找你需要的那一本,你的大脑会爆炸。论文解释说,AI 技能使用了一种聪明的技巧,叫做分阶段加载(Staged Loading)

  • 第一层(标签): 首先,机器人只看到口袋上的标签(名称和简短描述)。这消耗的“脑力”(Token)非常少。
  • 第二层(配方): 如果机器人认为任务与标签匹配,它就会打开口袋并阅读主配方。
  • 第三层(工具): 只有当配方明确说明“噢,我现在需要检查这个特定的文件”时,它才会取出额外的工具(脚本或参考文件)。

这意味着你可以拥有一个包含庞大参考资料库的技能,但只要机器人不需要使用这些资料,它就不会感到负担过重。这就像拥有一个巨大的工具箱,但只打开你需要的那个抽屉。

3. “描述”是触发器

技能最重要的部分是标签上的描述。论文警告说,如果你写一个模糊的标签如“处理发布”,机器人将不知道何时使用它。它需要是具体的:“根据两个版本标签之间的合并 Pull Request 起草发行说明。用于执行版本发布时使用。”机器人会将任务与此描述进行匹配。如果描述含糊不清,机器人可能会完全错过该技能,或者选错技能。论文认为,描述是您与机器人之间的“契约”。

4. 使用“行为评估”进行测试

在常规计算机编程中,你可以通过运行函数并检查答案是否正好等于“5”来测试它。但 AI 不同。即使是在做正确的事情,机器人每次给出的答案也可能略有不同。论文指出,你不能用简单的“通过/失败”检查来测试技能。相反,你必须使用行为评估(Behavioral Evaluation)。这意味着你要给技能一系列现实世界的任务,多次运行它,并观察它是否在大多数情况下都能正确完成工作。这就像通过烹饪并品尝十次新食谱来测试它,而不是仅仅检查配料表是否齐全。

伟大的混淆:技能 vs 其他工具

该论文最大的贡献之一是理清了不同于 AI 指令方式之间的混淆。作者将技能与其他工具进行了对比,例如钩子(Hooks)斜杠命令(Slash Commands)记忆文件(Memory Files)

想象你正在导演一场戏。

  • 记忆文件 就像是一份始终存在于舞台上的剧本,对演员(AI)在表演的每一刻都是可见的。它们提供持久的项目上下文,确保机器人始终拥有这些信息,尽管它们并不强制执行特定动作。
  • 斜杠命令 就像是场务大喊一声:“嘿,现在开始变魔术!”你需要(用户)发出这个命令。机器人会等待你。
  • 钩子 就像是一个严格的、自动化的安全机制。如果演员试图在没有护具的情况下跳下舞台,安全机制会确定性地执行(Deterministically Executes)一条规则来捕捉他们或停止动作。机器人无法忽略这一点;每当特定事件发生时,它都会发生,无论机器人的决定如何。
  • 技能 则像是专门的过程化工具包(Procedural Toolkit),按需加载。当机器人遇到一项任务时,它会匹配描述并加载处理该领域的特定指令。它是一个专家知识源,机器人主动检索它来解决问题,而不是仅仅作为一个被动的建议。

论文划定了一条清晰的界限:如果你需要某事每次都发生(比如在保存文件前的安全检查),你必须使用钩子。如果你想让机器人动脑筋决定是否需要执行特定程序,你应该使用技能。将两者混淆是一个常见的错误。如果你在技能内部写了一条安全规则,机器人可能会决定跳过它。如果你在钩子内部写了一个灵活的建议,机器人可能会在不该做的时候依然机械地执行。

“信任”问题

最后,论文触及了一个令人担忧但重要的概念:信任。如果你从第三方下载了一个技能,你实际上是允许他们编写你的机器人将要遵循的指令。那个技能可能包含删除文件或向互联网发送数据的脚本。论文认为,你应该像对待从互联网下载的软件一样对待技能。你不应该只是点击“安装”。你需要阅读代码,检查脚本,并确保它是安全的。机器人会执行技能告诉它的任何事情,所以你必须成为守门人。

总结

Giuseppe Destefanis 的论文是对所有构建 AI 工具的人发出的行动号召。它说:“停止把 AI 指令当作随意的笔记。开始把它们当作严肃的软件。”

通过使用软件工程的原则——保持简单、分离标签与内容、使用真实场景进行测试,以及明确区分何时使用技能而非钩子——我们可以构建出不仅聪明而且可靠、安全的 AI 智能体。论文并未承诺这能解决所有的 AI 问题,但它表明,如果我们像构建应用程式那样精心构建技能,我们就能让这些数字助手成为更加值得信赖的伙伴。这关乎从“希望机器人做对”转向“通过工程化确保机器人做对”。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →