【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隔离 并行不冲突 每个课程的格言
| 课程 | 主题 | 格言 |
|---|---|---|
| s01 | Agent循环 | One loop & Bash is all you need |
| s02 | Tool Use | 加一个工具,只加一个handler |
| s03 | TodoWrite | 没有计划的agent走哪算哪 |
| s04 | 子智能体 | 大任务拆小,每个小任务干净的上下文 |
| s05 | Skills | 用到什么知识,临时加载什么知识 |
| s06 | 上下文压缩 | 上下文总会满,要有办法腾地方 |
| s07 | 任务系统 | 大目标要拆成小任务,排好序,记在磁盘上 |
| s08 | 后台任务 | 慢操作丢后台,agent继续想下一步 |
| s09 | 智能体团队 | 任务太大一个人干不完,要能分给队友 |
| s10 | 团队协议 | 队友之间要有统一的沟通规矩 |
| s11 | 自治智能体 | 队友自己看看板,有活就认领 |
| s12 | Worktree隔离 | 各干各的目录,互不干扰 |
💻 核心代码: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——那个模型——泛化一切。
📝 总结
记住这三句话
- 模型就是Agent —— 不是框架,不是提示词链,不是拖拽式工作流
- 代码是Harness —— 我们是在为智能体构建工作环境
- 造好Harness,Agent会完成剩下的
学习建议
- 初学者:从s01开始,一步一步敲代码理解每个机制
- 有经验者:直接看s_full.py理解完整架构
- 想深入研究:阅读docs目录下的详细文档
Bash is all you need. Real agents are all the universe needs.
模型就是Agent。代码是Harness。造好Harness,Agent会完成剩下的。
参考资料:
如果这篇文章对你有帮助,欢迎点赞收藏关注,有问题欢迎在评论区讨论! 🙏