LangChain 创始人:Agent 工程或成 2026 分水岭,软件公司面临转型挑战

LangChain 创始人 Harrison Chase 警告,2026 年 Agent 工程或成 AI 领域分水岭,传统软件公司面临生存挑战,工程范式变革在即。

原文标题:LangChain 创始人警告:2026 成为“Agent 工程”分水岭,传统软件公司的生存考验开始了

原文作者:AI前线

冷月清谈:

LangChain 创始人 Harrison Chase 认为,Agent 的出现正在改变软件工程的范式,传统的“代码即逻辑”正在被打破,模型的非确定性使得理解系统行为变得更复杂。长任务 Agent 的兴起,将对传统软件公司带来生存考验。构建 Agent 不仅是软件开发加一层 AI,而是工程范式的根本性变革。文章深入探讨了 Agent 系统中模型、框架和 Harness 的角色,以及 harness 工程的关键要素,如模型训练偏好理解、上下文压缩和 Agent 间通信。同时,讨论了构建长时序智能体与传统软件开发之间的差异,强调了 tracing 的重要性,以及迭代式开发和记忆在 Agent 构建中的作用。传统软件公司需要转变心态,利用自身的数据资产,抓住 Agent 时代的新机遇。

怜星夜思:

1、文章提到“构建智能体是一个更偏迭代式的过程”,大家觉得在实际Agent开发中,迭代过程中哪些环节是最需要关注的?
2、Harrison 提到“现阶段只要你在做长时序智能体,你就必须给它文件系统的访问能力”,大家觉得在实际应用中,如何平衡文件系统访问带来的便利性和安全性?
3、文章中提到记忆(Memory)可能会成为 Agent 的护城河,大家认为什么样的记忆能力才是 Agent 真正需要的?仅仅是记住用户的历史对话吗?

原文内容

编译 | Tina

过去几十年,软件工程有一个稳定不变的前提:系统的行为写在代码里。工程师读代码,就能推断系统在大多数场景下会怎么运行;测试、调试、上线,也都围绕“确定性”展开。但 Agent 的出现正在动摇这个前提:在 Agent 应用里,决定行为的不再只是代码,还有模型本身——一个在代码之外运行、带着非确定性的黑箱。你无法只靠读代码理解它,只能让它跑起来、看它在真实输入下做了什么,才知道系统“到底在干什么”。

在播客中,LangChain 创始人 Harrison Chase 还把最近一波“能连续跑起来”的编程 Agent、Deep Research 等现象视为拐点,并判断这类“长任务 Agent”的落地会在 2025 年末到 2026 年进一步加速。

这也把问题推到了台前:2026 被很多人视为“长任务 Agent 元年”,现有的软件公司还能不能熬过去?就像当年从 on-prem 走向云,并不是所有软件公司都成功转型一样,工程范式一旦变化,就会重新筛选参与者。长任务 Agent 更像“数字员工”——它不是多回合聊天那么简单,而是能在更长时间里持续执行、反复试错、不断自我修正。

在这期与红杉资本的对话中,Harrison 抛出了一个判断:构建 Agent,已经不只是把软件开发“加一层 AI”,而是工程范式本身在变。为什么他说“光读代码不够了”?为什么 tracing、评估、记忆这些原本偏“辅助”的东西,突然变成主角?他在对话里给出了非常具体的解释。

而更现实的问题是:如果范式真的在变,那些靠数据、流程、产品形态建立壁垒的传统软件公司,优势还能不能延续?它们手里握着的数据与 API 可能依然是王牌,但能否把这些资产变成 Agent 时代的生产力,取决于一套全新的工程打法。Harrison 的观察与判断,都在下面的完整对话里:

主持人:AI 领域的变化速度快得惊人。当前最受关注的话题,我觉得没有人比你更合适来聊。我们会先谈 长任务 Agent(Long Horizon Agents) 和 Agent Harness(智能体运行框架)。

*** 接着,我们会讨论:构建长任务 Agent 与构建传统软件到底有什么不同,以及你如何看待 LangChain 在整个生态系统中的角色。最后,我想和你聊聊未来。你怎么看红杉资本这篇关于 Long Horizon Agents 的文章?哪些观点你认同,哪些地方你不太同意?

来源:https://sequoiacap.com/article/2026-this-is-agi/

“在去年的一篇文章中,我们曾提出:推理模型(reasoning models)是 AI 领域最重要的新前沿。而“长任务 Agent”(long-horizon agents)则在这一范式之上更进一步——它们不只是思考,还能够采取行动,并在时间维度上不断迭代。”

Harrison Chase: 你们这个概念命名得非常好,那篇文章也写得很棒。我整体上是认同的——长任务 Agent 终于开始真正“跑起来”了

一开始对 Agent 的设想,本来就是让一个 LLM 运行在一个循环里,自主决定接下来该做什么。

AutoGPT 本质上就是这个想法,这也是它当初能迅速走红、抓住那么多人想象力的原因:一个 LLM 在循环中运行,完全自主地决定行动。但当时的问题在于:模型还不够好,围绕模型的 scaffolding(支架)和 harness(框架)也不够成熟

这几年,模型本身变得更强了;与此同时,我们也逐渐搞清楚了,什么样的 harness 才是“好”的。于是现在,这套东西开始真正奏效了。最明显的例子是在编程领域,Agent 的突破首先发生在那里。之后,这种能力正在向其他领域扩散。

当然,你仍然需要告诉 Agent 你想让它做什么,它也需要配备合适的工具。但现在,它确实可以持续运行更长的时间,而且表现越来越稳定。所以,用“长时序”来描述这一类 Agent,我觉得非常贴切。

主持人:你最喜欢的长任务 Agent 案例有哪些?你觉得它们正在呈现出哪些形态?

Harrison Chase: 目前最成熟、我自己用得最多的,还是 编程 Agent

