
文章目录GitHub Copilot Harness工作流技术解析用单一工具完成原型、规划、实现与代码审查一、引言二、Harness 到底是什么2.1 模型只是大脑Harness 才负责把工作做完2.2 一套 Harness多种使用入口三、八步工作流从想法到可提交代码3.1 工作流全景3.2 为什么先做原型而不是直接写代码3.3 Plan mode 把模糊需求变成约束四、Autopilot计划如何变成持续执行4.1 内置循环避免“说做了实际没做完”4.2 默认就存在的多 Agent 与多模型编排五、审查机制AI 不能替代人的品味与责任5.1 Human review 不是流程装饰5.2 Rubber Duck 用不同模型寻找不同盲点六、Allow All效率最高也是风险最大的步骤6.1 为什么需要自治6.2 自治必须和隔离绑定七、横向对比简单 Harness 与复杂 Agent 栈7.1 四种工作方式的差异7.2 与主流编码 Agent 的生态位八、可直接复用的工程模板8.1 一个功能对应一个主题会话8.2 团队落地检查表九、总结GitHub Copilot Harness工作流技术解析用单一工具完成原型、规划、实现与代码审查一、引言亲爱的朋友们创作不容易若对您有帮助的话请点赞收藏加关注哦您的关注是我持续创作的动力谢谢大家有问题请私信或联系邮箱jasonai.fngmail.com2026 年 7 月 27 日GitHub Blog 发布 Burke Holland 的文章《The harness is all you need (mostly)》给出一套从原型、规划、实现到代码审查的 GitHub Copilot 工作流。它切中的不是“哪个模型跑分更高”而是一个更现实的问题当 MCP、Skill、自定义 Agent 和工作流越来越多开发者是否必须先组装一套复杂 AI 工具链才能真正提高开发效率作者的答案是大多数时候并不需要。先把 GitHub Copilot 这个 Agent Harness 用透一个工具就能承接需求探索、方案澄清、自动实现、人类迭代和跨模型复核。复杂扩展不是无用而是应该在基础流程已经稳定、团队确实需要自动化时再加入。不过“GitHub Copilot 发布 Harness”需要准确理解Harness 不是此次发布的独立产品名也不是一个新按钮。原文明确说明作者将 “harness” 与 GitHub Copilot 交替使用指的是把模型、上下文、工具、权限、执行循环、子 Agent 和审查机制组织起来的运行框架。GitHub 发布的是一套实践方法而不是又推出一个需要购买或安装的新工具。本文将沿着这条工作流拆解 Harness 的技术职责、安全边界与工程价值并回答为什么同一个模型放进好的 Harness 后会比“裸 API 一条神奇提示词”更接近真正的软件开发者。二、Harness 到底是什么2.1 模型只是大脑Harness 才负责把工作做完单独调用 LLM API模型只能接收输入并生成输出。一个编码 Agent 还需要找到相关文件、编辑代码、运行命令、观察测试结果、维护任务状态并在失败后继续修正。Harness 就是承载这些能力的执行层。层级负责什么GitHub Copilot 中的体现模型层理解、推理与生成可选择不同模型与推理强度上下文层管理仓库、对话与任务状态当前会话、代码库内容、计划与工具结果工具层把推理变成实际操作文件读取、代码修改、终端命令、测试权限层决定哪些动作可以执行逐次批准或Allow All循环层检查任务是否真正完成Plan、Autopilot 和持续反馈编排层把不同工作交给适合的 Agent/模型Explore、General Purpose 等子 Agent审查层发现单一模型的遗漏人类复核与跨模型 Rubber Duck review从这个角度看开发效果并不只由模型智力决定。模型能力相近时谁能更准确地准备上下文、选择工具、控制权限、验证结果并管理失败谁就更可能稳定完成任务。2.2 一套 Harness多种使用入口GitHub Copilot 已覆盖 CLI、Copilot app、VS Code、Visual Studio 和 JetBrains 等入口。原文指出这些体验正在逐渐集中到同一 Harness 上界面细节虽然不同核心工作流保持一致。作者建议新用户从 Copilot CLI 开始因为终端界面更直接能清楚看到 prompt、工具调用和 Agent 行为文章演示则使用新的 GitHub Copilot app。这带来一个重要变化开发者学习的对象不再只是某个 IDE 面板而是一套可迁移的方法。入口可以变化工作流仍然是原型、计划、执行、复核和提交。三、八步工作流从想法到可提交代码3.1 工作流全景原文用日期选择器 Web Component 作为案例将整个过程分成八步┌──────────────┐ │ 1. 选择入口 │ CLI / Copilot app / IDE └──────┬───────┘ ▼ ┌──────────────┐ ┌───────────────────────────────┐ │ 2. 授予自治 │ ───▶ │ 隔离环境Codespaces / Dev Container │ └──────┬───────┘ └───────────────────────────────┘ ▼ ┌──────────────┐ │ 3. 快速原型 │ 一次生成多个方案先看见可能性 └──────┬───────┘ ▼ ┌──────────────┐ │ 4. 系统规划 │ 澄清需求、边界条件与验收标准 └──────┬───────┘ ▼ ┌──────────────┐ │ 5. Autopilot │ 按计划实现、调用工具、运行验证 └──────┬───────┘ ▼ ┌──────────────┐ │ 6. 人类迭代 │ 体验、品味、业务判断与质量把关 └──────┬───────┘ ▼ ┌──────────────┐ │ 7. 跨模复核 │ Rubber Duck review └──────┬───────┘ ▼ ┌──────────────┐ │ 8. 提交成果 │ Stage、Commit 或继续当前 PR └──────────────┘步骤关键动作产生的中间成果人类的职责选择工具选 CLI、App 或 IDE 入口可持续的任务会话选择适合自己的交互界面授予自治在隔离环境使用Allow All连续工具执行能力限制环境、密钥与网络权限快速原型一次生成多个 UI 或方案可比较的视觉/结构原型判断方向而非纠结实现细节系统规划用 Plan mode 深挖边界条件实现计划与验收问题回答问题、否决错误假设自动实现让 Autopilot 完成计划项代码、测试与工具结果观察关键决策与失败人类迭代体验结果并连续反馈更符合需求的实现提供审美、领域知识和质量标准跨模复核让另一模型家族审查潜在缺陷与补充建议判断建议是否成立提交成果Stage、Commit 或继续 PR可审查的代码变更最终确认变更范围与风险3.2 为什么先做原型而不是直接写代码日期选择器看起来简单实际涉及日、月、年导航单日与范围选择键盘访问、视觉状态和边界日期。若直接让 Agent 实现需求中的空白会被模型自行填补返工成本很高。原文先要求 Copilot 在一个 HTML 文件中生成 20 个日期选择器 mockGive me 20 mocks for a date picker web component. Put them all in an HTML file so I can compare.这里的目标不是得到可上线代码而是用低成本样品暴露隐含选择。例如其中一个原型从年份视图开始促使作者确定“年 → 月 → 日”的缩放式导航。对非视觉任务也可以使用相同方法为一个数据导出 API 先画 Mermaid 图对比同步下载、异步任务、Webhook 等多种设计再决定实现路线。3.3 Plan mode 把模糊需求变成约束原型确定方向后不开启新会话直接切换到 Plan mode/plan Build a date picker web component. I want the user to be able to zoom in and out of years, months, and days.计划阶段会追问开始与结束日期能否相同、部分选择是否有效、能否清空、是否允许手工输入与粘贴、日期如何存储等。它的价值不是替开发者做决定而是系统地暴露开发者尚未决定的事情。原文特别强调不能无条件接受模型的每一项建议。计划是人机共同收敛需求的过程领域经验仍由人提供。用户也可以反问模型某个术语的含义规划过程会在澄清后继续。四、Autopilot计划如何变成持续执行4.1 内置循环避免“说做了实际没做完”计划完成后Copilot 会建议切换到 Autopilot。原文将其描述为一个内置循环模型需要继续工作并检查自己是否完成计划中的每个项目而不是生成一段代码后立即宣布任务结束。读取下一计划项 │ ▼ 定位上下文 → 修改文件 → 运行命令/测试 → 读取结果 ▲ │ └────── 失败分析原因并修正 ───────┘ │ 成功更新任务状态 │ 仍有计划项继续执行这正是 Harness 相比裸模型调用的价值模型不是只预测“应该怎么改”而是在真实环境中观察动作结果再决定下一步。4.2 默认就存在的多 Agent 与多模型编排在 Autopilot 阶段GitHub Copilot 会充当编排器。根据原文需要阅读和探索代码库时它会使用搭配较小模型的Explore 子 Agent判断任务相对复杂时则可能选择搭配更大模型的General Purpose 子 Agent。任务类型编排选择设计逻辑代码库搜索与上下文收集Explore 较小模型工作范围明确优先控制延迟与成本复杂实现与综合判断General Purpose 较大模型需要更强推理和跨文件修改能力团队专用流程自定义 Agent、Instructions固化组织规范与专门工具开发者可以进一步配置自定义 Agent 和 Instructions但基础的子 Agent、多模型编排开箱即用。这也是文章“先学 Harness”的核心理由不少被包装成高级技巧的能力平台已经放进默认执行链路不需要用户先拼一套虚拟开发团队。五、审查机制AI 不能替代人的品味与责任5.1 Human review 不是流程装饰Autopilot 完成计划不代表结果已经合格。原文中的初版日期选择器仍有动画不一致、选中状态文字对比度不足、“Today”按钮导航错误和多余文案等问题。作者通过自然语言连续反馈让 Agent 逐项调整设计和行为。这一步揭示了一个常见误区Agent 的“任务完成”通常指计划项被执行并不等于产品体验、可维护性和业务语义都达标。开发者的价值从逐行输入代码转向定义质量、发现不协调之处并拒绝“差不多能用”的结果。5.2 Rubber Duck 用不同模型寻找不同盲点人工迭代完成后可以请求一次 Rubber Duck reviewPerform a rubber duck review on this date picker component implementationGitHub Copilot 会向另一个 AI 家族的模型请求审查。原文案例的主模型是 GPT 5.6 Terra复核由 Sonnet 完成。不同模型的训练数据和行为偏好不同交叉审查有机会发现单一模型反复忽略的问题。Rubber Duck 不只适用于最终代码也可以审查原型或计划。还可以与 Autopilot 组合形成“审查 → 修正 → 再审查”的循环直到剩余问题的收益明显递减。但跨模型一致不等于客观正确。两个模型可能共享错误假设也可能提出互相冲突的意见。最终合并前仍需运行测试、静态分析、安全扫描并由人审查 diff涉及架构、安全和数据迁移时不能用“两票 AI 同意”代替责任人批准。六、Allow All效率最高也是风险最大的步骤6.1 为什么需要自治原文第二步建议开启 YOLO mode即Allow All。在多数入口中可以使用/allow-all它允许 Agent 执行命令时不再逐次等待批准。持续执行对 Autopilot 很重要如果每个文件读取、安装命令和测试都需要点击确认循环会不断中断人也容易形成机械批准的习惯最终失去审批本来的安全意义。6.2 自治必须和隔离绑定原文同时给出明确警告开启Allow All时不应让 Agent 直接运行在本地机器上尤其不能在包含企业私有数据和生产凭据的工作电脑环境中运行。推荐使用 GitHub Codespaces 或 Development Container 等沙箱。安全边界最低要求防范的问题文件系统只挂载当前仓库和必要目录误删或读取个人、企业文件凭据不注入生产密钥使用短期最小权限令牌密钥泄露与越权访问网络限制出站目标与云资源权限数据外传和误操作外部系统运行时非 root、限制 CPU/内存、可随时销毁恶意依赖与资源耗尽版本控制独立分支提交前审查 diff大范围修改和供应链污染副作用操作发布、付款、发信、删库仍需人工门禁不可逆业务事故所以更准确的工程公式不是“Allow All 更高生产力”而是有效自治 足够的工具权限 可抛弃的隔离环境 有限故障半径 最终人工门禁七、横向对比简单 Harness 与复杂 Agent 栈7.1 四种工作方式的差异路线工作方式优势主要代价适合场景裸模型 / APIPrompt 输入文本或代码输出接口简单、完全可编程工具、状态、验证和重试都要自建单次生成、嵌入自有系统IDE 代码补全在编辑器中预测下一段代码延迟低、学习成本小难以承接跨文件长任务日常局部编码Copilot Harness 工作流原型、Plan、Autopilot、人审、Rubber Duck同一上下文贯穿完整任务默认支持工具与编排需要理解模式切换和权限边界功能、Bug 与中等规模增强MCP Skill 自定义 Agent 栈为团队组装专用工具和多 Agent 流程可固化复杂业务规范与自动化配置、测试、版本与安全治理成本高重复性强的团队级流程GitHub 的观点并不是反对 MCP、Skill 或自定义 Agent。原文明确承认当团队要定义复杂工作流和自动化时这些扩展会很重要作者在示例里也使用了grill-me与设计 Skill。真正的优先级是先用最少组件获得可重复的高质量结果再为已经被证明的需求增加扩展。7.2 与主流编码 Agent 的生态位工具主要入口共同能力典型差异GitHub CopilotCLI、Copilot app、多款 IDE 与 GitHub计划、工具执行、上下文、审查、扩展强调同一 Harness 跨入口复用并与仓库和 PR 工作流结合Claude Code终端与开发工具集成代码库探索、计划、子 Agent、Hooks、MCP、Skills终端优先可通过项目指令和 Hooks 深度定制OpenAI Codex本地开发环境与云端任务计划、实现、测试、代码审查、Skills本地协作与隔离云任务并存可并行委派工作CursorAI 原生编辑器代码编辑、仓库上下文、Agent 与后台任务IDE 体验集中编辑与 Agent 交互结合紧密它们的竞争已经不只是“接入哪个模型”而是 Harness 如何管理上下文、权限、工具、任务状态和质量反馈。对团队来说模型可以替换工作流、审计和安全策略才是长期资产。八、可直接复用的工程模板8.1 一个功能对应一个主题会话原文建议把聊天会话视为“主题容器”。一个功能、Bug 或增强尽量在同一会话内完成以保留原型、决策和实现上下文任务主题发生明显变化时开启新会话避免上下文被无关历史稀释。# 1. 原型先比较可能性 Generate several minimal prototypes for feature in one file so I can compare. # 2. 规划明确边界和验收标准 /plan Implement feature. Ask me about ambiguous behavior and edge cases first. # 3. 实现在隔离环境中按计划执行 /autopilot Implement the approved plan and run the relevant tests. # 4. 人类迭代指出具体问题不需要追求“完美提示词” The behavior is wrong when case. Remove unneeded part and preserve constraint. # 5. 跨模型复核 Perform a rubber duck review of the implementation, tests, and edge cases.8.2 团队落地检查表阶段完成条件原型至少比较过两个方向关键交互或 API 形态已确定计划边界条件、非目标、测试方式和验收标准明确环境Agent 在隔离分支与沙箱运行无生产凭据实现计划项完成测试、构建和静态检查有真实输出人审开发者检查功能、可读性、可访问性、安全和 diff 范围复核第二模型的建议逐项判断不自动接受提交Commit/PR 描述记录关键决策、测试证据和剩余风险这套流程不要求每次都生成 20 个原型也不要求所有小改动都启用跨模型循环。关键是让每个阶段产生可检查的中间成果避免把模糊需求直接交给 Agent 后只在最后看到一大包难以审查的代码。九、总结维度核心判断发布本质Harness 不是独立新产品而是 GitHub Copilot Agent 运行框架及其工作方法流程主线选择入口、隔离自治、原型、规划、Autopilot、人审、Rubber Duck、提交技术价值Harness 将模型、上下文、工具、权限、执行循环和子 Agent 编排成完整系统质量机制Autopilot 保证持续执行人类定义质量跨模型审查补充不同盲点安全边界Allow All必须与 Codespaces、Dev Container 等隔离环境绑定扩展原则先掌握默认 Harness再按已经验证的需求加入 MCP、Skill 和自定义 Agent行业趋势编码 Agent 的竞争正从模型能力转向上下文、执行与审查系统的整体质量纵向看GitHub Copilot 已从代码补全逐步发展为能读取仓库、执行命令、规划任务和编排子 Agent 的开发 Harness横向看Claude Code、Codex 和 Cursor 也在沿同一方向演进。模型仍然重要但开发者每天真正使用的是模型外面的那套执行系统。这篇 GitHub Blog 最值得保留的观点不是“Harness 可以包办软件开发”而是更克制的结论先用一套简单、连续、可复核的工作流稳定地产出高质量结果再决定是否需要更复杂的 Agent 工程。原型减少方向性返工计划暴露隐含约束Autopilot承担机械执行人类把守品味与责任跨模型审查寻找盲点。单一工具真正节省的不只是点击次数而是阶段之间反复丢失和重建上下文的成本。参考资料The harness is all you need (mostly) — Burke Holland, GitHub Blog, 2026-07-27GitHub Copilot CLI — GitHub DocsAllowing GitHub Copilot CLI to use tools — GitHub DocsGitHub Copilot CLI Autopilot — GitHub DocsRubber Duck review — GitHub DocsCreating custom agents for GitHub Copilot CLI — GitHub DocsAbout GitHub Codespaces — GitHub DocsDevelopment Containers specification