别只盯着模型:聊聊 Agent Harness

从一个现象说起 用 AI 写代码的人大概都有过类似的体验:同一个模型,放在网页聊天框里改一个复杂项目,它给你贴一大段代码,粘哪儿你自己想;换到 Claude Code 这类编码工具里,它能自己读文件、跑测试、看报错、再来一轮,几分钟后交回来一个能跑的 diff。 模型明明是同一个,差别在哪? 在模型外面那一层:谁来维持任务状态、给它什么工具、允许它碰哪些文件、上下文快满了怎么办。这层东西有个名字,harness。 这个词原本是赛马用的马具,套在马身上,把马力变成人能驾驭的速度。放到 AI 语境里,它指包裹模型的整套工程脚手架。 harness 里都有什么 把一个 agent 产品拆开看,大致几层: 调度循环:最核心的部分。收任务、调模型、执行工具、看结果、决定下一步,直到任务完成或需要人介入。 工具层:文件读写、shell、搜索、浏览器。每个工具的定义、描述、错误信息都是设计出来的。 上下文管理:什么时候压缩历史、裁掉什么、哪些信息要挪到外部存储。 权限与沙箱:哪些操作直接放行、哪些要人确认、危险命令怎么拦。 记忆:跨会话记什么、忘什么。 骨架用伪代码写出来其实很短: while not task_done: response = model.call(context, tools) if response.wants_tool: result = sandbox.execute(response.tool_call) # 权限检查在这 context.append(result) else: break # 模型认为任务完成 跑得起来,demo 一小时就能写完。但生产级 harness 的复杂度全在省略号里:工具调用失败怎么重试、上下文超限怎么压缩、用户中途打断怎么恢复、两个工具并发改同一个文件怎么办。工程量和这个 while 循环完全不在一个量级。 判断一个 harness 的成色,我的经验是别看它顺利的时候多流畅,看它出错的时候怎么表现:重试有没有上限,错误信息有没有传回给模型,会不会带着坏状态继续跑。 五个常见误区 误区一:harness 就是个 API 封装 最低配确实如此,所以很多人低估了它。但"能跑"和"能用"之间隔着大量脏活:权限模型、上下文管理、失败恢复、可观测性。Anthropic 在 Building Effective Agents 里反复强调别急着上复杂框架,先把简单模式的可靠性做扎实。这句话反过来读,就是说简单模式做到可靠本身就很难。 误区二:上下文窗口够大,就不用管上下文了 窗口从 128K 涨到 200K 再到 1M,于是有人觉得历史记录一股脑塞进去就行。但窗口大不等于注意力够用。长上下文有个被反复观察到的现象(有人叫它 context rot):信息越多,模型对中段内容的利用越差,关键细节容易被淹没。 ...

July 16, 2026 · AI · 1 min · 140 words · map[email:onetick@live.cn name:Hongyu]

对话:LLM 真的在「理解」吗?—— 揭开大语言模型的工作原理

编者按 这是一次关于大语言模型(LLM)本质的对话。从"相似性"这个直觉出发,聊到预训练、参数、注意力机制,最后聊到一个核心问题:LLM 真的在"理解"吗?有技术细节,也有对 AI 本质的冷静看法。 第一部分:预训练 —— 压缩互联网,不是背书 问:帮我理解 LLM 如何能准确生成正确的答案,它内部是怎么理解知识和上下文的?我之前了解过,似乎就是相似性,通过预训练投喂 LLM 模型。 答:你说的"相似性"是对的,但更准确说是高维空间中的位置关系。 预训练时,模型看了海量文本,但它不是在记忆,而是在压缩规律。想象你要总结一本小说——背下来每一句话是死记硬背,学会"主角遇到困难会怎么做"才是掌握规律。LLM 做的是后者。 它学会的是因果关系、语义关系(“国王 - 王后 ≈ 男 - 女”)、代码缩进规则、数学推理链条……这些规律被压缩进参数(权重)里。 每个词被转成一个向量(比如 12288 维),在这个空间里,“猫"和"狗"距离近,“猫"和"汽车"距离远。相似概念在空间中聚集,不同概念分散。模型通过位置关系"理解"语义。 第二部分:参数 —— 不是输入,是"大脑” 问:通常说的什么 xx B 参数,这个参数怎么理解,和程序开发中的方法参数类的有什么关系? 答:这两个"参数"完全不是一回事,只是中文翻译撞名了。 程序参数是输入,你调用时传进去的。而 LLM 的"参数"指的是模型内部的权重数量——训练完成后固定在那里的数值。 7B 模型 = 70 亿个权重 70B 模型 = 700 亿个权重 一个简化的例子: # 一个最简单的神经元 def neuron(x, w, b): # x 是输入,w 和 b 是"参数" return w * x + b LLM 有几十亿个这样的 w 和 b,层层连接形成网络。训练就是不断调整这些数,让输出越来越对。 类比一下:程序参数是你给函数的输入,LLM 参数是烘焙师傅 20 年积累的手感。你调用师傅(输入文本),他用手感(参数)做出蛋糕(输出)。 ...

March 3, 2026 · AI / 思考 · 2 min · 262 words · map[email:onetick@live.cn name:Hongyu]