再往外延一点,我觉得非常优秀的一类是 AI SRE。比如 Traversal(我记得它是一家红杉投资的公司),他们的 AI SRE 可以在更长的时间跨度内运行。再往抽象一点,其实这类 AI SRE 本质上属于“研究型 Agent”。比如:给它一个事故,它会去翻日志、分析上下文、追溯原因。研究任务本身非常适合 Agent,因为它们最终产出的往往是一个“初稿”。

Agent 的问题在于:它们还达不到 99% 的可靠性,但它们可以在较长时间内完成大量工作。所以,只要你能把任务框定为:让 Agent 长时间运行,产出一个初步版本,由人来审阅,这在我看来就是目前长任务 Agent 最“杀手级”的应用形态。

编程就是一个例子:你通常是提交 PR,而不是直接推到生产环境(当然,vibe coding 现在也在不断进步)。AI SRE 也是一样:结果会交给人来 review。报告生成也是如此:你不会直接发给所有用户,而是先看一遍、改一改。我们在金融领域也看到了大量这样的用法,这是一个非常大的研究机会。客服领域同样如此。最早的客服 Agent 主要是做“第一响应”:用户一发消息,马上给出回复,这类用法现在也做得很好。

但现在开始出现新的形态,比如 Klarna 这个产品:人类和 AI 协同工作。当第一层自动回复失败后,不是简单地转交给人工,而是让一个长任务 Agent 在后台运行,生成一份完整的事件报告,然后再交给人工客服处理。

这里“agent”这个词在客服语境下会变得有点混乱,但核心逻辑是一致的。总结来说,这些应用的共同点是:先由 Agent 生成一个“初稿”,再由人类接管。

主持人:那么,“为什么是现在”?你觉得主要是因为模型本身变得足够强,还是因为人们在 harness 侧做了非常聪明的工程设计?在回答这个问题之前,能不能先帮听众梳理一下:在一个 Agent 系统中,模型、框架和 harness 各自扮演什么角色?

Harrison Chase: 当然可以。我也顺便把“框架”这个概念一起带进来。一开始,我们把 LangChain 描述为一个 Agent Framework,现在我们又推出了 Deep Agents,我更愿意称它为一个 Agent Harness

很多人都会问,这两者有什么区别。模型很简单,就是 LLM:输入 token、输出 token。框架(Framework) 是围绕模型的一层抽象,让你更容易切换模型,封装工具、向量数据库、记忆等组件,本身比较“无偏好”,强调灵活性,更像是基础设施。Harness 则更“有主张”。以 Deep Agents 为例:我们默认就提供一个 规划工具(Planning Tool); 这个工具是直接内建在 harness 里的,带有明确的设计立场:我们认为这是“正确”的做法。

我们还做了 上下文压缩(Compaction)。 长任务 Agent 会运行很久,哪怕上下文窗口已经很大,也终究是有限的,总会有需要压缩的时候。怎么压缩?压缩什么?这是一个正在被大量研究的问题。

此外,几乎所有 Agent Harness 都会提供文件系统交互能力,不管是直接操作,还是通过 bash。这一点其实很难和模型本身完全分开,因为模型训练数据里已经大量包含了这类操作。

如果回到两年前,我不确定我们是否能预见到:基于文件系统的 harness 会成为最优解之一。那时模型还没被充分训练过这些模式,而现在模型和 harness 是在一起“共同进化”的。

所以总结来说,这是一个组合效应:模型本身确实在变强,推理模型带来了巨大提升。同时,我们也逐渐摸索出了 compaction、planning、文件系统工具等一整套关键原语。这两者缺一不可。

设计范式的演进
主持人:我记得在我们第一次对谈时,你把 LangGraph 描述为 Agent 的“认知架构”。现在来看,这是不是也可以理解为 harness 的一种形态?

Harrison Chase: 是的,这个理解是对的。我们现在的 Deep Agents 是构建在 LangGraph 之上的。可以把它看作是一个非常具体、非常有主张的 LangGraph 实例,更偏向通用目的。

早期我们讨论过“通用架构”和“专用架构”的区别。现在我们观察到一个很有意思的变化:过去需要写进架构里的任务特异性,正在转移到工具和指令里。

复杂性并没有消失,只是从结构化代码,转移到了自然语言中。因此,prompt 的设计、修改,甚至自动更新,正在成为系统的一部分;而 harness 本身,反而变得更加稳定。

主持人:在你看来,harness 工程中最难做对的是什么?你觉得单个公司是否真的有可能在这一层形成显著优势?有没有你特别佩服的团队?

Harrison Chase: 说实话,目前在 harness 工程上做得最好的,基本都是编程类公司。Claude Code 就是一个非常典型的例子。我认为它能如此受欢迎,很大程度上是因为它的 harness。

主持人:这是否意味着:harness 更适合由模型公司来做,而不是第三方创业公司?

Harrison Chase: 我不确定。比如 Factory、AMP 这些编程公司,也都做出了非常强的 harness。

确实存在一个现实:harness 往往和模型家族绑定得比较紧密。不一定是某一个具体模型,而是一整个模型体系。Anthropic 的模型会针对某些工具进行微调,OpenAI 则针对另外一些。这和 prompt 类似:不同模型,需要不同的 prompt;同样,不同模型家族,也需要稍微不同的 harness。当然,它们也有很多共性,比如几乎都会使用文件系统。

我自己也没有一个确定答案。但一个很明显的现象是:几乎所有做编程 Agent 的公司,现在都在自研自己的 harness。你去看 Terminal Bench 2 这样的榜单,会发现他们不仅展示模型,还展示 harness。Claude Code 并不总是在榜首。这说明:性能差异并不完全来自模型,而来自对“模型如何在 harness 中工作”的理解。

主持人:你觉得,排行榜上表现最好的 harness,究竟在哪些地方做得特别好?

