AI・機械学習
上級

CodeAct(コードアクト)

LLMエージェントがPythonコードを実行手段として使い、ツール呼び出しの代わりにコードで環境と対話するエージェントフレームワーク。

0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
LLMエージェント
コード実行
アクション空間
自律エージェント
OpenHands

CodeAct

概要

CodeActは「LLMエージェントのアクション」をどう設計するかという問いに対する一つの答えだ。従来のエージェントはJSON形式のツール呼び出し({"tool": "web_search", "query": "..."} のような形式)でシステムと対話していたが、CodeActではPythonコードそのものをアクションとして出力させる。

なぜコードがよいのか

Pythonコードはチューリング完全であり、ループ・条件分岐・変数保持・複数ツールの組み合わせを一度の出力で表現できる。JSONスキーマに縛られたツール呼び出しと比べ、複雑なロジックを少ないターンで実行できる点が大きな利点だ。

比較例

# CodeActスタイル:一度のコード実行で複数ステップ
import subprocess
result = subprocess.run(["git", "log", "--oneline", "-10"], capture_output=True, text=True)
for line in result.stdout.strip().split("\n"):
    commit_hash = line.split(" ")[0]
    diff = subprocess.run(["git", "show", "--stat", commit_hash], capture_output=True, text=True)
    print(diff.stdout[:200])

上記のような複数コマンドを連鎖させる操作を、JSON形式では複数ターンに分ける必要がある。

OpenHandsとの関係

CodeActはOpenHands(旧OpenDevin)というオープンソースの自律ソフトウェアエンジニアリングエージェントのコアアーキテクチャとして採用された。OpenHandsはSandboxコンテナ上でコードを実行し、Webブラウザ操作・ファイル編集・CLIコマンドをすべてPythonコードで表現する。

セキュリティ考慮

コードを直接実行させるため、サンドボックス環境が必須だ。DockerコンテナやE2Bのような隔離実行環境と組み合わせることで、ホストシステムへの影響を遮断する。

論文情報

  • 論文:「CodeAct: Leveraging Code to Execute Actions in LLM Agents」(2024)
  • arXiv: 2402.01030
  • 提案チーム:Xing他
この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/6/7