Skip to content
奥运的 Blog
Go back

Agent 是模型,不是你写的那坨代码

最近在 GitHub 上刷到一个叫 learn-claude-code 的项目,花了两天时间从头到尾看了一遍。

说实话,技术细节学到不少,但真正让我停下来想了很久的,是开头那段话:

Agent 是模型。不是框架。不是提示词链。不是拖拽式工作流。

这句话看起来像是在抖机灵,但我越想越觉得它说到了一个被整个行业集体回避的事实。

我之前理解的 “Agent”

做 AIOps 那个项目的时候,我一直觉得自己在 “做 Agent”。搞了个协调层,写了路由逻辑,把指标查询和日志分析拆成不同的模块,模块之间通过消息传递协作。跑起来之后效果确实比单 Agent 好了不少,我还挺有成就感的。

但读完 learn-claude-code 之后,我开始重新审视一件事:我写的那些代码,到底是 Agent,还是 Agent 的工作环境?

答案其实很明显——我写的全是工作环境。路由逻辑是环境,消息传递是环境,工具调用是环境。真正在做决策的,是模型。模型决定先查指标还是先看日志,模型决定该调哪个工具,模型决定什么时候给出结论。我写的代码只是在执行模型的指令。

这个区分听起来像文字游戏,但一旦想清楚,很多事情就通了。

“Agent 框架” 的荒谬之处

现在市面上有无数个 “AI Agent 框架”,它们的卖点基本都是一样的:帮你编排 LLM 调用,管理工作流,串联工具链。节点连线、拖拽配置、可视化流程图,看起来很高级。

但仔细想想,这些框架在做的事情本质上是什么?是用 if-else 和状态机替模型做决策。

“如果用户问的是指标相关的问题,走左边这条线;如果是日志相关的,走右边。” 这不是 Agent,这是一个路由表。一个写死的路由表。

真正的 Agent 不需要你告诉它走哪条路。你给它工具、给它上下文,它自己判断。这才是 LLM 真正厉害的地方——你不用穷举所有情况,模型会泛化。

我之前做 AIOps 的时候,也犯过这个错。最开始在协调层里写了一大堆路由规则:告警类型是 CPU 就转给指标 Agent,包含 “error” 关键词就转给日志 Agent。结果碰到一个 OOM 的 case,既有指标异常又有错误日志,路由逻辑就傻了。

后来我把路由逻辑简化了,让协调层的模型自己判断该分发给谁。效果反而好了。因为模型能理解语义,而我的 if-else 只能匹配关键词。

这就是那个教训:你越是试图用代码替模型做判断,系统就越脆弱。

那我们写的代码是什么?

learn-claude-code 里用了一个词:Harness。直译是 “挽具”,就是套在马身上让它能拉车的那个东西。我觉得这个比喻特别精准。

模型是马。你写的代码是挽具。马有力气、有方向感、能自己判断路况。但它需要挽具才能拉车,需要缰绳才能和车夫沟通,需要马蹄铁才能在石子路上跑。

翻译成技术语言:

你不需要教马怎么走路。你需要给它一条好路、一副好挽具。

从 Claude Code 身上学到的

Claude Code 是我每天都在用的工具,但在读 learn-claude-code 之前,我从没认真想过它为什么好用。

现在回头看,Claude Code 做对了一件事:它没有试图变聪明。

它没有内置 “如果用户要重构就走这个流程” 的逻辑。它没有预设 “先读文件再改代码” 的工作流。它就是给了模型一堆工具——Bash、Read、Write、Edit、Grep、Glob——然后说:你自己看着办。

模型想先跑个测试再改代码?可以。想同时开三个子 Agent 并行搜索?可以。想先写一个计划再动手?也可以。所有这些决策都是模型做的,不是 Claude Code 的代码做的。

这就是为什么 Claude Code 能处理那么多不同的场景——因为它没有限制模型的决策空间。工作流不是写死的,是模型根据当前情况实时决定的。

反观那些 “Agent 框架”,它们做的恰恰相反:把模型塞进一个预定义的流水线里,告诉它 “你只能按这个顺序走”。这不是在赋能 Agent,这是在阉割 Agent。

对我自己项目的反思

回到我的 AIOps 项目。现在重新审视,我做对了一些事,也做错了一些事。

做对的:把不同职责拆给不同的模型实例,每个实例工具少、prompt 短、专注一件事。这本质上是在做 harness 工程——给每个模型一个干净的、专注的工作环境。

做错的:协调层里塞了太多人工规则。我应该让协调层的模型拥有更多自主权,而不是用代码替它做路由决策。模型比我的 if-else 更擅长判断一个问题应该交给谁。

下一步打算做的:把协调层的硬编码规则逐步替换成模型决策。保留工具、保留上下文管理、保留权限边界,但把 “走哪条路” 的判断权交还给模型。

一句话总结

如果你也在做 AI 相关的项目,learn-claude-code 值得花时间读一下。不是为了学 Claude Code 的具体实现,而是为了理解一个更根本的事:

你的工作不是编写智能,而是构建智能栖居的世界。世界造好了,智能自己会发挥。

少写点路由逻辑,多想想怎么给模型更好的工具和更干净的上下文。这可能是我今年学到的最有用的一件事。


Share this post on:

Next Post
AIOps 探索(一):为什么用多 Agent 做智能运维