Harrison Chase: 首先是对 模型训练偏好的理解。比如 OpenAI 的模型对 Bash 非常熟悉;Anthropic 提供了显式的文件编辑工具。顺着模型的“母语”来设计 harness,本身就能带来性能收益。

其次是 上下文压缩(Compaction)。随着任务时间跨度变长,如何处理上下文窗口溢出,已经成为一个核心问题。这显然也是 harness 的一部分。

此外,还有 skills、子 Agent、MCP 等机制。目前这些能力还没有被系统性地训练进模型中,仍然属于比较新的探索方向。

在我们的 harness 中,一个典型挑战是:主 Agent 如何与子 Agent 高效通信。主模型需要把所有必要信息传递给子 Agent,同时还要明确告诉它:最终只需要返回一个“最终结果”。

我们见过一些失败案例:子 Agent 做了大量工作,最后却返回一句“请查看我上面的分析”,而主 Agent 根本看不到那些内容,于是完全不知道它在说什么。

所以,如何通过 prompt 设计让这些组件协同工作,是 harness 工程中非常重要的一部分。

如果你去看一些公开的 harness prompt,它们往往有几百行之长。

主持人:我想从演进角度问一个问题。你一直站在模型“如何落地”的最前沿。如果用一种简化视角来看过去五年的几个关键拐点:ChatGPT 带来了预训练的拐点;o1 带来了推理能力的拐点; 最近,Claude Code + Opus 4.5 带来了长任务 Agent 的拐点。但从你这个“围绕模型做设计”的世界来看,拐点会不会是另一套划分?从认知架构到框架、再到 harness,这中间经历了哪些真正的跃迁?

Harrison Chase:我大概会把它分成三个阶段。

第一阶段:最早期。那时 LangChain 刚刚出现,模型还是“纯文本输入、纯文本输出”,甚至还不是 chat 模型。没有工具调用,没有 reasoning,没有结构化输出。人们主要做的是单一 prompt 或简单 chain。

第二阶段:工具与规划开始进入模型。模型开始支持 tool calling,也尝试学会“思考”和“规划”。虽然还不够强,但已经能做出基本决策。这时,人们大量使用自定义的认知架构,通过显式提问来引导模型行动,但整体仍然依赖大量外部 scaffolding。

第三阶段:长任务 Agent 的真正起飞。大概是在今年 6~7 月,我们看到 Claude Code、Deep Research、Manus 等产品同时爆发。它们在底层使用的是 同一个核心算法:让 LLM 在循环中运行。

真正的突破来自于 上下文工程:压缩、子 Agent、技能、记忆——所有这些,都是围绕上下文展开的。这正是我们开始做 Deep Agents 的时间点。

对于很多程序员来说,Opus 4.5 可能是一个心理上的分水岭。也可能只是碰巧遇上假期,大家回家开始大量使用 Claude Code,突然意识到:它真的很好用。无论是 2025 年初还是 2025 年末,总之在某个时间点,模型“刚好强到足以支撑这种形态”,于是我们从 scaffolding 迈向了 harness。

Coding Agent 是

通用 AI 的终局形态吗

主持人:接下来会发生什么?

Harrison Chase: 我也希望我知道答案。这个“让 LLM 在循环中运行、让它自己决定要拉什么上下文进来”的算法,本身极其简单、也极其通用。这正是 Agent 从一开始的核心设想,而我们现在终于走到了“它真的能工作”的阶段。

接下来,可能会有大量围绕上下文工程的技巧出现:有些手动设计的部分可能会消失;比如压缩类的,现在仍然高度依赖 harness 作者的决策。Anthropic 已经在尝试让模型自己决定何时压缩上下文,虽然目前用得还不多。

另一个我们非常关注的方向是 记忆(Memory)。从本质上说,记忆也是一种上下文工程,只不过是跨更长时间尺度的上下文。核心算法本身已经非常清晰:运行 LLM 循环。未来的进步,很可能来自更聪明的上下文工程方式,或者让模型自己参与上下文管理。模型当然也会继续变强,越来越擅长长时序任务。

我目前思考最多的一个问题是:我们看到的大多数 harness 都是高度偏向编程任务的。这是长任务 Agent 最先爆发的领域。但即便是在非编程任务中,你也可以认为:写代码本身是一种非常强的、通用的工具。

主持人:我本来想问你:编程智能体(coding agents)到底算不算一个子类别?还是说编程智能体就是智能体本身?换句话说,智能体的工作,本质上是想办法让计算机去做一些有用的事情,而“写代码”本来就是让计算机做有用事情的一种很好的方式。

Harrison Chase: 我也不确定。但有一点我非常非常坚信:现阶段只要你在做长时序智能体,你就必须给它文件系统的访问能力。因为文件系统在“上下文管理”方面能做的事情太多了。比如我们说 compaction(上下文压缩),一种策略是把内容总结掉,但把完整的消息都放进文件系统里,这样如果智能体后续需要回查,它还能查到。

另一种策略是,当你遇到很大的工具调用结果时,不要把全部内容都塞回模型上下文里;你可以把结果放进文件系统,然后让智能体需要的时候再去查。

而这些操作,其实不一定需要真实的文件系统,也不一定要让它真的去写代码。我们有一个概念叫“虚拟文件系统”:它底层可能只是 Postgres 之类的存储,扩展性更强。当然,“真实代码”能做的事情,虚拟文件系统做不了。比如你没法在虚拟文件系统里直接运行代码。所以写脚本在很多场景下确实非常有用。

我也认为编程智能体有潜力成为通用智能体,但我不确定这是否意味着“今天的编程智能体”就是通用智能体——如果你能理解我这句话。因为我觉得现在很多编程智能体还是 为编程任务做了大量优化 的。

所以“一个通用智能体可能长得像编程智能体”,但反过来,“今天的编程智能体就是通用智能体”,这件事我并不确定。

