AI个人学习
和实操指南
讯飞绘镜

LangGraph CodeAct:生成代码帮助智能体解决复杂任务

综合介绍

LangGraph CodeAct 是 LangChain AI 团队在 GitHub 上开源的一个框架,基于 CodeAct 架构(详见论文 arXiv:2402.01030)。它通过生成并执行 Python 代码,帮助智能体高效处理复杂任务。这个工具被 Manus.im 采用,相较于传统的 JSON 函数调用,它利用 Python 的完整编程能力,整合多个工具的输出,减少操作步骤。它支持消息历史和变量保存,适合连续对话或高级任务场景。截至 2025 年 3 月 29 日,项目仍在积极维护,面向 AI 开发者开放。

 

功能列表

  • 智能体能生成并执行 Python 代码,直接完成任务。
  • 保存对话历史,支持连续提问。
  • 保留 Python 变量,便于后续任务引用。
  • 支持 .invoke() 获取最终结果,或 .stream() 获取逐步输出。
  • 兼容自定义工具、LangChain 工具和 MCP 工具。
  • 可搭配任意 LangChain 支持的模型(官方测试仅限 Claude 3.7)。
  • 提供自定义代码沙盒接口,灵活性强。
  • 系统提示词可自由调整。

 

使用帮助

LangGraph CodeAct 是一个面向开发者的开源框架,主要通过 Python 环境运行。以下是详细安装与使用指南,帮助你快速上手。

安装流程

使用前需准备 Python 3.8 或更高版本的环境。安装步骤如下:

  1. 下载项目
    打开终端,输入命令克隆仓库:
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. 配置环境变量
    使用 Claude 模型时,需设置 Anthropic API 密钥。在终端输入:
export ANTHROPIC_API_KEY="你的密钥"

密钥可从 Anthropic 官网获取。如果使用其他模型,参考对应文档配置。

基本使用方法

安装完成后,通过 Python 脚本调用 LangGraph CodeAct。以下是操作步骤:

  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)

特色功能操作

  • 生成代码
    输入“计算 3 和 5 的和”,智能体会生成:

    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,需用沙盒保护。
  • Claude 3.7 是官方推荐模型,其他模型可能需调整提示词。
  • 工具定义需符合 LangChain 规范,参数类型明确。

通过以上步骤,你可以用 LangGraph CodeAct 构建智能体,解决各种任务。


 

应用场景

  1. 数学教育
    学生输入题目,如“计算抛物线距离”,智能体生成代码并输出结果,帮助学习。
  2. 数据处理
    开发者用它自动生成脚本,处理 CSV 文件或计算统计数据。
  3. AI 实验
    研究人员测试智能体的代码生成能力,优化复杂任务流程。

 

QA

  1. 支持哪些编程语言?
    当前仅支持 Python,因其为主要执行语言。
  2. 如何调试代码错误?
    使用 .stream() 查看生成代码,或检查沙盒输出错误信息。
  3. 可以不用工具吗?
    可以,初始化时设置 tools=[],仅靠模型生成代码。
未经允许不得转载:首席AI分享圈 » LangGraph CodeAct:生成代码帮助智能体解决复杂任务
zh_CN简体中文