Skill、Subagent 与 Agent 究竟是什么?从一个月度总结实战谈 AI 原生架构
内容提要
本文以“每月自动统计仓库变化并生成月报”为例,解释AI原生架构中Agent、Subagent和Skill的区别:Skill是静态操作指南和工具脚本,Subagent是独立上下文的专职子智能体,主Agent负责调度。通过Skill+Subagent协同,避免上下文污染,提升效率。Subagent既有运行态实体,也有静态配置持久化。设计时,静态流程写成Skill,复杂任务定义Subagent,主Agent保持轻量调度。
延伸解读
上下文隔离是 Subagent 的核心价值
文章指出,主 Agent 直接处理大量日志和 diff 会污染上下文,导致 Token 消耗激增和“遗忘”。Subagent 通过独立上下文空间运行,避免主对话被中间数据干扰,这是其存在的关键理由。实际工程中,Subagent 的运行态实体(如推理日志)会保存在本地磁盘,而配置可通过 AGENTS.md 等文件持久化,实现项目级复用。
Skill 与 Subagent 的分工原则
作者提出三分法:静态流程、规范、脚本写成 Skill,存入 skills/ 目录;需要大量上下文或专业角色设定的任务定义为 Subagent;主 Agent 保持轻量,专注调度。这一原则有助于开发者设计 AI 原生系统时避免职责混淆,提升可维护性和效率。
Subagent 的持久化方式
Subagent 并非仅存在于内存,它既有运行态实体(独立进程和日志),也有静态配置(如 AGENTS.md)。动态注册仅对当前会话有效,而静态配置可随仓库持久化,便于团队共享和自动加载。理解这一点对工程落地至关重要,可避免重启后配置丢失的问题。
Q&A
Agent、Subagent 和 Skill 有什么区别?
Agent 是全局控制中枢,负责响应用户输入和任务调度;Subagent 是动态派生的独立 LLM 线程或会话,专注解决单一复杂子任务,拥有完全隔离的上下文;Skill 是静态的指令集、规范文件和可执行脚本,没有上下文,被读取和调用。
为什么需要 Subagent?直接让主 Agent 处理不行吗?
直接让主 Agent 处理复杂任务会导致上下文严重污染,因为大量日志和文件变更会塞满主对话窗口,增加 Token 消耗,甚至导致主 Agent 遗忘上下文。Subagent 拥有独立上下文空间,可以隔离噪音,提升效率和准确性。
Subagent 是保存在内存里的概念还是真正的代码实体?
Subagent 既有运行态实体,也有静态配置持久化。运行态时,系统会为其建立独立的进程和存储路径,例如推理过程保存在本地磁盘的 transcript.jsonl 文件中;静态配置可以通过动态注册(会话级)或写入项目配置文件(如 AGENTS.md)实现持久化。
如何设计一个自动生成仓库月报的 AI 原生架构?
采用 Skill + Subagent 协同架构:首先创建 Skill 目录,包含 SKILL.md 操作指南和 Python 脚本用于提取 Git 数据;然后定义 Subagent(如 repo_monthly_reporter),主 Agent 通过 invoke_subagent 派发任务;Subagent 在独立上下文中加载 Skill、运行脚本、生成报告并返回结果。
在 AI 原生开发中,何时应该使用 Skill,何时应该使用 Subagent?
静态的操作流程、代码规范、文档模板和工具脚本应写成 Skill;需要大量上下文消耗、并发处理或特定专业角色的任务应定义为 Subagent;主 Agent 保持轻量,负责顶层任务拆解和调度。
Skill 和 Subagent 在上下文方面有何不同?
Skill 没有上下文,它是被读取的文件和调用的工具;Subagent 拥有完全隔离的独立上下文空间,不受主对话噪音干扰;主 Agent 包含与用户对话的全部主历史。