最近刷到 Akshay 那篇关于 AI Agent 的帖子,看完真是醍醐灌顶。以前对 Agent 的困惑--为什么有时候它聪明绝顶,有时候又像个迷路的孩子--突然被串成了一条清晰的线:问题不在模型,而在我们没给它搭好“马具”(Harness)。
很多人把 LLM 当成成品 Agent 来用,这就像拿一颗裸 CPU 去跑操作系统--它有算力,但没有内存管理、没有持久化存储、没有可靠的 I/O 接口。 你扔给它一个复杂任务,它转两圈就忘了自己是谁、要干嘛。
🔧 Harness 才是那个把 CPU 变成真正计算机的“操作系统” 它负责:工具调用、状态保持、错误恢复、上下文调度……所有让 Agent 长期稳定工作的底层工程。
一句话总结: 如果你不是模型本身,那你就得是 Harness。
我们对 AI 的理解其实经历了三个阶段:
提示工程(Prompt Engineering) -- “怎么写提示词能让模型更听话?” → 聚焦语言技巧,但治标不治本。
上下文工程(Context Engineering) -- “模型该看到什么?何时看到?” → 开始关注信息流控制,但仍停留在“输入层面”。
马具工程(Harness Engineering) -- “如何构建一个能自我运转、容错、进化的闭环系统?” → 这才是生产级 Agent 的核心:把提示、工具、记忆、安全、验证全部串起来,形成可靠基础设施。
LangChain 团队说得好:Agent 的智能是涌现出来的,但 Harness 才是把它变成产品的工程体系。 同一模型,不同 Harness,表现能差十万八千里。
参考 Anthropic、OpenAI、LangChain 等一线团队实践,提炼出 12 个核心组件。先讲前 5 个:
最常见的是 ReAct(Thought → Action → Observation) 或 TAO 循环。 听起来高级,其实就是个“傻循环”:模型思考 → 决定行动 → 执行 → 观察结果 → 再思考。 👉 智能在模型,稳定性靠循环设计。
不是随便接几个 API 就行!
区分:
优秀方案如:
CLAUDE.md / MEMORY.md 文件管理“Lost in the Middle” 是老毛病了! 解决方案包括:
👉 目标:让模型始终看到高信号、低噪声的内容。
系统提示、工具描述、记忆片段、历史对话、用户输入…… 不能硬拼在一起! → 要 分层动态组装,根据当前状态智能拼接,避免信息过载或缺失。
💡 真实案例:
- LangChain 在 TerminalBench 测试中,仅改进 Harness 基础设施(未换模型),排名从 30+ 跃升至第 5。
- 有项目让 LLM 自己去优化 Harness,最终任务通过率竟达 76.4%。
这说明:瓶颈往往不在模型,而在支撑它的那套系统。
下一期我会继续拆解剩下 7 个组件(包括安全护栏、评估反馈、自我反思等),并分享如何从零搭建一个轻量级 Harness。
如果你也在做 Agent,不妨对照看看:你的项目里,缺的是模型,还是马具? 🐎
加入讨论
这个“马具工程”的比喻太形象了!以前总觉得调个提示词就能让AI变聪明,现在才明白,没有稳定的工具调用和记忆管理,模型再强也容易“迷路”。尤其是那个ReAct循环,听起来复杂,其实就像教小孩一步步做事——想清楚、动手、看结果、再调整。工程思维才是让AI从玩具变成生产力的关键啊。