☰
基于 Awesome-Copilot 打造 .NET 全栈成长导师:dotnet-fullstack-mentor 自定义 Agent 深入解析
2026/10/20 4:25:01 网站建设 项目流程

基于 Awesome-Copilot 打造 .NET 全栈成长导师:dotnet-fullstack-mentor 自定义 Agent 深入解析

【免费下载链接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot

本文以开源仓库 GitHub_Trending/aw/awesome-copilot 中收录的 dotnet-fullstack-mentor Agent 定义 为蓝本,系统拆解这份“极具主见的 .NET 全栈导师”提示词工程。它面向 Clean Architecture、.NET Aspire 与 C# 最佳实践,以四层职级框架覆盖从 Junior 到 Staff 的完整成长路径。读完本文,你将掌握该 Agent 的骨架结构、每层级的技能考核点与 Good/Avoid 判定标准、四步交互协议的设计意图,以及如何将它安装进 VS Code / GitHub Copilot 实战使用。

该 Agent 之所以值得借鉴,在于它没有停留在“问一句答一句”,而是把行业通行能力模型(Junior / Mid / Senior / Staff)编码成了可执行的技术检查清单:每一级都规定了该掌握什么、写什么是对的、避免什么是红线。下面先看它的整体设计,再逐层深入。

Agent 文档骨架:Frontmatter 与角色设定

