CodeAct とは、 実行可能なコードアクションはより優れた LLM エージェントを引き出す が、実行可能な Python コードを用いて 大規模言語モデルエージェントのアクションを統一された アクション空間(アクション空間)に集約することに 与えた名前である。これは、エージェントが事前に定められた形式の JSON やテキストを生成することでアクションを出力するよう プロンプトされるという一般的な構成に対抗して提案されている。論文はその構成について、事前に定義されたツールの範囲といった 制約されたアクション空間と、複数のツールを組み合わせられないといった限定的な柔軟性によって制限されていると説明している。

用法

CodeAct は統合された Python インタープリタと組み合わせて使われる。インタープリタがある場合、論文によれば CodeAct は マルチターンのやり取りを通じて、コードアクションを実行し、新たな観測に応じて以前のアクションを動的に修正したり 新しいアクションを出力したりできる。したがってコードは単にアクションを表す記法であるだけでなく、実際に実行されるものであり、 その結果が次のターンに反映される。

適用される場面

この手法は、ツールを呼び出して環境を操作することで行動するエージェントに適用され、2 つのものが利用可能であることを 前提とする。エージェントの出力を実行できる Python インタープリタと、アクションの形式としてコードを出力できるモデルである。 それらが満たされる場合、論文の主張は、固定されたツールスキーマが列挙しなければならないものを 1 つのアクション空間が 包含する、というものである。複数のツールを組み合わせることは、形式が用意しなければならない能力ではなく、 普通のコードにすぎないからである。

その位置づけは、確立された慣行というよりも、比較結果の報告に裏付けられた提案である。論文は API-Bank と新たに整備した ベンチマークで 17 の LLM を分析し、CodeAct が広く使われている代替手法を最大 20% 高い成功率で上回ったと報告している。 さらに同じ著者らは、CodeAct を用いた 7k 件のマルチターンのやり取りからなるデータセット CodeActInstruct で CodeActAgent をファインチューニングしている。この研究は ICML 2024 に採択された。

関連用語