Introdução geral
LangGraph O CodeAct é uma estrutura de código aberto no GitHub pela equipe de IA da LangChain, com base na arquitetura do CodeAct (consulte o artigo arXiv:2402.01030 para obter detalhes). Ela ajuda as inteligências a processar tarefas complexas com eficiência, gerando e executando código Python. Essa ferramenta está sendo Manus.im usa, em oposição ao JSON tradicional chamada de funçãoEle usa todo o poder de programação do Python para integrar a saída de várias ferramentas e reduzir o número de etapas. Ele oferece suporte ao histórico de mensagens e ao salvamento de variáveis para diálogo contínuo ou cenários de tarefas avançadas. Desde 29 de março de 2025, o projeto ainda é mantido ativamente e está aberto a desenvolvedores de IA.
Lista de funções
- Os corpos inteligentes geram e executam código Python para concluir tarefas diretamente.
- Salvar o histórico do diálogo e apoiar o questionamento contínuo.
- Preserve as variáveis Python para facilitar a referência em tarefas subsequentes.
- apoiar algo
.invoke()
Obter o resultado final, ou.stream()
Obtenha resultados passo a passo. - Compatível com ferramentas personalizadas, ferramentas LangChain e MCP Ferramentas.
- Funciona com qualquer modelo compatível com LangChain (somente testes oficiais) Claude 3.7).
- Oferece uma interface de sandbox de código personalizado para maior flexibilidade.
- As palavras do prompt do sistema podem ser ajustadas livremente.
Usando a Ajuda
O LangGraph CodeAct é uma estrutura de código aberto para desenvolvedores que é executada principalmente no ambiente Python. Aqui está um guia detalhado de instalação e uso para ajudá-lo a começar.
Processo de instalação
Você precisará do Python 3.8 ou superior para poder usá-lo. As etapas de instalação são as seguintes:
- Download do projeto
Abra um terminal e digite o comando Clone Repository:
git clone https://github.com/langchain-ai/langgraph-codeact.git
Em seguida, vá para o diretório do projeto:
cd langgraph-codeact
- Instalação das dependências do núcleo
Execute o seguinte comando para instalar as dependências básicas:
pip install langgraph-codeact
A instalação também é necessária se você precisar executar exemplos ou usar um modelo específico (por exemplo, o Claude 3.7):
pip install langchain langchain-anthropic
- Configuração de variáveis de ambiente
Ao usar o modelo Claude, você precisa definir o Antrópica Chave da API. Insira-a no terminal:
export ANTHROPIC_API_KEY="你的密钥"
A chave pode ser obtida no site da Anthropic. Se estiver usando outros modelos, consulte a documentação correspondente para obter a configuração.
Uso básico
Após a conclusão da instalação, o LangGraph CodeAct é chamado a partir de um script Python:
- Inicialização da inteligência
Crie um script simples, comorun_agent.py
Digite o seguinte código:
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())
- Execução de tarefas
Insira um problema e deixe que as inteligências gerem o código e o executem. Exemplo:messages = [{"role": "user", "content": "计算 5 的平方根"}] result = agent.invoke({"messages": messages}) print(result["messages"][-1].content)
O resultado é semelhante:
sqrt(5) = 2.23606797749979
.
Adicionar ferramentas
O exemplo oficial fornece ferramentas matemáticas para capacitar as inteligências. Veja como adicioná-lo:
- Ferramentas de definição
Adicione funções matemáticas ao script: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]
- Ferramentas de integração
Modificar o código de inicialização:code_act = create_codeact(model, tools=tools, eval=None) agent = code_act.compile(checkpointer=MemorySaver())
A Intelligentsia agora pode usar
add(3, 4)
talvezsqrt(16)
.
Sandbox de código personalizado
Uso padrão eval
Execute o código, mas o ambiente de produção precisa estar em uma área restrita segura. Código de amostra:
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}", {}
Passe essa função:
code_act = create_codeact(model, tools=tools, eval=custom_sandbox)
Operação da função em destaque
- Gerar código
Digite "Calculate the sum of 3 and 5" (Calcular a soma de 3 e 5), e a inteligência será gerada:result = add(3, 5) print(result) # 输出 8
- Diálogo com a história
Em seguida, pergunte "resultado mais 2" e, de forma inteligente, aprenda a se lembrar dissoresult
Geração:new_result = result + 2 print(new_result) # 输出 10
- saída de streaming
fazer uso de.stream()
Veja os resultados passo a passo:for typ, chunk in agent.stream({"messages": messages}): if typ == "messages": print(chunk[0].content, end="")
advertência
- Os ambientes de produção evitam o uso direto de
eval
Ele precisa ser protegido por uma caixa de areia. - O Claude 3.7 é o modelo oficial recomendado; outros modelos podem precisar ser ajustados para palavras-chave.
- As definições de ferramentas precisam estar em conformidade com a especificação LangChain com tipos de parâmetros claros.
Com essas etapas, você pode criar inteligências para resolver várias tarefas usando o LangGraph CodeAct.
cenário do aplicativo
- educação matemática
Os alunos inserem tópicos como "Calculate Parabolic Distance" (Calcular distância parabólica) e o corpo inteligente gera código e apresenta resultados para ajudar no aprendizado. - processamento de dados
Os desenvolvedores o utilizam para gerar scripts automaticamente, processar arquivos CSV ou calcular estatísticas. - Experimentos de IA
Os pesquisadores testam os recursos de geração de código das inteligências para otimizar processos de tarefas complexas.
QA
- Quais linguagens de programação são compatíveis?
Atualmente, somente o Python é compatível, pois é a linguagem de execução principal. - Como depurar erros de código?
fazer uso de.stream()
Visualize o código gerado ou verifique se há mensagens de erro na saída da sandbox. - Você não pode usar ferramentas?
Sim, definido na inicializaçãotools=[]
A tecnologia de código de barras é uma das mais importantes, pois depende exclusivamente do modelo para gerar o código.