传统软件面临的挑战
主持人:那我们能不能转到另一个话题:构建长时序智能体和构建传统软件之间的差异?你能不能先描述一下“1.0 时代”的软件开发栈是什么样的,然后说说现在到底哪里不一样?我记得你在 X 上写过一篇很不错的文章,也许你可以总结一下核心结论。

来源:https://x.com/hwchase17/status/2010044779225329688

Harrison Chase: 我这段时间一直在反复想这个问题:我们经常说“做智能体和做软件是不同的”,而且很多人也同意。但问题是:到底哪里不同?

我觉得很容易、也很偷懒地说“不同”,但“具体不同在哪里”才是关键。下面这些可能听起来很显然,但也许显然是好事,希望它们不太有争议。

当你在做传统软件时,所有逻辑都写在代码里,你能直接在软件代码中看到它。但当你在做智能体时,你的应用如何工作的“逻辑”,并不全部在代码里,其中很大一部分来自模型本身。

这意味着:你不能只看代码,就判断智能体在某个具体场景下会做什么。你必须真的把它跑起来。而我认为,这就是最大的不同:我们引入了这种 非确定性系统,它是一个黑箱,它在代码之外。我觉得这就是核心差异。

一个直接后果是:为了弄清楚应用到底在做什么,你不能看代码,你必须看它在真实运行中做了什么。这也是为什么我们做的产品里,最受欢迎的之一是 LangSmith。LangSmith 的一个核心能力是 tracing(追踪 / 执行轨迹)。为什么 trace 这么受欢迎?因为它能把智能体每一步内部发生的事情都清清楚楚地展示出来。

而这跟传统软件里的 trace 又不一样。传统软件里,你的系统在那边跑,它会吐出很多日志和事件;你通常是在出现错误时才去看,而且你不需要“每一步的全部细节”。而且本地开发时,你可能直接打个断点就够了;很多时候日志追踪是上线到生产环境后才会更重度开启。但在智能体里,人们从一开始就会用 trace 来理解“底层到底在发生什么”。

而且它在智能体里的影响力,远大于在单一 LLM 应用里的影响力。因为在单一 LLM 应用里,如果模型回答得不好,你知道你的 prompt 是什么,也知道输入上下文是什么(由代码决定),然后你得到一个输出。

但在智能体里,它在循环中运行、不断重复。你并不知道第 14 步时上下文里到底有什么,因为前面 13 步可能会把任意东西拉进上下文。所以,“上下文工程(Context Engineering)”真的是一个非常好的词。我真希望这是我发明的。它几乎完美描述了我们在 LangChain 做的一切——只是当时我们并不知道这个术语已经存在。

trace 的价值就在于:它能直接告诉你 此时此刻上下文里到底有什么,这太重要了。那这又意味着什么?这意味着:对传统软件来说,“真相的来源(source of truth)”在代码里。但对智能体来说,真相来源变成了代码与 trace 的组合——而 trace 是你能看到真相的一部分地方。

从技术上说,真相当然也“存在于模型的数百万参数里”,但你基本没法直接对参数做什么。所以现实上,trace 就成了你可以抓住的“事实载体”。

因此,trace 也会成为你开始思考测试的地方。你仍然可以对 harness 的某些部分做单元测试,也可以离线做一些 unit test,但要获得真正的测试用例,你很可能需要用 trace 来构建。而且在智能体里,在线测试(online testing) 可能比传统软件更重要,因为行为不会在离线环境里完整显现出来,只有在真实世界输入驱动下、系统被真正使用时,行为才会“涌现”。

我们也看到 trace 正在成为团队协作的中心:如果出了问题,不再是“去 GitHub 看代码”,而是“去看那条 trace”。我们在开源项目里也一样。有人说:“Deep Agents 这里跑偏了,发生了什么?”我们的第一反应是:“把 LangSmith trace 发给我们。”如果没有 trace,我们基本没法帮你 debug。过去大家会说“把代码给我看看”,但现在已经转变了。

这就是我写在 X 上那篇文章的核心内容,反馈很好。我也还在琢磨怎么把它表达得更精确,但我觉得这一点很关键。

另外一个点我也还在继续想:我觉得 构建智能体是一个更偏迭代式的过程

我们过去也会这么说,但我以前会有点翻白眼,因为软件开发本来也是迭代式的:你发布、收反馈、不断迭代,这就是软件开发的常态。但我觉得差别在于:在传统软件里,你的迭代是围绕“你希望软件做什么”来进行的。你有一个想法,你发布,你收反馈。比如“这个按钮让人困惑”,或者“用户其实想做 X 而不是 Y”。但你在发布之前,其实你是知道软件会怎么运行的。

但在智能体里,你在发布之前 并不知道它到底会怎么做。你当然有一个预期,但你并不能在发布前真正确定它会做什么。因此,为了让它更准确、让它更“对”、让它能通过某种“概念上的单元测试”,你需要更多轮次的迭代。

在这个基础上,我也认为记忆(memory)非常重要。因为记忆就是在从这些交互中学习。如果你的开发过程变得更迭代、更难,那么作为开发者,我为了让系统表现正确,可能需要反复改系统 prompt——这种频率甚至可能比我改代码还高。

这就是记忆进入的地方:如果系统能够以某种方式自己学习,那就能减少开发者必须进行的迭代次数,让构建这类智能体变得更容易。

所以,这是我认为“构建智能体确实不同于构建软件”的另一个角度。我也承认,这么说有点老套,所以我一直在逼自己想清楚“到底不同在哪里”,目前我总结出来的就是这两点。

主持人:我也很想追问这一点。现在公开市场上有一个很大的争论:现有的软件公司还能不能熬过去?如果类比当年从本地部署软件(on-prem)转向云(cloud),实际上真正成功转型的公司并不多,因为事实证明,“做云软件”和“做本地软件”确实差异很大。你现在处在“人们如何用 AI 构建产品”的核心地带。你怎么看这件事?

