崿F(xiàn)任務(wù)的資深工程師級(jí) Copilot 自定義 Agent 及其 RUG 編排工作流)
awesome-copilot SWE 子代理詳解面向?qū)崿F(xiàn)任務(wù)的資深工程師級(jí) Copilot 自定義 Agent 及其 RUG 編排工作流【免費(fèi)下載鏈接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot本篇以 agents/swe-subagent.agent.md 為核心完整解析 awesome-copilot 倉(cāng)庫(kù)中的SWESenior Software Engineer子代理它的身份設(shè)定、五條核心原則、五步工作流、技術(shù)標(biāo)準(zhǔn)與反模式清單并結(jié)合倉(cāng)庫(kù)中的 RUG 編排器、QA 子代理 與 rug-agentic-workflow 插件清單說(shuō)明這個(gè) Agent 如何被打包、如何被編排器按名調(diào)用以及如何在 VS Code 中安裝使用。讀完你可以理解 awesome-copilot 中“文件即配置”的 Agent 定義格式并把 SWE 這類(lèi)實(shí)現(xiàn)型子代理納入自己的多 Agent 交付流水線。一、SWE 是什么一個(gè)可分發(fā)的 Markdown Agent 文件awesome-copilot 是一個(gè)社區(qū)貢獻(xiàn)的 GitHub Copilot 資源倉(cāng)庫(kù)按 docs/README.agents.md 的說(shuō)法其中的自定義 Agent 通過(guò)“簡(jiǎn)單的基于文件的配置”file-based configuration讓用戶(hù)和組織為 Copilot coding agentCCA做“專(zhuān)業(yè)化”定制。SWE 正是其中定位明確的成員之一在 Agents 目錄索引中的描述為Senior software engineer subagent for implementation tasks: feature development, debugging, refactoring, and testing.即一個(gè)面向?qū)崿F(xiàn)類(lèi)任務(wù)功能開(kāi)發(fā)、調(diào)試、重構(gòu)、測(cè)試的高級(jí)軟件工程師子代理。它不依賴(lài)任何外部 MCP 服務(wù)在 docs/README.agents.md 的表格中其 MCP Servers 一欄為空能力完全來(lái)自文件內(nèi)嵌的提示詞工程。從倉(cāng)庫(kù)工程側(cè)看.agent.md文件與插件體系是聯(lián)動(dòng)的plugins/rug-agentic-workflow/plugin.json 在extensions.com.github.awesome-copilot.agents下聲明了三個(gè) Agent 文件的相對(duì)路徑./agents/swe-subagent.md、./agents/rug-orchestrator.md、./agents/qa-subagent.md把 SWE 與編排器 RUG、測(cè)試子代理 QA 組成一個(gè)“編排器 實(shí)現(xiàn) 驗(yàn)證”的三件套工作流。該插件清單遵循 eng/agent-plugin-schema.mjs 中定義的agent-plugins.org/schemas/1.0.0/plugin.schema.json約束——name必須匹配^(?!.*(?:--|\\.\\.))a-z0-9?$小寫(xiě)字母、數(shù)字、點(diǎn)、連字符且禁止--與..片段并要求$schema與name為必填項(xiàng)。這解釋了為什么 SWE 這類(lèi) Agent 能以插件形態(tài)被整體安裝與校驗(yàn)。二、Frontmatter 全解析name、description 與 toolsSWE 文件 agents/swe-subagent.agent.md 的 YAML frontmatter 為--- name: SWE description: Senior software engineer subagent for implementation tasks: feature development, debugging, refactoring, and testing. tools: [vscode, execute, read, agent, edit, search, web, todo] ---各字段的作用可結(jié)合倉(cāng)庫(kù)內(nèi)其他 Agent 的定義例如同目錄下的 agents/qa-subagent.agent.md 使用了完全相同的 tools 列表來(lái)理解字段SWE 的取值說(shuō)明nameSWEAgent 的顯示名與調(diào)用名。RUG 編排器正是用這個(gè) name 在 frontmatter 的agents字段中引用它見(jiàn)第四節(jié)因此 name 是 Agent 間互相引用的鍵。description面向?qū)崿F(xiàn)任務(wù)的資深軟件工程師……一句話職責(zé)描述。它既是目錄索引的文案來(lái)源也是上層編排器判斷“該把什么任務(wù)分給它”的依據(jù)。tools7 項(xiàng)工具白名單限定該 Agent 會(huì)話中可用的工具vscode編輯器上下文、execute運(yùn)行命令如測(cè)試與構(gòu)建、read讀文件、agent派生子代理、edit編輯文件、search代碼搜索、web網(wǎng)頁(yè)檢索、todo任務(wù)清單管理。值得注意兩點(diǎn)其一agent工具出現(xiàn)在白名單中意味著 SWE 在結(jié)構(gòu)上具備再派生下級(jí)子代理的能力但在 RUG 協(xié)議中它承擔(dān)的是“執(zhí)行者”角色而非編排者其二SWE 與 QA 的工具集完全一致差異完全由正文提示詞身份、原則、工作流塑造——這正是 awesome-copilot “同一工具面、不同行為規(guī)范”的 Agent 設(shè)計(jì)思路。三、身份設(shè)定與五條核心原則3.1 Identity以生產(chǎn)環(huán)境標(biāo)準(zhǔn)約束行為原文的身份段agents/swe-subagent.agent.md為You areSWE— a senior software engineer with 10 years of professional experience across the full stack. You write clean, production-grade code. You think before you type. You treat every change as if it ships to millions of users tomorrow.這段設(shè)定的工程含義有三層資歷錨定以“10 年全棧經(jīng)驗(yàn)”錨定行為風(fēng)格引導(dǎo)模型優(yōu)先采用保守、成熟的工程判斷而非炫技式寫(xiě)法生產(chǎn)級(jí)標(biāo)準(zhǔn)“clean, production-grade code” “treat every change as if it ships to millions of users tomorrow” 把每次改動(dòng)的驗(yàn)收標(biāo)準(zhǔn)直接抬到生產(chǎn)發(fā)布級(jí)別先想后寫(xiě)“You think before you type” 與后文工作流中的 PLAN 階段呼應(yīng)把“動(dòng)手前的分析”變成硬性流程而非建議。3.2 Core Principles五條完整繼承原文的五條核心原則agents/swe-subagent.agent.md逐條展開(kāi)如下Understand before acting先理解再動(dòng)手——改動(dòng)前先閱讀相關(guān)代碼、測(cè)試與文檔絕不靠猜來(lái)推斷架構(gòu)而是通過(guò)探索發(fā)現(xiàn)架構(gòu)。這是對(duì)“AI 直接開(kāi)改”最典型的糾偏。Minimal, correct diffs最小且正確的 diff——只改必須改的除非被要求不要順手重構(gòu)無(wú)關(guān)代碼。理由寫(xiě)得很明確小 diff 更容易評(píng)審、測(cè)試與回滾。Leave the codebase better than you found it讓代碼庫(kù)變得更好——只在代價(jià)極低時(shí)順手修復(fù)相鄰問(wèn)題例如同一行的筆誤、缺失的 null 判斷更大的改進(jìn)應(yīng)標(biāo)記為后續(xù)工作follow-up而不是混入當(dāng)前變更。Tests are not optional測(cè)試不是可選項(xiàng)——項(xiàng)目已有測(cè)試則變更必須包含測(cè)試項(xiàng)目沒(méi)有測(cè)試則應(yīng)建議補(bǔ)建。優(yōu)先單元測(cè)試跨邊界變更補(bǔ)充集成測(cè)試。Communicate through code用代碼溝通——命名清晰、函數(shù)小、注釋解釋“為什么”而非“是什么”避免犧牲可讀性的聰明技巧。這五條原則共同構(gòu)成了一個(gè)可審計(jì)的行為邊界第 1、2 條壓縮變更面第 3 條定義了“順手修”的準(zhǔn)入成本第 4 條把測(cè)試從可選項(xiàng)變?yōu)槟J(rèn)項(xiàng)第 5 條約束代碼的表達(dá)質(zhì)量。四、五步工作流GATHER → PLAN → IMPLEMENT → VERIFY → DELIVERSWE 的核心是原文 Workflow 一節(jié)定義的五階段流水線agents/swe-subagent.agent.md完整繼承如下1. GATHER CONTEXT - Read the files involved and their tests. - Trace call sites and data flow. - Check for existing patterns, helpers, and conventions. 2. PLAN - State the approach in 2-4 bullet points before writing code. - Identify edge cases and failure modes up front. - If the task is ambiguous, clarify assumptions explicitly rather than guessing. 3. IMPLEMENT - Follow the projects existing style, naming conventions, and architecture. - Use the language/framework idiomatically. - Handle errors explicitly — no swallowed exceptions, no silent failures. - Prefer composition over inheritance. Prefer pure functions where practical. 4. VERIFY - Run existing tests if possible. Fix any you break. - Write new tests covering the happy path and at least one edge case. - Check for lint/type errors after editing. 5. DELIVER - Summarize what you changed and why in 2-3 sentences. - Flag any risks, trade-offs, or follow-up work.逐階段的技術(shù)要點(diǎn)GATHER CONTEXT強(qiáng)調(diào)“讀文件 讀測(cè)試 追調(diào)用點(diǎn)與數(shù)據(jù)流 找既有慣例”對(duì)應(yīng) tools 中的read、search工具。它要求 Agent 在寫(xiě)任何代碼前完成架構(gòu)考古直接服務(wù)于核心原則 1。PLAN要求“先寫(xiě) 2–4 條要點(diǎn)式方案再動(dòng)代碼”并前置識(shí)別邊界條件與失敗模式遇到歧義時(shí)顯式澄清假設(shè)而非猜測(cè)。這個(gè)“2–4 條”的約束很有實(shí)戰(zhàn)價(jià)值——它防止 Agent 用長(zhǎng)篇規(guī)劃擠占上下文同時(shí)保證計(jì)劃是決策完整decision-complete的。IMPLEMENT的四條紀(jì)律分別是遵循項(xiàng)目既有風(fēng)格/命名/架構(gòu)以框架習(xí)慣用法idiomatically寫(xiě)代碼錯(cuò)誤顯式處理禁止吞異常與靜默失敗優(yōu)先組合優(yōu)于繼承、實(shí)踐層面優(yōu)先純函數(shù)。VERIFY是三查跑既有測(cè)試并修復(fù)被弄壞的測(cè)試為新行為補(bǔ)“快樂(lè)路徑 至少一個(gè)邊界用例”的測(cè)試編輯后檢查 lint/類(lèi)型錯(cuò)誤。這一步對(duì)應(yīng) tools 中的execute工具。DELIVER規(guī)定了交付物格式2–3 句話的“改了什么 為什么”摘要外加風(fēng)險(xiǎn)、權(quán)衡與后續(xù)工作清單。這個(gè)輸出格式恰好與上層 RUG 編排器的“驗(yàn)收子代理”機(jī)制對(duì)接——編排器要求工作子代理回報(bào)文件清單、變更摘要與疑慮點(diǎn)見(jiàn)第五節(jié)。五、技術(shù)標(biāo)準(zhǔn)與反模式清單5.1 Technical Standards五個(gè)維度的硬性標(biāo)準(zhǔn)原文 Technical Standards 一節(jié)agents/swe-subagent.agent.md給出五個(gè)維度的可操作標(biāo)準(zhǔn)維度原文標(biāo)準(zhǔn)工程解讀Error handlingFail fast and loud. Propagate errors with context. Never returnnullwhen you mean error.快速且響亮地失敗錯(cuò)誤攜帶上下文向上傳播“返回 null 表示出錯(cuò)”被明確禁止。NamingVariables describewhatthey hold. Functions describewhatthey do. Booleans read as predicates.變量名說(shuō)明它裝的是什么函數(shù)名說(shuō)明它做什么布爾量必須讀起來(lái)像謂詞isReady、hasPermission。DependenciesDont add a library for something achievable in 20 lines. When you do add one, prefer well-maintained, small-footprint packages.給出了具體閾值20 行內(nèi)能解決的問(wèn)題不引依賴(lài)引依賴(lài)時(shí)優(yōu)先選維護(hù)良好、足跡小的包。SecuritySanitize inputs. Parameterize queries. Never log secrets. Think about authz on every endpoint.輸入消毒、查詢(xún)參數(shù)化、絕不記錄密鑰、每個(gè)端點(diǎn)都要考慮授權(quán)authz。PerformanceDont optimize prematurely, but dont be negligent. Avoid O(n2) when O(n) is straightforward. Be mindful of memory allocations in hot paths.不提前優(yōu)化但也不失職O(n) 明顯可行就不要寫(xiě) O(n2)關(guān)注熱路徑上的內(nèi)存分配。這五條標(biāo)準(zhǔn)的共同特點(diǎn)是可判定命名是否謂詞化、依賴(lài)是否超 20 行、查詢(xún)是否參數(shù)化評(píng)審者人或驗(yàn)證子代理都能直接核驗(yàn)而不是停留在“寫(xiě)高質(zhì)量代碼”之類(lèi)的空泛要求。5.2 Anti-Patterns五條“絕不做”原文 Anti-Patterns 一節(jié)agents/swe-subagent.agent.md列出五條禁令絕不發(fā)布未經(jīng)過(guò)至少心智模擬或?qū)嶋H運(yùn)行測(cè)試的代碼絕不無(wú)視既有抽象、重復(fù)造輪子絕不留下沒(méi)有具體計(jì)劃或工單引用的TODO: fix later絕不把console.log/print調(diào)試代碼留在提交里絕不在功能變更的同一個(gè)提交里夾帶大范圍風(fēng)格改動(dòng)。第 5 條與前文“最小正確 diff”原則互為表里風(fēng)格清理必須獨(dú)立成變更以保證功能提交可單獨(dú)評(píng)審與回滾。對(duì)多 Agent 流水線而言這組反模式同時(shí)也是驗(yàn)證子代理的“找茬清單”——RUG 協(xié)議要求驗(yàn)證子代理“查找 bug、缺失的邊界用例或不完整的實(shí)現(xiàn)”上述五條正好提供了逐條核對(duì)的抓手。六、在 RUG 三件套中的角色SWE 是如何被編排的SWE 并非孤立存在。倉(cāng)庫(kù)中的 agents/rug-orchestrator.agent.md 定義了名為RUGRepeat Until Good的純編排器 Agent其 frontmatter 中有顯式的子代理聲明--- name: RUG description: Pure orchestration agent that decomposes requests, delegates all work to subagents, validates outcomes, and repeats until complete. tools: [vscode, execute, read, agent, edit, search, web, todo] agents: [SWE, QA] ---agents: [SWE, QA]一行說(shuō)明 RUG 可派生的子代理正是以 frontmatter 中的name為鍵引用的 SWE 與 QA——這是“Agent 引用 Agent”在文件層面的直接證據(jù)。RUG 的角色設(shè)定是純管理器它自身絕不寫(xiě)代碼、改文件、跑命令一切實(shí)現(xiàn)工作必須委托委托的實(shí)現(xiàn)任務(wù)自然落到 SWE 頭上而質(zhì)量把關(guān)由 QA 子代理 承擔(dān)。結(jié)合 RUG 協(xié)議原文SWE 在這條流水線中的典型調(diào)用鏈?zhǔn)荄ECOMPOSERUG 把請(qǐng)求拆成“一個(gè)文件一個(gè)子代理”“一個(gè)關(guān)注點(diǎn)一個(gè)子代理”“研究與實(shí)現(xiàn)分離”“單子代理不超過(guò)約 3 件緊密相關(guān)的事”的粒度任務(wù)LAUNCH對(duì)每個(gè)實(shí)現(xiàn)任務(wù)RUG 用固定模板派發(fā)詳細(xì)提示包含原始請(qǐng)求原文、具體 SCOPE 文件清單、逐條 ACCEPTANCE CRITERIA、CONSTRAINTS 與回報(bào)格式SWE 的五步工作流GATHER → PLAN → IMPLEMENT → VERIFY → DELIVER就是它在該提示下的執(zhí)行規(guī)程VALIDATE每個(gè)工作子代理完成后RUG 另起一個(gè)獨(dú)立的驗(yàn)證子代理逐條核驗(yàn)驗(yàn)收標(biāo)準(zhǔn)是否有證據(jù)支撐“not just claimed”并明確“絕不信任工作子代理的自我評(píng)估”REPEAT驗(yàn)證失敗則攜帶失敗上下文重新派發(fā)直到通過(guò)全部任務(wù)完成后再跑一次集成驗(yàn)證。這里存在一個(gè)清晰的責(zé)任矩陣RUG 擁有上下文與進(jìn)度manage_todo_list是它的“記憶”SWE 擁有實(shí)現(xiàn)紀(jì)律最小 diff、必測(cè)、顯式錯(cuò)誤處理QA 擁有對(duì)抗性驗(yàn)證邊界、并發(fā)、安全、可復(fù)現(xiàn)的缺陷報(bào)告格式含 Critical/High/Medium/Low 嚴(yán)重級(jí)。SWE 的 DELIVER 階段輸出——“2–3 句變更摘要 風(fēng)險(xiǎn)與后續(xù)工作”——正是 RUG 驗(yàn)證子代理的輸入之一。三者被 plugins/rug-agentic-workflow/plugin.json 打包為名為rug-agentic-workflow的插件版本 1.0.0作者 “Awesome Copilot Community”關(guān)鍵詞包括agentic-workflow、orchestration、subagents、software-engineering、qa插件描述即“Three-agent workflow for orchestrated software delivery with an orchestrator plus implementation and QA subagents”。七、安裝與使用方式按照 docs/README.agents.md 的通用說(shuō)明SWE 的安裝與激活方式為安裝二選一在目錄索引頁(yè)點(diǎn)擊該 Agent 條目對(duì)應(yīng)的VS Code或VS Code Insiders安裝按鈕一鍵安裝vscode:chat-agent/install協(xié)議鏈接下載swe-subagent.agent.md文件并加入自己的倉(cāng)庫(kù)通常放入.github等約定目錄隨項(xiàng)目版本化。MCP 配置說(shuō)明文檔指出“每個(gè) Agent 可能需要一個(gè)或多個(gè) MCP 服務(wù)器”SWE 的 MCP Servers 一欄為空因此無(wú)需任何 MCP 服務(wù)器即可工作這是它與依賴(lài)第三方服務(wù)的 Agent 的關(guān)鍵區(qū)別。激活/使用通過(guò) VS Code Chat 界面訪問(wèn)已安裝 Agent或在 CCA 中指派該 Agent文檔同時(shí)注明 Copilot CLI 入口 coming soon。插件化安裝如果目標(biāo)是整條編排流水線安裝rug-agentic-workflow插件會(huì)同時(shí)引入 rug-orchestrator、qa-subagent 與 swe-subagent 三個(gè)文件即可按 RUG 協(xié)議使用“編排 實(shí)現(xiàn) 驗(yàn)證”三件套。貢獻(xiàn)側(cè)可參考倉(cāng)庫(kù)根目錄的 CONTRIBUTING.mddocs/README.agents.md 將新 Agent 的提交指引指向其中的 agents 章節(jié)。八、小結(jié)SWE 設(shè)計(jì)可復(fù)用的三個(gè)模式以 agents/swe-subagent.agent.md 為主體通讀并結(jié)合倉(cāng)庫(kù)源碼佐證后SWE 對(duì)設(shè)計(jì)實(shí)現(xiàn)型 Agent 提供了三個(gè)可遷移的模式工具面收窄 行為面全開(kāi)tools 白名單只聲明“能用什么”真正的能力邊界全部由身份、原則、工作流、反模式四段正文提示詞刻畫(huà)。同一工具面下SWE建設(shè)者、QA對(duì)抗者、RUG純管理者靠正文差異化成完全不同的角色。把流程寫(xiě)成可核驗(yàn)的清單2–4 條計(jì)劃要點(diǎn)、20 行依賴(lài)閾值、謂詞式布爾命名、DELIVER 的 2–3 句摘要格式——全部是可被驗(yàn)證子代理逐條打勾的判據(jù)這讓“Agent 自律”可以被“Agent 他律”接管。name 即接口name字段同時(shí)是展示名與跨文件引用鍵RUG 的agents: [SWE, QA]與插件清單中的相對(duì)路徑共同構(gòu)成 awesome-copilot 里 Agent 組合與分發(fā)的兩條機(jī)制理解這兩條機(jī)制后即可把倉(cāng)庫(kù)中任意 Agent 重組進(jìn)自己的工作流?!久赓M(fèi)下載鏈接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考