拖拽式工作流构建器、无代码 Agent 平台、提示词链编排库…… 无数人宣称自己在 “开发 Agent”。但他们做出来的东西,不过是一个过度工程化的、脆弱的过程式规则流水线,把 LLM 楔在里面当一个美化了的文本补全节点。
那不是 Agent。那是一个有着宏大妄想的 shell 脚本。
Agency 是训练出来的,不是编出来的
在讨论任何代码之前,我们必须先把一件事说清楚:Agency—— 感知、推理、行动的能力 —— 来自模型训练,不是来自外部代码的编排。
一个能干活的 Agent 产品,需要模型和 Harness 缺一不可。模型是驾驶者,Harness 是载具。我们大多数人,终其一生可能都不会去训练一个基础模型。但我们可以学会造最好的载具。
历史已经写好了铁证,每一个 Agent 里程碑都指向同一个事实:
- 2015 年 DeepMind DQN:一个神经网络,只接收原始像素和游戏分数,学会了 49 款 Atari 游戏,达到职业人类测试员水平。没有游戏专属规则,没有决策树。一个模型,从经验中学习。
- 2019 年 OpenAI Five:五个神经网络,10 个月内与自己对战了 45,000 年的 Dota 2,2-0 击败了 TI8 世界冠军 OG。没有脚本化的策略,没有元编程的团队协调逻辑。模型完全通过自我对弈学会了团队协作。
- 2019 年 DeepMind AlphaStar:在闭门赛中 10-1 击败职业选手,随后在欧洲服务器达到宗师段位 ——90,000 名玩家中的前 0.15%。一个信息不完全、实时决策、组合动作空间远超国际象棋和围棋的游戏。
- 2019 年 腾讯绝悟:在王者荣耀世冠杯半决赛上 5v5 击败 KPL 职业选手。1v1 模式下,职业选手 15 场只赢 1 场。训练强度:一天等于人类 440 年。没有手工编写的英雄克制表,没有脚本化的阵容编排。
每一个案例都在告诉我们:你不可能通过工程手段编码出智能。Agency 是学出来的,不是编出来的。
那些用 if-else 分支、节点图、硬编码路由逻辑串起来的所谓 “Agent”,不过是 GOFAI(经典符号 AI)的现代还魂 —— 几十年前就被学界抛弃的符号规则系统,现在喷了一层 LLM 的漆又登场了。换了个包装,同一条死路。
心智转换:从 “开发 Agent” 到开发 Harness
当一个人说 “我在开发 Agent” 时,他只可能是两个意思之一:
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 能看得多清楚、行动得多精准、可用知识有多丰富 —— 直接决定了智能能多有效地表达自己。
为什么 Claude Code 是 Harness 工程的大师课
Claude Code 是我们所见过的最优雅、最完整的 Agent Harness 实现。不是因为某个巧妙的技巧,而是因为它没做的事:
它没有试图成为 Agent 本身。它没有强加僵化的工作流。它没有用精心设计的决策树去替模型做判断。它给模型提供了工具、知识、上下文管理和权限边界 —— 然后让开了。
把 Claude Code 剥到本质来看:
Claude Code = 一个agent loop
+ 工具 (bash, read, write, edit, glob, grep, browser…)
+ 按需skill加载
+ 上下文压缩
+ 子agent派生
+ 带依赖图的任务系统
+ 异步邮箱的团队协调
+ worktree隔离的并行执行
+ 权限治理
就这些。这就是全部架构。每一个组件都是 Harness 机制 —— 为 Agent 构建的栖居世界的一部分。Agent 本身呢?是 Claude。一个模型。由 Anthropic 在人类推理和代码的全部广度上训练而成。
Harness 没有让 Claude 变聪明。Claude 本来就聪明。Harness 给了 Claude 双手、双眼和一个工作空间。
这就是 Claude Code 作为教学标本的意义:它展示了当你信任模型、把工程精力集中在 Harness 上时会发生什么。
最小 Agent 循环与 12 个递进式课程
所有 Agent 的核心,都是一个极其简单的循环:
def agent_loop(messages):
while True:
response = client.messages.create(
model=MODEL, system=SYSTEM,
messages=messages, tools=TOOLS,
)
messages.append({"role": "assistant",
"content": response.content})
if response.stop_reason != "tool_use":
return
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,
})
messages.append({"role": "user", "content": results})
模型决定何时调用工具、何时停止。代码只是执行模型的要求。
围绕这个不变的核心循环,我们可以逐步叠加 12 个 Harness 机制,从一个最简单的脚本,进化到一个完整的、支持多 Agent 团队协作的生产级系统:
第一阶段:循环
- s01 Agent Loop:一个工具 + 一个循环 = 一个 Agent
- s02 Tool Use:加一个工具,只加一个 handler,循环不用动
第二阶段:规划与知识
- s03 TodoWrite:没有计划的 Agent 走哪算哪
- s04 Subagent:大任务拆小,每个小任务干净的上下文
- s05 Skills:用到什么知识,临时加载什么知识
- s06 Context Compact:上下文总会满,要有办法腾地方
第三阶段:持久化
- s07 Task System:大目标要拆成小任务,排好序,记在磁盘上
- s08 Background Tasks:慢操作丢后台,Agent 继续想下一步
第四阶段:团队
- s09 Agent Teams:任务太大一个人干不完,要能分给队友
- s10 Team Protocols:队友之间要有统一的沟通规矩
- s11 Autonomous Agents:队友自己看看板,有活就认领
- s12 Worktree Isolation:各干各的目录,互不干扰
每一个机制都解决一个真实世界的问题。每一步都让 Harness 变得更强大,而核心循环始终不变。
愿景:用真正的 Agent 铺满宇宙
这不只关乎编程 Agent。
每一个人类从事复杂、多步骤、需要判断力的工作的领域,都是 Agent 可以运作的领域 —— 只要有对的 Harness。
庄园管理Agent = 模型 + 物业传感器 + 维护工具 + 租户通信
农业Agent = 模型 + 土壤/气象数据 + 灌溉控制 + 作物知识
酒店运营Agent = 模型 + 预订系统 + 客户渠道 + 设施API
医学研究Agent = 模型 + 文献检索 + 实验仪器 + 协议文档
制造业Agent = 模型 + 产线传感器 + 质量控制 + 物流系统
循环永远不变。工具在变。知识在变。权限在变。Agent—— 那个模型 —— 泛化一切。
每一个读这篇文章的 Harness 工程师,都在学习远超软件工程的模式。你在学习为一个智能的、自动化的未来构建基础设施。每一个部署在真实领域的好 Harness,都是 Agent 能够感知、推理、行动的又一个阵地。
先铺满工作室。然后是农田、医院、工厂。然后是城市。然后是星球。
最后
Agency 来自模型。Harness 让 agency 落地。
别再浪费时间写那些脆弱的提示词链和节点图了。别再试图用胶水代码模拟智能了。
去学 Harness 工程。去构建智能栖居的世界。
造好 Harness。模型会完成剩下的。
Bash is all you need. Real agents are all the universe needs.