*** 我不是要问公开市场的投资问题,而是想问:这个变化到底有多大?你有没有看到很多人:过去很擅长“旧方法做软件”,现在也能很擅长“新方法做软件”?还是说更像是:你要么在“新方法”里长大,要么就很难真正理解它?你觉得人能跨越这个鸿沟吗?

Harrison Chase: 我注意到现在有很多年轻创始人,这让我觉得,也许年轻人因为没有太多对“旧软件开发方式”的先入之见,反而可以更快把这些东西学起来、用起来。而且我们确实一再听到一个现象:很多在做 agent engineering 的团队成员,反而是更初级的开发者、更初级的构建者——他们确实没有那些先入之见。我们内部的应用 AI 团队,确实整体更偏年轻一些。我觉得这里面既有“人的因素”,也有“公司的因素”。

先说公司层面:数据依然非常非常非常有价值。如果你从 harness 的角度去看——顺便说一句,我其实不认为长期来看大多数人都会自己去写 harness,因为它比做 framework 难太多了。所以我觉得大家最终会用我们提供的 harness,或者用别人的。

那一个 harness 里面有什么?主要就是:prompt、指令,以及它连接的工具。而现有公司在这方面最大的资产之一,是他们已经拥有数据和 API。如果你过去在这块做得不错,那么把这些东西接入到 agent 上,其实会非常容易产生真实价值。

我们前阵子和金融行业的人聊,他们就说:数据的价值只会越来越高、越来越高、越来越高。所以如果你是一个传统软件厂商,你手上有这些高价值数据,你应该能够把它暴露给智能体,让智能体去用,从中拿到很大的收益。

不过这里还有另一部分:关于“如何使用这些数据”的指令(instructions),这一块可能更偏“新增”。

你作为软件厂商也许一直对“怎么用这些数据”有一些想法,但你并没有把这些想法系统化、固化成可执行的“操作说明”,因为过去这件事更多是由人来完成的——很多智能体现在在做的事情,本来就是人类会做的事情。

你当然会给人配工具,但你以前不会、或者也很难成功地把它完全自动化。而到了“智能体”这一代,这部分才真正变得可行。所以我觉得这块是新的。

我们也看到大量需求来自“垂直领域创业公司”。Rogo 就是一个很好的例子:他们团队有人有金融行业经验,把这种行业知识带进了智能体系统里,而这之所以有效,是因为很多智能体的驱动力来自“知识”——但不是那种通用世界知识,而是 如何执行特定流程、特定模式的知识

所以问题就变成:做传统软件的人是不是做智能体的合适人选?我觉得我们确实看到很多非常资深的开发者在采用 agentic coding,所以某种程度上这更像是“心态问题”。但确实也可能会呈现出一种“年轻化倾向”。而公司层面,则很大程度取决于它手上的数据资产。

主持人:所以看起来,你认为 trace 是这个新世界里 agent 开发的核心“产物”,LangSmith 在这方面帮助很大。那你觉得还有哪些核心的“产物”——或者说,可能“产物”这个词不对,应该说组件(components)?

Harrison Chase: 对,组件。我觉得构建软件与构建智能体之间另一个差异是:评估软件时,你可以相当可靠地依赖程序化测试和断言。但智能体做的很多事情,本质上是“人类会做的事情”。因此要评估它,你必须把 人的判断 引入进来。

这也是我们在 LangSmith 里努力解决的问题之一:你已经有了这些 traces,那么你怎么把人类判断带到 traces 上?最直接的方法当然就是:把人引进来。所以我们也看到数据标注类创业公司做得很好。我们在 LangSmith 里有一个概念叫 annotation queues(标注队列),就是把人带进来参与。因此,实际的、真实的人类判断,是其中非常重要的一部分。

主持人:这里的“人工标注”的 trace,比如,智能体做了这些步骤,这是好还是不好。

Harrison Chase: 有时候,人会给自然语言反馈:这很好、这很差、这里应该怎么做。有时候,人会直接“纠正它”:把正确步骤完整地写出来。这具体怎么做取决于用例,而且对做 RL 的模型公司,和对做 agent 应用的公司来说,也可能不一样。但核心就是:把人类判断带进来。

同时,我们也看到另一条路:尝试为这种人类判断建立一些“代理指标”(proxy)。这就是 LLM-as-a-Judge 这类方法的来源:你可以跑一个 LLM 或其他模型,让它承担某种“类似人类判断”的角色,去给那些本来需要人类判断的东西打分。

我们一直在思考的一件事是:怎么让“构建 judge”这件事变得容易。因为 judge 的关键很大一部分在于:它必须和你的人的判断、人类偏好保持一致。如果做不到,那你的 grader(评分器)就很糟糕。

所以我们在 LangSmith 里做了一个概念叫 align evals:人类先去标注一些 traces,然后基于这些标注,构建一个 LLM judge,使它在这些样本上被校准(calibrated)。

因为关键就在于:你要把人类判断引入进来;如果你要用 proxy 来替代它,那就必须确保这个 proxy 校准得足够好。

主持人:有意思。我记得我们最开始和你做业务合作的时候,还在邮件里讨论过:LLM-as-a-Judge 到底是否可行。看起来它已经进步很多了。

Harrison Chase: 是的。LM-as-a-Judge 其实有几个不同层面的用法。

最常见的一种,是用于 eval:拿一条 trace,直接给它一个分数,比如 1 到 0,或者 0 到 10。这个我认为是可行的,而且很多人确实在做。他们会离线做,也会在线做,因为有些判断并不需要 ground truth(标准答案)。

