Skip to content

Powers 是 Kiro 解决"上下文过载"问题的核心机制:将特定技术领域的 MCP 工具、POWER.md steering 文件和 hooks 打包成一个可按需激活的知识单元。当你提到 Stripe、Supabase 等关键词时,对应的 power 自动加载;切换到数据库话题后,前一个 power 自动卸载。这种动态加载方式让 agent 始终在精简的上下文中工作,兼顾速度与质量。

Powers 让你的 AI agent 即时获取任意技术的专业知识。每个 power 将工具、工作流和最佳实践打包成可按需激活的单元,当你提到相关关键词时自动加载对应的上下文和工具。

为什么需要 Powers

问题:上下文过载的两个极端

没有领域上下文时,agent 只能猜测。 你的 agent 能调用 Stripe API,但它知道要用幂等键吗?能查询 Neon 数据库,但了解 serverless 连接池的正确配置吗?没有内置的专业知识,你需要自己查文档、反复调整,才能得到正确结果。

但上下文太多同样有害。 连接 5 个 MCP server,agent 在写第一行代码之前就要加载 100+ 个工具定义,可能消耗超过 50,000 tokens——占据上下文窗口的 40%。更多工具理论上意味着更强能力,但杂乱的上下文会让 agent 响应变慢、输出质量下降。

Powers 的解法:动态加载

Powers 不是一次性加载所有工具,而是根据对话关键词按需激活。

当你开始一个任务,Kiro 会:

  1. 读取任务描述
  2. 将已安装的 powers 与任务内容进行语义匹配
  3. 只将相关的 powers 加载到上下文中

处理支付功能时,Stripe power 激活;切换到数据库工作时,Supabase power 激活,Stripe power 自动卸载。

Power 的组成结构

每个 power 是一个统一的知识包,包含三个核心组件:

  1. POWER.md — steering 文件,告诉 agent 有哪些 MCP 工具可用,以及何时、如何使用它们
  2. MCP server 配置 — 工具定义和连接信息
  3. Steering/Hooks(可选)— 在 IDE 事件触发时自动运行的任务,或通过斜杠命令调用的操作

以 Stripe power 为例:提及"支付"或"checkout"时,power 自动激活,将 Stripe 的 MCP 工具和 POWER.md steering 指令加载到上下文。完成支付工作转向数据库操作时,Supabase power 接管,Stripe 自动退出。

Powers 与传统 MCP 的区别

动态 MCP 工具加载:传统 MCP server 在启动时一次性加载所有工具;Powers 按需加载,在降低基础上下文占用的同时,让 agent 能够访问数十种技术的工具。

开放生态:从 Datadog、Dynatrace、Figma、Neon、Netlify、Postman、Supabase、Stripe、Strands SDK、AWS Aurora 等首批合作方的精选 powers 中选择;也可以从 GitHub URL 安装社区构建的 powers,或创建并分享自己的 powers。

一键安装:在 Kiro 内部或 kiro.dev 上浏览 powers 目录,点击 "Install" 即完成注册,无需手动编辑 JSON 配置文件,无需命令行操作。

常见问题

Q:Powers 和直接配置 MCP server 有什么本质区别?

直接配置 MCP server 是静态的——所有工具在 Kiro 启动时全量加载;Powers 是动态的——工具只在对话需要时才加载。这意味着使用 powers 时,agent 的基础上下文更干净,可以同时"安装"几十个技术领域的能力,而不用担心 token 被工具定义耗尽。

Q:可以自己创建 power 吗?

可以。Power 本质上是一个包含 POWER.md、MCP 配置和可选 hooks 的目录结构。按照 Kiro 的 power 格式创建后,可以本地使用,也可以发布到 GitHub 供社区安装。

Q:关键词匹配是精确匹配还是语义匹配?

是语义匹配,而非简单的关键词过滤。Kiro 理解任务的意图,而非仅匹配特定词汇。例如提到"处理信用卡结算流程",即使没有出现 "stripe" 字样,Stripe power 也可能被激活。