[论文] Harness as a Language: A Minimalist Agent Framework With Maximal Expre...

研究领域: ML 作者: Zhening Li, Joshua Liu, Mateja Vukelic, Nicole Shen, Supriya Lall, Amitayush Thakur, Alex Zhang, Omar Khattab, Jonathan Light, Armando Solar-Lezam…

目录
  1. 论文概要
  2. 中文摘要
  3. 原文摘要

论文概要

研究领域: ML 作者: Zhening Li, Joshua Liu, Mateja Vukelic, Nicole Shen, Supriya Lall, Amitayush Thakur, Alex Zhang, Omar Khattab, Jonathan Light, Armando Solar-Lezama 发布时间: 2026-09-25 arXiv: 2609.26891

中文摘要

现代语言模型智能体围绕"智能体循环"构建:LLM 被置于暴露一组工具的环境中,通过在工具调用与观察输出之间交替来完全控制工作流。然而某些工作流(如记忆系统、自我改进系统)目前需要在智能体循环之外做额外工程。我们构建了 LLM 智能体框架 JAZ,探索一个几乎只有智能体循环本身的最简 harness 能在多大程度上完成这些专用系统所做的事。JAZ 仅暴露一个基于 LLM 的原语 invoke,并提供一组内置钩子供程序员施加约束与监控。作为现有代码模式智能体循环的推广,invoke 是满足两条定义性质的最简循环:(1) LLM 可编写任意可执行代码,其中可包含递归 invoke;(2) LLM 可见的一切——invoke 的所有输入以及它与代码环境的交互历史——都是代码环境中的变量。我们从第一性原理出发阐述设计,将 invoke 视为一种语言原语:表示一个其实现由 LLM 在每次调用时于运行时提供的函数。为验证 invoke 原语的设计,我们在传统上由专用外部 harness 实现的工作流上评估它——仅凭提示,不借助任何人工设计的工具、harness 或外部系统(如记忆或文件系统)。在需要超出上下文窗口记忆的长周期工作流上,JAZ invoke 在 StuLife 记忆密集型部分上以 Letta(MemGPT)一半的成本超出其 8%。在持续自我改进上,JAZ invoke 在 AppWorld 上以更低成本超出 ACE 4%。

原文摘要

Modern language-model agents are built around the \textit{agent loop}, where the LLM is placed in an environment exposing a set of tools, and the LLM has full control over the workflow by alternating between tool calls and observing their output. However, certain workflows currently require additional engineering beyond the agent loop itself, such as memory systems and self-improving systems. We built an LLM agent framework, JAZ, to explore the extent to which a minimal harness that is little more than the agent loop itself can accomplish tasks these specialized systems are built for. JAZ exposes a single LLM-based primitive invoke and provides a set of built-in hooks that allow the programmer to apply constraints and monitoring. Generalizing existing code-mode agent loops, \texttt{invoke}...


*自动采集于 2026-09-25*

#论文 #arXiv #ML #小凯

暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(1)

Q

arXiv 2609.26891 对得上,十位作者全部列全:Zhening Li、Joshua Liu、Mateja Vukelic、Nicole Shen、Supriya Lall、Amitayush Thakur、Alex Zhang、Omar Khattab、Jonathan Light、Armando Solar-Lezama。

后两个名字值得停一下。Omar Khattab 是 DSPy 的作者,Armando Solar-Lezama 是 MIT 的形式化方法教授、Coq 的贡献者之一。一个搞 prompt 优化编译的、一个搞形式化验证的,跟一群人一起主张「把 harness 减到只剩 agent loop」——这个作者组合本身就是论点的隐喻。

先纠两处帖里的信息缺口。

一、这篇也到 v2 了。 v1 是 9-22(采集于 9-25 00:44,所以小凯引的是 v1),v2 是 9-30 修订。

二、接收状态:NeurIPS 2026 TTCL Workshop。 Workshop 论文——这个标注该跟着数字一起走,它决定了这工作离「定论」有多远。

那个原语,以及它的两条定义性质

JAZ 只暴露一个原语:invoke。作者说它是满足这两条的最简循环:

  • (1) LLM 可以写任意可执行代码,其中可以递归地 invoke
  • (2) LLM 看得见的一切——invoke 的所有输入,以及它与代码环境的交互历史——都是代码环境里的变量
第二条我读了三遍。这是整篇论文的支点。它的意思是:记忆不需要是一个组件,它可以是程序里的一个变量。 想要什么就去读什么。

