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他