[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-claude-code-harness-engineering-design-en":3,"tags-claude-code-harness-engineering-design-en":30,"related-lang-claude-code-harness-engineering-design-en":41,"related-posts-claude-code-harness-engineering-design-en":45,"series-tools-da4a873e-dd38-48df-acce-2ddcc49ed456":82},{"id":4,"title":5,"content":6,"summary":7,"source":8,"source_url":9,"author":10,"image_url":11,"keywords":12,"language":18,"translated_content":10,"views":19,"is_premium":20,"created_at":21,"updated_at":21,"cover_image":11,"published_at":22,"rewrite_status":23,"rewrite_error":10,"rewritten_from_id":24,"slug":25,"category":26,"related_article_id":27,"status":28,"google_indexed_at":29,"x_posted_at":10,"tweet_text":10,"title_rewritten_at":10,"title_original":10,"key_takeaways":10,"topic_cluster_id":10,"embedding":10,"is_canonical_seed":20},"da4a873e-dd38-48df-acce-2ddcc49ed456","Claude Code 里的 Harness Engineering 思路","\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\" target=\"_blank\" rel=\"noopener\">Claude Code\u003C\u002Fa> 的一个有趣之处，是它把“怎么让模型干活”这件事摆到了台面上。Anthropic 没把它做成一个黑盒聊天框，而是把 \u003Ca href=\"https:\u002F\u002Fmodelcontextprotocol.io\u002F\" target=\"_blank\" rel=\"noopener\">MCP\u003C\u002Fa>、Skills、Hooks 和 Subagents 这些机制一起交给用户，等于直接展示了自己的 Harness 设计。\u003C\u002Fp>\u003Cp>这件事值得认真看，因为它说明了一个很现实的判断：模型能力再强，如果外层执行系统设计得差，最后产出的代码、操作和决策还是会乱。\u003Ca href=\"\u002Fnews\u002F8-hidden-claude-code-features-leaked-source-en\">Claude Code\u003C\u002Fa> 的产品结构，正好给了我们一个观察 Harness Engineering 的窗口。\u003C\u002Fp>\u003Cp>如果你只把它看成“另一个 AI 编程工具”，会错过重点。它真正有意思的地方，是 Anthropic 把模型、工具调用、权限控制、任务拆分和上下文管理，做成了一套可以配置、可以扩展、也可以审计的工作流。\u003C\u002Fp>\u003Ch2>Claude Code 为什么值得单独拿出来看\u003C\u002Fh2>\u003Cp>\u003Ca href=\"\u002Fnews\u002Fclaude-code-architecture-governance-practice-en\">Claude Code\u003C\u002Fa> 不是单纯把 Claude 接到终端里，它更像是一个围绕模型搭起来的执行系统。模型负责理解和生成，外层 Harness 负责把任务拆开、把工具接上、把风险压住，再把结果送回去继续迭代。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775113335824-7xt9.png\" alt=\"Claude Code 里的 Harness Engineering 思路\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>这种设计和传统 IDE 插件很不一样。很多工具只是把自然语言提示塞进模型，再把输出贴回编辑器；\u003Ca href=\"\u002Fnews\u002Fclaude-code-source-leak-hidden-internals-en\">Claude Code\u003C\u002Fa> 则更接近“模型驱动的操作系统外壳”，它把上下文、工具、权限和子任务都纳入同一条链路里。\u003C\u002Fp>\u003Cp>从产品角度看，这种结构有两个直接好处。第一，用户能更清楚地知道模型到底调用了什么。第二，团队能把最佳实践固化成默认行为，而不是指望每个人都写出同样好的提示词。\u003C\u002Fp>\u003Cp>这也是为什么 Claude Code 的设计会被反复讨论。它不只是一个编程助手，更像 Anthropic 在公开演示自己如何理解 Harness Engineering。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ca href=\"https:\u002F\u002Fmodelcontextprotocol.io\u002F\" target=\"_blank\" rel=\"noopener\">MCP\u003C\u002Fa> 让 Claude Code 能接入外部工具和数据源，减少每次都手工拼接上下文的成本。\u003C\u002Fli>\u003Cli>Skills 让常见任务可以被打包成可复用能力，避免每个项目都从零开始写提示。\u003C\u002Fli>\u003Cli>Hooks 允许在关键节点插入自动检查或动作，适合做审计、权限确认和质量控制。\u003C\u002Fli>\u003Cli>Subagents 把复杂任务拆给不同角色处理，减少一个上下文里塞太多目标带来的混乱。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Harness Engineering 到底在解决什么问题\u003C\u002Fh2>\u003Cp>Anthropic 研究员 \u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Fresearch\" target=\"_blank\" rel=\"noopener\">Mike Conover\u003C\u002Fa> 在讨论系统设计时多次强调，真正难的不是让模型“会说”，而是让它在真实任务里稳定地“会做”。这类观点在 Anthropic 的公开材料里非常一致：模型能力只是起点，外层执行系统才决定它能不能进入生产环境。\u003C\u002Fp>\u003Cp>这里可以顺手对比一下。一个纯提示词驱动的工作流，通常只有“输入问题、输出答案”这一步；一个更成熟的 Harness，会把工具调用、状态保存、错误恢复和权限边界都纳入流程。前者适合演示，后者才适合长期使用。\u003C\u002Fp>\u003Cblockquote>“The most important thing we can do is make AI systems that are helpful, harmless, and honest.” — Dario Amodei\u003C\u002Fblockquote>\u003Cp>这句来自 Anthropic CEO \u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002F\" target=\"_blank\" rel=\"noopener\">Dario Amodei\u003C\u002Fa> 的公开表述，放在 Claude Code 里尤其贴切。因为所谓 helpful、harmless、honest，不是靠一句系统提示就能实现的，它需要工具层、任务层和权限层一起工作。\u003C\u002Fp>\u003Cp>换句话说，Harness Engineering 关注的是“模型如何在受控环境里完成工作”。这和单纯追求更大模型参数不是一回事。一个好 Harness 可以让中等能力模型做得更稳，也能让强模型少犯低级错误。\u003C\u002Fp>\u003Cp>Claude Code 把这个思路产品化了。它不是把复杂性藏起来，而是把复杂性拆成几个可管理的接口，用户可以按任务需要选择启用哪些能力。\u003C\u002Fp>\u003Ch2>MCP、Skills、Hooks、Subagents 的分工\u003C\u002Fh2>\u003Cp>如果把 Claude Code 的设计拆开看，这四个机制其实分工很明确。MCP 负责外部连接，Skills 负责能力封装，Hooks 负责流程控制，Subagents 负责任务分解。它们不是重复建设，而是在不同层次上处理同一个问题：让模型在真实工作流里更可靠。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775113350946-b3n5.png\" alt=\"Claude Code 里的 Harness Engineering 思路\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>MCP 的意义尤其大。它把“接什么工具、读什么数据”从应用内部逻辑里抽出来，变成标准协议。对开发者来说，这意味着接入 Git、数据库、内部知识库或部署系统时，不必每次都重新发明一套接口。\u003C\u002Fp>\u003Cp>Skills 更像可复用的任务模板。比如代码审查、文档整理、测试生成、迁移脚本，这些高频动作都可以被封装成明确的技能包。这样做的好处是输出风格更稳定，团队协作时也更容易统一标准。\u003C\u002Fp>\u003Cp>Hooks 则是安全和治理的抓手。比如在执行高风险操作前弹出确认，或者在输出前做静态检查，这些都属于 Hook 能覆盖的范围。它让模型不只是“会做”，还要“按规则做”。\u003C\u002Fp>\u003Cp>Subagents 解决的是长任务的上下文膨胀问题。一个代理同时负责规划、搜索、编辑、验证时，很容易把注意力分散掉。拆成多个子代理后，每个角色只盯一小块，整体稳定性通常会更高。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ca href=\"https:\u002F\u002Fmodelcontextprotocol.io\u002F\" target=\"_blank\" rel=\"noopener\">MCP\u003C\u002Fa> 解决工具接入标准化问题。\u003C\u002Fli>\u003Cli>Skills 解决任务复用问题。\u003C\u002Fli>\u003Cli>Hooks 解决流程控制和审计问题。\u003C\u002Fli>\u003Cli>Subagents 解决复杂任务拆分问题。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>和其他 AI 编程工具相比，它强在哪\u003C\u002Fh2>\u003Cp>把 Claude Code 和一些常见 AI 编程工具放在一起看，差异会更明显。很多工具更像“增强版聊天窗口”，重点在生成速度和交互顺滑度；Claude Code 更像“可编排的执行层”，重点在任务治理和系统集成。\u003C\u002Fp>\u003Cp>从实际能力看，这种差异会体现在几个地方。第一，Claude Code 更适合接入企业内部工具链。第二，它更容易把流程固定下来，减少不同成员之间的用法差异。第三，它更适合做可审计的自动化动作，而不是只做一次性问答。\u003C\u002Fp>\u003Cp>如果只看表层体验，用户可能会觉得这些机制有点“工程化”，没有那么轻巧。但从长期维护角度看，工程化恰恰是优势。模型工具一旦进入团队协作和生产流程，最怕的就是不可预测。\u003C\u002Fp>\u003Cp>可以把差异概括成下面几组：\u003C\u002Fp>\u003Cul>\u003Cli>普通聊天式工具：更像单次问答，适合探索和草稿。\u003C\u002Fli>\u003Cli>IDE 内插件：更像编辑器增强，适合局部补全和改写。\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\" target=\"_blank\" rel=\"noopener\">Claude Code\u003C\u002Fa>：更像任务执行框架，适合把模型放进真实工作流。\u003C\u002Fli>\u003Cli>企业代理平台：更像统一编排层，适合跨系统自动化和权限管理。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>这里还有一个很现实的判断：当模型能力趋于接近时，真正拉开差距的往往是 Harness。谁能更好地组织上下文、接入工具、控制风险，谁就更容易把模型能力变成可交付结果。\u003C\u002Fp>\u003Ch2>结语：Claude Code 透露了什么信号\u003C\u002Fh2>\u003Cp>Claude Code 让人看到的，不只是 Anthropic 的产品思路，还有一个更大的趋势：未来的 AI 工具竞争，可能越来越像“谁的执行系统更成熟”，而不是“谁的模型回答更会说话”。\u003C\u002Fp>\u003Cp>如果你在做 AI 产品、企业自动化，或者内部开发工具，接下来最值得问的问题不是“模型还能多聪明”，而是“我有没有把工具接入、权限边界、任务拆分和审计机制设计好”。Claude Code 已经把答案写在产品里了。\u003C\u002Fp>\u003Cp>我的判断很直接：接下来真正有价值的 AI 编程工具，会越来越像 Claude Code 这样，把 Harness 当成产品的一部分，而不是藏在后台的实现细节。你如果还在用“一个提示词解决所有问题”的思路做工具，迟早会遇到稳定性和治理上的天花板。\u003C\u002Fp>","Claude Code 把 MCP、Skills、Hooks 和 Subagents 直接暴露给用户，展示了 Anthropic 如何把 Harness Engineering 做进产品。","zhuanlan.zhihu.com","https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2021603278606087058",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775113335824-7xt9.png",[13,14,15,16,17],"Claude Code","Harness Engineering","MCP","AI coding","Anthropic","en",0,false,"2026-04-02T05:21:31.271477+00:00","2026-04-02T05:21:31.234+00:00","done","79498b22-6c42-4368-82a9-373b651522be","claude-code-harness-engineering-design-en","tools","44b25589-877f-4d11-9987-9b29f2bdf2e7","published","2026-04-09T09:00:51.777+00:00",[31,33,35,37,39],{"name":14,"slug":32},"harness-engineering",{"name":15,"slug":34},"mcp",{"name":13,"slug":36},"claude-code",{"name":17,"slug":38},"anthropic",{"name":16,"slug":40},"ai-coding",{"id":27,"slug":42,"title":43,"language":44},"claude-code-harness-engineering-design-zh","Claude Code 的 Harness 工程思路","zh",[46,52,58,64,70,76],{"id":47,"slug":48,"title":49,"cover_image":50,"image_url":50,"created_at":51,"category":26},"a6c1d84d-0d9c-4a5a-9ca0-960fbfc1412e","why-gemini-api-pricing-is-cheaper-than-it-looks-en","Why Gemini API pricing is cheaper than it looks","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778869846824-s2r1.png","2026-05-15T18:30:26.595941+00:00",{"id":53,"slug":54,"title":55,"cover_image":56,"image_url":56,"created_at":57,"category":26},"8b02abfa-eb16-4853-8b15-63d302c7b587","why-vidhub-huiyuan-hutong-bushi-quan-shebei-tongyong-en","Why VidHub 会员互通不是“买一次全设备通用”","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778789439875-uceq.png","2026-05-14T20:10:26.046635+00:00",{"id":59,"slug":60,"title":61,"cover_image":62,"image_url":62,"created_at":63,"category":26},"abe54a57-7461-4659-b2a0-99918dfd2a33","why-buns-zig-to-rust-experiment-is-right-en","Why Bun’s Zig-to-Rust experiment is the right move","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778767895201-5745.png","2026-05-14T14:10:29.298057+00:00",{"id":65,"slug":66,"title":67,"cover_image":68,"image_url":68,"created_at":69,"category":26},"f0015918-251b-43d7-95af-032d2139f3f6","why-openai-api-pricing-is-product-strategy-en","Why OpenAI API pricing is a product strategy, not a footnote","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778749841805-uyhg.png","2026-05-14T09:10:27.921211+00:00",{"id":71,"slug":72,"title":73,"cover_image":74,"image_url":74,"created_at":75,"category":26},"7096dab0-6d27-42d9-b951-7545a5dddf33","why-claude-code-prompt-design-beats-ide-copilots-en","Why Claude Code’s prompt design beats IDE copilots","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778742651754-3kxk.png","2026-05-14T07:10:30.953808+00:00",{"id":77,"slug":78,"title":79,"cover_image":80,"image_url":80,"created_at":81,"category":26},"1f1bff1e-0ebc-4fa7-a078-64dc4b552548","why-databricks-model-serving-is-right-default-en","Why Databricks Model Serving is the right default for production infe…","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778692290314-gopj.png","2026-05-13T17:10:32.167576+00:00",[83,88,93,98,103,108,113,118,123,128],{"id":84,"slug":85,"title":86,"created_at":87},"8008f1a9-7a00-4bad-88c9-3eedc9c6b4b1","surepath-ai-mcp-policy-controls-en","SurePath AI's New MCP Policy Controls Enhance AI Security","2026-03-26T01:26:52.222015+00:00",{"id":89,"slug":90,"title":91,"created_at":92},"27e39a8f-b65d-4f7b-a875-859e2b210156","mcp-standard-ai-tools-2026-en","MCP Standard in 2026: Integrating AI Tools","2026-03-26T01:27:43.127519+00:00",{"id":94,"slug":95,"title":96,"created_at":97},"165f9a19-c92d-46ba-b3f0-7125f662921d","rag-2026-transforming-enterprise-ai-en","How RAG in 2026 is Transforming Enterprise AI","2026-03-26T01:28:11.485236+00:00",{"id":99,"slug":100,"title":101,"created_at":102},"6a2a8e6e-b956-49d8-be12-cc47bdc132b2","mastering-ai-prompts-2026-guide-en","Mastering AI Prompts: A 2026 Guide for Developers","2026-03-26T01:29:07.835148+00:00",{"id":104,"slug":105,"title":106,"created_at":107},"d6653030-ee6d-4043-898d-d2de0388545b","evolving-world-prompt-engineering-en","The Evolving World of Prompt Engineering","2026-03-26T01:29:42.061205+00:00",{"id":109,"slug":110,"title":111,"created_at":112},"3ab2c67e-4664-4c67-a013-687a2f605814","garry-tan-open-sources-claude-code-toolkit-en","Garry Tan Open-Sources a Claude Code Toolkit","2026-03-26T08:26:20.245934+00:00",{"id":114,"slug":115,"title":116,"created_at":117},"66a7cbf8-7e76-41d4-9bbf-eaca9761bf69","github-ai-projects-to-watch-in-2026-en","20 GitHub AI Projects to Watch in 2026","2026-03-26T08:28:09.752027+00:00",{"id":119,"slug":120,"title":121,"created_at":122},"231306b3-1594-45b2-af81-bb80e41182f2","claude-code-vs-cursor-2026-en","Claude Code vs Cursor in 2026","2026-03-26T13:27:14.177468+00:00",{"id":124,"slug":125,"title":126,"created_at":127},"9f332fda-eace-448a-a292-2283951eee71","practical-github-guide-learning-ml-2026-en","A Practical GitHub Guide to Learning ML in 2026","2026-03-27T01:16:50.125678+00:00",{"id":129,"slug":130,"title":131,"created_at":132},"1b1f637d-0f4d-42bd-974b-07b53829144d","aiml-2026-student-ai-ml-lab-repo-review-en","AIML-2026 Is a Bare-Bones Student Lab Repo","2026-03-27T01:21:51.661231+00:00"]