这里解决了 Agent 开发中的一个核心痛点:上下文窗口限制与知识广度的矛盾。
Java 实现代码
这段代码引入了知识分层和懒加载的概念,这是解决 LLM 上下文限制(Context Window)的关键策略。
技能系统架构:SkillLoader
核心思想:引入外部知识库系统,将专业知识和经验以结构化的"技能"文件形式存储,让Agent能够动态学习和复用专业知识,实现"知识外挂"。
知识外化:将AI的专业知识存储在外部文件,而不是硬编码在代码中
动态加载:程序启动时自动扫描技能目录
约定驱动:通过文件名
SKILL.md标识技能文件结构化管理:用面向对象的方式管理技能
技能文件格式与解析
元数据+内容:YAML Frontmatter + Markdown内容的标准格式
灵活兼容:支持有/无元数据的文件格式
默认命名:用文件夹名作为默认技能名
容错解析:解析失败不影响整体运行
双层级技能访问模式
摘要模式:先看目录,再决定获取哪个详情
渐进式披露:避免一次性暴露所有信息污染上下文
标签化:用
<skill>标签标注内容来源自描述错误:未知技能时返回可用列表
技能系统集成
动态上下文:系统提示词根据实际技能动态生成
工具化访问:将知识获取抽象为工具调用
简单接口:最小化的参数设计
与基础工具并存:技能工具和操作工具在同一系统中
技能文件示例
知识结构化:专业经验被系统地组织
可维护:人类和AI都能理解和更新
可复用:多个Agent可以共享相同的技能库
渐进式完善:可以不断积累和优化技能
架构演进与价值
从 AgentWithSubAgents 到 AgentWithSkills 的升级: 维度AgentWithSubAgentsAgentWithSkills知识来源内置在模型权重中外部技能文件知识更新重新训练模型修改文件即可知识复用无法复用跨项目共享专业性通用能力领域专家知识上下文动态生成静态知识库