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