但我觉得另外一个更重要的场景,是你在 coding agents 里也能看到的:coding agent 往往会先工作到某一步,然后遇到错误,触发纠错。它实际上是在“评判自己刚才做的工作”。我们也在 memory 上看到同样的模式:记忆很大一部分就是 反思 traces,然后更新某些东西。所以问题是:LLM 能不能去反思 traces——无论是它自己的 trace、以前 session 的 trace,还是别人的 trace?我觉得完全可以。我们在 eval、纠错、记忆里到处都能看到这种模式,本质上其实是一回事。

Eval 是 RL 的奖励信号,

还是工程反馈机制?

主持人:我明白了。那接下来就很自然会问:你有了所有 traces,也有了 eval。那么这些 eval 到底是什么?它是强化学习的 reward signal?还是一种反馈机制,让工程师去改进 harness、让 agent 工程师去优化 harness?

Harrison Chase:因为现在大家都不再手动写太多代码了,大家都在用这些 agent 工具。我们观察到一个很重要的模式:我们有一个 LangSmith MCP,也有 LangSmith fetch(一个 CLI)。因为 coding agents 特别擅长用 CLI。你把这些给智能体,它就能把 traces 拉下来,诊断哪里出了问题,然后把这些 traces 带进代码库里,从而修复它。这是我们正在看到的真实模式,而且我们非常非常非常想支持这种模式。

所以在这一点上,相比“用 eval 做强化学习奖励信号”,我对“把 eval 当作工程反馈、用于改 harness”的路径更乐观——至少对今天做 agent 应用的公司来说是这样。

主持人:这听起来像是递归自我改进啊。

Harrison Chase: 我觉得是,但还是有一个人类在环。

回到前面那个点:当它产出“初稿”时效果最好——它改 prompt,然后人类 review,这能让系统保持不跑偏。但我们确实……我们最近发布了 LangSmith Agent Builder,这是一个 no-code 的 agent 构建方式。其中一个很酷的功能就是 memory。

现在 memory 的工作方式是这样的:当你和 agent 交互时(注意它还不是后台自动跑的那种;它不会自己拉 traces),如果你对它说:“你不该做 X,你应该做 Y”,它就会去改自己的指令——这些指令本质上就是文件——然后直接编辑这些文件。这样未来它就会按新的方式表现。

这也是一种“自我改进”的形式。我们确实还想加入另一种机制:比如每天晚上跑一次任务,查看当天所有 traces,更新自己的指令。

主持人: 就是那种“做梦”的机制。

Harrison Chase: 对,“睡眠时间算力(sleep-time compute)”。

记忆与自我改进会成为护城河吗?
主持人:我们再多聊聊未来。你现在最兴奋的是什么?听起来你聊了很多 memory。

Harrison Chase: 我很看好 memory。我觉得让智能体去改善自己,这非常酷,而且在很多场景下也很有用。

但也不是所有场景都用得上。比如 ChatGPT 加了 memory 功能,我其实用得不多,我也不觉得它显著增加了我对产品的粘性。我觉得原因之一是:我去 ChatGPT 时,大多数问题都是一次性的。我不太会反复做同一件事:我可能问软件,也可能问吃的、旅行……都很零散。

但在 agent builder 里,你通常是为特定任务构建特定工作流。比如我有一个 email agent。而且我其实……它已经给我发邮件两年了。我之前在 agent builder 之外就有一个 email agent,它带有 memory。后来我们做了 agent builder,我想把它迁移进去,但它没有我之前的那些 memories。即便它的起始 prompt 一样、工具也一样,但因为缺了记忆,它现在的体验就明显差很多。我到现在都还没完全切过去,因为它现在确实不如之前那个好用——说白了,它现在“有点烂”。

当然,如果我持续和它交互,它会变好,它会不那么烂。但这也恰恰说明:memory 可能会成为真正的护城河(moat)。而且我绝对相信,我们已经到了一个阶段:LLM 可以看 traces,然后改变自己代码里的某些东西。问题在于:怎么把这件事做得 安全、并且在用户层面可接受。但我认为,在一些特定场景里(不是所有场景),我们会越来越多看到这种能力。至于 ChatGPT 这种通用聊天产品,我仍然不确定这种形态的 memory 是否有用,至少目前我不确定。

主持人:你觉得和长时序智能体一起工作的 UI 会如何演化?

Harrison Chase: 我觉得大概率需要 同步模式(sync)和异步模式(async)

长时序智能体运行时间可能很长,默认应该是异步管理:如果它要跑一天,你不会一直坐在那里等它结束。你很可能会启动一个、再启动一个、同时跑很多个。所以这里会涉及到异步管理:我觉得像 Linear、Jira、看板,甚至 email,都可以作为 UI 设计的参考——如何去管理一堆异步运行的 agent。

但与此同时,很多时候你又会想切换到同步交流。因为 agent 最后给你返回一份研究报告,你可能需要立刻指出:它这里写错了,你要给反馈。聊天界面在这方面其实已经挺不错的。

我唯一想补充的是:现在很多 agent 不仅是在“对话”,它还会去修改文件系统里的文件。所以你必须有一种方式去查看“状态”(state)——也就是它改了什么。

这在编程领域尤其明显:IDE 依然被使用,是因为当你想手动改代码时,你需要看见那个“当前状态”。即便我启动 Claude Code,它跑完后,我有时也会打开来看它到底写了什么代码。所以“能看到状态”这件事很重要。

Anthropic 在 Claude “co-work”(这里指那类协作式工作流)里做了一个很酷的设计:你设置它时要选择一个目录,等于你在告诉它:“这就是你的环境。”

这在编程里当然也是常态:你打开 IDE 到某个目录。但我觉得把它明确成一个心智模型很有帮助:这就是你的 workspace(工作区)

这个 workspace 也不一定非得是本地目录:它可以是 Google Drive、Notion 页面,或者任何能存储状态的地方。你和 agent 就是在这个状态上协作:你启动它,让多个任务异步跑;然后切到同步模式,在 chat 里和它讨论,但同时你还能看到它正在协作的“状态”。这就是我目前看到的形态。

