English: README.md | 中文 | 日本語: README.ja.md
Learn Claude Code -- 真正的 Agent Harness 工程
来源:https://github.com/shareAI-Lab/learn-claude-code 基于仓库根目录 README-zh.md 于 2026-04-19 落库。
Learn Claude Code -- 真正的 Agent Harness 工程
English: README.md | 中文: README.zh.md | 日本語: README.ja.md
Agency 来自模型,Agent 产品 = 模型 + Harness
在讨论代码之前,先把一件事说清楚。
Agency -- 感知、推理、行动的能力 -- 来自模型训练,不是来自外部代码的编排。 但一个能干活的 agent 产品,需要模型和 harness 缺一不可。模型是驾驶者,harness 是载具。本仓库教你造载具。
Agency 从哪来
Agent 的核心是一个神经网络 -- Transformer、RNN、一个被训练出来的函数 -- 经过数十亿次梯度更新,在行动序列数据上学会了感知环境、推理目标、采取行动。Agency 这个东西从来不是外面那层代码赋予的,而是模型在训练中学到的。
人类就是最好的例子。一个由数百万年进化训练出来的生物神经网络,通过感官感知世界,通过大脑推理,通过身体行动。当 DeepMind、OpenAI 或 Anthropic 说 "agent" 时,他们说的核心都是同一件事:一个通过训练学会了行动的模型,加上让它能在特定环境中工作的基础设施。
历史已经写好了铁证:
2013 -- DeepMind DQN 玩 Atari。 一个神经网络,只接收原始像素和游戏分数,学会了 7 款 Atari 2600 游戏 -- 超越所有先前算法,在其中 3 款上击败人类专家。到 2015 年,同一架构扩展到 49 款游戏,达到职业人类测试员水平,论文发表在 Nature。没有游戏专属规则。没有决策树。一个模型,从经验中学习。那个模型就是 agent。
2019 -- OpenAI Five 征服 Dota 2。 五个神经网络,在 10 个月内与自己对战了 45,000 年的 Dota 2,在旧金山直播赛上 2-0 击败了 OG -- TI8 世界冠军。随后的公开竞技场中,AI 在 42,729 场比赛中胜率 99.4%。没有脚本化的策略。没有元编程的团队协调逻辑。模型完全通过自我对弈学会了团队协作、战术和实时适应。
2019 -- DeepMind AlphaStar 制霸星际争霸 II。 AlphaStar 在闭门赛中 10-1 击败职业选手,随后在欧洲服务器上达到宗师段位 -- 90,000 名玩家中的前 0.15%。一个信息不完全、实时决策、组合动作空间远超国际象棋和围棋的游戏。Agent 是什么?是模型。训练出来的。不是编出来的。
2019 -- 腾讯绝悟统治王者荣耀。 腾讯 AI Lab 的 "绝悟" 于 2019 年 8 月 2 日世冠杯半决赛上以 5v5 击败 KPL 职业选手。在 1v1 模式下,职业选手 15 场只赢 1 场,最多坚持不到 8 分钟。训练强度:一天等于人类 440 年。到 2021 年,绝悟在全英雄池 BO5 上全面超越 KPL 职业选手水准。没有手工编写的英雄克制表。没有脚本化的阵容编排。一个从零开始通过自我对弈学习整个游戏的模型。
2024-2025 -- LLM Agent 重塑软件工程。 Claude、GPT、Gemini -- 在人类全部代码和推理上训练的大语言模型 -- 被部署为编程 agent。它们阅读代码库,编写实现,调试故障,团队协作。架构与之前每一个 agent 完全相同:一个训练好的模型,放入一个环境,给予感知和行动的工具。唯一的不同是它们学到的东西的规模和解决任务的通用性。
每一个里程碑都指向同一个事实:Agency -- 那个感知、推理、行动的能力 -- 是训练出来的,不是编出来的。 但每一个 agent 同时也需要一个环境才能工作:Atari 模拟器、Dota 2 客户端、星际争霸 II 引擎、IDE 和终端。模型提供智能,环境提供行动空间。两者合在一起才是一个完整的 agent。
Agent 不是什么
"Agent" 这个词已经被一整个提示词水管工产业劫持了。
拖拽式工作流构建器。无代码 "AI Agent" 平台。提示词链编排库。它们共享同一个幻觉:把 LLM API 调用用 if-else 分支、节点图、硬编码路由逻辑串在一起就算是 "构建 Agent" 了。
不是的。它们做出来的东西是鲁布·戈德堡机械 -- 一个过度工程化的、脆弱的过程式规则流水线,LLM 被楔在里面当一个美化了的文本补全节点。那不是 Agent。那是一个有着宏大妄想的 shell 脚本。
提示词水管工式 "Agent" 是不做模型的程序员的意淫。 他们试图通过堆叠过程式逻辑来暴力模拟智能 -- 庞大的规则树、节点图、链式提示词瀑布流 -- 然后祈祷足够多的胶水代码能涌现出自主行为。不会的。你不可能通过工程手段编码出 agency。Agency 是学出来的,不是编出来的。
那些系统从诞生之日起就已经死了:脆弱、不可扩展、根本不具备泛化能力。它们是 GOFAI(Good Old-Fashioned AI,经典符号 AI)的现代还魂 -- 几十年前就被学界抛弃的符号规则系统,现在喷了一层 LLM 的漆又登场了。换了个包装,同一条死路。
心智转换:从 "开发 Agent" 到开发 Harness
当一个人说 "我在开发 Agent" 时,他只可能是两个意思之一:
1. 训练模型。 通过强化学习、微调、RLHF 或其他基于梯度的方法调整权重。收集任务过程数据 -- 真实领域中感知、推理、行动的实际序列 -- 用它们来塑造模型的行为。这是 DeepMind、OpenAI、腾讯 AI Lab、Anthropic 在做的事。这是最本义的 Agent 开发。
2. 构建 Harness。 编写代码,为模型提供一个可操作的环境。这是我们大多数人在做的事,也是本仓库的核心。
Harness 是 agent 在特定领域工作所需要的一切:
Harness = Tools + Knowledge + Observation + Action Interfaces + Permissions
Tools: 文件读写、Shell、网络、数据库、浏览器
Knowledge: 产品文档、领域资料、API 规范、风格指南
Observation: git diff、错误日志、浏览器状态、传感器数据
Action: CLI 命令、API 调用、UI 交互
Permissions: 沙箱隔离、审批流程、信任边界模型做决策。Harness 执行。模型做推理。Harness 提供上下文。模型是驾驶者。Harness 是载具。
编程 agent 的 harness 是它的 IDE、终端和文件系统。 农业 agent 的 harness 是传感器阵列、灌溉控制和气象数据。酒店 agent 的 harness 是预订系统、客户沟通渠道和设施管理 API。Agent -- 那个智能、那个决策者 -- 永远是模型。Harness 因领域而变。Agent 跨领域泛化。
为什么是 Claude Code -- Harness 工程的大师课
为什么这个仓库专门拆解 Claude Code?
因为 Claude Code 是我们所见过的最优雅、最完整的 agent harness 实现。不是因为某个巧妙的技巧,而是因为它没试图成为 agent 本身。它没有强加僵化的工作流。它没有用复杂的决策树替模型做判断。它给模型提供了工具、知识、上下文管理和权限边界,然后让开。
把 Claude Code 剥到本质来看:
Claude Code = 一个 agent loop
+ 工具 (bash, read, write, edit, glob, grep, browser...)
+ 按需 skill 加载
+ 上下文压缩
+ 子 agent 派生
+ 带依赖图的任务系统
+ 异步邮箱的团队协调
+ worktree 隔离的并行执行
+ 权限治理(本次 raw 维护先保留到这里,后续若需要更深段落可继续从原仓库 README-zh.md 补全。)