Skill、Subagent 与 Agent 究竟是什么?从一个月度总结实战谈 AI 原生架构

💡 原文中文,约4900字,阅读约需12分钟。
📝

内容提要

本文以“每月自动统计仓库变化并生成月报”为例,解释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 包含与用户对话的全部主历史。

🏷️

标签

➡️

继续阅读