主持人:所以这也就是你说的“agent inbox”的想法:为了进入 sync 模式,agent 需要能联系到你。

Harrison Chase: 对,没错。我们大概一年前发布过 agent inbox,理念是“ambient agents”:它们在后台跑,必要时来 ping 你。但第一版其实没有 sync 模式:它 ping 你,你回一句,然后你就等它下一次再 ping 你。

但很多时候,我切到邮件去回复它时,我其实只回很短的话,而且我不想再切出去然后干等——我(对方)很重要,所以我更想直接进入一种“同步对话”的模式,跟 agent 把这个问题当场聊完。所以我们后来做了一个关键改动:当你打开 inbox 时,会直接进入 chat,而 chat 是非常同步的。这是一个很大的 unlock(突破点)。

我现在认为:只有 async 模式,目前还不太够。也许未来如果 agent 强到你几乎不用纠正它,那么纯异步会更可行。但至少现在,我们看到人们在 async 和 sync 之间来回切换。

主持人: 你怎么看 code sandboxes(代码沙箱)?是不是每个 agent 最终都会配一个 sandbox?也包括“能用电脑”、能上网用浏览器这种能力?

Harrison Chase: 这是个特别好的问题,我们也一直在想。就目前的经验来看,“写代码 / 跑代码”这条路明显比“直接操作浏览器”更成熟、更好用

所以短期内,如果要在这些能力里挑一个最可能成为标配的,我更看好的是 代码执行(code execution)——也就是给 agent 一个能安全运行脚本、验证结果的环境。

另外,文件系统(file system)我几乎是“坚定派”:不管是本地目录、还是背后用数据库实现的“虚拟文件系统”,agent 总得有个地方能存状态、存中间结果、随时回查,这对上下文管理太关键了。比如:

  • 做 compaction(上下文压缩)时,把完整内容丢到文件里,需要再查就去读;
  • 工具调用返回特别长时,不塞进上下文,改成写文件、让 agent 自己按需读取。

至于“coding”(让 agent 真正去写代码),我没那么绝对,但我大概 90% 站在“需要”这一边。因为很多长尾任务里,写脚本依然是最通用、最强的手段——你很难找到同等级的替代品。

当然也可能出现另一类场景:如果你做的是高度重复、流程固定的事情,未必每次都要写很多代码;但即使这样,文件系统仍然重要,因为重复流程会不断产生上下文和状态,你还是要做上下文工程。

再说浏览器使用(browser use):从我们目前看到的效果来说,模型还不够稳定。也许可以让 coding agent 通过 CLI 的方式“间接”完成一些浏览器相关任务(算是一种近似解),我确实见过一些挺酷的实现。

而所谓 computer use(直接操作电脑界面)则更像是介于两者之间的混合形态,目前还有不少不确定性。

所以总结一下:我非常喜欢 code sandboxes,我觉得它会成为 agent 能力栈里很关键的一块。

主持人:太棒了。Harrison,真的非常感谢你今天来参加节目。你一直都能在 agent 这条路上看到未来,能和你聊“上下文工程如何演化到今天的 harness 与长时序智能体”,真的特别过瘾。感谢你推动这个未来,也感谢你一直愿意和我们聊这些。

Harrison Chase: 谢谢邀请。我希望未来还能再来一次,然后证明我今天说的全部都是错的。因为预测未来真的很难。

参考链接:

https://www.youtube.com/watch?v=vtugjs2chdA&t=1s

声明:本文为 AI 前线整理,不代表平台观点,未经许可禁止转载。

会议推荐

InfoQ 2026 全年会议规划已上线!从 AI Infra 到 Agentic AI,从 AI 工程化到产业落地,从技术前沿到行业应用,全面覆盖 AI 与软件开发核心赛道!集结全球技术先锋,拆解真实生产案例、深挖技术与产业落地痛点,探索前沿领域、聚焦产业赋能,获取实战落地方案与前瞻产业洞察,高效实现技术价值转化。把握行业变革关键节点,抢占 2026 智能升级发展先机!

今日荐文

图片

你也「在看」吗?👇

传统软件迭代,我们关注的是需求实现和用户体验优化,迭代目标明确。而 Agent 开发的迭代,由于 Agent 的行为具有一定的非确定性,迭代更多的是在探索和修正 Agent 的行为模式,让它更符合人类的价值观和使用习惯。对于普通人来说,可以通过参与 Agent 的使用,提供各种场景下的反馈,帮助开发者更好地理解 Agent 的行为,从而进行更有效的迭代。另外,一些 Agent 平台也提供了用户自定义 Agent 行为的功能,普通人也可以通过这种方式参与到 Agent 的迭代中。

抛砖引玉一下,感觉除了上面说的那些硬实力,通用 Agent 还需要一些软实力。 比如,要有良好的“沟通能力”,能够和人类开发者进行有效的沟通,理解开发者的需求,并及时反馈问题。 还要有“团队合作精神”,能够和其他 Agent 协同工作,共同完成复杂的编程任务。 最后,还要有“抗压能力”,能够承受长时间、高强度的工作压力,保证代码的质量。 感觉就像是要培养一个 AI 界的“996 程序员”! 狗头.jpg

我觉得要胜任编程任务,通用 Agent 至少需要具备以下几个能力:1. 强大的代码生成能力,能够根据需求生成高质量的代码;2. 良好的代码理解能力,能够理解已有的代码,并进行修改和扩展;3. 完善的调试能力,能够快速定位和修复代码中的错误;4. 灵活的工具调用能力,能够利用各种编程工具和库来辅助编程;5. 优秀的学习能力,能够不断学习新的编程知识和技能。感觉就像要培养一个 AI 界的“全栈工程师”!

