Claude Code 工程化实战
黄佳
新加坡科研局资深研发工程师
12936 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 24 讲/共 0 讲
Claude Code 工程化实战
15
15
1.0x
00:00/00:00
登录|注册

热点加餐|Harness 架构深度解析

你好,我是黄佳。
在我们的专栏上线初期,就有学员问过我:黄老师,你一直说 Claude Code 最懂工程,你为什么这么说?这个问题和另外一个群里面经常被问到的问题其实几乎等价,就是 Claude Code 为什么强,究竟强在哪里?
至今为止,我们一直在 Claude Code 里面折腾——写 CLAUDE.md、配 Skills、调 Hooks、连 MCP。但倒是尚未正面思考过一个更根本的问题:Claude Code 本身是什么?
它不是 Claude 模型。模型是 Anthropic 的 API,任何人都可以调用。它也不是一个简单的命令行工具——如果是,为什么同一个 Claude Sonnet 模型,通过 API 直接调用和通过 Claude Code 调用,表现差距那么大?
答案藏在一个词里:Harness。

什么是 Harness?

先看 Anthropic 官方文档里是怎么说的:
Claude Code serves as the agentic harness around Claude: it provides the tools, context management, and execution environment that turn a language model into a capable coding agent.
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Claude Code 工程化实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • 雾凇
    harness这个词挺别扭的,又是为了讲故事炒出来的大词吗

    作者回复: 叫“Agent工程”更合适。无论叫什么,Agent工程和Agent架构已经不再是故事这么简单。它是发生在我们这个世界的真实存在。 我在《Agent设计模式》的后记中这样写到: 当我们审视本书所构建的Agent架构——从感知回路到记忆网络,从群体涌现到自我进化——便会意识到,我们所构建的已不再是一台机器,而是一个具有生命特征的系统。 1.牛顿力学的黄昏,达尔文逻辑的黎明 传统的软件工程建立在牛顿力学的隐喻之上:世界如同一台精密的钟表,由齿轮(模块)严丝合缝地咬合而成——输入A,必然输出B。我们追求零熵(zero entropy),将一切不确定性视为bug。 然而,在Agent时代,这一隐喻已然失效。 LLM本质上是一台概率机器。当我们引入LLM时,实际上是在系统中主动引入了熵(entropy)。当Temperature>0时,意味着我们允许系统有一定的“自由发挥空间”。正是这种“自由发挥”,赋予了Agent创造力与常识。 我们正从确定性工程转向概率性工程:不再追求如建造大教堂般严丝合缝的控制,而是致力于培育如热带雨林般生生不息、具备反脆弱性的系统。 2.软件的生物化 回顾本书所探讨的各个模式,我们不难发现它们在生物学中均有对应的体现。 • 感知模式(见第4章):对应视觉与听觉的进化,从被动接收信息转向主动“觅食”式感知。 • 记忆模式(见第5章):类比海马体与大脑皮质的协作,实现从短期工作记忆到长期记忆的固化。 • ReAct模式(见第7.1节):如同神经反射弧,在感知与行动之间构建快速闭环。 • 群体智能群体模式(见9.4节):体现为蚁群与蜂群的社会性行为,通过局部个体间的简单交互,涌现出全局智慧。 软件不再是僵化的代码块,而是开始展现出生命般的特性。  生长性:通过RAG模式(见5.2节)和情节记忆模式(见5.3节)不断积累经验。  适应性:借助自适应策略模式(见7.4节)动态调整行为。  繁殖性:利用元学习模式(见8.3节)生成新的Prompt,实现“自我复制”与演化。 我们正见证硅基生命的“寒武纪大爆发”。 --- 因此,叫Harness可以,叫什么也无所谓,我们在迎接一个新时代的来临。

    2026-03-30归属地:上海
    2
  • 狂风骤雨
    黄老师你好: 看了这节课,理论知识是大概理解了Claude Code(Harness)的核心能力: │ 🔍 Auto-Discovery —— 扫描目录,自动发现 │ │ 📡 Event Bus —— 事件分发(PreToolUse...)│ │ 🧠 Context Manager —— 上下文管理 │ │ 🔗 Tool Executor —— 统一工具执行 │ │ 💬 Session Manager —— 会话生命周期 │ │ 📦 Lifecycle —— 安装/启用/禁用/卸载 │ 我现在比较疑惑的是,这五层是纯通过程序 按照顺序来加载的么?如果我要开发自己的agent的应该怎么用Harness的架构来完成,也是需要一段主程序去执行这些能力么?

    作者回复: 是的,你需要自己手写这5层的核心能力。 现在我们用CC,我们只需要理解这5层。 当你自己开发一个全新的Agent,你需要自己去设计这5层中的每一层。 不复杂。 CC不是开源软件,你无法知道Claude Code背后到底是怎样的。但是Codex是开源的,OpenCode是开源的,OpenClaw是开源的。 这就是为什么长期以来,有很多程序员在研究Linux的内核。—— 一个操作系统究竟是如何实现的,你看得到。

    2026-03-30归属地:江苏
    2
  • hunter
    没有Harness这个词之前,我一直认为 Claude Code 就是一个Agent

    作者回复: 现在业界基本上统一的的说法 Agent = Model(模型) + Harness(周边工程) 再加一层是 Agent = Model(模型) + Harness(周边工程)+ Surface(界面/人类使用方式 - 如IDE/APP/Broswer...)

    2026-03-30归属地:浙江
    2
  • 浩仔是程序员
    所以harness跟agent的区别又是什么

    作者回复: Agent = Model(模型) + Harness(周边工程)

    2026-03-30归属地:广东
  • 我就是那一把火
    老师,在使用claudecode特别困惑的几个问题,非常希望有个实战分享给我们一些启发。 1.现在的sdd方式,当在一个老项目使用时,现有代码的spec该怎么做出来呢? 2.单次写代码的时候,需求可能比较多,放在一个spec肯定是不合适的,该怎么切分呢? 3.我期望一次代码实现的时候,能自动测试。不仅仅是单元测试,而是还要包括集成测试,比如通过playwright去做前端的测试,读日志去发现问题修复问题。 前面的课非常精彩,我看完之后对我上诉的问题,也有一些想法,但是就是不成形,找不到理想的最佳实践。 希望老师能指点迷津。

    作者回复: 兄弟你的这一系列问题都不简单,也都是大课题,我找个机会都详细说说。

    2026-03-30归属地:湖南
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部