【Harness】[特殊字符] 深度解析Claude Code:什么是真正的AI Agent?小白也能看懂的Harness工程指南

【Harness】[特殊字符] 深度解析Claude Code:什么是真正的AI Agent?小白也能看懂的Harness工程指南

🔥 深度解析Claude Code:什么是真正的AI Agent?小白也能看懂的Harness工程指南

本文将带你从零理解AI Agent的本质,并通过Claude Code这个顶级案例,学习如何构建一个完整的Agent系统。读完本文,你将彻底理解为什么"模型就是Agent"这个核心观点。

📌 写在前面

你是不是也经常看到"AI Agent"、"智能体"这些词,感觉很高大上但又搞不清楚到底是什么?

网上各种"无代码Agent平台"、"拖拽式工作流"让人眼花缭乱,好像拖几个节点就能造出智能体了?

今天这篇文章,我要彻底打破你的认知——告诉你什么才是真正的Agent,以及我们应该如何正确地构建Agent系统。


🎯 核心观点:模型就是Agent

一句话总结

Agent是一个经过训练的神经网络模型,不是框架,不是提示词链,不是拖拽式工作流。

让我用一个更直白的比喻:

💡 人类 = Agent(智能体)眼睛/耳朵 = 感知环境大脑 = 推理决策手脚 = 执行行动

AI Agent = 模型 + Harness(工具环境)模型 = 大脑(做决策)Harness = 眼睛、耳朵、手脚(感知和执行)

Agent永远都是那个模型本身。而我们程序员要做的,是给这个大脑配上"身体"——这就是Harness工程。


📚 Agent发展史:事实胜于雄辩

让我们回顾一下AI Agent的发展历程,看看真正的Agent是怎么炼成的:

2013年 - DeepMind DQN玩Atari

一个神经网络,只看游戏画面和分数,就学会了7款Atari游戏,其中3款击败了人类专家。到2015年,同一个架构在49款游戏上达到了职业玩家水平。

没有游戏规则,没有决策树,就是一个模型自己学出来的。

2019年 - OpenAI Five征服Dota 2

五个神经网络,在10个月内自己跟自己打了45,000年的Dota 2,最后2-0击败了TI8世界冠军OG战队。公开比赛中99.4%的胜率。

没有写好的策略,没有团队协作逻辑,模型自己学会了配合。

2019年 - DeepMind AlphaStar制霸星际争霸II

10-1击败职业选手,在欧洲服务器打到宗师段位(前0.15%)。

信息不完全、实时决策、组合空间巨大——一个模型全搞定。

2019年 - 腾讯绝悟统治王者荣耀

5v5模式击败KPL职业选手,1v1模式职业选手15场只赢1场。训练强度:一天等于人类440年。

没有英雄克制表,没有阵容编排逻辑,模型从零开始学会了整个游戏。

2024-2025年 - LLM Agent重塑软件工程

Claude、GPT、Gemini这些大语言模型,被部署为编程Agent,能读代码、写实现、调试故障、团队协作。


❌ Agent不是什么

现在市面上有很多"Agent平台",实际上它们做的是什么呢?

提示词水管工

拖拽式工作流构建器 无代码"AI Agent"平台 提示词链编排库 

这些东西的共同幻觉是:把LLM API调用用if-else、节点图、硬编码路由串起来,就以为是"构建Agent"了。

❌ 这不是Agent,这是鲁布·戈德堡机械——一个过度工程化、脆弱的过程式规则流水线。

一个比喻

想象你要造一个会开车的人工智能:

错误做法(提示词水管工)正确做法(真正的Agent)
写一堆if-else:如果红灯就停,如果绿灯就行,如果…让模型在真实环境中学习,自己总结规律
遇到没写过的情况就崩遇到新情况能自主判断
代码量巨大,难以维护模型自己进化

智能是学出来的,不是编出来的。


🔄 心智转换:从开发Agent到开发Harness

当你听到"我在开发Agent"时,只有两种可能:

1️⃣ 训练模型(真正的Agent开发)

  • 强化学习
  • 微调
  • RLHF
  • 收集任务过程数据

