场景驱动:为编码 Agent 搭配 Prompt、Skills 和 MCP
上一篇聊了 Prompt、Skills 和 MCP 的概念,但理论归理论,真到了实际开发中,面对不同的任务场景,这三样东西到底该怎么配?
我在实践中摸索出一个核心思路:场景驱动,分层设计。没有万能配置,只有最适合当前场景的组合。
三条设计原则
在聊具体场景之前,先说三条我总结的原则,它们会贯穿后面所有的配置决策。
Prompt 求稳。 System Prompt 是 Agent 的宪法,关注的是"成为谁"而不是"做什么"。它应该高度通用和稳定,不要为了某个小任务频繁改动。
Skills 求活。 所有面向具体任务的知识、流程、最佳实践,都应该封装成独立的 Skill。像乐高积木一样,需要什么能力就拼什么模块。
MCP 按需。 MCP 不是每个场景都需要的。只有当任务涉及超大代码库、跨会话状态保持、或者需要调用外部服务时,才值得启用。
场景一:从零开发新项目
从一张白纸开始构建应用,比如一个 React 待办事项 App。
Prompt 方面,我会把 Agent 定义为"资深全栈工程师",植入代码质量意识——"编写可维护的组件化代码"、"禁止硬编码敏感信息"这类准则。
Skills 方面,这是最需要精心挑选的部分。我通常会加载这几个:
- 组件脚手架 Skill:提供创建 React 组件的标准模板
- 状态管理 Skill:指导如何正确使用 Redux 等状态库
- API 集成 Skill:封装 Axios 请求、响应处理和错误捕获的模式
- 样式 Skill:常用 TailwindCSS 工具类的速查表
MCP 方面,项目初期代码量小,完全不需要。等项目规模上来了,再把代码库索引到 MCP,方便 Agent 做全局的依赖分析。
场景二:重构现有代码
把一个臃肿的"上帝函数"拆成多个职责单一的小函数,这种活儿对 Agent 的要求很高。
Prompt 要强调设计原则。我会把 Agent 设定为"代码质量与重构专家",核心准则是严格遵循 SOLID、DRY 原则,并且"重构前后所有单元测试必须通过"。我还会要求它提交重构前后的代码对比和逻辑说明。
Skills 方面,我会加载三个关键技能包:
- 代码坏味道检测 Skill:包含长函数、重复代码、过大的类等常见问题的识别方法
- 重构手法 Skill:提供提取函数、内联变量等核心重构手法的代码范例
- 单元测试 Skill:指导如何为重构模块编写全面的测试,这是安全重构的基石
MCP 在这个场景下是必须的。必须把整个代码库加载进去,Agent 才能做全局影响分析——改了一个函数,不会把别的地方搞崩。
场景三:修复 Bug
修 Bug 考验的是逻辑推理和系统性排查能力。比如"用户点了删除按钮,列表没刷新"这种问题。
Prompt 方面,我会把 Agent 塑造成"经验丰富的调试工程师",强调像侦探一样细致和严谨。核心准则是"先读代码再动手,不要瞎猜",并固化一套标准调试流程:复现 → 假设 → 验证 → 修复 → 补测试。
Skills 方面,根据 Bug 类型按需加载:
- 通用调试技巧 Skill:断点、日志、堆栈分析等基本功
- 浏览器开发者工具 Skill:针对前端 Bug,指导检查网络请求、DOM 变化、控制台错误
- Git Bisect Skill:对于回归性 Bug,用二分查找法定位引入问题的提交
MCP 推荐使用。把 Bug 报告、错误日志、复现步骤等信息存入 MCP,给 Agent 提供最完整的"案发现场"。
场景四:编写技术文档
让 Agent 把复杂的代码逻辑转化成清晰易懂的文档。
Prompt 定义为"技术文档工程师",强调清晰、准确、简洁。核心要求是文档必须结构完整——功能概述、参数列表、返回值说明、使用示例,一个都不能少。
Skills 方面:
- API 文档模板 Skill:提供可直接填空的 Markdown 模板,确保风格统一
- 代码转文字 Skill:教 Agent 如何用打比方、分步骤的方式,把复杂逻辑讲清楚
MCP 同样是必须的。Agent 需要完整阅读源码的内部实现和边界条件,才能写出有深度的文档,而不是对着函数签名做简单翻译。
总结
回头看这四个场景,规律很明显:Prompt 始终稳定地定义身份和原则,Skills 根据任务灵活切换,MCP 则视信息量和复杂度按需启用。
没有一劳永逸的最佳配置。找到适合当前场景的组合,才是用好编码 Agent 的关键。
评论区
评论基于 GitHub Discussions,请使用 GitHub 账号登录后评论。 如果评论区未加载,请先到 giscus.app 配置你的仓库。