什么时候Agent能自己写skill?

技能自主生成的背景与核心挑战

随着AI Agent生态的发展,技能(Skill)逐渐成为大模型调用外部工具与能力的标准接口。然而,用户自定义需求的多样化导致通用指令难以统一,Agent面临“该听哪一个技能指示”的决策困境。因此,为其配备可自主生成的技能组成为解决路径。核心挑战在于AI的上下文窗口(Context Window)是有限的,且被系统提示、对话历史和所有已安装技能的元数据共享。若技能文档过于冗长,将挤占其他功能的资源。

  • 上下文资源竞争:技能必须与系统提示、对话历史及其他技能元数据共享有限的上下文窗口,每一句冗余描述都在消耗宝贵的 Token 配额。
  • 判断基准差异:由于每个人都需客制化 AI,判断基准不同,AI 更难区分该响应哪个技能的指示,不如让它拥有自己的技能组。

结构化技能文档:从说明书到精准指令

要让 AI 自主编写技能,首先需要一套标准化的文档结构。目前的业界实践(如 skill-creator)中,SKILL.md 被设计为唯一的入口文件,其结构极简且高效。

什么时候Agent能自己写skill?

  1. 上半部分(何时使用):明确界定技能的触发条件与边界,帮助 Agent 快速判断是否需要加载该技能。
  2. 下半部分(如何执行):提供具体的执行逻辑、步骤或指令。
  3. 辅助文件夹
    • agents/:存放技能的“名片”(如 openai.yaml),定义元数据。
    • scripts/:存放可执行脚本。
    • references/:存放参考文档,要求必须从 SKILL.md 直接链接,避免深层嵌套引用导致的上下文加载负担。

上下文优化与脆弱操作的脚本化处理

在有限的上下文里提供最有效的指令,是自主编写技能的核心原则。AI 本身具备一定推理能力,因此编写者只需补充其未知信息。同时,对于格式要求严苛的“脆弱操作”,必须引入脚本锁死格式。

  • 低自由度与脆弱操作:生成 YAML 配置文件(如 short_description 限制 25-64 字符、首字母大写、无引号)属于脆弱操作。AI 自由发挥极易出错,必须通过脚本(如 generate_openai_yaml.py)仅提取参数值,由脚本确保格式绝对合规。
  • 工作流闭环:一套完整的自主编写流程包含三个阶段:
    1. 输入保障(如 init_skill.py):标准化命名、创建目录结构、生成模板。
    2. AI 创造性编写(高自由度):编写 SKILL.md 内容、References 等。
    3. 输出保障(如 quick_validate.py):校验 Frontmatter 格式、命名规范及长度约束。

迭代优化与实战价值

Agent 自主写出的技能并非一蹴而就,而是一个持续优化的过程。即便是初始生成的技能,也需要经过多轮迭代(例如从泛泛的描述优化为更精确的操作指令)才能达到生产级标准。

  • 生产级标准:参考 Anthropic 官方生产级 Skill 库或聚合站示例,AI 在自主编写过程中能学习最佳实践,快速掌握大模型接口标准。
  • 核心价值:最终目标是建立一套让 Agent(如 Claude Code)自动创建、评估、优化 Skill 的完整工作流。这不仅解决了“不会写”的痛点,更通过结构化和脚本化手段,确保了 Agent 在有限算力下执行任务的精确度与稳定性。