AIパーソナル・ラーニング
と実践的なガイダンス
豆包Marscode1

LangGraph CodeAct:複雑なタスクを解決する知能を支援するコード生成

はじめに

ラングラフ CodeActは、LangChain AIチームがGitHubでオープンソース化しているフレームワークで、CodeActアーキテクチャに基づいている(詳細は論文arXiv:2402.01030を参照)。Pythonコードを生成・実行することで、インテリジェンスが複雑なタスクを効率的に処理できるようにする。このツールは マヌス.imは、従来のJSONとは対照的に、次のような使い方をする。 関数呼び出しPythonのプログラミング能力をフルに活用して、複数のツールの出力を統合し、ステップ数を削減します。継続的な対話や高度なタスクシナリオのためのメッセージ履歴や変数保存をサポートしている。2025年3月29日現在、このプロジェクトはまだ活発にメンテナンスされており、AI開発者に開放されている。

 

機能一覧

  • インテリジェントなボディが直接タスクを完了するためにPythonコードを生成し、実行する。
  • 対話の履歴を保存し、継続的な質問をサポート。
  • Pythonの変数を保存して、後続のタスクで簡単に参照できるようにする。
  • アジュバント .invoke() 最終結果を得る。 .stream() ステップ・バイ・ステップの出力を得る。
  • カスタムツール、LangChainツール、および エムシーピー 道具だ。
  • LangChainがサポートするすべてのモデルで動作(公式テストのみ) クロード 3.7).
  • 柔軟なカスタム・コード・サンドボックス・インターフェースを提供。
  • システム・プロンプトの言葉は自由に調整できる。

 

ヘルプの使用

LangGraph CodeActは、主にPython環境で動作するオープンソースの開発者向けフレームワークです。ここでは、インストールと使い方の詳しいガイドを紹介します。

設置プロセス

使用するにはPython 3.8以上が必要です。インストールの手順は以下の通りです:

  1. ダウンロード・プロジェクト
    ターミナルを開き、Clone Repository(リポジトリのクローン)コマンドを入力します:
git clone https://github.com/langchain-ai/langgraph-codeact.git

次にプロジェクト・ディレクトリに移動する:

cd langgraph-codeact
  1. コアの依存関係をインストールする
    以下のコマンドを実行して、基本的な依存関係をインストールする:
pip install langgraph-codeact

例題を実行したり、特定のモデル(Claude 3.7など)を使用する必要がある場合もインストールが必要です:

pip install langchain langchain-anthropic
  1. 環境変数の設定
    クロード・モデルを使用する場合は、次のように設定する必要があります。 アンソロピック APIキー。ターミナルに入力してください:
export ANTHROPIC_API_KEY="你的密钥"

キーはAnthropicのウェブサイトから入手できます。他のモデルを使用する場合は、対応するドキュメントを参照して設定してください。

基本的な使い方

インストール完了後、LangGraph CodeActをPythonスクリプトから呼び出します:

  1. インテリジェンスの初期化
    次のような簡単なスクリプトを作成する。 run_agent.py次のコードを入力してください:
from langchain.chat_models import init_chat_model
from langgraph_codeact import create_codeact
from langgraph.checkpoint.memory import MemorySaver
# 初始化模型
model = init_chat_model("claude-3-7-sonnet-latest", model_provider="anthropic")
# 创建 CodeAct 实例(无工具示例)
code_act = create_codeact(model, tools=[], eval=None)
# 编译智能体,启用内存保存
agent = code_act.compile(checkpointer=MemorySaver())
  1. タスクの実行
    問題を入力し、インテリジェンスにコードを生成させ、実行させる。例

    messages = [{"role": "user", "content": "计算 5 的平方根"}]
    result = agent.invoke({"messages": messages})
    print(result["messages"][-1].content)
    

    出力も同様だ:sqrt(5) = 2.23606797749979.

ツール追加

公式例は、インテリジェンスに力を与える数学的ツールを提供する。以下はその追加方法である:

  1. 定義ツール
    スクリプトに数学関数を追加する:

    from langchain_core.tools import tool
    import math
    @tool
    def add(a: float, b: float) -> float:
    """加法工具"""
    return a + b
    @tool
    def sqrt(a: float) -> float:
    """平方根工具"""
    return math.sqrt(a)
    tools = [add, sqrt]
    
  2. 統合ツール
    初期化コードを修正する:

    code_act = create_codeact(model, tools=tools, eval=None)
    agent = code_act.compile(checkpointer=MemorySaver())
    

    インテリジェンシアは現在 add(3, 4) もしかしたら sqrt(16).

カスタム・コード・サンドボックス

デフォルト使用 eval コードを実行するが、本番環境は安全にサンドボックス化する必要がある。サンプルコード

def custom_sandbox(code: str, _locals: dict) -> tuple[str, dict]:
try:
with open("temp.py", "w") as f:
f.write(code)
import subprocess
result = subprocess.check_output(["python", "temp.py"], text=True)
return result, {}
except Exception as e:
return f"错误: {e}", {}

この関数を渡す:

code_act = create_codeact(model, tools=tools, eval=custom_sandbox)

注目の機能操作

  • コードの生成
    と入力すると、インテリジェンスが生成される:

    result = add(3, 5)
    print(result)  # 输出 8
    
  • 歴史との対話
    そして、"結果プラス2 "と尋ねて、知的にそれを覚えるのだ。 result世代だ:

    new_result = result + 2
    print(new_result)  # 输出 10
    
  • ストリーミング出力
    利用する .stream() ステップごとの結果を見る

    for typ, chunk in agent.stream({"messages": messages}):
    if typ == "messages":
    print(chunk[0].content, end="")
    

ほら

  • 生産環境では、直接の使用は避ける evalサンドボックスはそれを守るために必要なのだ。
  • クロード3.7は公式の推奨モデルであり、他のモデルはキューワード用に調整する必要があるかもしれない。
  • ツール定義は、明確なパラメータ・タイプを持つLangChain仕様に準拠する必要がある。

以上の手順で、LangGraph CodeActを使って様々なタスクを解決するためのインテリジェンスを構築することができます。


 

アプリケーションシナリオ

  1. 数学教育
    生徒が「放物線距離を計算する」などのトピックを入力すると、スマートボディがコードを生成して結果を出力し、学習に役立つ。
  2. データ処理
    開発者は、スクリプトの自動生成、CSVファイルの処理、統計の計算などに使用する。
  3. AI実験
    研究者たちは、複雑なタスク処理を最適化するための知能のコード生成能力をテストしている。

 

品質保証

  1. どのようなプログラミング言語に対応していますか?
    現在のところ、主要な実行言語であるPythonのみがサポートされている。
  2. コードエラーをデバッグするには?
    利用する .stream() 生成されたコードを表示するか、サンドボックスの出力でエラーメッセージを確認してください。
  3. 道具は使えないのか?
    初期化時に設定 tools=[]コードを生成するためにモデルだけに頼る。
無断転載を禁じます:チーフAIシェアリングサークル " LangGraph CodeAct:複雑なタスクを解決する知能を支援するコード生成
ja日本語