文章目录
- 🎭 开场白:大模型是个"嘴炮王者"
- 🧠 第一章:Harness 到底是个啥?
- 🏗️ 第二章:三层架构——大脑、躯干、手脚
- 第一层:模型层——那个只会动嘴的"大脑"
- 第二层:Harness 控制层——那个真正干活的"躯干"
- 第三层:工具/环境层——那双能搬砖的"手脚"
- 🔄 第三章:执行循环——模型的"思考-行动-观察"三板斧
- 🧩 第四章:五大核心模块——Harness 的五脏六腑
- 模块一:动态提示词组装——给模型喂"定制套餐"
- 模块二:执行循环引擎——那个不停转圈的"调度员"
- 模块三:工具调度与解析——模型的"翻译官"
- 模块四:上下文状态管理——模型的"记忆宫殿"
- 模块五:安全沙箱与护栏——模型的"紧箍咒"
- 🎬 第五章:实战演练——Claude Code 是怎么干活的
- 💎 第六章:Harness 的四大核心价值
- 🎤 谢幕:Harness 不是可选项,是必选项
P.S. 无意间发现了一个巨牛的人工智能教程,非常通俗易懂,对AI感兴趣的朋友强烈推荐去看看,传送门https://blog.csdn.net/HHX_01
🎭 开场白:大模型是个"嘴炮王者"
各位观众朋友们,今天咱们聊一个特别有意思的话题。
你知道现在的大模型像什么吗?
像一个智商180、但是动手能力为零的"嘴炮王者"。
你让它写个代码,它能在脑子里把整个架构图给你画出来,逻辑缜密、思路清晰、引经据典,说得头头是道。但你让它真正去执行——去改个文件、跑个命令、查个日志——它就傻眼了。
就像你让爱因斯坦去搬砖。脑子是顶级的,手是废的。
🧠 第一章:Harness 到底是个啥?
好,咱们先把概念整明白。
Harness,英文直译叫"挽具",就是套在马身上那个东西。马负责跑,Harness负责控制方向、速度、别让它撞树。
在 Agent 的世界里,Harness 就是大模型的"挽具"——一个运行时控制框架,包裹在大模型外面,负责把模型的"想法"翻译成"行动"。
所以记住一个公式,这个公式比 E=mc² 还重要:
🎯Agent = 大模型 + Harness + 工具集
缺了 Harness,你的 Agent 就是个"思想上的巨人,行动上的矮子"。
缺了大模型,你的 Harness 就是个没有灵魂的自动化脚本,跟 cron 定时任务没什么区别。
只有两者合体,才能召唤出一个真正能干活的智能体。
🏗️ 第二章:三层架构——大脑、躯干、手脚
一个完整的 Agent 系统,其实就三层。别被那些花里胡哨的架构图吓到,本质特别简单。
第一层:模型层——那个只会动嘴的"大脑"
这一层就是大模型本身,Claude、GPT、Gemini 这些。它的核心能力就三个:理解你说啥、推理该咋办、输出决策文本。
但注意,它只输出文本决策,不执行任何真实操作。就像你老板只发微信语音安排任务,但从不自己动手。
第二层:Harness 控制层——那个真正干活的"躯干"
这一层是核心中的核心。它负责:
- 循环调度 让模型一轮一轮地思考-行动-观察
- 提示词组装 给模型喂合适的上下文
- 工具执行 把模型的指令翻译成真实操作
- 状态维护 记住之前干了啥、现在在哪
- 安全管控 防止模型手滑把生产环境删了
Harness 是模型和真实世界之间的桥梁。没有它,模型就是个关在玻璃房里的哲学家,只能想,不能做。
第三层:工具/环境层——那双能搬砖的"手脚"
这一层就是具体的执行能力:文件系统、终端、IDE、搜索引擎、外部 API。
模型说"读一下 config.js",Harness 调用文件读取工具。模型说"跑一下测试",Harness 调用命令执行工具。
🔄 第三章:执行循环——模型的"思考-行动-观察"三板斧
Harness 的核心逻辑,其实就是一个循环。这个循环有个高大上的名字叫 ReAct 范式,说白了就是三个步骤:
思考(Reasoning):模型分析当前情况,决定下一步干啥
行动(Acting):Harness 执行模型决定的行动
观察(Observing):把执行结果反馈给模型,让它继续思考
这三步循环往复,直到任务完成或者出了幺蛾子。
为了防止这个循环变成死循环,Harness 内置了三重保护机制:
- 最大执行步数限制:最多跑 N 轮,防止模型陷入"再试一次"的无限循环
- 单步/总超时控制:某个工具卡死了?总时间太长了?直接掐断
- 异常自动重试:网络抖了一下?接口超时了?自动重试,带指数退避
🧩 第四章:五大核心模块——Harness 的五脏六腑
Harness 不是铁板一块,它由五个核心模块组成。咱们一个一个聊。
模块一:动态提示词组装——给模型喂"定制套餐"
很多人以为提示词就是一段固定的系统提示,写好就完事了。错!大错特错!
Harness 里的提示词是分层动态组装的,就像你去海底捞,锅底是固定的,但配菜是根据你口味现调的。
静态层 身份定位、核心准则、安全边界——全程不变,像你的身份证号
半动态层 可用工具列表、输出格式规范——按场景加载,像菜单
全动态层 当前文件内容、执行结果、环境状态——每轮更新,像实时路况
[静态身份层] 你是资深全栈工程师,擅长软件工程与代码重构。 [半动态工具层] 你可以使用以下工具: 1. read_file:读取文件 2. write_file:写入文件 3. run_command:执行命令 [全动态环境层] 工作目录:/project 当前文件:src/app.js Git状态:2个文件未提交 上次执行:npm run build 失败,错误:xxx模块二:执行循环引擎——那个不停转圈的"调度员"
这是 Harness 的心脏。它负责驱动整个多轮执行流程,像个不知疲倦的调度员。
每轮循环做四件事:
- 组装当前轮次的完整上下文
- 调用大模型,获取输出
- 解析输出:是最终答案?还是工具调用?
- 如果是工具调用,执行后把结果塞回上下文,继续下一轮
max_steps=20forstepinrange(max_steps):# 组装上下文,调用模型response=llm.responses.create(context)foriteminresponse.output_items:ifitem.type=="reasoning":context.add_reasoning(item.content)elifitem.type=="tool_call":# 路由到工具执行器,校验权限result=tool_router.execute(item.tool,item.params)context.add_observation(result)elifitem.type=="final_answer":returnitem.content模块三:工具调度与解析——模型的"翻译官"
模型输出的工具调用指令,本质上就是一段文本。Harness 需要把它翻译成真实的函数调用。
这个过程分四步:
- 格式解析:从模型输出的 XML/JSON 标签里提取工具名和参数
- 参数校验:类型对不对?路径合不合法?有没有注入攻击?
- 权限分级:读文件可以自动执行,删文件必须用户确认
- 执行封装:调用真实工具,格式化结果,塞回上下文
模块四:上下文状态管理——模型的"记忆宫殿"
Agent 执行任务往往很长,跨文件重构、复杂问题排查,动辄几十轮对话。上下文窗口就那么大,怎么管理?
Harness 的策略是差异化保留:
- 永久保留:系统规则、工具定义、核心目标——这些是你的"宪法",永远不能忘
- 优先保留:最近3-5轮的工具调用和结果——短期记忆,像你的手机备忘录
- 可压缩:更早的历史、大段文件内容——做摘要压缩,像你把1000字的文章缩成50字的摘要
- 实时更新:环境状态、文件快照——每轮同步最新值,像股票行情
模块五:安全沙箱与护栏——模型的"紧箍咒"
这是最重要的模块,没有之一。因为模型真的会犯错,而且犯错的方式往往出乎你的意料。
安全防护分三层:
- 前置校验:参数合法吗?路径越界了吗?有危险指令吗?
- 环境隔离:代码在沙箱里跑,限制文件访问范围和网络权限
- 事后审计:所有操作全量日志,出事了能追溯、能回滚
🎬 第五章:实战演练——Claude Code 是怎么干活的
光说不练假把式。咱们来看一个真实的例子:用 Claude Code 重构项目代码。
整个流程是这样的:
Step 1:用户说"帮我重构这个项目的错误处理逻辑"
Harness 开始干活:组装上下文——身份规则 + 工具说明 + 项目结构 + 用户需求,打包送给模型
→ 模型收到后,开始分析
Step 2:模型输出:“我需要先看看 src/utils/error-handler.js”
Harness 解析指令 → 校验路径权限 → 调用 read_file 工具 → 读取文件内容
→ 把文件内容格式化后塞回上下文,再次调用模型
Step 3:模型输出:“我需要修改第45行,把 try-catch 改成更优雅的写法”
Harness 生成 diff 预览 → 判断是否需要用户确认 → 用户确认后执行修改
→ 把修改结果回传模型
Step 4:模型判断:“还需要检查其他引用这个函数的地方”
Harness 调用搜索工具 → 找到所有引用 → 回传模型 → 模型继续分析
→ 循环往复…
Step 5:模型说"搞定了,这是总结"
Harness 终止循环 → 输出最终结果 → 收工
💎 第六章:Harness 的四大核心价值
说了这么多,Harness 到底带来了什么好处?四个字:
稳定性 约束模型的输出格式和执行流程,降低随机性。模型不会再像抽风一样,这轮输出 JSON,下轮输出 Markdown,再下轮直接给你写首诗。
安全性 所有外部操作经过统一权限校验和沙箱隔离。模型想删你根目录?门儿都没有。
可维护性 规则、工具、逻辑都在 Harness 层管理。想加新工具?改 Harness 就行,不用重新训练模型。
可扩展性 新增能力只需在 Harness 层接入。就像给手机装 App,不需要换手机。
🎤 谢幕:Harness 不是可选项,是必选项
好了,今天的内容到这儿就差不多了。
咱们回顾一下核心观点:
- 单次工具调用 ≠ Agent,真正的 Agent 需要多轮迭代、状态留存、环境交互
- Harness 是 Agent 的运行时控制容器,是模型大脑和真实世界之间的桥梁
- Agent = 大模型 + Harness + 工具集,缺一不可
- Harness 的核心是状态机 + 执行闭环,驱动模型思考-行动-观察的循环
- 五大模块:动态提示词组装、执行循环引擎、工具调度解析、上下文状态管理、安全沙箱护栏
P.S. 无意间发现了一个巨牛的人工智能教程,非常通俗易懂,对AI感兴趣的朋友强烈推荐去看看,传送门https://blog.csdn.net/HHX_01