来源:互联网 更新时间:2026-06-08 07:46
这两年,AI Agent 的发展方向其实发生了挺大的变化。一开始大家都在琢磨怎么把提示词写得更好,后来又开始研究怎么把上下文组织得更聪明,到了现在,行业里一个更清晰的概念开始落地——

如果我们把最近几年 AI 应用的技术路线拉出来看看,会发现一个很清晰的趋势:每一次升级,研发的重心都在往模型外围迁移,模型本身的重要性反而在相对下降。
Harness 这个词从字面上看是“马具”,这个比喻非常形象:
所以说到底,
接下来,我们从工程实现的角度,把 Harness 的七个核心模块逐一拆开来看。每个模块都对应着明确的能力补充和代码实现,它们层层递进、环环相扣,共同构成了这套系统的完整骨架。
这是整套体系的
# 最小Harness:工具 + 循环执行框架
tools = [execute_bash, read_file, write_file] # 定义可用工具:命令行、文件读写
max_iterations = 10 # 最大执行轮次for _ in range(max_iterations):
# 1. 模型接收消息,输出工具调用意图(Model负责思考决策)
response = llm.call(messages, tools)
# 2. Harness拦截模型输出,执行对应工具动作
if response.tool_calls:
result = execute(tool_call)
# 3. 将执行结果追加到对话消息,回传给模型进入下一轮循环
messages.append(result)
裸模型没有持久记忆,每次调用都是独立的会话。遇到复杂的长任务,它也没办法自己拆分成小步骤。这个模块通过
# 记忆模块:Harness接管历史对话存储与加载
memory = load_memory() # 从文件/数据库读取历史会话
system_prompt += memory # 将历史记忆注入模型输入# 规划模块:Harness拆解复杂任务,分步执行
steps = create_plan(task) # 拆分主任务为多个子步骤
for step in steps:
run_agent_step(step, messages) # 逐步骤执行Agent逻辑
这个模块负责三件事:给模型划清行为边界、注入专属的业务知识、动态扩展工具集。说白了,就是给模型配上一本
# 加载规则、技能、历史记忆,拼接为系统提示词(知识注入)
system_prompt = 基础指令 + Rules + Skills + Memory# 动态加载工具:基础工具 + MCP扩展工具(灵活扩展能力)
all_tools = base_tools + mcp_tools
CLAUDE.md、项目配置文件,本质上都属于这个模块。遇到某些特别细分的专项任务时,让同一个模型从头做到尾,效率其实不高。Harness 支持
# 生成临时子Agent,独立上下文、独立执行循环
def subagent(role, task):
sub_messages = [{"role": "system", "content": f"You are a {role}"}]
# 子Agent拥有独立对话与执行逻辑,主Agent不介入内部流程
# 子任务执行完成后,结果回传给主Agent
跟上面临时创建的子 Agent 不同,这个模块面向的是
# 常驻Agent类:包含独立记忆与通信通道
class Agent:
def __init__(self, name, role):
self.messages = [...] # 独立持久记忆
self.inbox = [] # 跨Agent通信收件箱
随着对话轮次增加,历史消息越堆越多,就会出现一个很头疼的问题——
# 每轮执行前压缩对话消息:旧消息摘要化,最新消息完整保留
messages = compact_messages(messages)
裸模型没有一点安全意识,它可能会执行rm -rf /这种高危命令,也可能输出违规内容。Harness 在模型和真实环境之间搭建了一条
Ralph Loop的机制,用来解决任务提前终止的问题。
# 前置钩子:执行工具前拦截(黑名单、人工确认)
before_hooks = [check_blacklist, ask_confirmation]
# 后置钩子:执行工具后处理(内容截断、格式修正)
after_hooks = [truncate_output]def execute_with_hooks(tool_name, args, func):
# 执行前安全校验
for hook in before_hooks:
blocked, msg = hook(tool_name, args)
if blocked:
return msg
# 执行真实工具逻辑
result = func(**args)
# 执行后内容处理
for hook in after_hooks:
result = hook(tool_name, result)
return result
最初的执行循环设了一个max_iterations硬上限,轮次用完了,不管任务有没有完成,都会强制退出。Ralph Loop作为
def ralph_loop_hook(messages, result):
# 检测是否达到最大迭代轮次,即将退出
if result == "Max iterations reached":
# 调用模型判断任务是否真正完成
check = llm.call("Based on the conversation, is the task fully completed? Reply YES or NO.")
if "NO" in check:
# 任务未完成,注入提示,阻止退出,继续循环
messages.append({"role": "user", "content": "任务还没完成,请继续。"})
return False
# 任务完成,允许正常退出
return True
把上面这七个组件串起来,就能梳理出一套完整的分层架构。这套架构清晰地展示了
整套架构的核心逻辑始终如一:
理解 Harness 的概念和架构,不只是掌握一项新技术,更是在重塑 AI Agent 的研发思维。它的行业价值体现在三个维度:
很多开发者觉得,Agent 的效果完全取决于大模型的能力。但实际情况是,
对于做 Agent 开发的工程师,工作内容其实可以用一句话来概括:
在 Harness 这个概念普及之前,行业里对模型外围系统的叫法五花八门:Agent 框架、编排层、中间件、工具链……边界模糊,沟通成本很高。而Agent = Model + Harness这个公式给出了一个极简又清晰的定义:
AI Agent 的竞争,已经从“模型能力比拼”悄悄转到了
《Off Campus》第二季官宣:这对CP还在,但不再是主角
和平精英如何做到压枪稳-和平精英怎样才能压枪稳
下载浏览器app下载安装选择推荐
免费影视剧APP推荐
客单价碾压宝马奥迪!极氪5月交付新车34377辆:连续4个月双增长
儿子穿新中式现身大会堂 马斯克罕见用中文回应:他正在学习普通话
HBO 奇幻剧《龙之家族》第三季定档 6 月 22 日,最终预告片曝光喉道海战
Elysium Above 履云录官网在哪下载 最新官方下载安装地址
DOTA2 TI时隔七年重返上海!门票6月10日开抢,国服享受优先购买!
抖音最火沙雕男生网名(精选100个)
帅气继父网名女生可爱英文(精选100个)
网络热词聊污是什么意思
阿里发布Qwen3.7-Max大模型,全球第五、国产第一
SpaceX狂揽AI人才,马斯克亲自面试且不看简历背景
金铲铲之战s17六暗星卡莎阵容玩法构筑指南
免费看电影的软件推荐
我的末日校园海斗手游上线时间是哪天
名单曝光!库克、马斯克等将随团到访中国 黄仁勋不在其中
晨字沙雕网名大全女生(精选100个)
短剧《情绪超市》剧情介绍
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc