LangGraph从零入门实践(一)

174 阅读1分钟

首先创建一个用于项目的文件夹

mkdir langgraph-agent
cd langgraph-agent

安装依赖:

npm install @langchain/core @langchain/langgraph @langchain/openai @langchain/community

使用 LangGraph 创建第一个Agent

创建一个名为 agent.ts(推理 + 行动代理的简称)的文件 项目结构如下: 在这里插入图片描述

并将以下 TypeScript 代码添加到agent.ts中:

// agent.ts

// IMPORTANT - Add your API keys here. Be careful not to publish them.
process.env.OPENAI_API_KEY =
  "sk-TXXXX7";//输入你的OPEN API KEY或者代理的KEY
process.env.TAVILY_API_KEY = "tvly-TXXXu";//输入你的TAVILY API KEY
process.env.OPENAI_BASE_URL = 'https://chatapi.midjourney-vip.cn/v1';//注意是这样配置的,这里一般使用代理的地址,因为OPEN AI国内无法访问

import { TavilySearchResults } from "@langchain/community/tools/tavily_search";
import { ChatOpenAI } from "@langchain/openai";
import { MemorySaver } from "@langchain/langgraph";
import { HumanMessage } from "@langchain/core/messages";
import { createReactAgent } from "@langchain/langgraph/prebuilt";

// Define the tools for the agent to use
const agentTools = [new TavilySearchResults({ maxResults: 3 })];
const agentModel: any = new ChatOpenAI({
  model: "gpt-3.5-turbo",
  temperature: 0,
});

// Initialize memory to persist state between graph runs
const agentCheckpointer = new MemorySaver();
const agent = createReactAgent({
  llm: agentModel,
  tools: agentTools,
  checkpointSaver: agentCheckpointer,
});

// Now it's time to use!
const agentFinalState = await agent.invoke(
  { messages: [new HumanMessage("what is the current weather in sf")] },
  { configurable: { thread_id: "42" } }
);

console.log(
  agentFinalState.messages[agentFinalState.messages.length - 1].content
);

const agentNextState = await agent.invoke(
  { messages: [new HumanMessage("what about ny")] },
  { configurable: { thread_id: "42" } }
);

console.log(
  agentNextState.messages[agentNextState.messages.length - 1].content
);