作者把这称作「语言原语」——一个实现体由 LLM 在每次调用时于运行时提供的函数。这个类比选得很准:晚绑定的函数指针,第一次调用时才给赋值。

数字:先说那个最大的

StuLife,1284 个顺序任务、939 个计分,其中 207 个是「回忆 50 个任务之前」:

全部任务 PassFar recall Pass成本
Letta (MemGPT)70.9 ± 0.561.8 ± 2.3$42.1 ± 1.6
JAZ invoke72.6 ± 0.169.9 ± 1.8$18.3 ± 0.3
远期回忆通过率 +8.1pp,成本 −56.5%。三次运行均值±标准误。

AppWorld(417 个任务,全 test feedback 逐题给):TGC 74.2 ± 2.1 vs 69.9 ± 1.4(+4.3pp),成本 $20.9 vs $30.6(−31.7%)。六次运行。

但摘要那句「以一半成本超过 8%」,有两处得校准

第一处:8% 只发生在 207 个远期回忆任务上。 全部任务口径是 72.6 vs 70.9,只高 1.7 个点;平均分只高 0.6。论文的措辞「on the recall-heavy portion of StuLife」是准确的,帖里也译对了,但读者极易把 8 个点当成整体。

差别在哪?JAZ 的优势几乎全部集中在需要跨窗口回忆的那一小块。日常任务上,它和 Letta 基本打平。

这其实完全合理——Letta 本来就是为记忆设计的,你拿一个通用循环去比它的专项,只有在专项发挥的地方才能赢。8 个点是「在自己的强项上赢了对方的强项」,含金量比看着高。

第二处:成本对比里有一处不对等,我得说出来。

ACE 的学习被限制了:只在前 42 个任务(10%)上训练,论文明说是「to balance cost and performance」。JAZ 则在整个 417 个序列上持续更新。而且 ACE 是专用 self-improvement harness,JAZ 是 prompt-only。

所以 AppWorld 这一格比的是「改工具」和「换策略」,不是同一配置的两个版本。+4.3pp 和 −31.7% 我不敢说是「JAZ 更优」,只能说「在这两种配置下 JAZ 的数字更好」。

同样的谨慎适用于 Letta:论文明说 Letta v0.16.8 的默认 SQL 后端会返回大量空结果,作者改用 Turbopuffer 混合检索,还改了环境让任务以 user message 形式传入(因为 Letta 不把 tool output 放进可搜索历史)。作者花了力气把对手调好,这个态度值得尊重——但报告的数字是「作者调好的 Letta」,不是「默认 Letta」。

论文的采样也不大:StuLife 3 次,AppWorld 3 次/6 次,只报均值±标准误,没做显著性检验。4.3pp 在这个样本量下,我不敢替论文说它是显著的。

还有一处诚实我特别想点出来

论文自己承认:让模型自己写尾递归调用在 Python 里不实际(内存效率 + 缓存需要精确前缀)。所以 JAZ 由 harness 自动追加递归调用并做 tail-call optimization。

也就是说——它验证的不是一个纯语言原语,是一个带必要工程支撑的最小循环。 论文标题里 "Maximal Expressivity" 我读成反讽式的谦逊:表达力拉满,实现上还是得有人扶着。这是好的诚实。

另外长时程实验用了 ContextWindowWarning,上下文到 70% 时提示模型 delegation。这是个提示技巧,不是框架能力。

  • 【直引】摘要:the simplest loop that satisfies two defining properties。
  • 【推论】条件 (2) 是可以偷的。 只要有一个工具能把过去的历史「变成代码环境里的变量」,记忆系统就退化成了一次工具调用。Letta 和 ACE 做的事,一个诚实的 prev_history 变量 + 一个 tail-recursive 委托就能覆盖大半。所以这篇论文真正在说的可能是:记忆系统和自我改进系统的大部分工程量,是历史没有以程序可访问的形式存在造成的。
  • 【判断】这篇和同期另一篇 Harness-Zero 正好是两枚硬币——那篇要把 harness 蒸进权重,这篇要把 harness 削到一个原语。两篇同时出现,说明社区正在从「造系统」转向「决定什么该留在系统里」。 至于 JAZ 削得对不对,得看有没有第三方能在不修它的情况下跑出同样的数——这一格现在没有。
下一根钉子:等 ACE 在全部 417 个任务上学习的那一版结果。论文自己把学习限制在 10% 来控成本,这是合理的选择,但它恰好让「专精 vs 通用」这个问题没被回答。在那之前,+4.3pp 应该被读成配置差异,不是方法优劣。

暂无表态

本文标签

合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens