単一の呼び出しで柔軟なエージェント処理を組むJAZ
Harness as a Language: A Minimalist Agent Framework With Maximal Expressivity
この論文をやさしく読む
ひとことで言うと
エージェントの基本ループを再帰的に使える一つの操作にまとめ、記憶や自己改善の処理を試した。
何に役立つ?
エージェントの実行基盤を設計する際に、最小限の構成で何ができるか判断する材料になる。
この研究の面白いところ
LLMに見える入出力と履歴をコード変数として扱い、呼び出しごとに関数の実装を作るという設計。
どこまで分かった?
性能比較はStuLifeの記憶を多く使う部分とAppWorldでの結果。ほかの長期処理全般で同じ優位性を示したわけではない。
v1のアブストラクトに基づくAI解説。日本語訳とは別に、用途の解釈を含みます。
アブストラクトの日本語訳
現在の言語モデル・エージェントは、ツールを備えた環境にLLMを置き、ツール呼び出しとその結果の観察を繰り返してLLMが処理を制御する「エージェント・ループ」を中心に作られる。しかし、記憶や自己改善などの処理には、ループ以外の仕組みを追加で作ることが多い。著者らは、ほぼループだけの最小限の仕組みで、こうした専用システムの役割をどこまで果たせるか調べるため、LLMエージェントの枠組みJAZを構築した。JAZはLLMに基づく単一の基本操作invokeと、プログラマーが制約や監視を加えるための組み込みフックを提供する。 既存のコード実行型ループを一般化したinvokeは、二つの条件を満たす最も単純なループである。LLMが再帰的なinvokeを含む任意の実行可能コードを書けることと、invokeへの入力やコード環境とのやり取りの履歴を含め、LLMに見えるものがすべてコード環境の変数であることである。設計を第一原理から動機付け、invokeを、呼び出しのたびにLLMが実行時に実装を与える関数を表す言語の基本操作として捉える。中心となるinvokeの設計を検証するため、従来は専用の外部の仕組みで実装する処理を、プロンプトのみで、手作りのツール、実行基盤、記憶やファイルシステムなどの外部システムなしに評価した。文脈窓を超える記憶が必要な長期処理では、StuLifeの記憶を多く使う部分で、JAZ invokeはLetta(MemGPT)を費用半分で8%上回った。継続的な自己改善では、AppWorldでACEを費用を抑えながら4%上回った。
v1の要旨から自動生成。本文の精読・人による確認は未実施。
- 初稿
- 2026-09-22(UTC)
- 最新改訂
- 2026-09-22 · v1
- 査読・掲載
- 査読状況未確認
更新履歴
- v1 2026-09-22 この版を読む
取得できた版を表示。版の更新は査読済みを意味しません。過去版の本文差分は未解析です。
原文の要旨
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} is the simplest loop that satisfies two defining properties: (1) the LLM can write arbitrary executable code that can include recursive \texttt{invoke}; (2) everything visible to the LLM --- all inputs to \texttt{invoke} as well as its interaction history with the code environment --- are variables in the code environment. We motivate our design from first principles, viewing \texttt{invoke} as a language primitive representing a function whose implementation is provided at runtime by an LLM every time it is called. To validate the design of our core \texttt{invoke} primitive, we evaluate \texttt{invoke} --- with only prompting, no manually designed tools, harness, or external systems (e.g., memory or the file system) --- on workflows traditionally implemented through specialized external harnesses. On long-horizon workflows requiring recall beyond the context window, JAZ invoke outperforms Letta (MemGPT) by 8\% at half its cost on the recall-heavy portion of StuLife. On continual self-improvement, JAZ invoke outperforms ACE by 4\% at a lower cost on AppWorld.
著者のコメント
25 pages, 3 figures
arXiv ID: 2609.26891 / 要約の誤りについて