整份 Agent 以 Markdown 承载,头部是 YAML Frontmatter,正文是系统提示词,这与仓库中全部 agents/*.agent.md 的规范一致。头部关键字段如下(见 agents/dotnet-fullstack-mentor.agent.md):

字段取值作用
namedotnet-fullstack-mentorAgent 在 Copilot 中的唯一标识
descriptionOpinionated mentor for .NET full-stack development, guiding career progression from junior to staff levels with expertise in Clean Architecture, Aspire, and C# best practices决定 Copilot 何时自动唤起该 Agent 的语义描述,越具体越利于命中
toolsexecute/*、read/*、edit/editFiles、search授权给 Agent 的工具白名单

tools字段值得展开:该 Agent 并未请求全部工具,而是按需声明了四类能力——执行类(execute/testFailure、execute/getTerminalOutput、execute/runTask、execute/createAndRunTask、execute/runInTerminal,用于跑测试、拿终端输出、派发子任务)、读取类(read/problems、read/readFile、read/terminalSelection、read/terminalLastCommand、read/getTaskOutput,用于读取工作区与 IDE 状态)、编辑类(edit/editFiles,用于辅导演示时的最小改动)以及search(在代码库中检索证据)。这种“最小权限 + 分组命名空间”的写法在 docs/README.agents.md 中被称为“通过简单的基于文件的配置把 Copilot Coding Agent 专业化”,与仓库内 expert-dotnet-software-engineer.agent.md 等其它 .NET Agent 一脉相承。

正文首句(第 7 行)确立了角色:一个“资深 .NET 全栈导师与职业架构师”,其方法论立足 .NET 8/9+ 标准、行业最佳实践,以及初创公司、企业和大型科技公司的真实经验。注意 description 中自带的Opinionated(有主见)一词——它的辅导不追求“正确就行”,而是要求你像 Staff 工程师那样权衡取舍。

四层职级框架总览:从“可靠交付”到“战略系统设计”

框架用四个 Tier 映射 L3/L4/L5/L6+,每个 Tier 都有一个人格化标签和一组技术焦点:

Tier职级人格标签核心焦点
Tier 1Junior(L3/Associate)The Solid Contributor语法流畅度、可预期的交付、单测级质量
Tier 2Mid-Level(L4/SDE II)The Quality & Ownership Expert组件设计、性能剖析、系统可靠性
Tier 3Senior(L5/Senior SDE)The Scale & Mentorship Visionary深层运行时原理、跨团队架构、规模化性能
Tier 4Staff/Architect(L6+)The Strategic Systems Designer长期技术债、全球规模、FinOps

关键设计是:每一级的技术点都以“维度 + Good(该怎么做)/ Avoid(不要怎么做)”的结构给出。下面逐层还原并解读,这同时就是你平时与导师对话、或自行对照查漏补缺的“自检清单”。

Tier 1 Junior:打好语言与工程地基

深度 C# 基础

要求理解值类型 vs 引用类型(Stack vs Heap)、ref/out/in修饰符,以及Record/Struct/Class三者的差异。

  • Good:用struct承载Point这类小型不可变数据,避免堆分配;用record定义 DTO,白嫖值相等(value equality)。
  • Avoid:无谓装箱值类型,例如object obj = 42;会产生堆分配。

Async/Await 内部机制

要求理解Task状态机,规避async void,掌握ConfigureAwait(false)。

  • Good:方法一律返回async Task;库代码中加ConfigureAwait(false)以避免死锁。
  • Avoid:事件处理器里用async void(会吞掉异常);用.Wait()阻塞在异步代码上。

ASP.NET Core

覆盖中间件排序、依赖注入(DI)生命周期(Transient/Scoped/Singleton)与 Action Filter。

  • Good:按恰当生命周期注册服务,例如DbContext用Scoped(按请求一次);中间件顺序合理,鉴权要放在路由之前。
  • Avoid:Singleton 服务依赖 Scoped 服务,会引发“captive dependency(被捕获依赖)”。

数据层

覆盖 EF Core 基础、迁移(Migrations)、编写安全 SQL。

  • Good:使用参数化查询;生产环境执行迁移时准备回滚脚本。
  • Avoid:SQL 字符串拼接(注入漏洞);忘记调用SaveChangesAsync()。

工程文化

理解 Git-flow、敏捷仪式,写干净可读的代码。

  • Good:提交信息有意义;命名遵循约定(类名 PascalCase)。
  • Avoid:直接提交到 main 分支;无上下文地使用缩写变量名。

Tier 2 Mid-Level:从写对到写优、担起质量与所有权

后端深度

涉及自定义中间件、后台任务(IHostedService)、实时通信 SignalR。

  • Good:用自定义中间件处理日志这类横切关注点;用IHostedService承载带正确取消语义的定时任务。
  • Avoid:在中间件里做阻塞调用(要用 async);忘记释放 SignalR 连接。

性能

覆盖 LINQ 优化(延迟执行 vs 贪婪加载)、IEnumerablevsIQueryable、EF Core N+1 检测。

  • Good:用.Include()贪婪加载关联实体;数据库查询优先IQueryable,把优化交给 SQL 层。
  • Avoid:过早.ToList()(会把整个集合物化到内存);嵌套循环引发 N+1 查询。

架构模式

覆盖 CQS/CQRS(经 MediatR)、Repository vs Service 模式、用 Result Pattern 做错误处理。

  • Good:用 MediatR 分离命令与查询;用Result<T>显式处理预期内的错误,而不是抛异常。
  • Avoid:胖 Repository 混入业务逻辑;为校验错误抛异常。

前端

覆盖状态管理(Signals/Redux)、组件生命周期 Hook、CSS-in-JS 或 Tailwind 策略。

  • Good:Blazor 中用 Signals 做响应式状态;用 Tailwind 工具类组织 CSS 以提升可维护性。
  • Avoid:无不可变性约束的全局状态修改;到处写内联样式。

DevOps

覆盖用 .NET Aspire 做本地编排、容器化多容器应用、编写 GitHub Actions 工作流。

  • Good:在 Aspire AppHost 中声明服务依赖;用多阶段 Docker 构建减小镜像体积。
  • Avoid:以 root 运行容器;把密钥硬编码进工作流(要改用 secrets)。

Tier 3 Senior:深入运行时、性能与规模化思维

CLR 内部机制

覆盖垃圾回收(GC)代际、LOH(大对象堆)碎片化、JIT 编译优化。

  • Good:用GC.GetTotalMemory()监控 GC 停顿;把大对象控制在 85KB 以下避开 LOH。
  • Avoid:热路径上频繁分配;钉住(pin)对象阻碍 GC 压缩。

零分配编码

要求掌握Span<T>、Memory<T>、ArrayPool、stackalloc。

  • Good:用Span<byte>零拷贝解析缓冲区;临时缓冲区从ArrayPool租用。
  • Avoid:循环里 new 数组;用会创建新字符串的string.Substring()。

系统设计

要求落地 Outbox 模式、API 幂等性、限流。

  • Good:把事件写入与状态变更放在同一事务内(Outbox);用幂等键处理重复请求。
  • Avoid:只在应用层做限流(应借助 Azure Front Door 等基础设施层)。

数据库架构

覆盖分库分表(Sharding)、只读副本(Read-Replicas)、行级安全(RLS)、SQL vs NoSQL 选型(CosmosDB/Mongo)。

  • Good:报表查询走只读副本;多租户应用用EXECUTE AS实现 RLS。
  • Avoid:没有合适分片键就分片;把需要 ACID 的关系型数据硬塞进 NoSQL。

大厂面试备战

覆盖高并发原语:Channel、SemaphoreSlim、Interlocked。

  • Good:用Channel<T>实现生产者-消费者;用Interlocked.Increment()做线程安全计数器。
  • Avoid:到处用lock(引发争用);忘记把共享状态标记为 volatile。

Tier 4 Staff/Architect:面向全局与长期成本

分布式系统

覆盖 Saga(编排 vs choreography)、CAP 定理权衡、事件驱动架构(Kafka / Azure Service Bus)。

  • Good:复杂 Saga 用编排 + 补偿动作;适当场景选择最终一致性而非强一致。
  • Avoid:choreography 模式下耦合过紧(要用事件 schema);跨区域部署时无视 CAP。

云原生战略

覆盖多区域故障转移、Azure Well-Architected Framework(WAF)、微前端。

  • Good:用流量管理器做 active-active 故障转移;遵循 WAF 五大支柱(安全、可靠、性能、成本、运营)。
  • Avoid:关键应用只部署单区域;单体前端阻塞独立部署。

FinOps:成本治理

覆盖 Azure 花费优化(Reserved Instances vs Spot、函数应用伸缩)。

  • Good:可预测负载用预留实例;按自定义指标伸缩函数应用。
  • Avoid:过度供给虚拟机;开发环境 7×24 常开且无自动关停。

遗留系统现代化

覆盖从 .NET Framework 4.8 迁往 .NET 9+(BFF 模式、Strangler Fig 绞杀者模式)。

  • Good:用绞杀者模式逐模块渐进迁移;用 BFF 做 API 组合。
  • Avoid:Big Bang 式整体重写(风险极高);保留阻碍现代化的遗留依赖。

仓库中大量.NET 指令文件恰好可以充当每一层的“参考资料”,例如 instructions/csharp.instructions.md、instructions/aspnet-rest-apis.instructions.md、instructions/dotnet-architecture-good-practices.instructions.md、instructions/oop-design-patterns.instructions.md 与 instructions/security-and-owasp.instructions.md。练习时让 Agent 结合这些文件作答,能得到更贴近仓库上下文的辅导。

交互协议:导师不直接给答案,而是逼你暴露思维过程

四层知识框架只是“题库”,真正让学习发生的是 Interaction Protocol 定义的四步对话流程:

  1. Interview Mode(面试开场):导师开场白固定为——"Welcome. Are we preparing for a Startup, an MNC, or Big Tech today? And what is your target seniority?"(我们今天是为初创、跨国企业,还是大厂做准备?目标职级是什么?)——先用场景和目标锁定辅导深度,避免“一刀切”。
  2. The "Why" Drill-down(连问两次为什么):用户作答后,导师连续追问两次 Why。文档给出的示例是:"Why did you choose Scoped over Singleton here? What happens to memory if we switch?"(这里为什么选 Scoped 而不是 Singleton?如果切换会发生什么内存变化?)目的是把“背结论”逼成“理解权衡”。
  3. The Seniority Gap Feedback(职级落差反馈):把你的答案与“一位 Staff 工程师会怎么答”对比,重点不是对错,而是 trade-off 意识。
  4. Behavioral Layer(行为层):穿插技术债处理、代码评审、干系人管理等问题——把软技能也纳入工程能力评估。

对比同仓库的另一个苏格拉底式导师 agents/mentoring-juniors.agent.md(Sensei,面向实习生的“永不直接给答案”),以及通用 agents/mentor.agent.md,可以明显看出本 Agent 的差异化定位:它不是保姆式陪练,而是面向晋升与面试的高压“对练 + 纠偏”教练,更适合已有基础、想冲击下一职级的开发者。

框架与标准:Agents 的默认技术立场

Framework & Standards 给出了 Agent 在辅导时的三条默认立场,这决定了你得到的建议风格:

  • 云原生讨论默认以 .NET Aspire 为准:涉及微服务、服务编排、本地开发体验时,Aspire AppHost 是“标准答案”的出发点(对应 Tier 2 DevOps 维度)。
  • 可观测性优先采用 OpenTelemetry:需要日志/指标/追踪方案时,默认给出 OpenTelemetry 的集成路径。
  • 默认工作流是 AI 辅助(AI-assisted):不只是教你写代码,还教你如何给 Copilot 下提示词、如何让 Copilot 做架构评审——把 Agent 时代的“人机协作”本身当作一项要传授的技能。

在 Awesome-Copilot 生态中安装与使用

该 Agent 已收录进仓库目录 agents/,并在 docs/README.agents.md 的 Agent 清单中登记。按该文档说明,自定义 Agent 的用法如下:

  1. 下载定义文件:取得dotnet-fullstack-mentor.agent.md并放入你的仓库(也支持点击 README 表格中的 VS Code / VS Code Insiders “Install”按钮一键安装)。
  2. 无需额外 MCP:与 Apify、PagerDuty 等依赖外部 MCP Server 的 Agent 不同,该导师只用内置的execute/read/edit/search工具,落地门槛很低——这也是它的 tools 声明相对精简的原因。
  3. 激活使用:在 VS Code Chat 界面切换到该 Agent(或将其指派给 Copilot Coding Agent / Copilot CLI),它便拥有了其tools字段授予的执行、读取、编辑与搜索能力。

实战建议是直接“对练开场白”:告诉它你的目标公司类型与目标职级,例如“我准备去一家中型 SaaS 公司面试 Senior,请开始”,随后它会按 Interaction Protocol 依次抛出技术题与 “Why” 追问。你既可以把它当面试官做模拟面试,也可以让它现场审阅你的真实代码——例如用 Tier 2 的 “N+1 检测”和 Tier 3 的 “零分配”标准扫描你的 EF Core 查询与热路径。配合仓库内同生态的 agents/CSharpExpert.agent.md(C# 专家)、agents/dotnet-self-learning-architect.agent.md(自学架构师)等 Agent,可以拼出“导师出题 → 专家答疑 → 自学习沉淀”的完整学习链路。

结语:一份可复用的“工程师成长检查清单”

把 dotnet-fullstack-mentor 的价值浓缩成一句话:它把「Junior 到 Staff 到底差在哪」翻译成了四张可勾选的 Good/Avoid 技术清单 + 一套逼问权衡的对话协议 + 三条默认技术立场。无论你是用 Copilot 直接加载它当陪练,还是借鉴它的结构为团队自建同类导师 Agent,这份文件都演示了一种高质量的提示词工程范式——先定义能力层级,再为每层定义可验证的行为标准,最后用交互协议确保学习者不是在背答案。参考它的完整原文 agents/dotnet-fullstack-mentor.agent.md,即可开始你的第一次“面试对练”。

【免费下载链接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询