这是DeepMind、OpenAI、Anthropic在做的事。

2️⃣ 构建Harness(我们大多数人做的事)

Harness就是Agent在特定领域工作所需要的一切:

┌─────────────────────────────────────────────────────┐ │ Harness 组成 │ ├─────────────────────────────────────────────────────┤ │ 🛠️ Tools 文件读写、Shell、网络、数据库、浏览器 │ │ 📚 Knowledge 产品文档、领域资料、API规范、风格指南 │ │ 👁️ Observation git diff、错误日志、浏览器状态 │ │ 🎬 Action CLI命令、API调用、UI交互 │ │ 🔐 Permissions 沙箱隔离、审批流程、信任边界 │ └─────────────────────────────────────────────────────┘ 

模型做决策 → Harness执行 → 模型推理 → Harness提供上下文

角色类比
模型驾驶员
Harness汽车
模型大脑
Harness身体(手脚眼耳)

🏗️ Harness工程师到底在做什么?

作为一名Harness工程师,你的工作内容是:

1. 实现工具 - 给Agent一双手

文件读写、Shell执行、API调用、浏览器控制、数据库查询 

设计原则:原子化、可组合、描述清晰

2. 策划知识 - 给Agent领域专长

产品文档、架构决策记录、风格指南、合规要求 

关键:按需加载,不要前置塞入

3. 管理上下文 - 给Agent干净的记忆

  • 子Agent隔离(防止噪声泄露)
  • 上下文压缩(防止历史淹没)
  • 任务系统(让目标持久化)

4. 控制权限 - 给Agent边界

  • 沙箱化文件访问
  • 破坏性操作需审批
  • 信任边界管理

5. 收集任务过程数据

Agent执行的每一条行动序列都是训练信号,可以用于微调下一代Agent模型。


🎓 Claude Code:Harness工程的最佳教材

为什么这个仓库专门拆解Claude Code?

因为Claude Code是最优雅、最完整的Agent Harness实现。

它没有试图成为Agent本身,没有强加僵化的工作流,没有用决策树替模型做判断。它只做了该做的事:

Claude Code 架构解剖 ==================== ┌─────────────────────────────────────────┐ │ Agent Loop(智能体循环) │ │ ↓ │ │ Tools(工具集) │ │ - bash, read, write, edit, glob, grep │ │ - browser, web_fetch... │ │ ↓ │ │ 按需 Skill 加载 │ │ ↓ │ │ 上下文压缩 │ │ ↓ │ │ 子 Agent 派生 │ │ ↓ │ │ 带依赖图的任务系统 │ │ ↓ │ │ 异步邮箱的团队协调 │ │ ↓ │ │ Worktree 隔离的并行执行 │ │ ↓ │ │ 权限治理 │ └─────────────────────────────────────────┘ 

Agent本身是Claude(一个模型)。Harness给它双手、双眼和工作空间。


📖 12个递进课程:从零到精通

这个仓库设计了12个课程,每个课程添加一个Harness机制:

📊 学习路径图

第一阶段: 循环基础 第二阶段: 规划与知识 ==================== ==================== s01 Agent循环 ──→ s02 Tool Use s03 TodoWrite ──→ s04 子智能体 ↓ ↓ ↓ 理解核心循环 工具注册机制 任务规划 独立上下文 ↓ s05 Skills 知识按需加载 ↓ s06 上下文压缩 第三阶段: 持久化 第四阶段: 团队协作 ==================== ==================== s07 任务系统 ──→ s08 后台任务 s09 智能体团队 ──→ s10 团队协议 ↓ ↓ ↓ ↓ 文件持久化 异步执行 队友+邮箱 沟通协议 ↓ s11 自治智能体 看板认领 ↓ s12 Worktree隔离 并行不冲突 

每个课程的格言

