agent-plugins 插件三要素:Skills、MCP、Rules 如何协同工作
【免费下载链接】agent-plugins项目地址: https://gitcode.com/GitHub_Trending/skills16/agent-plugins
🎯 agent-plugins 是什么?三要素如何分工
agent-plugins是 Flutter 官方团队维护的 AI 编程助手插件仓库,专为 Flutter 开发场景打造。它把三类能力打包在一起,让 AI Agent 在写 Flutter 代码时更少犯错、更稳定地完成任务:
- Agent Skills:教 AI "怎么做"某个具体任务的技能说明书
- MCP:给 AI 提供专业工具(热重载、测试运行等)的通道
- Rules:定义"什么情况下自动做什么"的自动化行为规则
仓库的 README.md 中有一句点睛之笔:MCP 让 Agent 获得专用工具,而 Skill 教会 Agent "如何"为特定任务使用这些工具。三者的关系,就像"工具箱 + 使用手册 + 自动化流程"的组合拳 👇
| 要素 | 角色 | 一句话定位 | 在仓库中的位置 |
|---|---|---|---|
| Skills | 领域专家手册 | 教 Agent 如何执行特定任务 | skills/ |
| MCP | 工具箱 | 提供 hot_reload、测试等专业工具 | 由 Dart MCP 服务器提供 |
| Rules | 自动化守则 | 匹配文件时自动触发的行为 | rules/ |
📚 Skills:教 AI "如何做事"的领域专家手册
Agent Skills本质上就是一个个"技能文件夹",每个文件夹里有一份SKILL.md文件,用结构化的 Markdown 描述某个任务的完整工作流。
这个仓库内置了 20 余个技能,覆盖了 Flutter 开发的高频场景。比如:
- skills/flutter-fix-layout-issues/SKILL.md —— 修复 "RenderFlex overflowed" 等布局错误
- skills/flutter-add-widget-test/SKILL.md —— 编写组件级测试
- skills/flutter-apply-architecture-best-practices/SKILL.md —— 按推荐的 UI / Logic / Data 分层架构组织项目
- skills/flutter-setup-declarative-routing/SKILL.md —— 配置 go_router 声明式路由
以 Widget 测试技能为例,它的SKILL.md里包含:
- 前置配置清单:
flutter_test依赖、test/目录规范、_test.dart命名约定 - 核心组件说明:
WidgetTester、Finder、Matcher各自的用法 - 可勾选的任务清单(Task Progress):9 个步骤,从定义测试到运行验证,Agent 可以逐项打勾跟踪进度
- 条件分支逻辑:测静态渲染用
pump()、测动画用pumpAndSettle()、测长列表用scrollUntilVisible()
这正是 Skills 的价值所在——把"踩坑经验"和"最佳实践"沉淀成可复用的工作流,而不是每次都靠 AI 临时发挥。
📌 小技巧:每个SKILL.md的 YAML 头部都有description字段,里面写明"什么场景下使用该技能"(例如 Use when...)。Agent 正是根据这段描述来决定该加载哪个技能的。
🔌 MCP:给 AI 装上手脚的工具通道
MCP(Model Context Protocol)解决的是另一类问题:AI 只会"说话",但不会"动手"。MCP 让 Agent 能够调用专业工具,真正操作你的开发环境。
在 agent-plugins 的体系里,最核心的是Dart MCP 服务器提供的工具,例如:
hot_reload/hot_restart:对正在运行的 Flutter 应用触发热重载 / 热重启list_running_apps/vm_service:发现当前正在运行的应用实例- 测试运行、静态分析等开发工具链能力
可以这样理解分工:Skill 是"知识",MCP 是"能力"。比如修复布局错误的技能会指导 Agent 修改代码,而真正让修改"生效到屏幕上"的,是 MCP 的hot_reload工具。没有 MCP,AI 只能给你一份修改建议;有了 MCP,AI 可以直接闭环完成"改代码 → 热重载 → 验证效果"。
⚙️ Rules:无需提示也能执行的自动化守则
如果说 Skills 需要被"选中"才生效,那么Rules 是常驻的自动化行为:当匹配条件被触发时,规则自动执行,无需你额外提示。
仓库中的 rules/flutter-hot-reload.md 就是一个典型示例:
trigger: glob globs: "**/lib/**/*.dart"它的意思是:只要你(或 AI)编辑了lib/目录下的任何.dart文件,就自动触发后续动作:
- 先判断是否跳过——只改注释、文档或空白字符时不触发
- 发现并连接——用
dtd或list_running_appsMCP 工具找到正在运行的应用 - 精准选择重载方式——只改 UI /
build方法时用hot_reload(快);改了initState、全局状态或main()时用hot_restart(彻底)
💡 仓库中同时提供了 flutter-hot-reload.mdc 版本,两者内容相同,只是字段名(
trigger: globvsalwaysApply)适配不同 AI 工具的规则格式。这体现了"一份能力,多端适配"的插件设计思路。
🔄 三要素协同:一次"修 Bug"的完整旅程
单独看每个要素都容易理解,它们的威力体现在协同工作上。我们以最常见的场景为例——修复一个 "RenderFlex overflowed" 布局错误:
第 1 步|Skills 出场(知识层)你说"帮我把个人页面的溢出错误修了"。Agent 根据技能描述匹配到flutter-fix-layout-issues,加载它的SKILL.md,获得诊断手册:识别错误类型 → 按条件选择修复方案(Expanded还是Flexible)。
第 2 步|MCP 发力(能力层)Agent 修改代码后,调用hot_reload工具热重载应用,立刻看到 UI 上黄黑警告条纹消失,完成"改完即验证"。
第 3 步|Rules 兜底(自动化层)其实你甚至可以不说"重载一下"——flutter-hot-reload规则监听到lib/下的文件被修改,自动连接应用并触发热重载,全程零提示。
一句话总结协同关系:
Rules 让简单动作自动化,Skills 让复杂任务有章法,MCP 让一切真正落地执行。
🛠️ 幕后故事:Skills 是如何批量生产出来的?
这个仓库里还藏着一套"生产工具"——tool/generator/ 目录下的 Skills CLI。它的玩法是:
- 在 YAML 配置中列出每个技能要参考的官方文档 URL(如 Flutter 布局文档)
- 爬取文档内容
- 用 Gemini 大模型按照 skill_instructions.dart 中定义的"专家级写作规范"(简洁、祈使句、单文件、含任务清单)生成
SKILL.md
配套命令包括generate-skill(生成)、update-skill(增量更新)、validate-skill(校验一致性)、update-readme(自动刷新技能列表表格),详见 tool/generator/README.md。
另外,tool/sync_skills.dart 脚本负责从 Dart 官方技能仓库增量同步Dart 技能(dart-前缀)到本仓库的skills/目录,并通过 Git 提交哈希判断变化、自动递增插件版本号。这也解释了为什么skills/下既有flutter-前缀的技能,又有dart-前缀的技能。
📝 新手上手清单
- 按需使用技能:直接用自然语言描述任务(如"给 CustomButton 加一个 widget 测试"),Agent 会自动匹配最合适的 Skill
- 保持 Rules 生效:确保热重载规则文件在你的 AI 工具规则目录中生效,实现"改完即刷新"的丝滑体验
- 理解 MCP 的价值:配置好 Dart MCP 服务器后,Agent 才具备热重载、运行测试等"动手能力"
- 反馈经验:项目暂不直接接受 PR,但欢迎按 CONTRIBUTING.md 提交 Issue 反馈,附上你使用的模型、Agent 工具和运行日志
掌握Skills、MCP、Rules三要素的分工与协同,你就不再是"让 AI 碰运气",而是把 Flutter 官方团队沉淀的最佳实践,直接装进了你的 AI 工作流里 🚀
【免费下载链接】agent-plugins项目地址: https://gitcode.com/GitHub_Trending/skills16/agent-plugins
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考