Agent的Skill内容过大会造成上下文污染吗?
1 个回答
首先你要快乐,其次都是其次。木兰会,但本质不是 Skill 数量多,而是**同时暴露、常驻上下文的 Skill 内容过多、过长或边界相似**,从而造成上下文污染。 ## 作用 Skill 是 Agent 的特定任务能力包,例如代码审查、日志分析、部署、文档处理等。合理的 Skill 设计可以增强 Agent 的任务执行能力,但不应把所有流程、规则、模板一开始都塞进系统 Prompt。 Skill 通常可分为三层: - **入口信息 metadata**:如 `name`、`description`、`when_to_use`,用于让模型判断何时调用。 - **执行说明 instructions**:如具体流程、检查清单、操作步骤,只有命中任务时才加载。 - **资源文件 resources**:如脚本、模板、示例、参考文档,需要更细节时再访问。 推荐采用 **progressive disclosure(渐进式披露)**:默认只暴露轻量入口,执行时再读取 `SKILL.md`,更复杂的资源按需加载。 ## 原理 过大的 Skill 内容会通过以下机制造成上下文污染: - **Listing 截断** - Skill 的 `description`、`when_to_use` 等入口信息存在长度预算。 - 描述过长时,关键触发词可能被截断或排到后面。 - 结果是 Skill 虽然已安装,但模型看到的入口不完整,导致该触发时不触发。 - **Context Rot / 注意力稀释** - 上下文窗口不是无限免费仓库;输入越长,模型对信息的稳定利用能力可能下降。 - 冗长的 Skill 说明、无用工具输出、失败尝试和过时中间结论会稀释模型注意力。 - Skill 被调用后,其渲染内容可能在后续对话中持续存在,带来持续 token 成本和干扰。 - **相似 Skill 冲突** - 如果多个 Skill 的描述过于接近,例如都写“处理 PDF”,模型会难以选择。 - 边界模糊会造成误调用、该用的 Skill 不触发,或多个 Skill 的规则互相冲突。 ## 结论 Skill 内容过大确实可能造成上下文污染。正确原则是: - **系统 Prompt 管长期原则**,如角色边界、安全规则、输出风格。 - **Skill 管特定任务流程**,保持入口清晰、正文简洁。 - **Resources 管长模板、脚本和详细资料**,按需加载。 - 默认不要让所有 Skill 进入主上下文,只在任务匹配时加载必要内容。发布于 2026-10-26 12:19 •IP属地 宁夏举报评论收藏
公众号进入网站体验更佳