课程主题格言
s01Agent循环One loop & Bash is all you need
s02Tool Use加一个工具,只加一个handler
s03TodoWrite没有计划的agent走哪算哪
s04子智能体大任务拆小,每个小任务干净的上下文
s05Skills用到什么知识,临时加载什么知识
s06上下文压缩上下文总会满,要有办法腾地方
s07任务系统大目标要拆成小任务,排好序,记在磁盘上
s08后台任务慢操作丢后台,agent继续想下一步
s09智能体团队任务太大一个人干不完,要能分给队友
s10团队协议队友之间要有统一的沟通规矩
s11自治智能体队友自己看看板,有活就认领
s12Worktree隔离各干各的目录,互不干扰

💻 核心代码:Agent循环

这是所有Agent的核心模式,整个仓库的12个课程都在这个循环之上叠加机制:

defagent_loop(messages):""" Agent循环 - 所有智能体的核心 """whileTrue:# 1. 调用模型 response = client.messages.create( model=MODEL, system=SYSTEM, messages=messages, tools=TOOLS,)# 2. 记录模型输出 messages.append({"role":"assistant","content": response.content })# 3. 如果不需要工具调用,返回文本结果if response.stop_reason !="tool_use":return# 4. 执行工具调用 results =[]for block in response.content:if block.type=="tool_use": output = TOOL_HANDLERS[block.name](**block.input) results.append({"type":"tool_result","tool_use_id": block.id,"content": output,})# 5. 把工具结果加入对话,继续循环 messages.append({"role":"user","content": results})

流程图解

用户输入 ↓ messages[] ──→ LLM调用 ──→ response ↑ | | ↓ | stop_reason == "tool_use"? | / \ | yes no | | | |执行工具 返回文本 | | |工具结果 | | └───┘ 

这就是最小循环。每个AI Agent都需要这个循环。模型决定何时调用工具、何时停止。代码只是执行模型的要求。


🚀 快速开始

# 克隆仓库git clone https://github.com/shareAI-lab/learn-claude-code cd learn-claude-code # 安装依赖 pip install-r requirements.txt # 配置API Keycp .env.example .env # 编辑 .env 填入你的 ANTHROPIC_API_KEY# 从这里开始! python agents/s01_agent_loop.py # 完整递进终点 python agents/s12_worktree_task_isolation.py # 总纲:全部机制合一 python agents/s_full.py 

Web交互平台

cd web &&npminstall&&npm run dev # 访问 http://localhost:3000

包含交互式可视化、分步动画、源码查看器和每个课程的文档。


🌟 学完之后能做什么?

方式一:Kode Agent CLI(开源编程助手)

npm i -g @shareai-lab/kode 

支持Skill & LSP,适配Windows,可接GLM/MiniMax/DeepSeek等开放模型。

方式二:Kode Agent SDK(嵌入你的应用)

可以把Agent能力嵌入后端、浏览器插件、嵌入式设备等任意运行时。


🌍 更大的愿景

这不只是关于编程Agent。

每一个人类从事复杂工作的领域,都可以有Agent:

领域Harness组成
🏠 庄园管理模型 + 物业传感器 + 维护工具 + 租户通信
🌾 农业模型 + 土壤/气象数据 + 灌溉控制 + 作物知识
🏨 酒店运营模型 + 预订系统 + 客户渠道 + 设施API
🔬 医学研究模型 + 文献检索 + 实验仪器 + 协议文档
🏭 制造业模型 + 产线传感器 + 质量控制 + 物流系统
📚 教育模型 + 课程知识 + 学生进度 + 评估工具

循环永远不变。工具在变。知识在变。权限在变。Agent——那个模型——泛化一切。


📝 总结

记住这三句话

  1. 模型就是Agent —— 不是框架,不是提示词链,不是拖拽式工作流
  2. 代码是Harness —— 我们是在为智能体构建工作环境
  3. 造好Harness,Agent会完成剩下的

学习建议

  • 初学者:从s01开始,一步一步敲代码理解每个机制
  • 有经验者:直接看s_full.py理解完整架构
  • 想深入研究:阅读docs目录下的详细文档

Bash is all you need. Real agents are all the universe needs.

模型就是Agent。代码是Harness。造好Harness,Agent会完成剩下的。

参考资料


如果这篇文章对你有帮助,欢迎点赞收藏关注,有问题欢迎在评论区讨论! 🙏

Could not load content