如果把 Agent 放在一个辅助决策的位置上,而不是完全依赖它做决定,那么即使它的可靠性只有 90%,也能发挥很大的作用。例如,在客服场景中,Agent 可以先回答一些常见问题,如果遇到复杂问题再转交给人工客服。这样既能提高效率,又能保证服务质量。关键在于明确 Agent 的定位,扬长避短。

可以尝试建立一个“Agent 评估数据集”,这个数据集包含各种各样的输入和对应的期望输出。在每次迭代后,都用这个数据集对 Agent 进行评估,并根据评估结果调整 Agent 的参数或算法。这样可以客观地衡量 Agent 的性能,避免主观臆断。这个数据集就像是 Agent 的“体检报告”,定期检查,才能保持健康。

传统软件公司转型Agent工程,就像大象跳舞,不容易,但并非不可能。关键在于:

1. 扬长避短: 传统软件公司最大的优势在于数据和行业know-how。应该充分利用这些优势,打造垂直领域的Agent解决方案。
2. 拥抱变化: 放弃“All in one”的思维,拥抱Agent时代的“组合创新”。可以将现有的软件产品与Agent技术相结合,打造更智能、更高效的解决方案。
3. 人才转型: 加强Agent相关技术人才的培养和引进。可以内部培训,也可以外部招聘。但更重要的是,要建立一种鼓励创新、容错试错的企业文化。
4. 开放合作: 与Agent领域的创业公司、研究机构建立合作关系,共同探索Agent技术的应用场景。

举个例子,一个传统的CRM软件公司,可以利用Agent技术,打造一个智能销售助手,帮助销售人员自动生成销售报告、预测客户需求等。这样,既能提升CRM软件的价值,又能抓住Agent时代的机遇。

这个问题问得好!Agent的自主性和可控性,就像是放风筝,线太紧了就飞不起来,线太松了就不知道飘哪儿去了。我的理解是:

1. 明确目标、限定范围: 就像给Agent划定一个“作战区域”,明确它要做什么,不能做什么。比如,一个客服Agent,可以允许它查询订单信息,但绝对不能修改用户信息。
2. 分阶段控制: 初始阶段,多干预、多引导,让Agent按照预设的路径运行。随着Agent能力的提升,逐步放权,让它有更多的自主决策空间。
3. 建立反馈机制: 就像给Agent安装一个“纠错系统”,当它偏离预定目标时,及时进行干预和纠正。这可以通过人工review、强化学习等方式实现。
4. 安全兜底: 就像给Agent设置一个“安全阀”,当它做出可能造成损害的决策时,及时阻止。比如,可以设置一个“最高预算”,防止Agent过度使用API。

总之,平衡自主性和可控性是一个动态的过程,需要根据Agent的实际表现不断调整策略。

上下文管理呀,这就像是给 Agent 喂饭,还得保证营养均衡!我觉得比较有效的策略包括:摘要提取、信息压缩和分层存储。先把关键信息提炼出来,再把contextual的信息结构化分层存储,定期清理不相关的信息,这样Agent才能在处理长任务时保持清醒的头脑。可以有效减少token使用,降低显存压力。

除了已经提到的那些,我认为在知识管理和企业内部培训方面也很有潜力。Agent可以快速整理大量的文档和资料,生成知识图谱或培训材料的初稿,然后由人工专家进行审核和完善,提高效率。当然,前提是要解决好知识产权和数据安全的问题。

我觉得tracing在Agent开发中有点像代码review。通过分析trace,我们可以了解Agent的推理路径、对工具的使用情况,甚至可以发现一些意想不到的行为模式。然后我们可以针对这些发现来改进Agent的设计,让它更符合我们的预期。所以,tracing不仅仅是debug,还是一个学习和改进的机会。

代码沙箱就像是 Agent 的游乐场,让它可以安全地玩耍各种代码,而不用担心搞坏整个系统。它可以解决以下问题: 1. 避免 Agent 执行恶意代码,比如删除文件、窃取数据等。 2. 限制 Agent 的资源使用,防止它占用过多 CPU、内存等。 3. 隔离 Agent 的运行环境,避免它与其他应用发生冲突。 除了代码沙箱,我觉得还可以采用以下技术来增强 Agent 的安全性: 1. 访问控制:限制 Agent 对文件系统、网络等资源的访问权限。 2. 行为监控:监控 Agent 的行为,及时发现异常情况。 3. 审计日志:记录 Agent 的操作,方便追溯问题。 4. 加密技术:对敏感数据进行加密,防止泄露。

同意楼上的看法!以前写代码是“我说一不二”,现在用Agent是“我提个需求,剩下的看它发挥”。这就要求我们更注重对Agent的引导和约束,比如Prompt Engineering就变得至关重要。另外,要做好长期迭代的准备,不断通过数据和反馈来优化Agent的行为。

文件系统也是个好东西! 把完整的消息都放进文件系统里,这样如果智能体后续需要回查,它还能查到。 还有,当你遇到很大的工具调用结果时,不要把全部内容都塞回模型上下文里;你可以把结果放进文件系统,然后让智能体需要的时候再去查。

别忘了程序员的好伙伴 - 编程 Agent! 我认为编程领域肯定是 Agent 最先大规模应用的领域之一。Claude Code 已经证明了它的价值。以后 Agent 可以辅助程序员完成重复性编码、debug,甚至生成代码框架,程序员只需要关注核心业务逻辑就好。

我觉得不仅仅是记住对话,更重要的是理解对话背后的意图和上下文。Agent 需要能够根据用户的历史行为和偏好,进行个性化的推荐和服务,这才是真正的“记忆”。

记忆的关键在于“知识的沉淀和复用”。Agent 需要能够从大量的交互数据中学习,并将这些知识应用到新的场景中。例如,一个客服 Agent 可以记住用户过去遇到的问题和解决方案,并在用户再次遇到类似问题时,快速给出答案。