缩小上下文差距:为什么MCP + Skills有效

原文链接: https://aaif.io/blog/closing-the-context-gap-why-mcp-skills-works/

深入解读 Pedro Rodrigues 在 MCP Dev Summit North America 2026 上的主题演讲

Supabase 的 AI 工具工程师 Pedro Rodrigues 对开发者社区中日益扩大的分歧提出了挑战。“人们一直在问,应该构建 MCP 服务器还是使用 Agent Skills,”Rodrigues 指出,“但这是错误的框架。它们不是竞争对手,而是工作代理(agent)的两个组成部分。”

Rodrigues 的演讲聚焦于 “上下文差距(Context Gap)”——即代理拥有执行工作的 能力(capability)(通过工具)与拥有安全、正确执行工作的 知识(knowledge)(通过上下文)之间的鸿沟。

能力 vs. 知识:解决上下文差距

Supabase 方法的核心论点是:能力不再是瓶颈,上下文才是。 虽然模型上下文协议(Model Context Protocol,MCP)提供了“方向盘”(执行 SQL、列出项目或管理 Edge Functions 的能力),但代理常常因为缺乏“驾驶课程”(程序性知识)而崩溃。

Rodrigues 通过三个核心原语映射了这种关系:

  • 工具(Tools) vs. 脚本(Scripts): MCP 工具依赖严格类型化的 JSON 模式和隔离执行。Agent Skills 则偏好“即时迭代”,允许代理动态编写并运行脚本,以解决任务的“最后一公里”。
  • 资源(Resources) vs. 参考(References): 虽然 MCP 资源允许代理读取数据,但由于代理不知道何时获取它们,这些资源往往未被充分利用。Skills 通过捆绑参考(references)——即静态文档文件,代理在特定任务触发时被明确指示加载这些文件——来解决这个问题。
  • 提示(Prompts) vs. SKILL.md: 与其依赖脆弱的系统提示,SKILL.md 标准提供了一份结构化清单,可指导代理在 18 种以上的不同编码助手(Cursor、Claude Code、GitHub Copilot)中的行为。

安全盲点:RLS “security_invoker” 案例研究

为了演示“上下文差距”的危险性,Rodrigues 现场展示了一个标准代理工作流的失败案例。

场景: 代理被要求为敏感仪表板创建一个 Postgres 视图(View)。

  • 基线代理: 依赖训练数据。它知道如何编写 CREATE VIEW 语句,但未能意识到在 Supabase 中,视图默认会绕过行级安全(Row Level Security,RLS)
  • 结果: 代理交付了一个不安全的视图,将私有用户数据暴露给了匿名角色(anon role)。

解决方案: 通过加载 Supabase Agent Skill,代理在实现代码之前被迫对照实时文档进行验证。该技能明确标记了 Postgres 15+ 对 WITH (security_invoker = true) 的要求。在演示中,配备技能的代理主动识别了安全陷阱,搜索文档,并在用户提问之前就实现了修复。

基准测试:“MCP + Skills” 对代理可靠性的影响

Supabase 进行了内部基准测试,以量化向工具执行添加程序性上下文的价值。他们在三种条件下测试了代理处理复杂数据库迁移和安全审计的能力:

  1. 基线: 无工具或技能(代理纯粹依赖预训练)。结果:高幻觉率;安全合规性为 0%。
  2. 仅 MCP: 代理可以访问 Supabase MCP 服务器,但没有技能。结果:能力高,但“猜测”工具组合。
  3. MCP + Skills: 代理同时拥有两者。结果:安全关键任务成功率为 100%。

数据显示,仅靠 MCP 是不够的。 如果没有技能来引导,仅使用 MCP 的代理常常完全忽略 search_docs 工具,默认依赖其(可能已过时的)训练数据。

渐进式披露:对抗 Token 膨胀

2026 年代理工作流的一个关键问题是 Token 饱和(token saturation)。将每一份文档都加载到 200k 的上下文窗口中成本高昂,并且会降低模型的注意力。

Rodrigues 提倡渐进式披露(Progressive Disclosure)。Supabase 技能指示代理:

  • 获取,而非复制: 使用 MCP 的 search_docs 工具仅拉取相关片段。
  • Markdown 获取: 在任何 Supabase 文档 URL 后附加 .md,即可按需获得该页面的干净、适合 LLM 的版本。
  • 分层知识: 将绝对必要的内容(如 RLS 安全检查清单)保留在 SKILL.md 中,而将深层 API 参考保留在外部文件中,仅在代理“受阻”时才打开。

资源与验证清单

准备好贡献了吗? 访问 aaif.io/projects 加入 Agentic AI 基金会,共同塑造开放代理标准的未来。更多活动即将到来,请查看 aaif.io/events 了解即将举行的活动。